【软件设计师-从小白到大牛】上午题基础篇:第六章 软件工程基础(重点中的重点)(1)

简介: 【软件设计师-从小白到大牛】上午题基础篇:第六章 软件工程基础(重点中的重点)(1)

一、软件开发模型

image.png


1、瀑布模型(SDLC)

各个活动依照线性顺序连接,只适用于 需求明确 的项目。

优点:容易理解,管理成本低;强调开发的阶段性早期计划及需求调查和产品测试。

不足:客户需求必须十分明确;对项目风险管控能力弱,从而导致项目常常延期完成,开发费用超出预算。


真题链接

瀑布模型 适用于: 系统需求是完善的、简明的、一致的,而且可以先于设计和实现完成之前产生的项目。

2、其他经典模型概览

image.png


3、 增量模型

增量模型融合了瀑布模型的基本成分和原型实现的迭代特征

优点:增量模型作为瀑布模型的一个变体具有瀑布模型的所有优点;第一个可交付版本所需要的成本和时间少;风险不大;减少用户需求的变更;运行增量投资,即在项目开始时,可以仅对一个或两个增量投资。

不足:可能会造成增量不稳定;增量可能需要重新开发,重新发布;管理发生的成本、进度和配置的复杂性可能会超出组织的能力。

(注:下图来自《软件设计师教程》(第5版)(褚华、霍秋艳主编,清华大学出版社))

f4bf8c79808aab3f2879398847ffdacd_6b6e23f3b8e947269006262f010b8e96.jpeg

真题链接

增量模型:是一种能够快速构造可运行产品的好方法。

4、原型模型、螺旋模型

原型模型

原型方法比较适合于 用户需求不清、需求经常变化 的情况,能快速、低成本地构建原型。

(注:下图来自《软件设计师教程》(第5版)(褚华、霍秋艳主编,清华大学出版社))

06c97087505c32bde8465bd611508903_d7b4c896b0834134a4a5f36a2bcb8b1a.jpeg

真题链接

为了有效地捕获系统需求,应采用 原型模型。

螺旋模型

有多个模型的组合,具有多个模型的特征。最显著的特征是:有风险分析,适用于 庞大、复杂并且具有高风险的系统。

优点:支持用户需求的动态变化;有助于提高软件的适应能力;降低了软件开发的风险。

不足:需要开发人员具有相当丰富的风险评估经验和专门知识;过多的迭代次数会增加开发成本,延迟提交时间。

image.png

真题链接

某公司计划开发一种产品,技术含量很高,与客户相关的风险也很多,则最适于采用 螺旋 开发过程模型。

5、V模型、喷泉模型与RAD

image.png


V模型

V模型在瀑布模型基础上将基本问题逐步细化,描述了质量保证活动和沟通、建模相关活动以及早期构建相关的活动之间的关系。(优点和不足与瀑布模型类似)

喷泉模型

喷泉模型是一种 以用户需求为动力,以对象作为驱动 的模型,适用于 面向对象 的开发方法。开发过程具有 迭代性 和 无间隙性,允许各开发活动交叉、迭代地进行。

优点:可以提高软件项目的开发效率,节省开发时间。

不足:需要大量的开发人员,不利于项目的管理;要求严格管理文档,使得审核的难度加大。

(注:下图来自《软件设计师教程》(第5版)(褚华、霍秋艳主编,清华大学出版社))

91436c55e1a87bced39b724d611189f2_d0cfacad0e95448e856e2c3bb1533d3e.jpeg

真题链接

喷泉 开发过程模型以用户需求为动力,以对象为驱动,适合于面向对象的开发方法。 开发过程具有 迭代性 和 无间隙性。

6、构件组装模型(CBSD)

image.png


7、统一过程(UP/RUP)

image.png

4个技术阶段里程碑(技术阶段由主要里程碑所终止)


初始阶段:生命周期目标

精化阶段:生命周期架构

构建阶段:初始运作功能

移交阶段:产品发布

真题链接

(注:下图来自前言中up主视频)

d0be09985e9bb7a140edab4f023b28d6_fd167659d5934e0f812ec370b764e44e.png

RUP在每个阶段都有主要目标,并在结束时产生一些制品。在 构建阶段 结束时产生“在适当的平台上集成的软件产品”。

(注:下图来自前言中up主视频)

f301b68da710cb00a74702d5b22cf2fb_93a135874018434dbcc12180955c8a01.png

统一过程(UP) 的 精化阶段 的里程碑是生命周期架构。关注 需求分析和架构演进。

8、敏捷开发方法

image.png


极限编程(XP)

4大价值观:(见上图)

5个原则:(见上图)

