【软考 系统架构设计师】软件工程③ 软件开发模型


>>回到总目录<<

为了不辜负已经订阅了专栏的同学们的信任,所以本专栏不会有任何的优惠活动。
另外,当订阅人数每次达到 2 n ( n > 2 ) 2^n(n>2) 2n(n>2)时,订阅价格将会上涨10元。
所以,当下即是最便宜的价格。


软件开发模型

软件开发方法比软件开发模型高一个层级,一个软件开发方法可以包含多个软件开发模型。

瀑布模型

瀑布模型把整个开发严格区分阶段去进行,每个阶段把成果传递到下一个阶段,所以很像瀑布一层一层地往下走。属于结构化开发方法,只适合需求明确的项目。

瀑布模型@万猫学社

如果添加上图中红色回溯的箭头,那么就变成了改进型瀑布模型

V模型

V模型是瀑布模型的变种,属于结构化开发方法。它和瀑布模型的区别是:测试贯穿于始终测试分阶段,测试计划提前

在需求分析时,做验收测试和系统测试的计划;在概要设计时,做集成测试的计划;在详细设计时,做单元测试的计划。

V模型@万猫学社

原型模型

原型模型是迅速建造一个可以运行的软件原型 ,该原型向用户展示待开发软件的全部或部分功能和性能,用户对该原型进行测试评定,给出具体改进意见以丰富细化软件需求,开发人员据此对软件进行修改完善,直至用户满意认可之后,进行软件的完整实现及测试、维护。

螺旋模型

螺旋模型以原型为基础,综合了瀑布模型,并增加了风险分析,沿着螺线自内向外旋转,每旋转一圈都要经过制订计划风险分析实施工程客户评价等活动,并开发原型的一个新版本。经过若干次螺旋上升的过程,得到最终的系统。

练习题

()把整个软件开发流程分成多个阶段,每一个阶段都由目标设定、风险分析、开发和有效性验证以及评审构成。

A、原型模型
B、瀑布模型
C、螺旋模型
D、V模型

请思考片刻…
.
.
.

请思考片刻…@万猫学社

.
.
.

答案:C,只有螺旋模型中有风险分析。

构件组装模型

构件组装模型,也称为基于构件的软件开发(Component Based Software Development,CBSD)模型,是利用
模块化方法,将整个系统模块化,并在一定构件模型的支持下,复用构件库中的一个或多个软件构件,通过组合手
段高效率、高质量地构造应用软件系统的过程。CBSD模型融合了螺旋模型的许多特征,本质上是演化型的,开发
过程是迭代的。

构件组装模型@万猫学社

快速应用开发模型

快速应用开发(Rapid Application Development,RAD)模型是一个增量型的软件开发过程模型,强调极短的开发周期,是瀑布模型(SDCL)和基于构件的软件开发模型(CBSD)的组合。

RAD模型是瀑布模型的一个高速变种,通过大量使用可复用构件,采用基于构件的建造方法赢得快速开发。如果需求理解得好且约束了项目的范围,利用这种模型可以很快地创建出功能完善的信息系统。其流程从业务建模开始,随后是数据建模、过程建模、应用程序生成、测试与交付

统一过程

统一过程(Unified Process,UP)是一个通用过程框架,可以用于种类广泛的软件系统、不同的应用领域、不同的组织类型、不同的性能水平和不同的项目规模。

UP是基于构件的,在为软件系统建模时,UP使用的是UML。与其他软件过程相比,UP具有三个显著的特点:用例驱动以基本架构为中心迭代和增量

基于UP的软件过程分为初始细化构建交付四个阶段,每次经过这四个阶段就会产生一代软件。除非产品退役,否则通过重复同样的四个阶段,产品将演化为下一代产品,但每一次的侧重点都将放在不同的阶段上。四个阶段具体如下:

  • 初始:定义最终产品视图和业务模型,确定系统范围。
  • 细化:设计及确定系统架构,制定工作计划及资源要求。
  • 构建:要开发所有剩余的构件和应用程序功能,把这些构件集成为产品,并进行详细测试。
  • 交付:把产品提交给用户使用。

