【软件工程】常见七种过程模型介绍

文章目录

  • 前言
  • 一、惯用过程模型(A Generic Process Model)
    • 1.瀑布模型(the waterfall model)
    • 2.增量模型(the incremental model)
    • 3.并行模型(the parallel model)
    • 4.原型模型(the prototyping model)
    • 5.抛弃原型模型(the throwaway prototyping model)
    • 6.螺旋模型(the spiral model)
  • 二、敏捷开发(Agile Development)
    • 7.极限编程过程(模型)(eXtreme Programming,XP)
  • 三、场景小练习
  • 参考

前言

过程模型为软件工程工作提供了特定的路线图,该路线图规定了所有活动的流程、动作、任务、迭代的程度、工作产品及要完成的工作应如何组织。

“混乱的边缘”——有序和混乱之间的一种自然状态,结构化和反常之间的重大妥协。过程模型试图在找出混乱世界中的秩序和适应不断发生变化这两种要求之间寻找平衡。


一、惯用过程模型(A Generic Process Model)

1.瀑布模型(the waterfall model)

瀑布模型又称为经典生命周期,它提出了一个系统的、顺序的软件开发方法,从用户需求规格说明开始,通过策划、建模、构建和部署的过程,最终提供完整的软件支持。

增量模型综合了线性过程流和并行过程流的特征,随着时间的推移,在每个阶段都运用线性序列。整体上,按照瀑布模型的流程实施项目开发;软件的实际创建中,将软件系统按功能分解为许多增量构件,并以构件为单位逐个地创建与交付,直到全部增量构件创建完毕,集成到系统之中交付用户使用。

  1. 模型特点
    并行性
  2. 模型解释
    (1)“并行”的理解,开发过程中的活动、任务、动作同时进行。
    (2)并行模型强调开发周期短,并且需求充分理解且项目范围受限,且高度模块化。
    (这很好理解,比如小A和小B一起去写一篇文章,采用并行的方式得到良好效果的情况
    情况一:小A和小B所写文章的相对较短。
    情况二:小A和小B十分清楚两个人所写的内容,并且自己可以应付自己部分的问题。
    情况三:小A和小B所写的文章最好采用的结构是分部结构,并且部分之间相关性不高。)
  3. 模型存在的问题
    (1)“并行”需要大量的人力资源,随着项目的复杂程度增加所需要的人力资源大于线性增加。
    (2)项目在实际开发中经常会有组件间的调整,并行开发无法解决。
    (3)一旦项目存在较高的技术风险(新技术),并行开发可能发生严重的后果。
  4. 模型适用性
    (1)适用:参考模型解释(2)
    (2)不适用:参考模型存在的问题

4.原型模型(the prototyping model)

很多时候,客户定义了软件的一些基本任务,但是没有详细定义功能和特性需求。另一种情况下,开发人员可能对算法的效率、操作系统的适用性和人机交互的形式等情况并没有把握。在这些情况和类似情况下,采用原型开发模型。

  1. 模型特点
    (1)采用循环的方式逐步加深系统定义和实现的深度,同时降低风险。
    (2)确定一系列里程碑作为支撑点,确保利益相关者认可是可行的且令各方满意的系统解决方案。
  2. 模型解释
    (1)每次演进都要考虑风险,每个演进过程还要标记里程碑(沿着螺旋路径达到的工作产品和条件的结合体)。
    (2)螺旋模型第一圈一般开发出产品的规格说明,接下来开发产品原型,并在每次迭代中完善。开始的规模小,也比较稳定,后续逐渐展开。
    (3)应用在计算机软件的整个生命周期,本质上,当螺旋模型以图中方式进行下去,永远保持可操作性,直到软件的生命周期结束。过程经常会处于休眠状态,但当有变更时,过程总能够在合适的入口点启动(如产品提高)。
  3. 模型存在的问题
    (1)使用螺旋模型每一圈完成都会重新计划和修改项目开销,预算固定的开发,螺旋模型会无法控制收益。(鱼和熊掌不可兼得,风险和收益也一样)。
    (2)风险驱动,那么就很依赖风险评估,如何让客户(最好以合同形式)认定风险、相信演进方向,如何去找到权威的评估专家保证成功,这都是潜在的难题。
  4. 模型适用性
    开发大型系统和软件很实际的方法(但要解决好上面描述的模型存在的问题)。

二、敏捷开发(Agile Development)

7.极限编程过程(模型)(eXtreme Programming,XP)

极限编程是一个轻量级的、灵巧的软件开发方法,同时它也是一个非常严谨和周密的方法。它的基础和价值观是交流、朴素、反馈和勇气(任何一个软件项目都可以从四个方面入手进行改善:加强交流;从简单做起;寻求反馈;勇于实事求是。)


参考

《软件工程-实践者的研究方法》(《Software Engineering: A Practitioner’s Approach》, 7/e (McGraw-Hill, 2009))

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年3月10日
下一篇 2022年3月10日

相关推荐