首页 > 范文大全 > 正文

基于模糊理论的软件项目风险评估模型研究

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于模糊理论的软件项目风险评估模型研究范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:在软件项目的开发和管理过程中存在很多的不确定性,针对软件项目的复杂性和不确定性,该文在模糊理论的基础上,提出了一种基于模糊理论软件项目风险评估模型。该模型可以评估常用于衡量风险程度的风险当量以外,还可以评估多种风险对某种风险后果的组合影响,以及单个风险对整体后果的综合影响。通过实践证明该模型可以减少专家评估的不确定性,有效地预测潜在的风险,为降低风险发生的概率和提高软件项目的成功提供了行之有效的方法。

关键词:软件项目;风险管理;风险评估;模糊理论

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2011)16-3871-03

Software Project Risk Assessment Model Based on Fuzzy Theory

PEI Yu

(School of Management, China Mining University, Xuzhou 221008, China)

Abstract: Many uncertainties always exist in the development and management process ofsoftware project, To handle with the complexity and uncertainty of software project, the paper proposes a software project risk assessment model based on Fuzzy theory. Using the model, we can assess the consequences and the loss of the risk, besides, it can measure a combination of impact of a certain risk from a variety of risk and the combined effects of the overall consequences from individual risk. Practice proves that the model can predict risks and identify the sources of risk. In a word, it provides a way to effectively reduce the risk probability and increase the rate of the success of software development.

Key words: software project; risk management; risk assessment; fuzzy theory

项目的创新性、一次性、独特性及其复杂性确定了项目风险的不可避免,而软件项目又有着其自身的特点,随着技术更新和产业环境的变化,软件项目趋向于周期长、规模大、涉及范围广等特点,使得项目涉及的风险太多,各种风险之间相互影响,内在关系错综复杂,导致软件项目开发的失败率一直居高不下。因此,科学的评估风险发生的可能性及产生的影响,分析各个风险之间的关系,并基于此对软件项目进行有效的风险管理很有必要。

典型的软件项目开发过程主要包括产品需求的识别、需求的分析、产品设计、编码、测试。在整个软件项目的开发过程中,风险无处不在。任何一个阶段的问题都可能会导致项目的失败,因此,在项目软件的整个生命周期内,都要进行风险管理,它是一个持续的过程。

软件项目涉及的风险很多,有些甚至是致命的。软件项目风险管理就是识别风险和风险源,将项目的不确定性因素及问题装换为具体的可以被描述和估量的风险,并用各种定性和定量的工具对其进行分析,根据分析的结果制定相应的风险管理计划,对风险进行跟踪控制、使风险对项目的影响降低到可接受的程度,保证项目的成功。软件项目风险管理过程分为风险评估和风险控制,风险评估又包括风险识别、风险分析以及风险应对计划,而风险控制包括风险的跟踪与回馈[8]。图1画出了软件项目的风险管理过程。风险评估是软件项目风险管理的核心与基础,直接影响着风险的后续过程以及项目的成功与否。目前,现有的软件项目风险评估方法基本上都只是作定性的分析,就算有定量分析,但由于经验数据不足而更多的依赖于人的评估,而专家在决策时又存在偏好问题,这都给评估带来了更大的困难。针对软件项目的复杂性和不确定性,文中提出了基于模糊理论的软件项目风险管理评估模型。

1 模糊理论

1.1 模糊理论相关概念

在日常生活的现实里,模糊总是如影随形,所以在实际生活工作中,我们无法避免模糊性,如果事事都要求精确,那就无法顺利的交流,特别地,针对某些问题,适当的模糊可能会使问题得以迎刃而解,灵活性大为提高。

模糊理论(Fuzzy Logic)是在美国加州大学伯克利分校电气工程系的L.A.zadeh教授于1965年创立的模糊集合理论的数学基础上发展起来的,主要包括模糊集合理论、模糊逻辑、模糊推理和模糊控制等方面的内容。

模糊集合,表示界限或边界不明确的特定集合,以特征函数来表示元素与集合间的归属程度,一般特征函数又称为归属函数,其值在(0,1)之间,模糊集的表达式如下,A= 其中x1,x2……xn代表有限集X={x1,x2……xn}中的元素,μ(xi)表示元素xi在模糊集(A,μ)中的归属度[3]。

语义还原,为了适合人的思维习惯,将模糊语言还原成自然语言表达方式。通常通过计算模糊数间的语义距离,并取其最小值,作为最接近的自然语言。

