【备战软考架构师系列笔记 · 003】软件工程篇 —— 软件开发模型(下篇:敏捷开发) ⭐⭐⭐⭐⭐

简介: 软件开发模型笔记(下篇)—— 敏捷开发模型/方法

软件开发模型笔记(下篇)—— 敏捷开发模型/方法

 

# 敏捷开发


## 特点


### 以人为本


### 迭代、循序渐进


### 适用于小团队和小项目


## 敏捷开发宣言


### 1、最重要的是通过尽早和不断交付有价值的软件满足客户需要


### 2、即使在开发后期,也要拥抱变化。敏捷过程能够驾驭变化,保持客户的竞争优势


### 3、经常交付可以工作的软件,从几周到几个月,时间尺度越短越好


### 4、在整个项目中,业务人员和开发人员应该始终紧密合作


### 5、围绕斗志高昂的人进行软件开发,给开发者提供适宜的环境,满足他们的需要,并相信他们能够完成任务


### 6、在团队中,最有效率也是效果最好的沟通方式是面对面交流


### 7、可以工作的软件是进度的主要度量标准


### 8、提倡可持续开发。投资人、开发人员和用户应该保持固定的节奏


### 9、不断追求优秀的技术和良好的设计,有助于提高敏捷性


### 10、要简单,尽可能减少工作量。减少工作量的艺术是至关重要的。


### 11、最好的架构、需求和设计都来自于 自我组织的团队


### 12、团队要定期总结如何能够更有效率,然后相应地自我调整


## 极限编程(XP)


### 特点


- 轻量(敏捷)

- 高效

- 低风险

- 柔性

- 可预测

- 科学、充满乐趣的


### 对比其他方法的差别


- 1、在更短周期内,更早地提供具体、持续的反馈信息

- 2、迭代地进行计划编制,在最开始迅速生成一个总体计划,然后在整个项目开发过程中不断完善

- 3、依赖于自动测试程序来监控开发进度,并及早地捕获缺陷

- 4、依赖口头交流、测试和源程序进行沟通

- 5、倡导持续的、演化式的设计

- 6、依赖于开发团队内部的紧密协作

- 7、尽可能达到程序员短期利益和项目长期利益的平衡


### 四部分组成


- 价值观(四大价值观,XP的 基础和灵魂)


   - 沟通:加强面对面的沟通

   - 简单:不过度设计

   - 反馈:及时反馈

   - 勇气:接受变更的勇气


- 原则

- 实践

- 行为


### 12个关键实践


- 1、计划游戏


   - 快速制定一份概要计划,然后随着业务细节展开不断完善。


- 2、小版本发布


   - XP方法遵循”持续集成”思维,每次发布的版本要尽量小,且具有商业价值和值得发布


- 3、系统隐喻

- 4、简单设计


   - 认为设计不应该在编码之前一次性完成


- 5、测试驱动


   - 不能忽略测试工作,保证代码效率和质量


- 6、重构


   - 目的是降低变化引起的风险,使得代码优化更容易


- 7、结对编程

- 8、集体代码所有制


   - 团队每个成员都拥有对代码进行改进的权利,需要对全部代码负责。同时,代码谁破坏(修改后出问题)的由谁承担


- 9、持续集成

- 10、每周40小时工作制


   - 加班最终会扼杀团队的积极性,导致项目走向失败。40小时不是一个绝对值,而是应该保证按照正常的时间进行工作


- 11、 现场客户


   - 为了保证开发结果与客户预想接近,最重要的是将客户请到开发现场。用于保证客户负责业务决策,开发团队负责技术决策


- 12、编码标准


   - 提供一个确保代码清晰,便于交流的指导方针


## 特征驱动开发(FDD)


### 一个迭代的开发模型


###  每一步都强调质量,不断交付可运行的软件,以很小的开发提供精确的项目进度和状态信息


### 6种关键角色(有些角色身份可重复)


- 1、项目经理:团队的保护屏障

- 2、首席架构设计师:负责系统架构的设计

- 3、开发经理:负责团队日常开发,解决开发中出现的技术问题和资源冲突

- 4、主程序员:带领小组完成特征的详细设计和构建工作

- 5、程序员:按照特征开发计划完成开发

