- 软件生存周期(SDLC,软件生命周期)
是软件的产生直到报废的生命周期,周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段,这种按时间分程的思想方法是软件工程中的一种思想原则,即按部就班、逐步推进,每个阶段都要有定义、工作、审查、形成文档以供交流或备查,以提高软件的质量。但随着新的面向对象的设计方法和技术的成熟,软件生命周期设计方法的指导意义正在逐步减少。
一般来说,软件生存周包括计划、开发、运行三个时期,每一时期又可分为若干更小的阶段。计划时期的主要任务是分析用户要求,分析新系统的主要目标以及开发该系统的可行性。开发时期要完成设计和实现两大任务具体。具体分为需求分析、概要设计、详细设计、编码、测试。其中编码和测试是软件开发期的最后两个阶段。运行时期是软件生存周期的最后一个时期,软件人员在这一时期的工作,主要是做好软件维护。
- 1. 基本过程
指那些与软件生产直接相关的活动集。
(1) 获取过程
(2) 供应过程
(3) 开发过程
(4) 运行过程
(5) 维护过程
- 2. 开发过程
软件开发者所从事的一系列活动和任务。将一组需求转换为一个软件产品或系统。
(1) 过程实现
(2) 系统需求分析
(3) 系统体系结构设计
(4) 软件需求分析
(5) 软件体系结构设计
(6) 软件详细设计
(7) 软件编码和测试
(8) 软件集成
(9) 软件合格性测试
(10) 系统集成
(11) 系统合格性测试
(12) 软件安装
(13) 软件验收支持
- 1. 过程实现
(1) 选择合适的生存周期模型
(2) 选择相应的标准、方法、工具和程序设计语言
(3) 制定实施开发计划
(4) 可以使用一些非交付的软件项。
- 1. 系统需求分析
(1) 建立系统需求规格说明
(2) 对系统需求进行评估
a) 有关获取方面需要的可追踪性
b) 有关获取方面需要的一致性
c) 可测试性
d) 系统体系结构设计的可行性
e) 运行与维护的可行性
- 1. 系统体系结构设计
(1) 建立系统的顶层体系结构
(2) 对体系结构及每一项的需求进行评估
a) 系统需求的可追踪性
b) 与系统需求的一致性
c) 所使用的设计标准和方法的适宜性
d) 软件项满足其所分配的需求的可行性
e) 运行与维护的可行性
- 1. 软件需求分析
(1) 建立软件需求规格说明
a) 功能与能力的规格说明
b) 该软件项的外部接口
c) 合格性需求
d) 有关安全的规格说明
e) 有关保密的规格说明
f) 人因工程的规格说明
g) 数据定义和数据库需求
h) 用户文档
i) 用户操作与执行需求
j) 用户维护需求
(2) 对软件需求进行评估
a) 对系统需求和系统设计的可追溯性
b) 与系统需求的外部一致性
c) 内部一致性
d) 可测试性
e) 软件设计的可行性
f) 运行和维护的可行性
(3) 联合复审
- 2. 软件体系结构设计
(1) 把对软件项的需求转变为一种体系结构
(2) 对该软件项的外部接口和各构件之间的接口进行顶层设计
(3) 进行数据库的顶层设计
(4) 编制用户文档的最初版本
(5) 为软件集成定义初步的测试需求文档
(6) 对软件项的体系结构、接口和数据库设计进行评估
(7) 实施联合评审
- 3. 支持过程
是指有关各方按他们的目标所从事的一系列支持活动集。支持活动有助于提高系统或软件产品的质量。
(1) 文档过程
(2) 配置管理过程
(3) 质量保证过程
(4) 验证过程
(5) 确认过程
(6) 联合评审过程
(7) 审计过程
(8) 问题解决过程
- 1. 支持过程—配置管理过程
应用管理上、技术上的规程来支持整个软件生存周期的过程。
(1) 过程实现:编制配置管理计划
(2) 配置标识
(3) 配置控制:标识并记录变更请求
(4) 配置状态统计:编制管理记录和状态报告
(5) 配置评价
(6) 发布管理和交付
- 2. 组织过程
与软件生产组织有关的活动集。
(1) 管理过程
(2) 基础设施过程
(3) 培训过程
(4) 改进过程
- 组织过程—管理过程
(1) 启动与范围定义
(2) 规划
(3) 测量
(4) 执行与控制
(5) 评审与评价
(6) 结束处理
- ISO/IEC系统与软件工程-软件生存周期过程12207-2008
2个过程类、7个过程组、43个过程。
“系统语境的过程”和“软件开发的过程”。
(1) 协议过程组
(2) 项目过程组
(3) 技术过程组
(4) 组织上项目使能过程组
(5) 软件实现过程组
(6) 软件支持过程组
软件复用过程组
- 1. 过程描述
过程→活动→任务
- 2. 供应过程
活动1:机遇标识
活动2:供应方投标
任务1:需求评审
任务2:做出有关投标或接受合同的决定
任务3:准备一份提案
活动3:合同协商
任务1:与获取方就提供的软件产品或服务,协商合同条文
任务2:请求对合同的修改,作为变更控制机制的一个成分。
活动4:合同执行
任务1:进行获取需求评审
任务2:定义或选择一个适合项目范围、粒度和复杂性的生存周期模型。
- 1. 软件实现过程
活动:软件实现策略
任务1:开发人员选择合适的生存周期模型
任务2:实施人员
任务3:实施人员选择合适的标准、方法、工具和编程语言
任务4:开发进行该过程活动的计划
任务5:对不用交付的软件项的处理。
- 软件需求分析过程
- 软件体系结构设计
- 软件验证过程
- 软件确认过程
是对标准“ISO/IEC系统与软件工程-软件生存周期过程12207-2008”的应用说明。
- 系统和软件
软件是整个系统的组成部分。
区分系统需求分析和软件需求分析。
- 与《ISO/IEC系统生存周期15288》的关系
当系统中包括非常重要的非软件因素时,要应用《ISO/IEC系统生存周期15288》。
- 组织层和项目层
项目可能由组织执行
- 过程之间的时序关系
没有明确过程、活动、任务之间的时间依赖的序列。
支持活动之间的迭代和再现。
- 过程分解
把过程划分为一些小的“片段”
- 生存周期模型和阶段
- 剪裁