软件生命周期

信息系统生命周期
1. 信息系统生命周期概述
信息系统生命周期是将信息系统视为一个产品 ,从诞生到消亡的全过程。这个概念源于产品生命周期理论,两者有相似性但存在区别。
培育期
成长期
成熟期
衰退期
结束期
产品生命周期 分为五个阶段:培育期 (概念形成、调研设计)、成长期 (上市销售、销量上升)、成熟期 (市场饱和、增长放缓)、衰退期 (销量利润下滑)和结束期(退市消亡)。例如,开发一款智能健康监测设备时,仅停留在想法阶段属于培育期;产品上市后销量增长为成长期;市场饱和后进入成熟期;销售下滑是衰退期;最终退市即结束期。
信息系统生命周期则从项目管理维度划分,分为四大阶段:立项阶段、开发阶段、运维阶段和消亡阶段 。这与产品生命周期不完全契合,因为信息系统更强调项目视角 ,即从决策到废弃的全过程。其中,运维阶段时间占比最大,是生命周期的主体(如软件开发可能仅需数月,但使用可达数年甚至十几年)。
2. 信息系统生命周期的四大阶段
立项阶段
开发阶段
运维阶段
消亡阶段
| 阶段 | 主要任务 | 关键产出与说明 |
|---|---|---|
| 立项阶段 | 确立项目是否执行:从企业全局考量必要性,收集需求,与高层沟通形成决议。 | 明确系统"做还是不做"的结论。例如,针对健康监测APP,评估其对业务的助益与损失。 |
| 开发阶段 | 将系统构建出来:完成从规划到验收的全过程,涉及单个系统的具体实现。 | 产出可运行的软件或APP。此阶段细分为规划、分析、设计、实施、验收五个子阶段(详见下文)。 |
| 运维阶段 | 系统运行与维护:交付验收后,持续运行并解决出现的问题。 | 时间占比最大,涵盖系统日常使用及问题修复。 |
| 消亡阶段 | 系统废弃与重建:当系统不符合要求时,进行报废或更新替换。 | 触发条件包括业务下滑、技术过时等,最终导致系统退出。 |
- 立项阶段聚焦决策,开发阶段聚焦实现 ,两者在"规划"环节有重叠 (如可行性研究),需理解其边界模糊性。
- 消亡阶段常因运维成本过高或业务需求变化而触发,例如销售额降至临界点后入不敷出。
3. 开发阶段的子阶段详解
规划
分析
设计
实施
验收
开发阶段针对单个系统 ,进一步细分为五个子阶段。各子阶段的任务与产出物需重点掌握,尤其分析与设计阶段的区别是考试高频点。
| 子阶段 | 核心任务 | 关键产出物 |
|---|---|---|
| 规划 | 整体计划制定:包括初步调查、分析系统目标、考虑子系统组成、拟定方案、可行性研究。 | 《系统设计任务书》(注意:此产出物在规划阶段完成,而非设计阶段,体现全局性设计)。 |
| 分析 | 需求分析:明确"系统要做什么",从流程优化、数据、功能、网络等维度收集用户需求。 | 需求类文档(如《需求规格说明书》),描述用户需要的软件功能与约束。 |
| 设计 | 解决方案设计:明确"怎么做",包括架构设计、概要设计、详细设计及网络设计。 | 设计类文档(含"设计"关键词,如《架构设计说明书》),聚焦实现方案。 |
| 实施 | 系统构建:执行编码、测试等具体工作,将设计方案转化为可运行系统。 | **可运行软件代码及测试报告。**测试计划在此阶段执行,但依据V模型,测试工作需在早期(分析/设计阶段)提前规划。 |
| 验收 | 用户确认:交付后由用户验证系统是否达成目标,确保满足需求。 | 验收报告,标志开发阶段结束。 |
- 分析 vs 设计:**分析阶段解决"做什么"(功能范围界定),设计阶段解决"怎么做"(技术方案)。**例如,分析阶段定义"APP需监测心率",设计阶段决定"用蓝牙传感器实现"。
- 产出物差异:分析阶段产出以"需求"为核心(如需求规格说明书);设计阶段产出以"设计"为核心(如设计文档)。但需注意,《系统设计任务书》是规划阶段产物,非设计阶段。
- V模型关联 :测试工作(如测试计划)在分析/设计阶段已提前规划,这与开发子阶段紧密衔接。
软件生命周期过程
软件生命周期活动
出自国家标准《系统与软件工程 软件生存周期过程(GB/T 8566---2022)》
标准将软件生命周期活动 划分为三大类过程:(注意这里是软件生命周期活动)
- 5个基本过程:构成生命周期主干
- 9个支持过程:提供外围支撑
- 7个组织过程:体现管理与组织维度
基本过程
获取过程
供应过程
开发过程
运作过程
维护过程
基本过程供各主要参与方在软件生存周期期间使用,主要参与方是发起或 完成软件产品开发、运行或维护的组织。
| 过程名称 | 责任方 | 核心任务 |
|---|---|---|
| 获取过程 | 需方 | 获取系统/产品/服务 |
| 供应过程 | 供方 | 向需方提供系统/产品/服务 |
| 开发过程 | 开发方 | 定义并开发软件产品 |
| 运作过程 | 操作方 | 在规定环境中提供系统运行服务 |
| 维护过程 | 维护方 | 管理软件修改,保持运行状态,包括迁移和退役 |
- 操作方(最终用户)不一定等同于需方,可能存在二次销售关系
- 维护工作可由供方或专业运维方执行
支持过程
支持过程是跨阶段的支撑性活动,被基本过程调用,确保软件质量与可维护性:
| 过程名称 | 主要作用 | 典型应用场景 |
|---|---|---|
| 文档编制过程 | 规范各阶段文档产出 | 需求规格说明书、设计文档等 |
| 配置管理过程 | 控制版本与变更 | 代码版本管理、配置项追踪 |
| 质量保证过程 | 确保产品质量 | 联合评审、审核、验证/确认测试 |
| 验证过程 | 检查工作产品是否符合规范 | 设计评审、代码审查 |
| 确认过程 | 验证产品是否满足用户需求 | 用户验收测试 |
| 联合评审过程 | 多方协作评估 | 需求评审会、设计评审会 |
| 审核过程 | 独立评估过程合规性 | 质量审计 |
| 问题解决过程 | 处理缺陷与变更 | 缺陷修复、需求变更管理 |
| 易用性过程 | 提升用户体验 | 用户培训、帮助文档提供 |
**支持过程不是独立阶段,而是贯穿整个生命周期的辅助活动。**例如,文档编制在每个阶段都会发生;配置管理从开发初期持续到维护阶段。
组织过程
组织过程关注管理与组织维度,为整个生命周期提供管理支撑:
| 过程名称 | 管理维度 | 核心目标 |
|---|---|---|
| 管理过程 | 项目管理 | 整个生命周期的统筹管理 |
| 基础设施过程 | 环境支持 | 提供必要的硬件与软件环境 |
| 改进过程 | 持续优化 | 流程优化与能力提升 |
| 人力资源过程 | 人员管理 | 人员配置与能力培养 |
| 资产管理过程 | 资源管理 | 有效管理组织资产 |
| 重用大纲管理过程 | 知识复用 | 规划与实施软件复用策略 |
| 领域工程过程 | 领域知识 | 构建领域模型与复用资产 |
组织过程是战略层面的管理活动,例如"改进过程"对应CMMI等成熟度模型;"重用大纲管理过程"支持组件复用,提高开发效率。
软件生命周期
标准将软件生命周期划分为10个具体阶段,这些阶段与三类过程紧密关联:
| 阶段 | 主要任务 | 主导过程 | 关键产出 |
|---|---|---|---|
| 可行性研究 | 评估项目可行性 | 获取过程、供应过程 | 可行性研究报告 |
| 需求分析 | 明确用户需求 | 获取过程、供应过程 | 需求规格说明书 |
| 概要设计 | 建立总体结构 | 开发过程 | 概要设计文档 |
| 详细设计 | 模块详细设计 | 开发过程 | 详细设计文档 |
| 实现 | 编码与单元测试 | 开发过程 | 可运行代码 |
| 组装测试 | 模块集成测试 | 开发过程 | 集成测试报告 |
| 确认测试 | 验证是否满足需求 | 开发过程 | 系统测试报告 |
| 使用 | 产品部署与运行 | 运作过程 | 用户反馈 |
| 维护 | 修复缺陷与更新 | 维护过程 | 维护记录 |
| 退役 | 产品下线与替换 | 维护过程 | 退役报告 |
例题
在整个软件生命周期中,时间占比最大的一般是( )阶段。
A: 编程实现
B: 需求分析
C: 测试
D: 运行和维护
答案:D
解答:在软件生命周期中,运行和维护阶段是时间占比最大的阶段。虽然软件开发(包括编程实现、需求分析、测试等)可能需要数月到一两年时间,但系统投入使用后的运行和维护阶段通常会持续数年甚至十几年。例如,一个小型软件可能仅需两三个月开发完成,但其使用周期可能长达数年;大型系统开发可能需要一两年,但使用周期可能长达十年以上。因此,运行和维护阶段在软件生命周期中占据最大时间比例。