1.2 模糊理论的应用

模糊理论发展至今已接近三十余年,应用的范围非常广泛,从工程科技到社会人文科学都可以发现模糊理论研究的踪迹与成果。在软件项目风险评估中主要包括以下几个方面[3]:

1) 风险结果评估,将识别出的风险,用模糊语言描述其发生的可能性,再通过模糊数的截集运算计算出风险的概率。

2) 风险影响评估,通过模糊数的截集运算计算出风险影响通过风险分析网络得出的风险发生可能性,可以评估常用于衡量风险程度的风险当量以外,还可以评估多种风险对某种风险后果的组合影响,以及单个风险对整体后果的综合影响。

3) 风险结果还原,使用模糊数间的语义距离将评估结果转化为自然语言描述。评估结果以量化数据和自然语言两种方式表述。

2 基于模糊理论的软件项目风险评估模型

基于模糊理论的软件项目风险评估模型考虑到软件项目中普遍存在的经验数据不足及评估语言的不确定性,引入模糊学概念,采用隶属函数的描述方法,运用多值逻辑,由专家使用模糊语言对风险发生的可能性及危害进行评估,很好地解决现实评估中的不确定性和模糊问题。软件项目风险评估模型就是以模糊集合论为基础、专家综合评估为核心的评估模型。该模型引入专家信任度平衡其对评估结果造成的影响,使评估数据尽可能的客观和科学。在该模型中,专家使用模糊语言进行评估,通过模糊数的截集运算计算出风险的概率及影响,度量数据解模糊化后计算出风险的综合影响并进行排序,最后使用模糊数间的语义距离将评估结果转化为自然语言描述。评估结果以量化数据和自然语言两种方式表述。

基于模糊理论的软件项目风险评估模型主要包括风险识别、风险因素权重、模糊评价集、专家信任度、风险评估、风险影响综合评估和语义还原7部分内容[1]。

2.1 风险识别

风险识别的主要任务是识别风险和风险源,将项目的不确定性因素及问题转换为具体的可以被描述和估量的风险。

1) 识别风险源。项目初期,软件项目经常存在未制定项目计划、项目需求不确定、技术或方法选择不 恰当等风险,而风险识别的目的是在风险发生之前,挖掘出潜在的风险,并评估其发生的可能性及危害,以 便采取措施缓解或避免,使风险危害降到最低。常见的识别方法有:头脑风暴法、Top-10风险列表法、Del―phi法、访谈法等。其中SEI基于TBQ的风险分类系统,问卷设计合理、科学,组织规范,系统性强,应用较为广泛。

2) 建立初始风险清单。将识别出的风险因素通过合并相似、删除重复、添加遗漏等操作,整合成用自然语言描述的风险清单,包括风险产生的原因、风险触发的条件、关于该风险的描述、风险产生的后果及可能造成的影响。

2.2 风险因素权重

在不同的项目、不同的环境及不同的资源下,风险因素的重要程度有所不同,用风险因素的权重系数向量A[a1,a2,…,an]T表示。其中n为风险因素个数,ai为第i类风险因素的相对重要程度。ai可由层次分析法(AHP)求出,具体方法是:1)将不同的风险因素列成比较矩阵;2)按照表1 中的1~9标度法进行两两比较;3)由方根法求其权重值,归一化处理得到向量A,并求出一致性指标CR;4)当CR

2.3 模糊评价集

1) 定义风险发生概率的模糊评价集。在缺乏项目历史数据的情况下,领域专家将使用 “不可能”、 “可能”等模糊性语言评价风险发生的概率,即模糊评价集Hp {极不可能,不可能,中等,可能,很可能}。

2) 定义风险因素后果集与风险后果模糊评价集。风险因素后果集D{进度,费用,质量),风险对后果影响的模糊评价集Hc {极低,低,中等,高,极高},当用三角模糊数表示H 与H 时,其隶属函数如图2所示,Hp 与Hc 和 -截集间的对应关系如表2所示。

2.4 专家信任度

专家由于从事研究的领域不同,对软件开发中各种风险危害程度的看法也有所不同,因此不同的专家在评估不同风险因素时的权威程度也是不同的[3]。如项目管理专家在评估项目管理风险、人员风险等方面远比技术专家权威得多。专家信任度矩阵用 W表示,它由 m位专家(行),n类风险(列)组成,表示第i 位专家在评估第 j个风险时的相对重要程度。每列的值的计算步骤与风险因素权重计算相同,且和为 1。

2.5 风险评估

