【软件工程】软件开发模型:敏捷开发(Scrum/XP)
考点频率★★★★★选择题必考下午题案例分析也常出现难度⭐⭐⭐建议重点掌握敏捷宣言的四项价值观和十二条原则、Scrum的“3355”框架、XP的核心实践以及Scrum与XP的本质区别1️⃣ 为什么需要敏捷开发前面我们讲了瀑布模型、增量模型、迭代模型、螺旋模型。这些模型有一个共同点都是“计划驱动”的——先做详细的计划再按计划执行。但现实中的软件开发往往不是这样的用户自己也不知道想要什么等到看到东西才说“不对我要的不是这个”市场竞争瞬息万变半年前的需求今天已经过时了。于是2001年17位软件开发领域的专家聚集在美国犹他州的雪鸟滑雪胜地共同签署了敏捷软件开发宣言Agile Manifesto。从此一种全新的开发理念诞生了与其试图预测一切不如拥抱变化。2️⃣ 敏捷宣言四项价值观敏捷宣言的核心是四项价值观这是敏捷开发的“宪法”左项更重视右项也有价值个体和互动高于 流程和工具可工作的软件高于 详尽的文档客户合作高于 合同谈判响应变化高于 遵循计划注意敏捷不是不要文档、不要流程、不要计划——而是更重视左边的内容。文档“够用就好”计划“能应对变化就好”。3️⃣ 敏捷十二原则在四项价值观的基础上敏捷宣言还提出了十二条原则序号原则1通过及早和持续地交付有价值的软件使客户满意2欣然面对需求变化即使在开发后期也一样3经常地交付可工作的软件周期越短越好4业务人员和开发人员每天一起工作5以积极的个人为核心给予他们环境和信任6面对面沟通是最高效的信息传递方式7可工作的软件是进度的首要度量标准8敏捷过程提倡可持续的开发速度9持续追求技术卓越和良好设计10简洁——最大化未完成工作的艺术11最好的架构、需求和设计来自自组织团队12团队定期反思如何提高成效并调整行为软考记忆要点原则1早交付、原则2拥抱变化、原则3频繁交付、原则7可工作软件是进度标准——这四个是选择题中最常考的原则。4️⃣ Scrum敏捷的“管理框架”Scrum是一种轻量级的项目管理框架它告诉你“什么时候开会、谁该参加、产出什么”但不规定具体怎么写代码。4.1 Scrum的“3355”框架Scrum框架可以概括为3个角色 3个工件 5个事件 5个价值观。3个角色产品负责人Product Owner负责定义和优先级排序产品待办事项列表确保团队做最有价值的功能Scrum主管Scrum Master负责促进Scrum活动指导团队掌握Scrum框架消除障碍开发团队Development Team自组织的跨职能团队负责在每个冲刺结束时交付可用的产品增量3个工件产品待办事项列表Product Backlog按优先级排序的所有功能、缺陷和改进的列表冲刺待办事项列表Sprint Backlog团队计划在当前冲刺中完成的工作子集产品增量Increment每个冲刺结束时所有已完成工作的总和5个事件冲刺Sprint固定时长的迭代周期通常2-4周冲刺计划Sprint Planning每个冲刺开始时团队确定冲刺目标和计划每日站会Daily Scrum每天15分钟同步进展、识别障碍、规划当日工作冲刺评审Sprint Review冲刺结束时向利益相关者展示产品增量并获取反馈冲刺回顾Sprint Retrospective冲刺结束后团队反思并识别改进领域5个价值观开放、勇气、尊重、专注、承诺软考速记Scrum的“3355”——3角色、3工件、5事件、5价值观。5️⃣ 极限编程XP敏捷的“工程方法”如果说Scrum管的是“管理节奏”那极限编程Extreme Programming简称XP管的就是**“代码质量”** 。XP由Kent Beck于1990年代末提出强调短周期迭代、持续测试、快速交付可用软件。5.1 XP的五大价值观XP围绕五个核心价值观展开价值观含义沟通团队成员与客户之间保持开放透明的沟通简单追求最简解决方案避免过度设计反馈通过持续收集反馈及时调整产品方向勇气敢于尝试新方法做出艰难决策尊重尊重团队成员和客户建立互信文化5.2 XP的核心实践软考重点XP包含一系列具体的工程实践实践说明结对编程Pair Programming两名开发人员共同在一台机器上编码提高质量、促进知识共享测试驱动开发TDD先写测试用例再写代码确保代码通过测试持续集成CI每次代码提交后自动构建和测试快速发现冲突重构Refactoring持续优化代码结构提升可维护性频繁交付每几周交付一次可用功能客户协作与客户保持密切沟通深入了解需求集体代码所有制任何开发人员都可以修改任何代码软考速记XP的核心实践——结对编程、TDD、持续集成、重构这四个是最常考的。6️⃣ Scrum vs XP本质区别软考核心考点这是软考中极易混淆的点必须搞清楚对比项ScrumXP本质管理框架管人、管事、管节奏工程方法管代码、管技术、管质量关注点项目管理流程代码质量与工程技术核心内容角色、事件、工件结对编程、TDD、持续集成、重构告诉你什么何时开会、谁参与、产出什么如何写代码、如何测试、如何集成适用场景需求方向明确变化频率中等需求模糊变化极快对质量要求高能否单独使用✅ 可以⚠️ 通常需要与Scrum等框架配合一句话总结Scrum是“管项目的”XP是“写代码的”。实际项目中很多团队用Scrum做项目管理同时在编码环节采用XP的结对编程和TDD。7️⃣ 敏捷开发的优缺点与适用场景7.1 优点优点说明快速响应变化需求变更不再是噩梦而是常态用户参与度高用户在每个迭代都能看到可运行的软件并提供反馈风险可控早期发现问题早期修正团队士气高自组织团队信任和授权7.2 缺点缺点说明管理难度大需要团队高度协作和自组织能力文档不充分过度依赖口头沟通人员变动时知识传承困难不适合所有项目对安全关键、合规要求严格的系统如航天、医疗不太适用7.3 适用场景适用场景说明需求不确定用户需求模糊、经常变化市场变化快互联网产品、创业项目需要快速试错需要通过用户反馈快速验证产品方向团队规模适中通常5-9人的小团队对比记忆瀑布模型适合“需求明确、变化少”的项目敏捷开发适合“需求模糊、变化多”的项目。8️⃣ 经典例题例题1以下关于敏捷开发的说法中正确的是 。A. 敏捷开发不需要任何文档B. 敏捷开发的核心是“计划驱动”C. 敏捷开发强调“响应变化高于遵循计划”D. 敏捷开发只适用于小项目解析A错误——敏捷不是不要文档而是“够用就好”B错误——敏捷是“适应式”而非“计划驱动”D错误——敏捷适用于各种规模的项目但通常小团队更易实施。C正确这正是敏捷宣言的四项价值观之一。选C。例题2以下哪个实践属于XP极限编程而非ScrumA. 每日站会B. 产品待办事项列表C. 结对编程D. 冲刺评审解析每日站会、产品待办事项列表、冲刺评审都是Scrum框架中的事件或工件。结对编程是XP的典型工程实践。选C。例题3判断Scrum是一种工程实践方法主要关注如何编写高质量的代码。 解析错误。Scrum是管理框架关注项目管理的节奏和流程XP才是关注代码质量和工程实践的方法。9️⃣ 记忆口诀敏捷宣言四价值个体互动、工作软件、客户合作、响应变化。敏捷原则十二条早交付、拥抱变、频繁交、自组织。Scrum框架3355三角色、三工件、五事件、五价值。XP实践要记牢结对编程、TDD、持续集成、重构好。 小测验评论区对答案某互联网创业公司正在开发一款新产品用户需求不明确市场变化快。公司希望每个迭代都能让用户试用并反馈。以下哪种开发方式最适合A. 瀑布模型B. 螺旋模型C. 敏捷开发Scrum XPD. 增量模型本专栏日更点击头像 → 专栏《软考中级高频考点》订阅第一时间接收新内容#软考中级 #软件设计师 #敏捷开发 #Scrum #极限编程 #XP #软件工程