软件开发模型的综述

来源:互联网 发布:java 并发编程实践 编辑:程序博客网 时间:2024/05/21 17:38
  软件开发模型是指软件开发全部过程、活动和任务的结构框架。给出了软件开发中各个活动之间的关系,它是软件开发过程的概括,是软件工程的重要内容。它能为软件工程管理提供里程碑和进度表,为软件开发提供原则和方法。目前已经出现过多种软件开发过程模型,其中多数模型主要关注软件生存周期中从需求分析开始到软件确认测试为止的过程。

     经典的软件开发模型大体可分为三种类型:瀑布模型;渐进式开发模型,如原型模型,螺旋模型等;变换模型;随着面向对象开发方法,UML的广泛应用,逐渐出现了与之相适应,针对现代大型和复杂软件系统的开发过程模型,如统一软件开发过程(RUP)。

模型

说明

组成

 

优点

缺点

适用范围

瀑布模型

瀑布模型根据软件生存周期各个阶段的任务从可行性研究开始,逐步进行变换,直至通过确认测试并得到用户确认的软件产品为止。上一阶段的变换结果是下一阶段变换的输入,相邻两个阶段具有因果关系,紧密相联。

从可行性研究阶段到确认测试阶段依次是可行性研究,需求分析,概要设计,详细设计,软件构造,单元测试,集成测试,确认测试,使用与维护。

 

有利于软件开发方法和工具的研究与使用,从而提高了大型软件项目开发的质量和效率。

1.需求确定后,用户和软件项目负责人要等相当长的时间。

2.在软件开发的初始阶段指明软件系统的全部需求是困难的,有时甚至是不现实的。

非经常变动的项目

快速原型模型

软件开发人员根据用户提出的软件定义,快速地开发一个原型,它向用户展示了待开发软件系统的全部或部分功能和性能,在征求用户对原型意见的过程中,进一步修改,完善,确认软件系统的需求并达成一致的理解。

有初步需求分析,快速设计,构造原型,用户评估原型(新需求)原型改进,产品开发等阶段。

 

有助于需求的定义和确认,克服了瀑布模型的缺点,减少由于软件需求不明确带来的开发风险 

1.所选用的开发技术和工具不一定符合主流的发展;

2.快速建立起来的系统结构加上连续的修改可能会导致产品质量低下。 

3.限制开发人员的创新 。

用户需求模糊不明的情况下。

螺旋模型

以原型为基础沿螺线旋转、每转一圈都经过计划/风险分析/实施/评估等过程且得到相应新版本、经过若干次螺旋上升得到最终版本。

需求分析

风险分析

工程实现

评审

 

1.设计上的灵活性,可以随时变更。

2.以小的分段来构建大型系统,使成本计算变得简单容易。     

很难让用户确信这种演化方法的结果是可以控制的。建设周期长,无法满足当前用户需求。 

需求不明确的经常变化的大型复杂系统。

统一软件开发过程

RUP,是工业界对软件开发中经实践证明行之有效的的方法和过程进行总结,主要包括来自迭代式开发,需求管理,基于构件的软件体系结构,可视化建模,验证软件质量,控制软件变更等几个方面的实践经验,逐步完善形成的一种软件开发过程。此外,RUP非常适合与统一建模语言UML结合起来使用。RUP开发过程可以用具有两个坐标的二维结构进行描述。

业务建模

需求

分析与设计

实施

测试

部署

配置与变更管理

项目管理

环境

 

1.提高了团队生产力

2.建立了简洁和清晰的过程结构,为开发过程提供较大的通用性。

3.确保全体成员共享相同的知识基础 

缺少关于软件运行和支持等方面的内容;此外,它没有支持多项目的开发结构,这在一定程度上降低了在开发组织内大范围实现重用的可能性。 

 适合经常变动需求的系统。是一个非常好的开端,可以用OPENOOSP等其他软件过程的相关内容对RUP进行补充和完善。


原创粉丝点击