软件过程模型
软件过程概念
软件生命周期
软件过程
在工作产品构建过程中,所需完成的工作活动,动作和任务的集合。
软件过程模型
软件过程评估
能力成熟度模型(CMM)
传统软件过程模型
瀑布模型(第一个软件过程模型,1970年模型)
- 线性模型
- 推迟实现
缺点:
- 增加工作量
- 开发风险大
- 早期错误发现晚
- 不适应需求变化
适用于需求明确,技术成熟,管理严的
V模型(瀑布模型的变种)
原型模型(原型化模型,快速原型模型)
原型:一个部分开发的产品,让客户和开发人员能够检查
阶段:
原型构建:
系统开发:
优点:
减少需求不明确带来的风险。
缺点:
增量模型:
增量:满足用户需求的一个子集,能完成一定功能,小而可用的软件。
增量的方式:
增量方式:
迭代方式:
特点:
- 非整体式的开发,进化式的
- 从需求出发
优点:
螺旋模型:
把开发活动和风险管理放一起
适用:风险较大的复杂模型
喷泉模型:(只适用于面向对象的开发)
优点:
缺点:严格管理;文档
现代开发模型:
机遇构建的开发模型:(适用于系统之间有共性)
考虑焦点为集成
- 需求分析
- 构建分析
- 系统设计
- 开发集成
统一过程模型:
基于面向对象
三个视角:
动态,静态,实践
适合大团队大项目
实践视角最佳实践:
- 迭代式开发
- 管理需求
- 基于构-体系结构
- 可视化建模
- 验证软件质量
- 控制软件变更
静态结构:
角色,活动,产物,工作流
动态视角:
敏捷开发过程:(2001.2,敏捷软件开发宣言)
- 个体交互
- 可工作软件
- 客户合作
- 响应变化
敏捷开发方法:极限编程,
敏捷软件过程是基本原理和开发准则的结合
优点:
快速响应变化
可持续开发速度
适应场合:
需求模糊且经常改变,商业竞争环境
选择过程模型:
如何选择软件过程模型:
- 前期需求明确-瀑布
- 用户无系统使用经验,-原型
- 不确定因素多0-增量,螺旋
- 需求不稳定-增量
- 资金成本无法一步到位-增量
- 完成多个独立功能开发,每个功能内部-瀑布
- 全新系统的开发,总体设计后-增量或并行
- 编码人员工作经验少-不用敏捷或迭代
案例
1:医疗设备控制软件-瀑布
2:校园一卡通的:增量
3:智能化小区:原型化+增量