乐于分享
好东西不私藏

软考(系统架构师)-软件工程之开发模型

软考(系统架构师)-软件工程之开发模型

考题分析

软件工程中的开发模型是高频考察点,在基础知识中必出现,一般由给你一段描述来判断是哪种开发模型或者让你选择合适的开发模型

瀑布模型

瀑布模型是最早使用的软件过程模型之一,包含八个阶段。

特点:严格区分阶段,因果关系紧密相连,前一个阶段工作的输出结果是后一个阶段工作的输入

缺点:软件需求的完整性、正确性等很难确定;是一个严格串行化的过程模型,要相当长的时间才能得到一个可以看得见的软件系统;只适合需求明确的项目

喷泉模型

喷泉模型是面向对象的软件开发过程模型

优点:主要体现在无缝、可同步的开发特点上,这种特性使得开发效率得到显著提升,从而节省了大量的开发时间,非常适合面向对象的软件开发

缺点:随着信息的不断增多和需求的不断变化, 文档管理成为一个重要挑战

原型模型(快速原型)

原型模型适合需求不明确的项目,主要有两个阶段:原型开发阶段和目标软件开发阶段

抛弃型原型:将原型作为需求确认的手段,在需求确认结束后,原型就被抛弃不用,重新采用一个完整的瀑布模型进行开发

演化型原型:在需求确认结束后,不断补充和完善原型,直到形成一个完整的产品

V模型

v模型是在瀑布模型的基础上发展而来的,在v模型中,测试贯穿于始终,同时分阶段,测试计划提前

W模型

W模型是由两个V模型组成,一个是开发阶段,一个测试阶段。在W模型中开发和测试是并行的关系

螺旋模型

螺旋模型以快速原型为基础,加上瀑布模型,考虑了风险问题。主要有两个特点:

一是采用【循环】的方式逐步加深系统定义和实现的深度,同时降低风险;

二是确定一系列【里程碑】,确保项目开发过程中的相关利益者都支持可行的和令人满意的系统解决方案

快速应用开发模型(RAD)

特点:重速度、轻流程,先快速搭建出能用的版本,再迭代完善

与快速原型的对比

快速原型:快速原型得到的原型后续可能抛弃

RAD:直接快速做出能用的系统,逐渐演化成成品

统一过程(UP/RUP)

RUP是用例驱动的、以体系结构为中心的、迭代和增量的软件开发过程

RUP的生命周期

RUP有9个核心工作流,分为6个核心过程工作流和3个核心支撑流

6个核心过程工作流:业务建模、需求、分析与设计、实现、测试、部署

3个核心支撑工作流:配置与变更管理、项目管理、环境

RUP把软件开发生命周期划分多个循环,每个循环包含:初始、细化、构造、转交(需要关注下图中每个阶段完成的事项)

RUP描述体系结构的4+1视图模型

用例视图:分析人员和测试人员关注

逻辑视图:最终用户关注

实现视图:程序员关注

进程视图:系统集成人员关注

部署视图:系统工程师关注

敏捷方法

敏捷方法是“适应性”而非“预设性”的敏捷方法是“面向人的”而非“面向过程的”

敏捷方法的核心思想:

1.敏捷方法是适应型而非可预测型,

2.敏捷方法是以人为本而非以过程为本,

3.迭代增量的开发过程

极限编程(XP)

4大价值观:沟通、简单、反馈、勇气

水晶系列方法(Crystal)

目的是发展一种提倡“机动性”的方法

Scrum

侧重于项目管理,使用产品Backlog来管理产品的需求,产品Backlog是一个按照商业价值排序的需求列表

特征驱动开发方法(FDD)

FDD是一个迭代的开发模型,其认为有效的软件开发需要3个要素:人、过程和技术

定义了6种关键的项目角色:项目经理、首席架构设计师、开发经理、主程序员、程序员和领域专家

开放式源码

程序开发人员在地域上分布很广

ASD方法

其核心是三个非线性的,重叠的开发阶段:猜测、合作与学习

动态系统开发方法(DSDM)

倡导以业务为核心

题目演练

2025年5月

RUP中设计确定系统体系结构,制定计划和资源要求的阶段是()

A 初始 B 细化 C 构造 D 转交

答案是 B