【软件工程】软件生命周期(SDLC)各阶段划分

发布时间:2026/9/23 6:55:58

【软件工程】软件生命周期(SDLC)各阶段划分
考点频率★★★★☆基础概念选择题常考也是理解开发模型的前提难度⭐建议掌握软件生命周期的六个阶段及各阶段的主要任务与产出物理解“文档驱动”的含义1️⃣ 什么是软件生命周期一个软件产品从“想做个东西”到“这东西废了不维护了”的过程就是软件生命周期Software Life Cycle。官方的说法是软件产品从提出、开发、运行到废弃的全过程。它回答了软件工程中最基本的问题做软件这件事到底分几步走打个比方拍一部电影要经历“选题立项→写剧本→选角筹备→拍摄→剪辑配音→上映→下架”等阶段每个阶段都有明确的任务和产出物。软件生命周期也是一样——把一个模糊的想法通过分阶段推进变成能稳定运行的程序。2️⃣ 软件生命周期分几个阶段不同教材对阶段的划分略有不同软考常考的是经典六阶段划分法可行性研究 → 需求分析 → 概要设计 → 详细设计 → 编码与测试 → 运行与维护也有教材将“编码与测试”拆分为“编码”和“测试”两个阶段变成七阶段。但软考中六阶段划分法是主流把“编码测试”作为一个整体阶段其中测试包含单元测试和集成测试。3️⃣ 各阶段核心任务与产出物重点3.1 可行性研究Feasibility Study任务研究项目“值不值得做、能不能做”。从技术可行性、经济可行性、操作可行性、法律可行性等角度进行分析明确项目的可行性和可能的收益。产出物可行性研究报告、项目开发计划核心问题这事能干吗有钱赚吗3.2 需求分析Requirements Analysis任务搞清楚用户到底想要什么。不是用户说“我要个系统”就完了而是要和用户反复沟通把模糊的诉求变成明确的、可验证的功能需求和非功能需求如性能、安全性等。这是整个开发过程中最重要也最容易被忽视的阶段。产出物软件需求规格说明书SRSSoftware Requirements Specification核心问题用户到底要什么需求分析阶段的核心原则是需求的完整性和一致性。如果需求没搞明白就开写代码后面改需求会让开发变成噩梦——这也是“软件危机”的重要原因之一。3.3 概要设计总体设计 / High-Level Design任务把需求说明书“翻译”成系统结构。确定系统的总体架构如分成哪些模块/子系统以及模块之间的接口关系。产出物概要设计说明书、体系结构图、模块结构图核心问题系统长什么样模块怎么分3.4 详细设计Detailed Design任务对每个模块内部进行精细设计包括数据结构、算法、接口细节等达到“可以直接编码”的程度。这个阶段产出的设计程序员照着写代码就可以了。产出物详细设计说明书、模块算法描述核心问题每个模块具体怎么实现3.5 编码与测试Coding Testing任务编写代码并进行各种测试。测试分为多个层次单元测试测试每个模块的功能是否正常集成测试测试模块之间的接口是否能正确配合系统测试测试整个系统是否满足需求规格说明书中的各项要求产出物可执行的程序代码、测试用例、测试报告核心问题代码写对了吗系统能用吗3.6 运行与维护Operation Maintenance任务交付后的系统在运行过程中修复Bug、适应环境变化如操作系统升级、增加新功能等。维护是软件生命周期中时间最长、成本最高的阶段通常占总成本的60%-70%。产出物维护记录、修改后的程序核心问题系统上线后怎么持续保障4️⃣ 各阶段产出物速查表阶段核心产出物一句话总结可行性研究可行性研究报告分析“能不能干”需求分析软件需求规格说明书搞清楚“要干什么”概要设计概要设计说明书、结构图设计“长什么样”详细设计详细设计说明书细化“具体怎么干”编码与测试程序代码、测试报告写代码验证代码运行与维护维护记录持续保障运行5️⃣ 以瀑布模型为例理解阶段如果把软件生命周期比作盖楼阶段盖楼类比软件对应可行性研究地段评估、资金预算能不能赚钱技术行不行需求分析找设计师出需求清单要几室几厅用户到底要什么功能概要设计画建筑平面图、立面图系统分几个模块怎么连接详细设计出施工图每根钢筋的位置每个模块具体怎么实现编码与测试施工盖楼 质检验收写代码 测试确保代码正确运行维护交付后维修、翻新、加固上线后修Bug、加功能、系统升级瀑布模型是最早将软件生命周期阶段化的模型它规定每个阶段必须完成后才能进入下一阶段像瀑布一样一层一层往下流强调文档驱动——每个阶段都有明确的产出物文档并且前一阶段的文档是后一阶段工作的依据。后面要讲的增量模型、螺旋模型、敏捷开发等本质上都是在这个基本阶段框架上做调整。6️⃣ 经典例题例题1软件生命周期中确定系统“做什么”的阶段是 。A. 可行性研究B. 需求分析C. 概要设计D. 详细设计解析需求分析阶段的任务是确定用户需求即系统“做什么”。概要设计和详细设计解决的是“怎么做”。选B。例题2在软件生命周期中确定系统“怎么做”的阶段是 。A. 需求分析B. 概要设计与详细设计C. 编码与测试D. 运行与维护解析需求分析确定“做什么”概要设计和详细设计确定“怎么做”一个是总体架构一个是细节实现。选B。例题3判断软件生命周期中测试工作只在编码阶段结束后才开始。 解析错误。现代软件工程强调测试贯穿整个开发过程如需求分析阶段就可以编写验收测试用例概要设计和详细设计阶段可以编写集成测试用例和单元测试用例。当然执行测试确实集中在编码阶段之后。7️⃣ 记忆口诀可行需求概详编加上维护共六段。可行性问能不能需求分析做什么。概要设计定架构详细设计细琢磨。编码实现与测试上线维护续干活。8️⃣ 小测验评论区对答案以下关于软件生命周期的叙述中正确的是 。A. 软件生命周期只有编码和维护两个阶段B. 需求分析阶段的工作成果是详细设计说明书C. 概要设计的输出是模块结构图和概要设计说明书D. 软件维护阶段不需要任何文档记录本专栏日更点击头像 → 专栏《软考中级高频考点》订阅第一时间接收新内容#软考中级 #软件设计师 #软件生命周期 #SDLC #软考备考

