软件开发模型详细梳理流程图、优缺点、适用场景(含Scrum和看板)
目录
1 软件开发模型
软件开发模型规定了软件开发应遵循的步骤,是软件开发的“导航图” 。它能够清晰、直观地表达软件开发的全过程,以及每个阶段要进行的活动和要完成的任务。开发人员在选择开发模型时,要根据软件的特点、开发人员的参与方式选择稳定、可靠的开发模型。
1.1 瀑布模型
瀑布模型和软件生命周期一致,是其他模型的基础框架。各阶段按固定顺序执行,前一阶段完成后才能进入下一阶段,每个阶段需完成完整文档,作为下一阶段的依据。线性结构,每个阶段只执行一次。

优点:
- 方便管理,流程清晰、结构固定
- 各阶段文档完整,便于后期维护与交接
- 阶段明确,便于质量把控与进度检查
缺点:
- 灵活性差,无法适应需求变更
- 用户仅在最终阶段看到产品,问题发现晚
- 前面各阶段遗留的风险到测试阶段才被发现,导致项目大面积返工,付出代价大
- 周期长,需完成所有阶段才能交付,上线速度慢,可能导致需求/功能过时
【适用场景】需求固定,规模小的项目
1.2 快速原型模型
快速开发出可运行、可交互的原型,不追求完整功能,用户直接试用原型,提出修改意见,根据反馈反复修改原型,逐步完善。

优点:
- 能快速构建软件原型
- 降低需求风险,提前暴露需求问题,减少后期返工
缺点:
- 质量难保证,可能忽略设计、测试,后期难维护
- 不适用于大型项目
【适用场景】需求不明确、易变化的项目
1.3 增量模型
将完整的软件拆分成不同的组件,然后对每个组件进行开发测试,分批开发、分批交付,不同增量模块可并行设计与开发。
优点:
- 很好地适应用户需求变更
- 交付灵活
- 降低成本与风险,这一个组件不符合需求,只需要更改这一个组件
缺点:
- 架构要求高,需良好整体架构
- 集成复杂
【适用场景】需求不明确的大型项目
1.4 螺旋模型
结合了瀑布模型和快速原型模型,引入了风险分析。

优点:
- 增加风险分析,强调严格的全过程风险管理
- 用户参与每个阶段的开发,保证产品贴合需求
- 强调各开发阶段的质量
缺点:
- 项目中可能存在的风险与风险管理人员的技能水平有直接关系
- 成本较高,人员、资金、时间投入大
【适用场景】规模庞大、复杂度高、风险大的项目
1.5 敏捷模型
需求被拆分为许多个可以增量开发的子项目,采用迭代开发,每个增量部分都在迭代中开发。旨在帮助项目快速适应变更要求,主要目的是促进项目的快速完成。
敏捷模型有一个非常重要的《敏捷宣言》
- 个体和交互重于过程和工具
- 可用软件重于完备文档
- 用户协作重于合同谈判
- 响应变化重于遵循计划
由此可看出,敏捷模型更注重人与人之间的交流和沟通,也可以总结出敏捷模型的四个特点:轻文档、轻流程、重目标、重产出。
优点:
- 灵活性强,能快速响应需求变更,不断适应新的趋势
- 用户参与度高,可及时获取反馈,产品更贴合需求
缺点:
- 若文档缺失,会导致后期维护、交接困难
- 对团队成员能力、协作要求高
- 不适用于大型复杂项目
【适用场景】小型项目
1.5.1 Scrum(开发管理框架)
敏捷模型主要有两种开发方式:Scrum(开发管理框架)和Kanban(看板)
在Scrum中,主要有三个角色和五个重要会议
三个角色:
- 产品经理(product owner):负责整理用户故事,定义其商业价值,对其排序,定需求的优先级,制定发布计划,对产品负责。
- 项目经理(scrum master):负责召开各种会议,协调项目,为研发团队服务。
- 研发团队(team):由开发、测试、设计等成员组成,通过紧密协同,完成每一次迭代的目标,交付产品。
五个重要会议:
- 需求梳理会议
- 迭代计划会议
- 每日站会
- 评审会议
- 回顾会议
Scrum 将产品的开发分解为若干个小sprint(迭代),周期一般为1∽4周,参与的团队成员一般是5∽9人,每次迭代都要交付成果。
1.5.2 Kanban(看板)
将工作细分成任务,将工作流程显示在“看板卡”上,每个人都能及时了解自己的工作任务和工作进度。
以上就是软件开发中最常用的测试模型,作为软件测试人员,理解开发模型不仅能更好地配合开发团队、制定测试计划,也是面试中的高频考点。后续我会继续分享测试流程、用例设计、工具使用等干货,欢迎关注、点赞、收藏、转发一起学习进步~
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)