系统架构师备考倒计时35天(每日知识点)
软件过程模型总结(上篇):
一、瀑布模型
- 瀑布模型是将软件生存周期中的各个活动规定为以线性顺序连接的若干阶段的模型,包括需求分析、设计、编码、运行与维护。
- 瀑布模型的特点是容易理解,管理成本低,每个阶段都有对应的成果产物,各个阶段有明显的界限划分和顺序要求,一旦发生错误,整个项目推倒重新开始。
- 适用于需求明确的项目,一般表述为需求明确或二次开发,或者适用于需要对数据处理的项目。
二、增量模型
融合了瀑布模型的基本成分和原型实现的迭代特征,可以有多个可用版本的发布,核心功能往往最先完成,在此基础上,每轮迭代会有新的增量发布,核心功能可以得到充分测试。强调每一个增量均发布一个可操作的产品。
三、统一过程(UP、RUP都指统一过程)
-
典型特点是用例驱动、以架构为中心、迭代和增量。
-
统一过程把一个项目分为四个不同的阶段:
1.构思阶段(初始/初启阶段) : 定义最终产品视图和业务模型、确定系统范围。
2.细化阶段(精化阶段) : 设计及确定系统架构、制定工作计划及资源要求。
3.构造阶段 : 开发剩余构件和应用程序功能,把这些构件集成为产品,并进行详细测试。
4.移交阶段 : 确保软件对最终用户是可用的,进行β测试,制作产品发布版本。 -
9个核心工作流 : 业务建模、需求、分析与设计、实现、测试、部署、配置与变更管理、项目管理、环境。
前6个是核心过程工作流,后3个是核心支持工作流。
四、敏捷开发
以原型开发思想为基础,采用迭代式增量开发。
敏捷宣言:
个体和交互胜过过程和工具;
可工作的软件胜过大量的文档;
客户合作胜过合同谈判;
响应变化胜过遵循计划。
敏捷开发是一种 以人为核心、迭代、循序渐进的开发方法,适用于 小团队和小项目,具有小步快跑的思想。常见的敏捷开发方法有极限编程法(XP)、水晶法、开放式源码、并列争球法(SCRUM)、特征驱动开发方法{FDD}、自适应软件开发方法(ASD)和动态系统开发方法(DSDM)。
- 极限编程(XP) :一些对费用控制严格的公司中的使用,非常有效,近螺旋式的开发方法。四大价值观(沟通【加强面对面沟通】、简单【不过度设计】、反馈【及时反馈】、勇气【接受变更的勇气】),十二大最佳实践(简单设计、测试驱动、代码重构、结对编程、持续集成、现场客户、发行版本小型化、系统隐喻、代码集体所有制、规划策路、规范代码、40小时工作机制)。
- 水晶方法 : 提倡“机动性”的方法,拥有对不同类型项目非常有效的敏捷过程。
- 开放式源码 :程序开发人员在地域上分布很广【其他方法强调集中办公】。
- 并列争球法(SCRUM) :明确定义了可重复的方法过程。
- 特征驱动开发方法(FDD) :认为有效的软件开发需要3要素**【人、过程、技术】。**定义了6种关键的项目角色:项目经理、首席架构设计师、开发经理、主程序员、程序员和领域专家。
- 自适应软件开发方法(ASD) :其核心是三个非线性的、重叠的开发阶段 : 猜测、合作与学习。
- 动态系统开发方法(DSDM):倡导以业务为核心。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南