相关新闻

Ultralytics Docker镜像选型与YOLO训练部署实战指南

Ultralytics Docker镜像选型与YOLO训练部署实战指南

2026/9/5 18:25:30

1. 为什么是 Ultralytics Docker?——不是“又一个容器教程”,而是解决实际训练卡点的钥匙Ultralytics Docker 不是单纯把 YOLOv8/YOLOv10 搬进容器里走个过场,它是我在过去三年带团队落地 27 个工业视觉项目时,反复验证后沉淀下来…

OpenCV C++ 贾志刚教程:从环境搭建到DNN部署的完整指南

OpenCV C++ 贾志刚教程:从环境搭建到DNN部署的完整指南

2026/9/5 19:18:34

1. 项目概述:为什么选择OpenCV C?如果你正在计算机视觉领域摸索,或者想从Python转向更底层的实现,那么“OpenCV C 贾志刚教程”这个标题对你来说应该不陌生。它背后指向的,是国内很多开发者入门OpenCV C时绕不开的一套…

技术直觉退化了?不,是换了一种用法

技术直觉退化了?不,是换了一种用法

2026/9/8 2:54:06

虚,从一次Code Review开始 第四周周一早上,陈钊做了一件已经很久没做了的事——打开IDE,认真看代码。 起因是小李上周提了一个PR,改动量不小,涉及到支付模块的核心链路。按照陈钊以前的习惯,这种级别的PR他…

CANN/GE ACL数据集缓冲区添加函数

CANN/GE ACL数据集缓冲区添加函数

2026/9/21 18:38:46

aclmdlAddDatasetBuffer 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、Te…

用ffmpeg高效批量调整图片尺寸的实战指南

用ffmpeg高效批量调整图片尺寸的实战指南

2026/9/21 18:41:09

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱

2026/9/21 18:36:40

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱 【免费下载链接】transformers 🤗 Transformers: the model-definition framework for state-of-the-art machine learning models in text, vision, audio, and mu…

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南

2026/9/21 18:37:26

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南 【免费下载链接】rustfs 🚀2.3x faster than MinIO for 4KB object payloads. RustFS is an open-source, S3-compatible high-performance object storage system sup…

Java Integer缓存揭秘:128陷阱原理、避坑与面试全解

Java Integer缓存揭秘:128陷阱原理、避坑与面试全解

2026/9/21 18:40:29

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据

2026/9/21 18:36:17

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据 【免费下载链接】rustfs 🚀2.3x faster than MinIO for 4KB object payloads. RustFS is an open-source, S3-compatible high-performance object storage system supporting mi…

远程协作的工作台整理

远程协作的工作台整理

2026/9/22 0:19:28

远程协作的工作台整理远程协作的核心不是再加一个工具,而是让交接信息足够完整。异步任务要写明目标、输入位置、完成标准和需要决策的人。 工作台的最小配置 将日程、待办、代码和沟通入口收拢到少数固定位置;通知按紧急程度分层。工作台不需要模仿办公…

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

2026/9/21 23:38:13

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

2026/9/22 0:48:53

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…