目录清单并建立风险目录摘要。
3) 风险分析应用分析技术,用定性、定量方式处理风险不确定性。风险分析是风险管理的最重要环节,软件开发过程风险分析的任务包括:风险分类、分析风险后果、制订风险反应行动、研究风险影响、制订风险控制计划。
4) 风险跟踪对项目开发过程的数据(开发进程、人力资源投入情况等)进行动态收集、汇总、统计,并将结果及时报告给项目管理者,提供其决定是否采取以及采取何种风险控制行动。风险跟踪的任务包括风险度量数据收集、风险度量数据分类汇总、风险事件发展状况预测、风险险情报告。
5) 风险控制根据风险报告,采取风险行动来消除风险因素,从而达到避免风险事件的发生。风险控制体现为开发活动的具体行为的实施过程,如增加开发经费、增加开发人员、采用其他开发方法和技术、使用新的开发工具等。同时风险管理者应对风险控制的实施过程进行监督,并根据执行的效果及时调整风险控制行为。
3.2 项目风险管理评价体系
根据风险危害程度,可将风险划分为灾难性的、严重的、轻微的和可忽略的。在软件项目开发时必须要进行风险预测,对项目的风险性进行评价,主要从两个方面评估每一个风险:一是风险发生的概率或可能性;二是如果风险发生了,所产生的后果。项目计划者、管理者和技术人员,一起执行如下4个风险预测活动:1) 建立一个尺度,以标记风险发生的可能性;2) 描述风险的后果;3) 估算风险对项目及产品的影响;4) 评价风险预测的整体精确度,以免产生误解。
在风险识别的基础上,应建立一套完整的风险评价体系来进行风险分析,并把分析结果根据风险优先级进行量化,从而为风险跟踪和风险控制提供充分条件,有效地规避风险。
3.3 项目风险的量化
把风险分析结果根据风险优先级进行量化,根据Pareto的 80-20 规则:整个软件项目风险的80%(即可能导致失败的80%的潜在因素)能够由仅仅20%的已标出风险来说明。因此,重要的是量化不确定的程度和每个风险的损失程度。参照风险的影响力和重要程度进行组合评价量化,可以把可能性定义成 0-20,分为5个等级(1、2、3、4、5)。将后果分为 4 个等级(低、中等、高、关键的)。
对风险按照风险影响进行优化排序,优先级别最高的风险,其风险严重程度等于1;优先级别最低的风险,其风险严重程度等于 20。对优先级别的风险应优先处理,从而可以从整体上降低软件开发的风险。
3.4 降低软件项目的风险方法
有以下几种方法值得借鉴:
1) 软件工程方法学
在软件项目开发过程中!全面使用软件工程的原理、方法、技术和工具,加强分析、设计、项目管理、及质量管理。这是降低软件风险的主要手段。
2) 软件系统建模软件开发系统建模的完整与严密性直接关系到系统质量。系统建模与软件风险有直接关系。我们应采用统一建模语言UML来为降低软件风险提供保证
3) 可行性研究
把项目的风险分析与风险处理作为一个重要的考虑范畴纳入软件开发的过程中,并作为一个重要任务!要一一列出可能遇到的主要风险,并仔细分析其发生的可能性和危害性,提出应变措施。
4) 软件过程管理
应对软件过程进行全面控制和管理。采用统一软件开发过程的原理,使用用例驱动过程、迭代与增量开发过程、以构架为中心的过程等新方法。
5) 软件质量管理
软件工程活动的最终目标是得到高质量的软件产品。质量与风险是紧密联系的!质量越高,风险发生的可能越小;质量越差,风险发生的可能越大。所以应全面加强项目的质量保证措施和监管水平,以降低软件风险性
6) 软件测试与维护
测试与维护是发现问题和风险的一个重要手段。采用适当方法,使风险早暴露、早发生,以使我们早应对,早采取防范和处理措施。
4 结束语
由于软件工程与一般工程相比,其特殊性主要体现在抽象性上。虽然前面对软件开发中的风险进行了分析,列举了一些开发过程中可能存在的风险,但软件开发中的风险是千变万化的,有很多隐含的潜在风险,需要从整体上、全过程上对风险进行深入细致地研究。