前言
本系列文章为观看b站视频以及b站up主@zst_2001
系列视频所做的笔记,感谢相关博主的分享。如有侵权,立即删除。
视频链接:视频链接(注:文章中有关图片、以及网友的相关评论与总结等内容未标明出处均出自该视频,感谢大家的分享!)
b站up主页:b站up
一、软件开发模型
1、瀑布模型(SDLC)
- 各个活动依照线性顺序连接,只适用于 需求明确 的项目。
- 优点:容易理解,管理成本低;强调开发的阶段性早期计划及需求调查和产品测试。
- 不足:客户需求必须十分明确;对项目风险管控能力弱,从而导致项目常常延期完成,开发费用超出预算。
真题链接
- 瀑布模型 适用于: 系统需求是完善的、简明的、一致的,而且可以先于设计和实现完成之前产生的项目。
2、其他经典模型概览
3、 增量模型
- 增量模型融合了瀑布模型的基本成分和原型实现的迭代特征
- 优点:增量模型作为瀑布模型的一个变体具有瀑布模型的所有优点;第一个可交付版本所需要的成本和时间少;风险不大;减少用户需求的变更;运行增量投资,即在项目开始时,可以仅对一个或两个增量投资。
- 不足:可能会造成增量不稳定;增量可能需要重新开发,重新发布;管理发生的成本、进度和配置的复杂性可能会超出组织的能力。
- (注:下图来自《软件设计师教程》(第5版)(褚华、霍秋艳主编,清华大学出版社))
真题链接
- 增量模型:是一种能够快速构造可运行产品的好方法。
4、原型模型、螺旋模型
- 原型模型
- 原型方法比较适合于 用户需求不清、需求经常变化 的情况,能快速、低成本地构建原型。
- (注:下图来自《软件设计师教程》(第5版)(褚华、霍秋艳主编,清华大学出版社))
真题链接
- 为了有效地捕获系统需求,应采用 原型模型。
- 螺旋模型
- 有多个模型的组合,具有多个模型的特征。最显著的特征是:有风险分析,适用于 庞大、复杂并且具有高风险的系统。
- 优点:支持用户需求的动态变化;有助于提高软件的适应能力;降低了软件开发的风险。
- 不足:需要开发人员具有相当丰富的风险评估经验和专门知识;过多的迭代次数会增加开发成本,延迟提交时间。
真题链接
- 某公司计划开发一种产品,技术含量很高,与客户相关的风险也很多,则最适于采用 螺旋 开发过程模型。
5、V模型、喷泉模型与RAD
- V模型
- V模型在瀑布模型基础上将基本问题逐步细化,描述了质量保证活动和沟通、建模相关活动以及早期构建相关的活动之间的关系。(优点和不足与瀑布模型类似)
- 喷泉模型
- 喷泉模型是一种 以用户需求为动力,以对象作为驱动 的模型,适用于 面向对象 的开发方法。开发过程具有 迭代性 和 无间隙性,允许各开发活动交叉、迭代地进行。
- 优点:可以提高软件项目的开发效率,节省开发时间。
- 不足:需要大量的开发人员,不利于项目的管理;要求严格管理文档,使得审核的难度加大。
- (注:下图来自《软件设计师教程》(第5版)(褚华、霍秋艳主编,清华大学出版社))
真题链接
- 喷泉 开发过程模型以用户需求为动力,以对象为驱动,适合于面向对象的开发方法。 开发过程具有 迭代性 和 无间隙性。
6、构件组装模型(CBSD)
7、统一过程(UP/RUP)
4个技术阶段里程碑(技术阶段由主要里程碑所终止)
- 初始阶段:生命周期目标
- 精化阶段:生命周期架构
- 构建阶段:初始运作功能
- 移交阶段:产品发布
真题链接
- (注:下图来自前言中up主视频)
- RUP在每个阶段都有主要目标,并在结束时产生一些制品。在 构建阶段 结束时产生“在适当的平台上集成的软件产品”。
(注:下图来自前言中up主视频)- 统一过程(UP) 的 精化阶段 的里程碑是生命周期架构。关注 需求分析和架构演进。
8、敏捷开发方法
- 极限编程(XP)
- 4大价值观:(见上图)
- 5个原则:(见上图)
- 12个最佳实践:(见上图)
真题链接
- 极限编程(XP) 的价值观包括 沟通、简单性、反馈和勇气。系统的设计要能够尽可能早交付,属于 小型发布 最佳实践。
- 水晶方法(Crystal)
- 水晶法认为 每一个不同的项目都需要一套不同的策略、约定和方法论。
真题链接
- 敏捷开发方法中,水晶方法(Crystal) 认为每一种不同的项目都需要一套不同的策略、约定和方法论。