8种典型软件过程模型,软件过程模型的定义

软件过程各类模型详细介绍(重要) 瀑布模型瀑布模型的优点瀑布模型的缺点瀑布模型适合的项目类型 V过程模型V过程模型的特点V过程模型适合的项目 原型模型原型模型的特点原型模型的优点 增量模型增量模型适合的项目增量模型的优点增量模型的不足 螺旋模型螺旋模型的特点螺旋模型和瀑布模型的关系螺旋模型适合的项目 Rational统一过程模型关于这几个模型的联系和区别(自己总结)原型模型和增量模型瀑布模型和螺旋模型

瀑布模型

瀑布模型也称为软件生命周期模型,根据软件生命周期各个阶段的任务,瀑布模型从可行性研究,逐步进行阶段性变化,直到最后通过确认测试并得到用户认可的软件产品。
瀑布模型中上一阶段的输出结果是下一阶段的输入,因此阶段间具有顺序性和依赖性
为了保证软件开发的正确性,每一阶段任务完成后,都必须对它的阶段性产品进行评审,确定后再转入下一阶段的工作。如果评审过程发生了错误和疏漏,应该返回到前面有关阶段修正错误,软件项目要避免先前认为已经完成的任务的返工,否则会影响项目进度。

瀑布模型的优点

是一个传统的软件过程模型,提供了软件开发的基本框架,是如软件项目中应用最广泛的过程模型之一。瀑布模型简单、易用、直观、开发进程比较严格,恰当的运用瀑布模型可以得到较高的软件质量,并能更准确的控制项目进度。

瀑布模型的缺点

过于理想化,要求软件在开发的初始阶段就完整而准确的获取用户需求,以后需求就不再变化,直到软件开发完成,但是实际情况是许多项目需求在初期并不明晰,额日俄会不断变更。而且用户在整个项目末期才能得到软件的可运行版本,如果此时修改,则整个项目有巨大的人力、财力和时间损失。

瀑布模型适合的项目类型

在项目初期就能获得完整和明确的产品需求,而且需求不会随着时间的推移而逐步变更,项目的解决方案在项目初期也很明确。

V过程模型

V过程模型与瀑布模型有较多类似之处,要求软件开发阶段按顺序一步步执行,前一阶段的输出是后一阶段的输入(这一点和瀑布模型类似),但是更强调测试活动,使创建产品的每一步都由相应的测试活动来进行确认,在测试中,如果发现了错误,则要回到相应的阶段去修正错误。

V过程模型的特点

强调开发活动与测试活动的对应性,在执行每一步开发活动时必须考虑对应的测试活动,而不是到了项目后期才开始对测试进行设计。

V过程模型适合的项目

恰当的使用V过程模式可以得到高质量的软件产品,主要适用于:项目需求在项目初期就能完整而明确的定义,解决方案在项目初期也比较明确,同时对软件产品的安全性、可靠性等质量指标具有很高要求。

原型模型

原型模型是针对软件项目初期产品需求的不确定性问题而提出的,用户在项目初期只能提出一些大致的功能和性能需求,而功能细节,人机界面和输入/输出的具体形式等详细的需求是不确定的,此时开发人员可以根据用户的需求快速开发出来一个可运行的系统原型,向用户展示系统的运行情况,用户通过观察系统原型,向开发人员提出反馈意见,开发人员根据反馈意见进一步修改原型,直到与用户达成一致并获得准确的软件系统需求。

原型模型的特点

开发人员要尽可能快的建立系统原型,内部结构并不重要,在存储空间和运行效率方面也可以不做严格要求,重要的是充分展示软件的可见部分,如人机界面、数据的输入/输出格式等。
第四代语言(4GL)、超文本都是常见的原型开发工具。

原型模型的优点

由于原型是用户和软件开发人员共同设计和评审的,因此利用原型能统一用户和软件开发人员对软件项目需求的理解,减少项目的各种假设和风险。利用原型定义和确认了软件的需求后,就可以对软件系统进行设计、编码和测试了。

增量模型

增量模型也成为渐增模型,将软件分解为一系列小的构件,按照一定顺序实现和向用户交付构件,每个要交付的构件应该给用户带来一定效益。
增量模型中,软件开发者通过需求分析和概要设计把软件产品分解为若干个构件,每个构件可完成特定的功能,可称为一个“增量”,然后制定增量交付计划、确定按什么顺序开发交付增量构件。
每设计和实现一个增量,就把它交付给用户使用,并由用户进行反馈,评价结果可以作为反馈给前面的各个阶段,有利于改进这些阶段的工作。
一些增量的开发工作可以适当并行执行,例如在实现或者评价第一个增量的同时就开始设计第二个增量模型,以提高软件开发的效率。
在制定交付计划时,有些增量之间存在物理依赖性,因此其开发和交付的顺序是固定的,而另外一些增量之间则没有依赖性,此时可根据增量对用户得价值和风险、开发成本等因素确定增量的交付次序。

