软件工程(一) 软件生命周期

软件生命周期

信息系统生命周期

1. 信息系统生命周期概述

信息系统生命周期是将信息系统视为一个产品 ,从诞生到消亡的全过程。这个概念源于产品生命周期理论,两者有相似性但存在区别。
培育期
成长期
成熟期
衰退期
结束期

产品生命周期 分为五个阶段:培育期 (概念形成、调研设计)、成长期 (上市销售、销量上升)、成熟期 (市场饱和、增长放缓)、衰退期 (销量利润下滑)和结束期(退市消亡)。例如,开发一款智能健康监测设备时,仅停留在想法阶段属于培育期;产品上市后销量增长为成长期;市场饱和后进入成熟期;销售下滑是衰退期;最终退市即结束期。

信息系统生命周期则从项目管理维度划分,分为四大阶段:立项阶段、开发阶段、运维阶段和消亡阶段 。这与产品生命周期不完全契合,因为信息系统更强调项目视角 ,即从决策到废弃的全过程。其中,运维阶段时间占比最大,是生命周期的主体(如软件开发可能仅需数月,但使用可达数年甚至十几年)。

2. 信息系统生命周期的四大阶段
立项阶段
开发阶段
运维阶段
消亡阶段

阶段 主要任务 关键产出与说明
立项阶段 确立项目是否执行:从企业全局考量必要性,收集需求,与高层沟通形成决议。 明确系统"做还是不做"的结论。例如,针对健康监测APP,评估其对业务的助益与损失。
开发阶段 将系统构建出来:完成从规划到验收的全过程,涉及单个系统的具体实现。 产出可运行的软件或APP。此阶段细分为规划、分析、设计、实施、验收五个子阶段(详见下文)。
运维阶段 系统运行与维护:交付验收后,持续运行并解决出现的问题。 时间占比最大,涵盖系统日常使用及问题修复。
消亡阶段 系统废弃与重建:当系统不符合要求时,进行报废或更新替换。 触发条件包括业务下滑、技术过时等,最终导致系统退出。
  • 立项阶段聚焦决策,开发阶段聚焦实现 ,两者在"规划"环节有重叠 (如可行性研究),需理解其边界模糊性
  • 消亡阶段常因运维成本过高或业务需求变化而触发,例如销售额降至临界点后入不敷出。

3. 开发阶段的子阶段详解
规划
分析
设计
实施
验收

开发阶段针对单个系统 ,进一步细分为五个子阶段。各子阶段的任务与产出物需重点掌握,尤其分析与设计阶段的区别是考试高频点。

子阶段 核心任务 关键产出物
规划 整体计划制定:包括初步调查、分析系统目标、考虑子系统组成、拟定方案、可行性研究。 《系统设计任务书》(注意:此产出物在规划阶段完成,而非设计阶段,体现全局性设计)。
分析 需求分析:明确"系统要做什么",从流程优化、数据、功能、网络等维度收集用户需求。 需求类文档(如《需求规格说明书》),描述用户需要的软件功能与约束。
设计 解决方案设计:明确"怎么做",包括架构设计、概要设计、详细设计及网络设计。 设计类文档(含"设计"关键词,如《架构设计说明书》),聚焦实现方案。
实施 系统构建:执行编码、测试等具体工作,将设计方案转化为可运行系统。 **可运行软件代码及测试报告。**测试计划在此阶段执行,但依据V模型,测试工作需在早期(分析/设计阶段)提前规划。
验收 用户确认:交付后由用户验证系统是否达成目标,确保满足需求。 验收报告,标志开发阶段结束。
  • 分析 vs 设计:**分析阶段解决"做什么"(功能范围界定),设计阶段解决"怎么做"(技术方案)。**例如,分析阶段定义"APP需监测心率",设计阶段决定"用蓝牙传感器实现"。
  • 产出物差异:分析阶段产出以"需求"为核心(如需求规格说明书);设计阶段产出以"设计"为核心(如设计文档)。但需注意,《系统设计任务书》是规划阶段产物,非设计阶段。
  • V模型关联测试工作(如测试计划)在分析/设计阶段已提前规划,这与开发子阶段紧密衔接。

软件生命周期过程

软件生命周期活动

出自国家标准《系统与软件工程 软件生存周期过程(GB/T 8566---2022)》

标准将软件生命周期活动 划分为三大类过程:(注意这里是软件生命周期活动)

  • 5个基本过程:构成生命周期主干
  • 9个支持过程:提供外围支撑
  • 7个组织过程:体现管理与组织维度

基本过程
获取过程
供应过程
开发过程
运作过程
维护过程

