行业资讯
📅 2026/7/10 3:11:10
【软件工程】软件生命周期(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 #软考备考