- 6、领域专家:精通业务领域的人,可以是客户或者系统分析员。


### 最佳实践


- 领域对象建模

- 根据特征进行开发

- 类的个体所有

- 组成特征小组

- 审查⭐

- 定期构造

- 配置管理

- 结果可见性


## Scrum框架


### 特点


- 是一个增量、迭代的开发过程

- 明确定义了可重复的开发过程

- 整个开发过程由若干个短周期构成


### Backlog(整体需求)


- 用于管理产品需求

- 产品backlog是一个按照商业价值排序的需求列表,Scrum团队要先开发对客户具有更高价值的需求


### Sprint


- 每个短周期,称为一个Sprint

- 每个Sprint长度为1-4周(迭代周期)


### Sprint backlog(当前周期需要处理的任务清单)


- 根据从Backlog里面挑选的需求,在Sprint计划会议(站会)经过讨论、分析和估算,得到的任务列表


### Scrum的五个活动


- 产品待办事项列表梳理

- Sprint计划会议


   - 包括两部分:1、决定在Sprint中需要完成哪些工作;2、决定这些工作如何完成


- 每日会议(站会)


   - 用来确认团队成员的三种信息:1、上一个Scrum日程完成的内容;2、现在到下一个Scrum日程需要完成的内容;3、影响进展的阻碍因素有哪些

   - 通常不超过15分钟,仅用于简要问题回答和澄清,不应该讨论其他话题


- Sprint评审会议


   - Sprint结束时,团队和相关人员评审Sprint的产出。时长和Sprint周期时长成正比,周期如果是一周为1个小时

   - 展示当前产品增量的情况,以及调整产品事项待办列表等


- Sprint回顾会议


   - Sprint结束后,回顾与总结。时长同Sprint评审会议


### 五个价值观


- 承诺、专注、开放、尊重、勇气


## 水晶方法(Crystal)


### 特点


- 用最少的纪律约束,仍能成功的方法。在产出效率和易于运作上达到平衡

- 提倡"机动性"的方法,包含具有共性的核心元素,每个都含有独特的角色、过程模式、工作产品和实践


### 分类


- Crystal Clear(透明水晶方法,最常用,适用于6人以下小团队)


   - 七个体系特征:1、经常交付;2、反思改进;3、渗透式交流;4、个人安全;5、焦点;6、与专家建立方便的联系;7、配有自动测试、配置管理和经常集成的功能的技术环境


- Crystal Yellow

- Crystal Orange

- Crystal Red


## ASD方法[Adaptive Software Development]


### 核心是三个非线性的、重叠的开发阶段


- 猜测

- 合作

- 学习

1995789-20220110230308732-784556235.png