基本过程供各主要参与方在软件生存周期期间使用,主要参与方是发起或 完成软件产品开发、运行或维护的组织。

过程名称 责任方 核心任务
获取过程 需方 获取系统/产品/服务
供应过程 供方 向需方提供系统/产品/服务
开发过程 开发方 定义并开发软件产品
运作过程 操作方 在规定环境中提供系统运行服务
维护过程 维护方 管理软件修改,保持运行状态,包括迁移和退役
  • 操作方(最终用户)不一定等同于需方,可能存在二次销售关系
  • 维护工作可由供方或专业运维方执行

支持过程

支持过程是跨阶段的支撑性活动,被基本过程调用,确保软件质量与可维护性:

过程名称 主要作用 典型应用场景
文档编制过程 规范各阶段文档产出 需求规格说明书、设计文档等
配置管理过程 控制版本与变更 代码版本管理、配置项追踪
质量保证过程 确保产品质量 联合评审、审核、验证/确认测试
验证过程 检查工作产品是否符合规范 设计评审、代码审查
确认过程 验证产品是否满足用户需求 用户验收测试
联合评审过程 多方协作评估 需求评审会、设计评审会
审核过程 独立评估过程合规性 质量审计
问题解决过程 处理缺陷与变更 缺陷修复、需求变更管理
易用性过程 提升用户体验 用户培训、帮助文档提供

**支持过程不是独立阶段,而是贯穿整个生命周期的辅助活动。**例如,文档编制在每个阶段都会发生;配置管理从开发初期持续到维护阶段。

组织过程

组织过程关注管理与组织维度,为整个生命周期提供管理支撑:

过程名称 管理维度 核心目标
管理过程 项目管理 整个生命周期的统筹管理
基础设施过程 环境支持 提供必要的硬件与软件环境
改进过程 持续优化 流程优化与能力提升
人力资源过程 人员管理 人员配置与能力培养
资产管理过程 资源管理 有效管理组织资产
重用大纲管理过程 知识复用 规划与实施软件复用策略
领域工程过程 领域知识 构建领域模型与复用资产

组织过程是战略层面的管理活动,例如"改进过程"对应CMMI等成熟度模型;"重用大纲管理过程"支持组件复用,提高开发效率。

软件生命周期

标准将软件生命周期划分为10个具体阶段,这些阶段与三类过程紧密关联:

阶段 主要任务 主导过程 关键产出
可行性研究 评估项目可行性 获取过程、供应过程 可行性研究报告
需求分析 明确用户需求 获取过程、供应过程 需求规格说明书
概要设计 建立总体结构 开发过程 概要设计文档
详细设计 模块详细设计 开发过程 详细设计文档
实现 编码与单元测试 开发过程 可运行代码
组装测试 模块集成测试 开发过程 集成测试报告
确认测试 验证是否满足需求 开发过程 系统测试报告
使用 产品部署与运行 运作过程 用户反馈
维护 修复缺陷与更新 维护过程 维护记录
退役 产品下线与替换 维护过程 退役报告

例题

在整个软件生命周期中,时间占比最大的一般是( )阶段。

A: 编程实现

B: 需求分析

C: 测试
D: 运行和维护

答案:D

解答:在软件生命周期中,运行和维护阶段是时间占比最大的阶段。虽然软件开发(包括编程实现、需求分析、测试等)可能需要数月到一两年时间,但系统投入使用后的运行和维护阶段通常会持续数年甚至十几年。例如,一个小型软件可能仅需两三个月开发完成,但其使用周期可能长达数年;大型系统开发可能需要一两年,但使用周期可能长达十年以上。因此,运行和维护阶段在软件生命周期中占据最大时间比例。

相关推荐
記億揺晃着的那天10 小时前
AI 时代的软件工程:升级,而非消亡
人工智能·ai·软件工程·vibe coding
Justice Young1 天前
软件工程第八章:编码与测试
软件工程
Justice Young1 天前
软件工程第二章:软件生存周期与软件过程
软件工程
行业探路者1 天前
二维码制作工具使用指南:如何利用电脑摄像头轻松扫描和生成图片二维码
大数据·人工智能·学习·产品运营·软件工程
雾江流1 天前
GrokAI1.0.94 | 实测可无敏感生图,可生成视频
软件工程
Justice Young1 天前
软件工程第九章、第十章:软件维护、软件重构、软件复用
重构·软件工程
Justice Young1 天前
软件工程第六章、第七章:面向对象分析及设计
软件工程
帅次1 天前
系统设计方法论全解:原则、模型与用户体验核心要义
设计模式·流程图·软件工程·软件构建·需求分析·设计规范·规格说明书
manuel_897572 天前
七 软件工程
软件工程