2.1 软件生存周期过程的概念
2.1.1 引入
- 软件开发有哪些活动?(要做哪些映射?)
- 应如何正确组织开发活动,形成求解软件的逻辑?
2.1.2 软件生存周期过程在软件工程知识框架中的位置
- 介于软件开发本质和形成软件生存周期模型与软件工程生存周期过程之间。
2.1.3 软件生存周期与软件生存周期的过程(软件过程)的比较
- 软件生存周期:软件产品或系统的一系列活动的全周期,从形成概念开始(即有做某个软件产品的想法开始),历经开发、交付、修订、演化,最后淘汰。
- 软件生存周期的过程:软件生存周期中的一系列相关过程。
- 引入表述软件开发需要做什么?(映射)的三个概念:
- 过程是活动的集合(即过程包含活动)。
- 活动是任务的集合(即活动包含任务)。
- 任务是把输入转换为输出的操作。
2.2 软件生存周期过程的分类
2.2.1 分类
其中基本过程中的开发过程又包括:
注意区分:开发过程并不是软件生存周期过程,而是软件生存周期过程中的子部分。
基本过程间的联系:
- 支持过程与组织过程贯穿于整个软件生存周期过程。
2.3 软件生存周期模型的概念
- 软件生存周期模型:特殊的,也称为“软件开发模型”,指软件过程、活动、任务的结构框架。
2.4 常见的软件生存周期模型
2.4.1 瀑布模型
- 依次经过:需求、设计、编码、单元测试、集成、维护的路径。
- “正向”步骤流:需提交软件需求规约、设计文档、实际代码、测试用例、最终产品等。
- “反向”步骤流:对前一个可提交产品的重复变更(即返工,可发生在当前正在进行的工作、下一个阶段、或更后的阶段)。
优点:
- 存在设计之前的规约 ,能够明确需求,为后续的开发打下良好基础。
- 存在建造构件之前的设计阶段,即编码前的设计。
- 每一阶段的复审,保证了软件质量问题。
- 允许基线和配置早期接收控制。
缺点:
- 客户必须完整清晰的表达需求,开发人员必须理解很好的理解需求。
- 缺乏灵活性。易造成偏差从而导致开发出的软件不能满足需求。
- 可能在早期阶段需要花费大量时间建立用处不大的文档。
- 直至项目结束,无法演示系统,风险较大。
2.4.2 增量模型
- 该模型有一个假设,即需求可以分段,成为一系列增量产品,每一个增量可以分别的开发。
优点:
- 具有瀑布模型的所有优点。
- 第一个可交付版本所需时间较少。
- 各个小系统承担的风险不大。
- 允许在项目开始时仅对一两个增量投资,称为增量投资。
缺点:
- 产生的初始增量可能造成后来增量的不稳定。
- 如果需求不像早期思考的那样稳定和完整,可能需要重新开发发布增量。
- 管理发生的成本较高,进度和配置较复杂。
2.4.3 演化模型
- 弹性的过程模式,由小开发部组成,每一步历经需求分析、设计、实现和验证,通过对每个增量的这种迭代,完成最终软件产品的开发。
特点:
- 针对事先不能完整地定义需求的软件开发。
- 针对用户的核心需求,开发核心系统。
- 根据用户的反馈,实施活动的迭代。
2.4.4 喷泉模型
特征:迭代、无缝
与面向对象技术联系紧密。
(完)