一种软件需求风险评估方法_第1页
一种软件需求风险评估方法_第2页
一种软件需求风险评估方法_第3页
一种软件需求风险评估方法_第4页
一种软件需求风险评估方法_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一种软件需求风险评估方法

1软件开发风险评估目前,波尔马利亚教授根据10个风险因素列表,给出了软件风险定义:re=p(uo)l(uo),包括re的风险影响;p(uo)表示风险发生的概率,l(uo)表示风险的损失程度。KansalaD提出软件工程风险模型(SoftwareEngineeringRiskMethod,SERIM),从多个角度对软件开发中的风险因素进行评估,并可在开发周期的任何时候根据评估结果监控风险。文献在SERIM基础上建立SRAM模型,通过标准化方法把不同项目的风险变换为统一的度量。这些方法从不同角度对软件风险进行研究,但是这些评估本质上大多是基于主观的方法。本文将定性与定量相结合,在需求分析阶段识别出对软件项目可能产生重大影响的风险,构建Bayesian网络,对需求风险和风险源进行因果关系评定,继而对风险做出综合评估。2条件概率表和风险源之间的因果关系目前,评估软件可靠性一般以Bayesian理论为基础,本文方法的基本思想是通过构造Bayesian网络结构来描述需求风险以及风险源之间的因果关系,用条件概率表(ConditionalProbabilityTable,CPT)定量描述每个节点对应的需求风险发生概率,再通过层次分析法得到风险影响,求出风险值。研究结果主要用于建立概率预测模型,使得项目管理人员可以根据评估结果来识别高风险的软件需求模块。本文方法主要分为3个过程模块:风险识别模块,风险分析模块和风险评估模块。2.1需求风险类风险识别模块的输入来源有:(1)存储于知识库中的风险列表。(2)专家及项目组成员对于具体项目的风险先验知识。风险识别模块的输出是风险清单,它由需求风险和风险源列表组成。风险识别模块实现以下功能:(1)识别风险源。常见的风险识别方法有:风险检查表法,头脑风暴法,德尔菲法,访谈法和卡内基梅陇大学软件工程研究所的基于分类法的风险调查问卷(TaxonomybasedQuestionnaire,TBQ)等。(2)生成风险清单。将识别出的需求风险和风险源通过合并相似、删除重复、添加遗漏等操作,整合成风险清单。2.2企业网络的结构学习风险分析模块的目的是构造出正确合理的Bayesian网络。对于当前要进行开发的软件,首先从历史案例中进行相关查找,若没有类似案例,则选择基于专家经验的Bayesian网络构建法;否则,提取出相似的案例,通过分析和学习,结合当前项目,根据已确定的Bayesian网络节点集合,运用结构学习算法,构造出Bayesian网络结构。最后根据知识和经验确定先验概率,并通过参数学习获得各节点的条件概率表。基于专家经验的Bayesian网络,可以依赖专业的工作人员和专家,或依赖于专家知识库,其准确程度依赖于专家知识库的丰富程度。所谓的结构学习,就是从数据中学习Bayesian网络结构,即对给定的数据集D,找到一个与数据集拟合最好的网络。首先定义一个随机变量Sh,表示网络结构的不确定性,并赋予先验概率分布p(Sh)。然后计算后验概率分布p(Sh|D)。根据Bayesian定理有:其中,p(D)是一个与结构无关的正规化常数;p(D|Sh)是边界似然。确定网络结构的后验分布只需要为每一个可能的结构计算数据的边界似然。风险分析模块的输出包括:(1)详细的风险清单。(2)Bayesian网络结构图和相关参数。2.3目标函数。在节点形势下,各有Bayesian网络所蕴含的条件独立性可以通过Pearl的D-Separation判定准则得到:假设在Bayesian网络B中存在3个互不相交的节点集合X、Y、Z。当从节点集合X中任意节点到节点集合Y中的任意节点的所有可能路径中,没有一条路径满足如下2个条件之一时,则称节点集合Z有向分割节点集合X和节点集合Y,记为d(X,Z,Y)B。条件1在路径中存在一个节点,该节点周围的两节点的有向边均指向该节点,且该节点或其子节点中存在一个节点属于节点集合Z。条件2路径中的所有节点均不属于Z。如果节点集合Z有向分割节点集合X和Y,则表示节点集合X中的节点在给定节点集合Z中所有的状态后,同节点集合Y中的所有节点条件独立。表达如下:风险评估模块的实现步骤如下:(1)通过Bayesian网络推理算法得出每个节点对应的需求风险发生的概率。(2)将得到的Bayesian网络结构图转化为层次结构图,采用层次分析法得出判断矩阵,计算出每个需求风险的影响及权值。(3)根据Boehm公式计算风险值,得到量化风险清单。构造判断矩阵的评价规则采用表1的标度方法。对判断矩阵进行求解,得出各项需求风险的综合影响。求解过程如下:(1)计算判断矩阵A的特征向量W:(2)计算各个需求风险节点的影响值:其中,Ii是第i个需求风险节点产生的影响。因此,风险评估模块的输入主要包括:(1)详细的风险清单。(2)Bayesian网络结构图。(3)Bayesian网络节点相关参数、条件概率表等。风险评估模块的输出包括:(1)Bayesian网络结构图。(2)与Bayesian网络结构中各节点对应的后验概率。(3)风险产生的影响。(4)经过量化的风险清单。(5)综合的风险值。3anesian网络构建本文选取的目标案例为某省高考招生计划综合管理系统。使用模型中的风险识别方法,结合项目的具体情况和需求风险的类别,实现对于项目中需求风险的识别。在需求风险划分方面,不仅要考虑到目前硬件性能风险、软件安全保密性风险等,同时要将可考虑目前的需求将来对于整个系统的风险。风险级别划分情况见表2。表2显示了对于各项需求风险级别的定义,应用模型中的风险检查表法,结合项目成员及专家组的综合讨论,完成风险识别,具体见表3。对于需求风险进行风险源识别,结合专家和项目工作人员的经验,得到如表4的最终风险清单,包括第8项~第15项的风险源,风险源是根据风险级别划分表中的具体标准,结合专家知识总结得出最终风险清单,见表4。由于不存在相关的历史数据,因此把风险清单中的相关事件提取出来,作为组建Bayesian网络的初始节点,在这里考虑的节点变量只取2个值:1和0(代表发生和不发生)。以下主要针对需求风险(或风险源)发生的概率开展评估工作。根据上述方法,使用Matlab工具实现,完成Bayesian网络的构建,如图1所示,得到边的权值见表5。在确定网络结构后,通过专家及项目组的综合分析,结合对参数的学习,得到每个节点对应的风险源发生的概率以及风险发生的条件概率,结果见表6。对于图1的网络,结合风险分析阶段得出的数据,对网络进行推理,方法如下:得到每项需求风险发生的概率,见表7。使用层次分析法对风险影响进行评估,把Bayesian网络转换为层次结构图。具体方法如下:在如图1所示的Bayesian网络中,针对各风险对应的风险源,转化成一对多的具体结构,如风险R1对应的风险源有8、9、14,则在层次结构图中,8、9、14这3个节点将成为R1的子节点,层次结构如图2所示。最顶层设为T层,即总目标,中间层R为各风险节点(R1R2…R7),风险源节点组成最底层F。下面分别对各层的判断矩阵进行求解。首先构造风险层的各风险节点与目标层的判断矩阵,见表8。然后对各风险节点对应的因子层元素构造判断矩阵,在此以风险R1为例,对R2R3…R7至F层的判断矩阵不进行一一列举,形式见表9。通过输入判断矩阵,可以得到目标节点的权值,即为各节点所对应的需求风险事件产生的影响E:{R1,R2,R3,R4,R5,R6,R7}={0.7319,0.6699,0.8462,0.3874,0.2543,0.1361,0.1742}。通过对下层判断矩阵的计算,可以计算出与各项需求风险对应的各风险源的权值,从而得到每种风险源对于该项需求风险的重要性,为下一阶段的风险规避和控制做出有效指导。例如对于风险节点R1,风险源的权重:{8,9,14}={0.6833,0.1999,0.1168}。明显8(系统功能的变动)对功能需求风险的影响最大,应对其提出的有效措施进行规避。完成以上对于需求风险发生的概率P和风险影响E的评估后,利用R=P×E,得到每一项需求风险的风险值R,见表10。例如R1所表示的功能需求风险,其风险值相对较高,值得重点关注。导致风险R1发生的风险源有系统功能的变动、用户需求表达不明确以及开发人员经验的缺乏等,而根据对R1至F判断矩阵的计算,系统功能的变动对该风险的影响最大,可以采取充分与用户进行沟通,最大限度的挖掘用户期望的功能要求等行为;也可以对相似系统进行调研,发掘用户的潜在需求;还可以在需求分析阶段通过建模等图形化方式有效地表示出系统应具备的功能模块及子模块,充分考虑系统的可扩展性等。目前,关于软件项目贝叶斯风险评估研究很多,例如文献提出的利用目标图方法对软件风险进行评估,与已有成果进行对比分析,本文首先给出了逐个分析需求分析阶段的主要活动中所蕴涵的不确定性的可操作性方法,确定了风险清单中各项需求风险的风险源,有助于开发者或管理人员识别高风险的需求模块。其次,设计了适合软件需求风险评估的结构学习和推理算法,建立了基于贝叶斯网络的软件需求风险评估模型,使用风险发生的概率和风险影响的乘积量化风险评估的结果,并引入层次分析法进行风险影响的评估,有助于有效地开展风险管理,增强软件的可靠性。4确定综合风险值本文通过贝叶斯网络,对软件需

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论