12个最佳实践:(见上图)

真题链接

极限编程(XP) 的价值观包括 沟通、简单性、反馈和勇气。系统的设计要能够尽可能早交付,属于 小型发布 最佳实践。

水晶方法(Crystal)

水晶法认为 每一个不同的项目都需要一套不同的策略、约定和方法论。

真题链接

敏捷开发方法中,水晶方法(Crystal) 认为每一种不同的项目都需要一套不同的策略、约定和方法论。

并列争求法(Scrum)

并列争求法使用 迭代 的方法,其中,把每30天一次的迭代称为一个“冲刺”,并按需求的优先级别来实现产品。

真题链接

在敏捷过程的开发方法中,并列争求法 使用了迭代的方法,其中,把每段时间(30天)一次的迭代称为一个“冲刺”,并按需求的优先级来实现产品,多个自组织和自治的小组并行地递增实现产品。

(注:下图来自前言中up主视频)

761683d5903639cac4d20a8d819df746_72bdf8af43cd4a29b7463ba1162b7f74.png

自适应软件开发(ASD)(了解即可)

敏捷统一过程(AUP)(了解即可)

二、信息系统开发方法


image.png

面向对象的开发方法:Booch方法、Coad方法 和 OMT方法。

面向数据结构的开发方法:Jackson方法。

真题链接

采用面向对象方法开发软件的过程中,抽取和整理用户需求并建立问题域精确模型的过程叫 面向对象分析。

若用户需求不清晰且经常发生变化,但系统规模不太大且不太复杂,则最适宜采用 原型化 开发方法,对于数据处理领域的问题,若系统规模不太大且不太复杂,需求变化也不大,则最适宜采用 结构化 开发方法。

(注:下图来自前言中up主视频)

fa7288f7522699cc84e959cb546e5e54_72ddcffd1fe2448083be96c6f2e3a245.png

软件的 分层式体系结构 把软件系统划分为4层,这4层结构自底向上分别是 系统软件、中间件、业务构件、应用软件。


目录
相关文章
|
存储 算法 前端开发
【软件设计师-从小白到大牛】上午题基础篇:第五章 结构化开发方法
在结构化分析中,用数据流图描述 数据在系统中如何被传送或变换,以及如何对数据流进行变换的功能或子功能,用于对功能建模。 数据字典有以下4类条目:数据流、数据项、数据存储和基本加工。
376 0
|
存储 数据采集 监控
信息系统架构开发方法ADM
信息系统架构开发方法ADM
746 5
|
存储 算法 安全
PKCS#1、PKCS#5、PKCS#7、PKCS#8到底是什么?
PKCS#1、PKCS#5、PKCS#7、PKCS#8到底是什么?
2067 0
|
存储 人工智能 大数据
Huggingface又上不去了?这里有个新的解决方案!
AI开发者都知道,HuggingFace是一个高速发展的社区,包括Meta、Google、Microsoft、Amazon在内的超过5000家组织机构在为HuggingFace开源社区贡献代码、数据集和模型。
|
监控 算法 自动驾驶
软件体系结构 - 调度算法(1) 最早截至时间优先
【4月更文挑战第19天】软件体系结构 - 调度算法(1) 最早截至时间优先
747 0
|
7月前
|
存储 人工智能 供应链
申报开启|2024年阿里云就业育人项目申报指南
2024年阿里云就业育人项目申报于10月14日开启,面向高等职业院校和本科院校。项目包括人工智能通识和AIGC设计两个方向,旨在培养学生的智能化素养和技能。教育部指导下,阿里云提供软硬件资源支持,申报截止日期为2024年11月15日。详情及申请办法请访问:https://httpjob.ncss.cn/jyyr。咨询钉钉群号:104810000320。
|
12月前
|
机器学习/深度学习 搜索推荐 数据挖掘
深度学习之因果关系建模
基于深度学习的因果关系建模是一项旨在通过深度学习技术识别和理解数据之间因果关系的研究领域。因果关系建模不仅仅关注变量之间的相关性,还希望揭示导致某种结果的根本原因。
370 2
|
12月前
|
安全 网络安全 Windows
网易邮箱显示附件上传不成功,请重试!(错误码:FR_INVALID_REQUEST) 的解决方法
网易邮箱显示附件上传不成功,请重试!(错误码:FR_INVALID_REQUEST) 的解决方法
|
SQL 存储 数据处理
SQL中的运算符:数据操作的核心工具
【8月更文挑战第31天】
930 0
|
JSON Java 网络安全
【JavaSE专栏91】Java如何主动发起Http、Https请求?
【JavaSE专栏91】Java如何主动发起Http、Https请求?
309 1