一般来说,应该首先开发系统的核心部分,或者具有高风险的部分功能,这部分功能对项目的成功起到重要作用,然后在逐步的增加其他功能,每个增量的规模要适中,不能过大也不能过小,而且要使用户在使用增量的过程中获得一些收益。

增量模型适合的项目

增量模型要求软件体系结构必须便于将新的增量构件添加到现有产品中,软件体系结构必须是开放的,易扩充 的。

增量模型的优点

使用增量模型能更快地得到可操作的系统,可以较早的、多次的从用户得到反馈,从而改进软件开发工作,降低项目风险,这是增量模型对瀑布模型的一个最重要的的改进。
而且用户可以较早地通过使用软件得到效益,软件开发组织也能较早的得到一些投资回报,逐步交付产品功能能让用户有较充分的时间学习和使用新的产品,减少一个全新的软件给用户使用者带来的冲击。

增量模型的不足

增量开发过程中也有可能出现反复,如果需求发生了变更,一些增量则可能需要重新开发。

螺旋模型

螺旋模型是与1988年提出的,将瀑布模型与软件项目的迭代特性相结合,特别注重项目风险的分析和应对,充分利用了原型方法降低项目风险。
图中的螺旋线每绕一周代表一次迭代,每次迭代经历4个阶段:

制定计划
通过需求分析理解应用领域,获取用户需求,经过一个迭代的工作之后,根据用户和软件开发人员对迁移迭代工作成果的评审,修改和完善需求,明确下一轮软件开发的目标和约束条件,并选择适宜的开发方案,在此基础上制定新一轮迭代的软件开发计划。风险分析
评审开发方案和开发计划,识别出风险并给出消除或降低风险的途径。这一步通常需要使用构造系统原型的方式来确认需求和开发方案,降低项目风险。工程实施
实施第一阶段制定的开发计划,构造软件产品,包括设计、编码测试等。客户评估
将本系迭代开发的软件版本提交用户使并征询用户的意见,根据用户意见整理新的产品需求,开始计划下一次迭代。
每次迭代结束后产生一个新的版本。 螺旋模型的特点

螺旋模型是一种演化式的过程模型,初始的迭代可能只产生软件的一个概念模型,而随后的迭代会产生逐渐完善的发行版本和增强版本,因此螺旋模型自然地包括了软件维护阶段,迭代过程可以无休止地进行下去。

螺旋模型和瀑布模型的关系

螺旋模型的每一次迭代中的4个阶段是对典型的瀑布模型的发展,它不仅留了瀑布模型中系统地、按阶段逐步地进行软件开发和“超帅的茉莉、边评审”的风格,而且还引入了风险分析,并把制作原型作为风险分析的主要措施。用户始终关心、参与软件开发并对阶段性的软件版本提出修改意见,这对保证软件产品的质量是十分有效的。

螺旋模型适合的项目

特别适合于规模大,风险高的软件项目。大型软件项目通常有很多的不确定性和风险,而且异常复杂,如果采用瀑布模型那种“一次性完成”的线性过程模型,项目失败的风险就很大,因此需要采用一种渐进式的演化过程模型——螺旋模型。

Rational统一过程模型

Rational统一过程模型(Rational Unified Process,RUP)的基本思想与螺旋模型类似,都采用迭代式的演化过程开发软件。
但是Rational统一过程更为详细和系统化,不仅说明了软件开发生命周期的各个阶段和迭代的划分方法,而且详细定义了核心工作流,最佳实践和需求分析、设计的一系列方法,配合Rational公司出品的系列软件工程工具,可分为软件组织的开发过程提供全方位的支持。

关于这几个模型的联系和区别(自己总结) 原型模型和增量模型

首先感觉原型模型和增量模型有共同的地方,都是开发出来一个原型,供用户去使用,评测,然后提出问题开发人员再改正,后续进行迭代。
但是原型模型是一开始将用户想到的需求设计出来,细节和功能可以不必特别完善,充分展现用户的需求。但是增量模型虽然也是将原型设计出来,但是增量模型的原型分为一个个的构件为单位来开发,每个原型是具有细节的,不像原型模型那样粗糙。如果用户认可,继续进行下一个原型的开发,如果用户有意见,可以进行修改。

瀑布模型和螺旋模型

瀑布模型包括一整套流程,可行性分析、需求分析、概要设计、详细设计、编码与调试、调试、运行和维护;同样,螺旋模型也包括几个阶段,制定计划,风险分析,工程实施,客户评估。
但是瀑布模型是完整的一套流程做下来,一次性完成,且是线性的,风险很大,但是螺旋模型就考虑了风险的问题,是不断迭代,演化式模型。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注