目录
相关文章
|
8月前
|
机器学习/深度学习 人工智能 监控
大型动作模型LAM:让企业重复任务实现80%效率提升的AI技术架构与实现方案
大型动作模型(LAMs)作为人工智能新架构,融合神经网络与符号逻辑,实现企业重复任务的自动化处理。通过神经符号集成、动作执行管道、模式学习、任务分解等核心技术,系统可高效解析用户意图并执行复杂操作,显著提升企业运营效率并降低人工成本。其自适应学习能力与上下文感知机制,使自动化流程更智能、灵活,为企业数字化转型提供坚实支撑。
548 0
大型动作模型LAM:让企业重复任务实现80%效率提升的AI技术架构与实现方案
|
7月前
|
数据采集 机器学习/深度学习 搜索推荐
MIT新论文:数据即上限,扩散模型的关键能力来自图像统计规律,而非复杂架构
MIT与丰田研究院研究发现,扩散模型的“局部性”并非源于网络架构的精巧设计,而是自然图像统计规律的产物。通过线性模型仅学习像素相关性,即可复现U-Net般的局部敏感模式,揭示数据本身蕴含生成“魔法”。
309 3
MIT新论文:数据即上限,扩散模型的关键能力来自图像统计规律,而非复杂架构
|
7月前
|
Java API 开发工具
灵码产品演示:软件工程架构分析
本演示展示灵码对复杂软件项目的架构分析与文档生成能力。通过Qwen3模型,结合PlantUML,自动生成系统架构图、微服务时序图,并提取API接口文档,实现高效、智能的代码理解与文档输出。
448 5
|
6月前
|
机器学习/深度学习 存储 缓存
115_LLM基础模型架构设计:从Transformer到稀疏注意力
大型语言模型(LLM)的架构设计是其性能的核心决定因素。从2017年Transformer架构的提出,到如今的稀疏注意力和混合专家模型,LLM架构经历了快速的演进。本文将全面探讨LLM基础架构的设计原理,深入分析Transformer的核心机制,详细介绍稀疏注意力、MoE等创新架构,并展望未来架构发展方向。通过数学推导和实践案例,为构建高效、强大的LLM提供全面指导。
975 0
|
6月前
|
机器学习/深度学习 自然语言处理 算法
48_动态架构模型:NAS在LLM中的应用
大型语言模型(LLM)在自然语言处理领域的突破性进展,很大程度上归功于其庞大的参数量和复杂的网络架构。然而,随着模型规模的不断增长,计算资源消耗、推理延迟和部署成本等问题日益凸显。如何在保持模型性能的同时,优化模型架构以提高效率,成为2025年大模型研究的核心方向之一。神经架构搜索(Neural Architecture Search, NAS)作为一种自动化的网络设计方法,正在为这一挑战提供创新性解决方案。本文将深入探讨NAS技术如何应用于LLM的架构优化,特别是在层数与维度调整方面的最新进展,并通过代码实现展示简单的NAS实验。
324 0
|
8月前
|
编解码 文字识别 自然语言处理
Dots.ocr:告别复杂多模块架构,1.7B参数单一模型统一处理所有OCR任务22
Dots.ocr 是一款仅1.7B参数的视觉语言模型,正在重塑文档处理技术。它将布局检测、文本识别、阅读顺序理解和数学公式解析等任务统一于单一架构,突破传统OCR多模块流水线的限制。在多项基准测试中,其表现超越大参数模型,展现出“小而精”的实用价值,标志着OCR技术向高效、统一、灵活方向演进。
862 0
Dots.ocr:告别复杂多模块架构,1.7B参数单一模型统一处理所有OCR任务22
|
9月前
|
存储 人工智能 调度
上海创智学院联合无问芯穹发布Megrez2.0,本征架构突破端模型不可能三角,以终端算力撬动云端智能
终端是实现数字智能和生命智能自由交互的重要接口,持续帮助人类拓展生产能力的边界。当下,终端智能面临着“能效-空间-智能”的不可能三角:以DeepSeek-R1为例,其参数规模高达6710亿,超出了大部分笔记本电脑的内存容量;即使勉强在一台笔记本电脑上成功运行满血版模型,理论上坚持不到9分钟就会耗尽电池;如果通过蒸馏,将满血版模型压缩到更小尺寸,此时的精度损失又可能满足不了智能水平的要求。
210 0
上海创智学院联合无问芯穹发布Megrez2.0,本征架构突破端模型不可能三角,以终端算力撬动云端智能
|
9月前
|
人工智能 监控 API
MCP中台,究竟如何实现多模型、多渠道、多环境的统一管控?如何以MCP为核心设计AI应用架构?
本文产品专家三桥君探讨了以 MCP 为核心的 AI 应用架构设计,从统一接入、数据管理、服务编排到部署策略等维度,系统化分析了 AI 落地的关键环节。重点介绍了 API 网关的多终端适配、数据异步处理流程、LLM 服务的灰度发布与 Fallback 机制,以及 MCP Server 作为核心枢纽的调度功能。同时对比了公有云 API、私有化 GPU 和无服务器部署的适用场景,强调通过全链路监控与智能告警保障系统稳定性。该架构为企业高效整合 AI 能力提供了实践路径,平衡性能、成本与灵活性需求。
599 0
|
6月前
|
Cloud Native Serverless API
微服务架构实战指南:从单体应用到云原生的蜕变之路
🌟蒋星熠Jaxonic,代码为舟的星际旅人。深耕微服务架构,擅以DDD拆分服务、构建高可用通信与治理体系。分享从单体到云原生的实战经验,探索技术演进的无限可能。
微服务架构实战指南:从单体应用到云原生的蜕变之路
下一篇
开通oss服务