软件开发的过程模型

一、软件过程模型:

  • 所谓软件过程模型就是一种开发策略,这种策略针对软件工程的各个阶段提供了一套范形,使工程的进展达到预期的目的。对一个软件的开发无论其大小,我们都需要选择一个合适的软件过程模型,这种选择基于项目和应用的性质、采用的方法、需要的控制,以及要交付的产品的特点。

  • 主要的过程模型:
    瀑布模型
    快速原型模型
    增量模型
    迭代模型
    螺旋模型
    喷泉模型
    统一过程模型


1.(model1)瀑布模型

image
特点:

  1. 阶段间具有顺序性和依赖性:必须等前一个阶段的工作完成后,才能开始下一个阶段的工作;前一阶段的输出文档是下一个阶段的输入文档。
  2. 推迟实现的观点:清楚地区分逻辑设计和物理设计,尽可能推迟程序的物理实现。
  3. 质量保证的观点:每个阶段都必须完成规定的文档,没有交出合格的文档就是没有完成该阶段的任务;每个阶段结束前都要对所完成的文档进行评审,以便尽早发现问题,改正错误。

优点:

  • 可强迫开发人员采用规范的开发方法
  • 严格规定每个阶段必须提交的文档
  • 要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。

缺点:

  • 缺乏灵活性,变动成本高

适用:
注意:适用于需求非常明确的情况!


2.(model2)快速原型模型

image

快速原型是快速建立起来的可以在计算机上运行的程序,它所能完成的功能往往是最终产品能完成的功能的一个子集。

优点:

  • 开发的软件产品通常满足用户需求
  • 软件产品开发基本是线性过程

缺点:

  • 快速建立起来的系统结构加上连续的修改可能会导致产品质量低下
  • 原型理解可能不同
  • 不利于开发人员创新

3.(model3)增量模型

image

特点:
每次提交的都是一个满足用户需求子集的可运行的产品

优点:

  • 短时间内可提交完成部分功能
  • 逐渐增加产品功能,用户适应产品快

缺点:

  • 增量构件划分以及集成困难
  • 容易退化为边做边改模型

4.(model4)螺旋模型

image

特点:
螺旋模型是一种风险驱动型的过程模型。采用循环的方式逐步加深系统定义和实现的深度,同时降低风险。

优点:

  • 实现风险管理,降低变更风险

缺点:

  • 依赖大量风险评估专家及风险评估工作

适用:

  • 开发大型系统和软件
  • 预期存在较大风险的项目

5.(model5)喷泉模型

image
定义:
喷泉模型(fountain model)是一种以用户需求为动力,以对象为驱动的模型,主要用于描述面向对象的软件开发过程。该模型认为软件开发过程自下而上,周期的各阶段是相互迭代无间隙的

特点:
注意:螺旋模型的基本思想是,使用原型及其他方法来尽量降低风险

优点:

  • 将功能需求、功能模块间的关系、数据流等描述清楚,提升需求、设计准确性,最终提升软件质量

缺点:

  • 各个阶段有重叠,不利于项目的管理。
  • 开发耗时

6.(model6)统一过程模型

image

定义:
统一过程(UP,unified process)模型是一种“用例驱动,以体系结构为核心,迭代及增量”的软件过程框架,由UML方法和工具支持。
统一过程是迭代和增量的过程,每次迭代分为四个阶段:初始细化构造移交

  • 初始阶段(inception phase),包括用户沟通和计划活动两个方面,强调定义和细化用例,并将其作为主要模型。
  • 细化阶段(elaborattion phase),根据主要的用例描述设计出详细的系统构架。
  • 构架包括了用例模型、分析模型、设计模型、实现模型(包含一些构件)和实施模型的视图。
  • 构造阶段(construction phase),将设计转化为实现,并进行集成和测试。
  • 移交阶段(transition phase),将产品发布给用户进行测试评价,并收集用户的意见,之后再次进行迭代修改产品使之完善。
posted @ 2022-12-01 16:27  *鱼之乐  阅读(527)  评论(0)    收藏  举报