下去时可以及早的终止项目。
3)增量和迭代模型。增量迭代是RUP统一过程常采用的软件开发生命周期模型。就对风险的消除上,增量和迭代模型都能够很好的控制前期的风险并解决。但迭代模型在这方面更有优势。迭代模型更多的可以从总体方面去系统的思考问题,从最早就可以给出相对完善的框架或原型,后期的每次迭代都是针对上次迭代的逐步精化。
3.5 项目风险管理
风险管理贯穿项目管理的各个阶段和各个领域,是项目管理中的重点和难点。软件项目风险管理是指对在软件开发过程中所遇到的预算和进度等方面的问题进行分析,寻求风险应对方法,做好风险管理计划。通过缓和或预知等手段来减轻风险,降低风险发生的可能性或减缓风险带来的不利后果。
针对软件项目中的风险管理问题,主要风险管理模型如下:
1)SEI的连续风险管理模型(CRM)。SEICRM模型的风险管理原则是不断地评估可能造成恶劣后果的因素;决定最迫切需要处理的风险;实现控制风险的策略;评测并确保风险策略实施的有效性。CRM模型要求在项目生命期的所有阶段都关注风险识别和管理,它将风险管理划分为五个步骤:风险识别、分析、计划、跟踪、控制。
2)BarryBoehm模型。Boehm模型的思想核心是:10大风险因素列表。针对每个风险因素,都给出了一系列的风险管理策略。在实际操作时,Boehm以10大风险列表为依据,总结当前项目具体的风险因素,评估后进行计划和实施,在下一次定期召开的会议上再对这10大风险因素的解决情况进行总结,产生新的10大风险因素表,依此类推。
3)软件工程风险模型(SERIM)。SERIM模型要求从技术和商业两个角度对软件风险管理进行剖析,考虑的问题涉及开销、进度、技术性能等。它还提供了一些指标和模型来估量和预测风险,由于这些数据来源于大量的实际经验,因此具有很强的说服力。
4 项目过程管理
4.1 软件设计
软件设计采用自顶向下、逐次功能展开的设计方法,首先完成总体设计,然后完成各有机组成部分的设计。
根据工作性质和内容的不同,软件设计分为概要设计和详细设计。概要设计实现软件的总体设计、模块划分、用户界面设计、数据库设计等等;详细设计则根据概要设计所做的模块划分,实现各模块的算法设计,实现用户界面设计、数据结构设计的细化,等等。
概要设计是详细设计的基础,必须在详细设计之前完成,概要设计经复查确认后才可以开始详细设计。概要设计,必须完成概要设计文档,包括系统的总体设计文档、以及各个模块的概要设计文档。每个模块的设计文档都应该独立成册。
详细设计必须遵循概要设计来进行。详细设计方案的更改,不得影响到概要设计方案;如果需要更改概要设计,必须经过项目经理的同意。详细设计,应该完成详细设计文档,主要是模块的详细设计方案说明。
4.2 设计评审
在设计完成后,必须安排设计评审以保证设计的质量,设计评审是对一项设计进行正式的、按文件规定的、系统的评估活动,由不直接涉及开发工作的人执行。设计评审可采用向设计组提建议或帮助的形式,或就设计是否满足客户所有要求进行评估。评审的内容主要包括:
1)关键算法的可行性;
2)接口是否符合概要设计的要求;
3)技术清晰度是否符合设计标准;
4)文档的完备性。
4.3 编码
在编码阶段,主要需要在编码工作结束后,进行代码审核,这项工作非常重要主要应该由项目小组的技术负责人完成,审核的目的并不是为了检验代码的正确性而是需要对编码是否按照规范进行审核。主要内容包括:
1)变量、包、方法等的命名是否符合规则;
2)注释是否填写完整,是否符合规范;
&nbs