培训服务 | PMP认证 | PgMP认证 设为首页 收藏本站 关于我们 联系我们
基于DSM的软件需求变更传播风险分析
发布者:佚名 来源:中国论文资源库 点击: 发表日期:2013-09-14

  摘 要:在开发软件的过程中,最大的风险就来自于需求变更。本文从软件开发的初期入手,通过传播变更需求的影响这一点对变更风险进行探究。并从变更的传播概率及影响概率这两方面对变更传播风险进行了定义,同时还以设计结构矩阵为基础建立了变更传播风险的分析模型,并通过这一模型比较,估算了变更传播的风险,对变更传播的影响方式也进行了讨论。

  政府机关、大企业的重要业务管理软件开发项目因为需求复杂而向开发商提出变更需求的情况屡见不鲜。对于软件项目的开发来说,软件需求的变更所带来的问题不仅仅是技术上的,它同时还涉及到了经济问题与管理问题,对于软件开发来说是一个重要的风险来源。对变更影响进行的分析,由于程序的设计语言不通,所以分析方法也是不同的,基本分为以面向过程程序设计为基础的与以面向对象程序设计为基础的分析方法。此外,由于对变更需求传播风险分析方法的不同,其衡量的指标也是不同的。

  一、 软件的设计过程与迭代

  在开发软件的过程中,迭代是一个重要的风险源。因为软件体系内各个组件间的依赖关系十分复杂,需求变更影响的传播,让设计软件的过程必须不断重复、迭代设计:首先,下游活动经常会因为上游活动过程的变化而不断重组或更改;其次,在上游的活动需要下游活动进行信息反馈时,上游活动就会因为下游活动的改变而重新进行设计;最后,当下游活动因某些情况而不可用时,基本都会导致相关活动的重做。所以要想减少不必要的迭代,加强对设计活动的理解将是一个很好的方法,同时这个方法,还能帮助降低开发软件的风险。

  对需求变更传播风险的评估需要确定的变更影响的波及范围,而软件体系中的各种依赖关系则是进行分析的基础。传统的如PERT网、CMP等项目管理工具,只能应用在平行与顺序结构的活动中,是无法对迭代处理进行直接处理的,而且对设计过程中的变化与重组也是不支持的。而DSM这种分析变更需求传播风险的工具,不但可以将元素间复杂的依赖关系清晰的反映出来,同时还可以将设计过程中的各种迭代与反馈都表示出来,这种紧凑的形式对于可视化分析复杂系统来说是非常有利的。此外,DSM还能同时支持聚类或划分等算法的优化,并且因为这些算法都是基于矩阵运算之上的,所以更方便在计算机上进行操作。

  二、 DSM建模

  DSM模型是一种通过n×n方阵像是来分析复杂系统并对其进行建模的工具。在DSM中,各种组成系统的元素都通过相同的顺序排列在矩阵的第一列、第一行。对软件的体系结构进行分解,使其成为一组相互关联的组件,通过DSM模型对组件的依赖关系进行描述。对角线元素在其中并不是用来秒速系统关系的,予以填充;而行与列间的关系,则是每列中的元素对相应行中的元素的影响。对角线下的元素代表组件进行的正向前馈信息,而其上的信息则代表逆向反馈信息。在进行软件设计时,反馈信息的出现将会导致设计活动的迭代与反复,进而致使工期延误与成本超支。

  DSM模型不但可以将系统中的迭代与反馈都直观的表现出来,同时还可以支持模块的重组,并最大限度的消除反馈,下图为某个较为简单的软件系统的DSM模型和划分结果:

  在这一模型中,组件B、C被组件A影响,而组件A依赖组件C,组件C与A之间是耦合关系。在进行划分前,DSM模型中有两个反馈信息,在划分后就只余下一个反馈信息。因为组件C和组件A间的耦合关系,是无法将反馈信息完全消除的。但是若将组件C与A当做一个整体,两者间的耦合关系就成了内部关系,而整个系统也就分成了{A,C}、{B}和{D}这三个模块,这样也就消除了其中的反馈信息。而进行划分运算就是为了利用对系统组成元素的重组,最大限度的将模块间反馈信息消除,进而使设计迭代的风险得以降低。

  三、 分析变更传播风险的具体内容

  从变更传播过程的角度来说,变更传播就是从变更源头通过某些变更路径达到变更的目标。这种有变更传播而带来的风险不但会通过变更目标体现出来,同时还和变更路径与源头有关。变更从某一角度来说,变更目标的风险是由变更源与进行变更传播的实体来决定如何表现的。所以,本文的观点是,完整的变更传播风险在进行分析时应该包括以下几点:

  在这些内容中,变更传播风险值代表的是软件体系中潜藏与组件中的风险的大小。而变更传播所带来的影响则是变更源与参与实体能够对软件设计造成的整体影响结果。

  四、 变更传播风险有何含义

  虽然软件需求的改变是确定,但同时它也是不确定的。它的确定是因为在开发软件的过程中,需求是一定会发生改变的。它的不确定指的则是发生变更的需求是哪些、发生变更的可能性有多大和这种变更会对软件系统造成怎样的影响,这些都是不确定的。而这种不确定性也正是对需求变更风险进行评估的基础。

  所谓风险,指的就是在某中特定的危险情况到到来的后果及这种可能性的组合。本文的观点是,变更传播风险是需求变更影响程度、传播概率的总和。软件的需求变更传播所带来的风险就可以化为两个方面,即与影响性相关以及与发生可能性相关,以下是相关定义:

  第一,所谓变更传播概率,指的就是某一个组件在出现变更时,和它有直接关联的其他组件也出现变更的可能性。

  第二,所谓变更影响概率,指的就是当某一个组件所发生的变更直接通过某些途径传播到另一个组件时,受到影响的组件必须重新进行设计的可能性。

  第三,所谓的变更传播风险,指的就是变更传播概率及其影响概率二者的乘积。

  在定义的第一条与第二条中,都特别指出了“直接”影响,而通过它们决定出来的变更传播风险,即第三条定义中谈到的,是直接变更传播风险。如果组件A的变更会对组件B造成影响,但是却不会对组件C产生直接影响,而组件B出现的变更却会对组件C造成影响。同时,组件C和组件A间的那种间接性的变更储备风险则不再第三条定义中。

  五、 变更传播风险模型的应用

  将DSM的变更需求传播风险分析模型当做基础,向开发与管理软件项目提供一个评估风险的思路:

  第一,对于在开发软件初期无法得到的代码行与功能点等各种信息,将软件体系结构当做载体,将需求变更影响传播当做衡量标准来评估软件项目的风险,这一点是与软件项目管理中越早进行风险评估越好的原则相符的。

  第二,从变更传播概率及其影响概率这两点上,对变更传播的分析进行定义,并研究那些被影响的实体。对每个组件中潜藏的风险值的大小进行评估,并确定出该组件在传播的过程中所扮演的角色,找到关键的风险源。

  第三,将设计迭代当做主要对象,利用DSM的结构特征,对变更源及其参与实体做进一步的研究。找出不同组件在传播变更的过程中所具备的特点,并研究变更传播所造成的影响。

  事实上,软件变更需求的形式有三种,分别为增加、删除以及修改。而本文提出的DSM模型,只在分析特定软件体系的静态变更传播风险时能够适用,一旦需求的变更改变了软件体系中的各种关系时,就只能重新建立DSM模型再评估传播风险了。而这也正是此种方法的限制所在。

  第一,增加、整合、拆分组件。若需求的变更让原软件的体系中出现了由组件增加、整合、拆分而形成的新软件结构,就需要建立新的评估风险的DSM模型。

  第二,删除组件。若原有组件因为需求的变更而被删除,而在DSM模型中,被删除的部分恰好是没有输出信息的组件,那么就需要对其他有关组件做出相应的调整。反之,则接受其输出信息的那些组件将会因此受到影响,此时则需要就要重新对变更传播风险进行分析了。

  第三,修改组件。如组件的修改只是针对自身的某些结构或功能进行调整,并且不影响其它组件与其的接口,那么软件的体系结构就不会在组成上出现变化。

  总结:

  在开发软件的过程中,由于需求变更所带来的风险,基本都是通过影响在软件体系设计中的传播来表现的。而变更传播的风险分析DSM模型,以需求变更为基础,为软件开发提供了更加直观、科学而合理的决策依据,对政府机关、大企业的重要业务管理软件开发项目也具有重要的意义。

发 表 评 论 相 关 信 息
姓名: 邮箱:
内容:
全部评论
共创国际项目管理顾问旗下网站:中国研发管理网 | 项目管理者联盟 | 中国工程管理网
Copyright © 2005-2014 ChinaRDM.COM 研发管理网 All rights reserved. 京ICP证060517号