软件开发的过程模型
一、软件过程模型:
-
所谓软件过程模型就是一种开发策略,这种策略针对软件工程的各个阶段提供了一套范形,使工程的进展达到预期的目的。对一个软件的开发无论其大小,我们都需要选择一个合适的软件过程模型,这种选择基于项目和应用的性质、采用的方法、需要的控制,以及要交付的产品的特点。
-
主要的过程模型:
瀑布模型
快速原型模型
增量模型
迭代模型
螺旋模型
喷泉模型
统一过程模型
1.(model1)瀑布模型

特点:
阶段间具有顺序性和依赖性:必须等前一个阶段的工作完成后,才能开始下一个阶段的工作;前一阶段的输出文档是下一个阶段的输入文档。推迟实现的观点:清楚地区分逻辑设计和物理设计,尽可能推迟程序的物理实现。质量保证的观点:每个阶段都必须完成规定的文档,没有交出合格的文档就是没有完成该阶段的任务;每个阶段结束前都要对所完成的文档进行评审,以便尽早发现问题,改正错误。
优点:
- 可强迫开发人员采用规范的开发方法
- 严格规定每个阶段必须提交的文档
- 要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。
缺点:
- 缺乏灵活性,变动成本高
适用:
注意:适用于需求非常明确的情况!
2.(model2)快速原型模型

快速原型是快速建立起来的可以在计算机上运行的程序,它所能完成的功能往往是最终产品能完成的功能的一个子集。
优点:
- 开发的软件产品通常满足用户需求
- 软件产品开发基本是线性过程
缺点:
- 快速建立起来的系统结构加上连续的修改可能会导致产品质量低下
- 原型理解可能不同
- 不利于开发人员创新
3.(model3)增量模型

特点:
每次提交的都是一个满足用户需求子集的可运行的产品
优点:
- 短时间内可提交完成部分功能
- 逐渐增加产品功能,用户适应产品快
缺点:
- 增量构件划分以及集成困难
- 容易退化为边做边改模型
4.(model4)螺旋模型

特点:
螺旋模型是一种风险驱动型的过程模型。采用循环的方式逐步加深系统定义和实现的深度,同时降低风险。
优点:
- 实现风险管理,降低变更风险
缺点:
- 依赖大量风险评估专家及风险评估工作
适用:
- 开发大型系统和软件
- 预期存在较大风险的项目
5.(model5)喷泉模型

定义:
喷泉模型(fountain model)是一种以用户需求为动力,以对象为驱动的模型,主要用于描述面向对象的软件开发过程。该模型认为软件开发过程自下而上,周期的各阶段是相互迭代和无间隙的
特点:
注意:螺旋模型的基本思想是,使用原型及其他方法来尽量降低风险
优点:
- 将功能需求、功能模块间的关系、数据流等描述清楚,提升需求、设计准确性,最终提升软件质量
缺点:
- 各个阶段有重叠,不利于项目的管理。
- 开发耗时
6.(model6)统一过程模型

定义:
统一过程(UP,unified process)模型是一种“用例驱动,以体系结构为核心,迭代及增量”的软件过程框架,由UML方法和工具支持。
统一过程是迭代和增量的过程,每次迭代分为四个阶段:初始、细化、构造和移交。
初始阶段(inception phase),包括用户沟通和计划活动两个方面,强调定义和细化用例,并将其作为主要模型。细化阶段(elaborattion phase),根据主要的用例描述设计出详细的系统构架。- 构架包括了用例模型、分析模型、设计模型、实现模型(包含一些构件)和实施模型的视图。
构造阶段(construction phase),将设计转化为实现,并进行集成和测试。移交阶段(transition phase),将产品发布给用户进行测试评价,并收集用户的意见,之后再次进行迭代修改产品使之完善。

浙公网安备 33010602011771号