【软件设计师-从小白到大牛】上午题基础篇:第六章 软件工程基础(重点中的重点)(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层结构自底向上分别是 系统软件、中间件、业务构件、应用软件。


目录
相关文章
|
程序员 项目管理 监控
【软件设计师-从小白到大牛】上午题基础篇:第六章 软件工程基础(重点中的重点)(3)
【软件设计师-从小白到大牛】上午题基础篇:第六章 软件工程基础(重点中的重点)
81 0
【软件设计师-从小白到大牛】上午题基础篇:第六章 软件工程基础(重点中的重点)(3)
|
数据库 数据库管理
【软件设计师-从小白到大牛】下午题基础篇:第二章 数据库设计
ER模型:是实体联系模型,跟DBMS无关,也就是跟具体的数据库管理系统没有关系。 概念结构设计:完成ER模型的建模工作。
100 1
|
存储 算法 前端开发
【软件设计师-从小白到大牛】上午题基础篇:第五章 结构化开发方法
在结构化分析中,用数据流图描述 数据在系统中如何被传送或变换,以及如何对数据流进行变换的功能或子功能,用于对功能建模。 数据字典有以下4类条目:数据流、数据项、数据存储和基本加工。
173 0
|
缓存 数据处理 芯片
【软件设计师-从小白到大牛】上午题基础篇:第一章 计算机组成与体系结构(3)
检错是指可以检查出错误;纠错是指可以在检查出错误的基础上纠正错误。
72 0
|
1月前
|
敏捷开发 监控 数据可视化
软件工程基础知识,软考选择题的重点
本文总结了软件工程的基础知识要点,包括软件生命周期、过程成熟度级别、开发模型、开发方法、软件测试、项目管理(成本估算、进度管理、风险管理)以及软件质量特性,旨在为软考选择题提供复习重点。
55 2
|
自然语言处理 编译器 C语言
【软件设计师-从小白到大牛】上午题基础篇:第七章 程序设计语言与语言处理程序基础(1)
语法分析阶段可以发现程序中的所有语法错误;编译正确的程序必然不包含语法错误;“除数为0”为动态语义错误,动态语义错误只有运行时才能发现。
149 0
【软件设计师-从小白到大牛】上午题基础篇:第七章 程序设计语言与语言处理程序基础(1)
|
5月前
|
安全 网络安全
Day1:360培训学习重点笔记(7.13)
Day1:360培训学习重点笔记(7.13)
|
测试技术 Java 数据库
【软件设计师-从小白到大牛】上午题基础篇:第六章 软件工程基础(重点中的重点)(2)
【软件设计师-从小白到大牛】上午题基础篇:第六章 软件工程基础(重点中的重点)
49 0
【软件设计师-从小白到大牛】上午题基础篇:第六章 软件工程基础(重点中的重点)(2)
【软件设计师-从小白到大牛】上午题基础篇:第七章 程序设计语言与语言处理程序基础(2)
【软件设计师-从小白到大牛】上午题基础篇:第七章 程序设计语言与语言处理程序基础
43 0
【软件设计师-从小白到大牛】上午题基础篇:第七章 程序设计语言与语言处理程序基础(2)
|
6月前
|
存储 算法 Java
【软件设计师—基础精讲笔记12】第12章 软件系统分析与设计(下午题)
【软件设计师—基础精讲笔记12】第12章 软件系统分析与设计(下午题)
91 0