软考120-上午题-【软件工程】-软件开发模型02

一、演化模型

        软件类似于其他复杂的系统,会随着时间的推移而演化。在开发过程中,常常会面临以下情形:商业和产品需求经常发生变化,直接导致最终产品难以实现;严格的交付时间使得开发团队不可能圆满地完成软件产品,但是必须交付功能有限的版本以应对竞争或商业压力;很好地理解了核心产品和系统需求,但是产品或系统扩展的细节问题却没有定义。在上述情况和类似情况下,软件开发人员需要一种专门应对不断演变的软件产品的过程模型。

        演化模型是迭代的过程模型,使得软件开发人员能够逐步开发出更完整的软件版本。演化模型特别适用于对软件需求缺乏准确认识的情况。典型的演化模型有:原型模型螺旋模型等。

1-1、原型模型

1、定义

        并非所有的需求都能够预先定义,大量的实践表明,在开发初期很难得到一个完整的、准确的需求规格说明。这主要是由于客户往往不能准确地表达对未来系统的全面要求,开发者对要解决的应用问题模糊不清,以至于形成的需求规格说明常常是不完整的、不准确的,有时甚至是有歧义的。

        此外,在整个开发过程中,用户可能会产生新的要求,导致需求的变更。

        而瀑布模型难以适应这种需求的不确定性和变化,于是出现了快速原型(Rapid Prototype)这种新的开发方法。

        原型方法比较适合于用户需求不清、需求经常变化的情况。当系统规模不是很大也不太复杂时,采用该方法比较好。

        原型是预期系统的一个可执行版本,反映了系统性质的一个选定的子集。一个原型不必满足目标软件的所有约束,其目的是能快速、低成本地构建原型。当然,能够采用原型方法是因为开发工具的快速发展,使得能够迅速地开发出一个让用户看得见、摸得着的系统框架。这样,对于计算机不是很悉的用户就可以根据这个框架提出自己的需求。开发原型系统首先确定用户需求,开发初始原型,然后求用户对初始原型的改进意见,并根据意见修改原型。原型模型如图所示。

        原型模型开始于沟通,其目的是定义软件的总体目标,标识需求,然后快速制订原型开发的计划,确定原型的目标和范围,采用快速射击的方式对其进行建模,并构建原型。被开发的原型应交付给客户使用,并收集客户的反馈意见,这些反馈意见可在下一轮中对原型进行改进。在前一个原型需要改进,或者需要扩展其范围的时候,进入下一轮原型的迭代开发。

2、真题

真题1:

瀑布模型:要求,需求明确;

真题2:

真题3:

螺旋模型:大规模的项目,风险分析。

1-2、螺旋模型

1、定义

对于复杂的大型软件,开发一个原型往往达不到要求。螺旋模型将瀑布模型和演化模型结合起来,加入了两种模型均忽略的风险分析,弥补了这两种模型的不足。

螺旋模型将开发过程分为几个螺旋周期,每个螺旋周期大致和瀑布模型相符合,如图所示。

每个螺旋周期分为如下 4 个工作步骤:

(1) 制订计划。确定软件的目标,选定实施方案,明确项目开发的限制条件。

(2) 风险分析。分析所选的方案,识别风险,消除风险。

(3) 实施工程。实施软件开发,验证阶段性产品。

(4) 用户评估。评价开发工作,提出修正建议,建立下一个周期的开发计划。

        螺旋模型强调风险分析,使得开发人员和用户对每个演化层出现的风险有所了解,从而做出应有的反应。因此,该模型特别适用于庞大、复杂并且具有高风险的系统

        与瀑布模型相比,螺旋模型支持用户需求的动态变化,为用户参与软件开发的所有关键决策提供了方便,有助于提高软件的适应能力,并且为项目管理人员及时调整管理决策提供了便利,从而降低了软件开发的风险。在使用螺旋模型进行软件开发时,需要开发人员具有相当丰富的风险评估经验和专门知识。

        另外,过多的迭代次数会增加开发成本,延迟提本时间。

2、真题

真题1:

瀑布:需求明确,变更少;

原型:用户需求不是很明确,变更多;(系统规模不是很大,也不复杂)

增量:短时间内快速的开发一个可以直接运行的产品。

螺旋模型:风险分析。(复杂的大型软件)

真题2:

真题3:

1-3、喷泉模型

1、定义

        喷泉模型是一种以用户需求为动力,以对象作为驱动的模型,适合于面向对象的开发方法。
它克服了瀑布模型不支持软件重用和多项开发活动集成的局限性。

支持软件重用、多项开发活动集成

喷泉模型使开发过程具有迭代性无间隙性,如图所示。

        选代意味着模型中的开发活动常常需要重复多次,在迭代过程中不断地完善软件系统。

        无间隙是指在开发活动(如分析、设计、编码) 之间不存在明显的边界,也就是说,它不像瀑布模型那样,在需求分析活动结束后才开始设计活动,在设计活动结束后才开始编码活动,而是允许各开发活动交叉、迭代地进行

        喷泉模型的各个阶段没有明显的界线,开发人员可以同步进行。其优点是可以提高软件项目的开发效率,节省开发时间。由于喷泉模型在各个开发阶段是重叠的,在开发过程中需要大量的开发人员,不利于项目的管理。此外,这种模型要求严格管理文档,使得审核的难度加大

2、真题

真题1:

真题2:

真题3:

1-4、统一过程模型

1、定义

        统一过程模型是一种“用例和风险驱动,以架构为中心,迭代并且增量”的开发过程,由UML 方法和工具支持。

        迭代的意思是将整个软件开发项目划分为许多个小的“袖珍项目”,每个“袖珍项目”都包含正常软件项目的所有元素:计划、分析和设计、构造、集成和测试,以及内部和外部发布。

统一过程定义了 4 个技术阶段及其制品:

1)起始阶段

        起始阶段专注于项目的初创活动。

2)精化阶段

        精华阶段在理解了最初的领域范围之后进行需求分析架构演进。

3)构建阶段

        构建阶段关注系统的构建,产生实现模型。

4)移交阶段

        移交阶段关注于软件提交方面的工作,产生软件增量

        在每个迭代中有 5 个核心工作流:捕获系统应该做什么的需求工作流,精化和结构化需求的分析工作流,在系统构架内实现需求的设计工作流,构造软件的实现工作流,验证实现是否如期望那样工作的测试工作流。

        随着 UP 的阶段进展,每个核心工作流的工作量发生了变化。4 个技术阶段由主要里程碑所终止。

  • 初始阶段:生命周期目标
  • 精化阶段:生命周期架构
  • 构建阶段:初始运作功能
  • 移交阶段:产品发布。

        统一过程的典型代表是 RUP。RUP 是 UP 的商业扩展,完全兼容 UP,但比 UP 更完整、更详细。

2、真题

真题1:

真题2:

真题3:

  • 初始阶段:生命周期目标
  • 精化阶段:生命周期架构
  • 构建阶段:初始运作功能
  • 移交阶段:产品发布。

真题4:

真题5:

  • 20
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值