1) 风险发生概率的评估。风险发生概率评估是指专家使用模糊评语集构建模糊专家评估矩阵P,以此评价各种风险发生的可能性。P 由m位专家(行),n类风险(列)组成,任意一个Pij 表示第i个专家对 第j类风险因素发生概率的评估值。为了消除专家因所处研究领域与偏好而产生的评估偏差,采用专家信任度修正评估结果,得风险概率综合评估矩P综合 =[P1,P2,…,Pn],其中Pj= 。

2) 风险后果评估。风险后果评估是指专家使用模糊评语集Hc 构建模糊专家评估矩阵C,以此评价各种风险对后果集D造成的影响。以成本这一后果为例,C由m位专家(行),n类风险(列)组成,任意一个cij 表示第 i个专家就第 j类风险对成本的影响做出的评估,同时使用专家信任度修正评估结果,得风险对进度的影响评估矩阵C进度[C1,C2,…,Cn],其中Cj =。同理,可求出风险对其他两个后果的影响评估矩阵,合并可得风险对后果集D的综合影响评估矩阵C综合,该矩阵由3种后果(行)、n类风险(列)组成,任意一个Wij 表示第 i类风险对第i种后果造成的影响。

2.6 风险影响综合评估

风险当量是评估软件风险程度的关键指标,目前的分析方法通常由风险概率与后果的乘积度量出单个风险对各风险后果的危害程度,而多种风险共同造成的损失以及风险对整体后果的影响却无法体现。为从多维视角更深入地了解风险,以更好地达到控制风险的目的,采用如下方法解决这一问题。

R当量=P综合×C综合

R组合=[R1,R2,R3]T,其中Ri=

R综合=[R1,R2,……,Rn]/[R1+R2+….+Rn],其中Ri=

2.7 语义还原

由上述步骤计算出的综合评估结果为模糊数形式,为了适合人的思维习惯,需将其还原为自然语言表 述.根据Dubois和Prade的两集合间的欧几里德距离,以及Ross提出的改进欧几里德方法,采用间接方法计算模糊数间的语义距离。

定义模糊数A、B、C和D,A和B均为三角模糊数,C=A×B,D为预定的模糊评语。A、B和D的模糊数分别表示为(l1,m1,n1)、(l2,m2,n2)和(l3,m3,n3),要计算模糊数C与D之间的距离,根据语义距离公式,计算出Cmin(i)和Cmax(i)(i=a,a取0或1),有:Cmin (0)= l1 l2,Cmax(0)= n1 n2 ,Cmin= Cmax(1)= m1 m2。两模糊数C与D之间的距离为 [10]

dCD=

计算出的模糊数与评语集中各个评语的距离,取其最小者,即为最接近的自然语言.

3 总结

可以通过实例验证,在传统风险控制方法不能有效解决风险评估中的不确定性因素影响的情况下,构建软件项目风险评估模型能够有效地预测风险发生的概率及可能造成的影响的。而文中基于模糊理论的软件项目风险评估模型既能计算出风险因素对各种后果事件的综合影响,还能使用风险权重度量多种风险的组合影响,克服了传统评估中评估数据的缺乏和人的因素的综合影响,并且能还原成自然语言,客观科学,具有较好的适用性。

参考文献:

[1] 赵冬梅,吴敬,陈霄凯,等.软件项目的模糊风险评估及风险控制[J].河北省科学院学报,2005,22(4):92-94.

[2] 左怀远,米根锁.软件项目中的风险管理研究[J].世界科技发展与研究,2008(3).

[3] 唐爱国,王如龙.基于贝叶斯网络的软件项目风险评估模型[J].计算机工程,2008,34(22).

[4] 许数柏.层次分析法原理[M].天津:天津大学出版社,1988.

[5] 潘春光,陈英武,汪浩.软件项目风险管理理论与方法研究综述[J].控制与决策,2007,22(5).

[6] 陈丽蓉.软件开发项目中的风险管理[J].海南广播电视大学学报,2008(4).

[7] 岳闻婧.基于贝叶斯网络的软件项目风险管理[J].管理科学文摘,2008(5).

[8] 袁瑞萍,吴祈宗.基于credal网络的软件项目风险管理模型[J].微计算机信息,2008(36).

[9] 李洪兴,汪培庄.模糊数学[M].北京:国防工业出版社,1993.

[10] 鲍文胜.基于c模糊理论的软件项目风险评估模型构建[J].青岛理工大学学报,2007(4).

注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文