软件过程模型
概念
软件开发模型给出了软件开发活动各阶段之间的关系,它时软件开发过程的概括,时软件工程的重要内容
软件生命周期
- 软件定义
- 软件开发
- 软件运行
- 软件维护
- 淘汰
瀑布模型
特点
- 严格区分阶段,每个阶段因果关系密切
- 只适用于需求明确的项目
缺点
- 软件需求完整性、正确性难以确定
- 严格串行化,很长时间才能看到结果
- 瀑布模型要求每个阶段一次性完全解决该阶段问题,并不现实
原型模型
特点
- 适合需求不明确的项目
原型模型两个阶段
- 原型开发阶段
- 目标软件开发阶段
两种原型
- 抛弃型原型
- 演化型原型
V模型
特点
- 强调测试贯穿于始终
- 测试分阶段,测试计划提前
迭代与增量
-
增量型
- 添加新的功能
-
迭代型
- 对同一功能不断演进优化
螺旋模型
特点
- 以快速原型模型为基础+瀑布模型
- 考虑风险问题
阶段
- 目标设定
- 风险分析
- 开发和有效性验证
- 评审
构件组装模型
特点
- 易扩展、易重用、降低成功、安排任务灵活
缺点
- 构件设计要求经验丰富的架构师
- 设计不好的构件难复用
- 强调重用可能牺牲其他指标(如性能)
- 第三方构件质量难以控制
流程
- 需求分析和定义
- 设计构件组装
- 建立构件库
- 构件获取
- 构件管理
- 构件应用软件
- 测试和发布
基于构件的软件工程
CBSE体现了【购买而不是重新构造】哲学
CBSE特征
- 可组装性:所有的外部交互必须通过公开定义的接口进行
- 可部署性:构件总是二进制形式的,能做为一个独立实体在平台上运行
- 文档化:用户根据文档判断构件是否满足需求
- 独立性:构件可以无其他特殊构件的情况下进行组装和并部署
- 标准化:符合某种标准化的构件模型
构件组装
- 顺序组装:按顺序调用已经存在的构件,可以用两个已经存在的构件来创造一个新的构件
- 层次组装:被调用的构件的提供接口必须要调用构件的请求接口兼容
- 叠加组装:多个 构件合并形成新构件,新构件符合原构件的功能,对外提供新的接口
快速应用开发模型(RAD)
- 瀑布模型
- CBSD(基于构件)