练习题

基于RUP的软件过程是一个迭代过程。一个开发周期包括初始、细化、构建和移交四个阶段,每次通
过这四个阶段就会产生一代软件,其中建立完善的架构是()阶段的任务。采用迭代式开发,()。

A、初始
B、细化
C、构建
D、移交

A、在每一轮迭代中都要进行测试与集成
B、每一轮迭代的重点是对特定的用例进行部分实现
C、在后续迭代中强调用户的主动参与
D、通常以功能分解为基础

请思考片刻…
.
.
.

请思考片刻…@万猫学社

.
.
.

答案:B、A,其中第二个空,选项B的问题是用例可以部分实现,也可以都实现;选项C的问题是整个迭代都是用户主动参与,不是后续;选项C的问题是以功能分解为基础是结构化方法。

敏捷开发方法

传统软件开发方法和敏捷开发方法的对比:

传统软件开发方法敏捷开发方法
预设性的适应性的
以开发过程为本以人为本
整体分阶段增量迭代,小步快跑
适合小型项目

敏捷开发方法的四大价值观:

  • 沟通:加强面对面沟通,减少文档。
  • 简单:不过度设计。
  • 反馈:及时反馈。
  • 勇气:接受变更的勇气。

敏捷开发方法的12条最佳实践:

  • 计划游戏
  • 小型发布
  • 系统隐喻
  • 简单设计
  • 测试先行
  • 重构
  • 结对编程
  • 集体代码所有制
  • 持续集成
  • 40小时工作机制
  • 现场客户
  • 代码标准

敏捷开发方法包括以下:

  • 极限编程(XP): 一些对费用控制严格的公司中的使用,非常有效。
  • 水晶方法:探索了用最少纪律约束而仍能成功的方法,从而在产出效率与易于运作上达到一种平衡。
  • 开放式源码:程序开发人员在地域上分布很广(其他方法强调集中办公)。
  • SCRUM:明确定义了的可重复的方法过程。
  • 功用驱动开发方法(FDD):编程开发人员分成两类:首席程序员和“类”程序员
  • ASD方法:其核心是三个非线性的、重叠的开发阶段:猜测、合作与学习

SCRUM

产品负责人从相关方获取需求,形成产品待办列表。在迭代计划会议上从产品待办列表中选取一部分产品作为迭代待办事项。由敏捷教练主导在一个迭代(1~4周)中完成迭代待办事项。在完成过程中,做每日站会迭代评审会议。在每个迭代完成后,做迭代回顾会议

练习题

下列关于敏捷方法的叙述中,错误的是()。

A、与传统方法相比,敏捷方法比较适合需求变化大或者开发前期对需求不是很清晰的项目
B、敏捷方法尤其适合于开发团队比较庞大的项目
C、敏捷方法的思想是适应性,而不是预设性
D、敏捷方法以原型开发思想为基础,采用迭代式增量开发

请思考片刻…
.
.
.

请思考片刻…@万猫学社

.
.
.

答案:B,敏捷方法适合小型项目。

()适用于程序开发人员在地域上分布很广的开发团队。

A、水晶系列(Crystal)开发方法
B、开放式源码(Open source)开发方法
C、SCRUM开发方法
D、功用驱动开发方法(FDD)

请思考片刻…
.
.
.

请思考片刻…@万猫学社

.
.
.

答案:B

()中,编程开发人员分成首席程序员和“类”程序员。

A、自适应软件开发(ASD)
B、极限编程(XP)开发方法
C、开放统一过程开发方法(Open UP)
D、功用驱动开发方法(FDD)

请思考片刻…
.
.
.

请思考片刻…@万猫学社

.
.
.

答案:D


>>回到总目录<<

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

万猫学社

您的鼓励将是我创作的最大动力。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值