【软考】软件开发模型之演化模型

目录

        • 一、说明
        • 二、原型模型
          • 2.1 说明
          • 2.2 优点
          • 2.3 缺点
        • 三、螺旋模型
          • 3.1 说明
          • 3.2 优点
          • 3.3 缺点

一、说明
  • 1.软件类似于其他复杂的系统,会随着时间的推移而演化。
  • 2.在开发过程中,常常会面临以下情形:商业和产品需求经常发生变化,直接导致最终产品难以实现;严格的交付时间使得开发团队不可能圆满地完成软件产品,但是必须交付功能有限的版本以应对竞争或商业压力;很好地理解了核心产品和系统需求,但是产品或系统扩展的细节问题却没有定义。
  • 3.软件开发人员需要一种专门应对不断演变的软件产品的过程模型。
  • 4.演化模型是迭代的过程模型,使得软件开发人员能够逐步开发出更完整的软件版本
  • 5.演化模型特别适用于对软件需求缺乏准确认识的情况
  • 6.典型的演化模型有原型模型和螺旋模型
二、原型模型
2.1 说明
  • 1.比较适合于用户需求不清、需求经常变化的情况
  • 2.原型是预期系统的一个可执行版本,反映了系统性质的一个选定的子集
  • 3.一个原型不必满足目标软件的所有约束,目的是能快速、低成本构建原型
  • 4.原型模式开始于沟通,目的是定义软件的总体目标,,标识需求,然后快速制订原型开发的计划,确定原型的目标和范围,采用快速射击的方式对其进行建模,并构建原型
  • 5.被开发的原型应交付给客户使用,并收集客户的反馈意见,这些反馈意见可在下一轮中对原型进行改进
  • 6.在前一个原型需要改进,或者需要扩展其范围的时候,进入下一轮原型的迭代开发
  • 7.根据使用原型的目的不同,原型可以分为探索型原型、实验型原型和演化型原型3种
  • 8.探索型原型的目的是要弄清目标的要求,确定所希望的特性,并探讨多种方案的可行性
  • 9.实验型原型的目的是验证方案或算法的合理性,是在大规模开发和实现前,用于考查方案是否合适、规格说明是否可靠等
  • 10.演化型原型的目的是将原型作为目标系统的一部分,通过对原型的多次改进,逐步将原型演化成最终的目标系统
2.2 优点
  • 1.用户需求不清、变化较大的时候,帮助用户搞清、验证需求
  • 2.探索多种方案,搞清目标
  • 3.开发一个用户可见的系统界面,支持用户界面设计
2.3 缺点
  • 1.不适合大规模软件开发,例如火箭、卫星发射系统
三、螺旋模型
3.1 说明
  • 1.将瀑布模型和演化模型结合起来,加入两种模型均忽略的风险分析,弥补两种模型的不足
  • 2.螺旋模型将开发过程分为几个螺旋周期,每个螺旋周期大致和瀑布模型相符合
  • 3.每个螺旋周期分为制订计划、风险分析、实施工程和用户评估
  • 4.制订计划:确定软件的目标,选定实施方案,明确项目开发的限制条件
  • 5.风险分析:分析所选的方案,识别风险,消除风险
  • 6.实施工程:实施软件开发,验证阶段性产品
  • 7.用户评估:评估开发工作,提出修正建议,建立下一个周期的开发计划
3.2 优点
  • 1.强调风险分析,使得开发人员和用户对每个演化层出现的风险有所了解,从而做出相应的反应
  • 2.特别适用于庞大、复杂并且具有高风险的系统
  • 3.螺旋模型支持用户需求的动态变化,为用户参与软件开发的所有关键决策提供了方便,有助于提高软件的适应能力,并且为项目管理人员及时调整管理决策提供了便利,从而降低了软件开发的风险。
3.3 缺点
  • 1.在使用螺旋模型进行软件开发时,需要开发人员具有相当丰富的风险评估经验和专门知识。
  • 2.过多的迭代次数会增加开发成本,延迟提交时间

你可能感兴趣的:(软考,软考)