2.4如何选择过程模型
2.4如何选择过程模型
基本原则
- 软件工程是个不断发展的学科,新的软件过程模型会不断出现。
- 选用时不必拘泥于某种模型,可组合多种模型,可根据实际创造新的模型
- 结合软件的特点和软件过程模型的特点来选择。
具体分析
情况 | 模型 | 原因 |
---|---|---|
前期需求明确 | 瀑布模型 | 瀑布模型管理规范,在需求明确的情况下,可以最大化保证软件质量 |
用户无系统使用经验,需求分析人员技能不足 | 原型模型 | ||| |
不确定因素很多,很多东西无法提前计划 | 增量模型或螺旋模型 | 这种情况下,此时用户和需求人员很难通过面谈等方式确定需求,而采用原型模型能够帮助他们理解待开发系统进而明确需求 |
需求不稳定 | 增量模型 | 增量模型的迭代式增量开发允许在开发过程中修改需求,从而良好应对需求变化的情况 |
资金和成本无法一次到位 | 增量模型 | 据资金和成本到位情况,来规划增量进行开发 |
/// | ||| | \\\ |
需要完成多个独立功能开发的情况,可在需求分析阶段就进行功能并行, | 每个功能内部!都遵循瀑布模型 | 要注意的是在功能内部 |
全新系统的开发必须在总体设计完成后再开始增量或并行 | ||| | 开发人员对于开发全新系统缺少经验的话,风险较大,总体设计完成后再开始增量或并行风险相对较小 |
编码人员经验较少 | 不要采用敏捷或迭代模型 | 敏捷或迭代模型对开发人员要求较高,不适合初级编程人员 |
三者可综合使用,但是要有明确的交付和出口原则 | 增量、迭代、原型 | 否则会陷入边做边改或者效率低下的状况 |
案例1:医疗设备控制软件
案例分析
需求明确且稳定
- 可靠性和安全性要求极高。否则会出现人员伤亡,
- 对软件错误和故障的控制和跟踪能力强,发现故障一定要找出原因并加以修复
- 需要对软件开发过程严格控制
- 需要大量严格的文档
结果
瀑布模型
案例2:校园一卡通系统
案例分析
- 包括若干相对独立的功能,如宿舍门禁、就餐、借书等
- 系统需要具有可扩充性,以便以后增加新功能,例如课堂考勤、校车乘坐等。
- 系统具体需求不明确且会发生变化
- 用户需要熟悉和适应新的系统
- 项目复杂程度中等、有一定风险
- 产品和文档的再使用率较高
结果
增量模型(管理较严格)
案例3:智能化小区
具体内容
1、智能家庭
·家居信息的实时和远程监视
·家用电器的远程和自动控制
·家庭安防报警和远程通知
2、智能小区
·安防门禁、可视对讲等
·物业管理
·一卡通系统
·缴费、包裹、公告、便民信息等发布到户
·家政相关服务,如送水、送餐等
案例分析
- 包括若干相对独立的功能
- 系统具体需求不明确且会发生变化
- 部分技术方案可行性不确定
- 系统需要具有可扩充性
- 用户需要熟悉和适应新的系统
- 项目复杂程度较大、风险较大
- 希望尽早投入市场
结果
原型化模型+增量模型。
【具体需求不明确和部分技术方案可行性不确定问题——原型化模型】
【系统需求会发生变化、系统需要具有可扩充性、希望尽早投入市场、以及风险较大等问题——增量模型】
---------------------------
“朝着一个既定的方向去努力,就算没有天赋,在时间的积累下应该也能稍稍有点成就吧。”