百韵网 >>  正文

软件过程模型的过程模型 总结归纳主要的软件工程模型,并任意选定其中的一种过程模式,介...

来源:www.baiyundou.net   日期:较早时间

它有时也称为传统生存周期模型或瀑布模型。它提出了软件开发的系统化的、顺序的方法。其流程从系统开始,随后是需求分析、设计、编码、测试、支持。这种模型是最早也是应用最广泛的软件过程模型(虽然这种模型会引起“堵赛状态”)。
缺点:
1、实际的项目大部分情况难以按照该模型给出的顺序进行,而且这种模型的迭代是间接的,这很容易由微小的变化而造成大的混乱。
2、 经常情况下客户难以表达真正的需求,而这种模型却要求如此,这种模型是不欢迎具有二义性问题存在的。
3、 客户要等到开发周期的晚期才能看到程序运行的测试版本,而在这时发现大的错误时,可能引起客户的惊慌,而后果也可能是灾难性的。
4、采用这种线性模型,会经常在过程的开始和结束时碰到等待其他成员完成其所依赖的任务才能进行下去,有可能花在等待的时间比开发的时间要长。我们称之为“堵赛状态”。
优点:
1、它提供了一个模板,这个模板使得分析、设计、编码、测试和支持的方法可以在该摸板下有一个共同的指导。
2、虽然有不少缺陷但比在软件开发中随意的状态要好得多。 从需求收集开始,开发者和客户在一起定义软件的总体目标,标识已知的需求并且规划出需要进一步定义的区域。然后是“快速设计”,它集中于软件中那些对客户可见的部分的表示,这将导致原型的创建,并由客户评估并进一步精化待开发软件的需求。逐步调整原型使其满足客户的需求,这个过程是迭代的。其流程从听取客户意见开始、随后是建造/修改原型、客户测试运行原型、然后回头往复循环直到客户对原型满意为止。由于这种模型可以让客户快速的感受到实际的系统(虽然这个系统不带有任何质量的保证),所以客户和开发者都比较喜欢这种过程模型(对于那些仅仅用来演示软件功能的公司而言或从来不考虑软件质量和不害怕长期维护的公司而言)。
缺点:
1、没有考虑软件的整体质量和长期的可维护性。
2、大部分情况是不合适的操作算法被采用目的为了演示功能,不合适的开发工具被采用仅仅为了它的方便,还有不合适的操作系统被选择等等。
3、由于达不到质量要求产品可能被抛弃,而采用新的模型重新设计。
优点:
1、如果客户和开发者达成一致协议:原型被建造仅为了定义需求,之后就被抛弃或者部分抛弃, 那么这种模型很合适了。
2、迷惑客户抢占市场,这是一个首选的模型。 这是一个增量型的软件开发过程模型,强调极短的开发周期,它是线性模型的一个“高速”变种,通过使用构件的建造方法赢得了快速开发。如果需求理解的好而且约束了项目的范围,利用这种模型可以很快的创建出功能完善的“信息系统”。其流程从业务建模开始,随后是数据建模、过程建模、应用生成、测试及反复。RAD过程强调的是复用,复用已有的或开发可复用的构件。实际上RAD采用第四代技术。
缺点:
1、只能用于信息系统。
2、对于较大的项目需要足够的人力资源去建造足够的RAD组。
3、开发者和客户必须在很短的时间完成一系列的需求分析, 任何一方配合不当都会导致RAD项目失败。
4、这种模型对模块化要求比较高,如果有哪一功能不能被模块化,那么建造RAD所需要的构件就会有问题。
5、技术风险很高的情况下不适合这种模型。
优点:
1、开发速度快,质量有保证。
2、对信息系统特别有效。 这种模型融合了线性顺序模型的基本成份和原型实现模型的迭代特征。增量模型采用随着日程时间的进展而交错的线性序列。每一个线性序列产生软件的一个可发布的“增量”。当使用增量模型时,第一个增量往往是核心的产品,也就是说第一个增量实现了基本的需求,但很多补充的特征还没有发布。客户对每一个增量的使用和评估,都做为下一个增量发布的新特征和功能。这个过程在每一个增量发布后不断从复,直到产生了最终的完善产品。增量模型强调每一个增量均发布一个可操作的产品。
缺点:
1、至始至终开发者和客户纠缠在一起,直到完全版本出来。
优点:
1、人员分配灵活,刚开始不用投入大量人力资源,当核心产品很受欢迎时,可增加人力实现下一个增量。
2、当配备的人员不能在设定的期限内完成产品时,它提供了一种先推出核心产品的途径,这样就可以先发布部分功能给客户,对客户起到镇静剂的作用。
3、具有一定的市场。 这是一个演化软件过程模型,它将原型实现的迭代特征和线性顺序模型中控制的和系统化的方面结合起来。使得软件的增量版本的快速开发成为可能。在螺旋模型中,软件开发是一系列的增量发布。在每一个迭代中,被开发系统的更加完善的版本逐步产生。螺旋模型被划分为若干框架活动,也称为任务区域。典型地,有3到6个任务区域:
1、客户交流:建立开发者和客户之间有效通信所需要的任务。
2、计划:定义资源、进度、及其它相关项目信息所需要的任务。
3、风险分析:评估技术的及管理的风险所需要的任务。
4、工程:建立应用的一个或多个表示说需要的任务。
5、构造及发布:构造、测试、安装和提供用户支持所需要的任务。
6、客户评估:基于对在工程阶段产生的或在安装阶段实现的软件表示的评估,获得客户反馈所需要的任务。
这是一个相对较新的模型,它的功效还需要经历若干年的使用方能确定下来。
缺点:
1、需要相当的风险分析评估的专门技术,且成功依赖于这种技术。
2、很明显一个大的没有被发现的风险问题,将会导致问题的发生,可能导致演化的方法失去控制。
3、这种模型相对比较新,应用不广泛,其功效需要进一步的验证。
优点:
1、对于大型系统及软件的开发,这种模型是一个很好的方法。开发者和客户能够较好地对待和理解每一个演化级别上的风险。 螺旋模型提出了强调客户交流的一个框架活动。该活动的目标是从客户处诱导项目需求。在理想情况下,开发者简单地询问客户需要什么,而客户提供足够的细节进行下去。不幸的是这种情形很少发生。在现实中,客户和开发者进入一个谈判过程,客户被要求在成本和应市之间的约束下平衡功能、性能、和其它产品或系统特征。最好的谈判追求“双赢”结果,也就是说通过谈判客户获得大部份系统的功能,而开发者则获得现实的和可达到的预算和时限。对客户的交流定义了下面的活动:
1、系统或子系统的关键“风险承担者”的标识。
2、风险承担者的“赢条件”的确定。
3、风险承担者的赢条件谈判,以将它们协调为一组满足各方考虑的双赢条件。
缺点:
1、需要额外的谈判技巧。
优点:
1、客户和开发者达到一种平衡。 这种模型关注于多个任务的并发执行,表示为一系列的主要技术活动、任务及它们的相关状态。并发过程模型是由客户要求、管理决策、评审结果驱动的。该模型不是将软件工程活动限定为一个顺序的事件序列,而是定义了一个活动网络。网络上的每一个活动均可于其它活动同时发生。这种模型可以提供一个项目的当前状态的准确视图。
缺点:暂时无
优点:
1、可用于所有类型的软件开发,而对于客户/服务器结构更加有效。
2、可以随时查阅到开发的状态。 面向对象的技术为软件工程的基于构件的过程模型提供了技术框架。面向对象模型强调了类的创建、类的封装了的数据、操纵该数据的算法。一般来讲经过合适的设计和实现,面向对象的类可以在不同的应用及基于计算机的系统的体系结构中复用。基于构件的开发模型融合了螺旋模型的许多特征,它本质上是演化形的,要求软件创建的迭代方法。然而基于构件的开发模型是利用预先包装好的软件构件(有时成为类)来构造应用。
开发活动从候选类的标识开始,这一步是通过检查将被应用系统操纵的数据及用于实现该操纵的算法来完成的。相关的数据和算法被封装成一个类。
缺点:
1、过分依赖于构件,构件库的质量影响着产品质量。
优点:
1、构件可复用。提高了开发效率。
2、采用了面向对象的技术。 形式化方法模型包含了一组活动,他们导致了计算机软件的数学规约。形式化方法使得软件工程师们能够通过应用一个严格的数学符号体系来规约、开发、和验证基于计算机的系统。 这种方法的一个变种,称为净室软件工程,已经被一些组织所采用。在开发中使用形式化方法时,它们提供了一种机制,能够消除使用其它软件过程模型难以克服的很多问题。二义性、不完整性、不一致性能被更容易地发现和纠正,而不是通过专门的评审,是通过对应用的数学分析。 形式化方法提供了可以产生无缺陷软件的承诺。
缺点:
1、开发费用昂贵(对开发人员需要多方面的培训),而且需要的时间较长。
2、不能将这种模型作为对客户通信的机制,因为客户对这些数学语言一无所知。
3、还不流行。
优点:
1、形式化规约可直接作为程序验证的基础,可以尽早的发现和纠正错误(包括那些其它情况下不能发现的错误)。
2、开发出来的软件具有很高的安全性和健壮性,特别适合安全部门或者软件错误会造成经济损失的开发者。
3、具有开发无缺陷软件的承诺。 一系列的软件工具的使用,是第四代技术的特点。这些工具有一个共同的特点:能够使软件工程师们在较高级别上规约软件的某些特征,然后根据开发者的规约自动生成源代码。我们知道,软件在越高的级别上被规约,就越能被快速的建造出程序。软件工程的
4GT模型集中于规约软件的能力:使用特殊的语言形式或一种采用客户可以理解的术语描述待解决问题的图形符号体系。和其它模型一样,4GT也是从需求收集这一步开始的,要将一个4GT实现变成最终产品,开发者还必须进行彻底的测试、开发有意义的文档,并且同样要完成其它模型中同样要求的所有集成活动。总而言之,4GT已经成为软件工程的一个重要方法。特别是和基于构件的开发模型结合起来时,4GT模型可能成为当前软件开发的主流模型!
缺点:
1、用工具生成的源代码可能是“低效”的。
2、生成的大型软件的可维护性还令人怀疑。
3、在某些情况下可能需要更多的时间。
优点:
1、缩短了软件开发时间,提高了建造软件的效率。
2、对很多不同的应用领域提供了一种可行性途径和解决方案



总结归纳主要的软件工程模型,并任意选定其中的一种过程模式,介绍其特点及你对该模型的理解。~

主要的软件过程模型有:瀑布模型,演化模型(如增量模型、原型模型、螺旋模型)、喷泉模型、基于构件的开发模型和形式方法模型等。
瀑布模型(waterfall model)是1970年有W.Royce提出的,它给出了软件生存周期活动的固定顺序,上一阶段的活动完成后向下一阶段过渡,最终得到所开发的软件产品。瀑布模型如下图所示,有时也称为软件生存周期模型。

瀑布模型中,上一阶段的活动完成并经过评审后才能开始下一阶段的活动,其特征是:
(1)接受上一阶段的结果作为本阶段活动的输入。
(2)依据上一阶段活动的结果实施本阶段应完成的活动。
(3)对本阶段的活动进行评审。
(4)将本阶段活动的结果作为输出,传递给下一阶段。
瀑布模型是最早出现的也是应用最广泛的过程模型,对确保软件开发的顺利进行、提高软件项目的质量和开发效率起到重要作用。
在大量的实践过程中,瀑布模型也逐渐暴露出它的不足。首先,客户常常难以清楚地描述所有的要求,而且在开发过程中,用户的需求也常常会有所变化,使得不少软件的需求存在着不确定性;在某个活动中发现的错误常常是由前一阶段活动的错误引起的,为了改正这一错误必须回到前一阶段,这就导致了瀑布的倒流,也就是说,实际的软件开发很少能按瀑布模型的顺序没有回流地顺流而下。其次,瀑布模型使得客户在测试完成以后才能看到真正可运行的软件,此时,如果发现不满足客户需求的问题(由于需求不确定性),那么修改软件的代价是巨大的。
不是任何软件都可采用瀑布模型的,瀑布模型适合于结构化方法,也就是面向过程的软件开发方法。软件项目或产品选择瀑布模型必须满足下列条件:在开发时间内需求没有或很少变化;分析设计人员应对应用领域很熟悉;低风险项目(对目标、环境很熟悉);用户使用环境很稳定;用户除提出需求以外,很少参与开发工作。

过程模型总分为五大类:1.惯例过程模型。2.瀑布模型(又叫作生命周期模型)。3.增量过程模型: 包括增量模型、RAD模型。4.演化过程模型: 包括 原型开发模型、螺旋模型、协同开发模型。5.专用过程模型: 包括 基于构件的开发模型、形式化方法模型、面向方面的软件开发模型。(参考文献:软件工程-实践者的研究方法 (美)Poger S.Pressman )

相关要点总结:

19660152930:一文讲清十大软件过程模型
姬储答:5. 螺旋模型 螺旋线描绘出风险驱动的项目路径,风险管理成为核心。适合高风险项目,但客户合作和风险专家的依赖度较高。6. 专用过程模型 专为特定方法设计,像乐器的定制音色,针对性强,但可能牺牲通用性。7. 构件开发模型 基于软件构件的开发,虽能带来复用、成本效益和缩短周期的美妙效果,但可能牺牲...

19660152930:软件过程模型的过程模型
姬储答:这种模型是最早也是应用最广泛的软件过程模型(虽然这种模型会引起“堵赛状态”)。缺点:1、实际的项目大部分情况难以按照该模型给出的顺序进行,而且这种模型的迭代是间接的,这很容易由微小的变化而造成大的混乱。2、 经常情况下客户难以表达真正的需求,而这种模型却要求如此,这种模型是不欢迎具有二义性问题存在的。3...

19660152930:软件过程模型有哪些
姬储答:软件过程模型主要有以下几种:1. 瀑布模型:这是一种线性的,阶段性的开发模型,它把软件生命周期分为一系列阶段,前一阶段在后一阶段之前完成。这种模型适合于大型、复杂的系统或需要统一集成的项目。2. 快速应用开发模型(RAD):RAD是一种非传统的、灵活的软件开发方法,它鼓励开发人员根据业务需求快...

19660152930:软件开发中有哪几种过程模型
姬储答:(3)原型模型可作为单独的过程模型使用,也常被作为一种方法或实现技术应用于其他的过程模型中。3.渐增模型 渐增模型也叫增量模型,其实质上是分段的线性模型,是一种非整体开发模型,渐增模型把软件产品作为一系列增量构件来设计、编码、集成和测试,在项目开发过程中以一系列的增量方式来逐步开发系统。

19660152930:软件过程模型有哪些
姬储答:软件过程模型有:瀑布模型、原型模型、增量模型、螺旋模型、喷泉模型。1、瀑布模型 适用于需求明确的项目,一般表述为需求明确、或二次开发,或者对于数据处理类型的项目。2、原型模型 典型的原型开发方法模型。适用于需求不明确的场景,构造简易系统,可以帮助用户明确需求。3、增量模型 融合了瀑布模型的基本...

19660152930:软件过程模型有哪些
姬储答:软件过程模型主要包括瀑布模型、敏捷开发模型、迭代模型、螺旋模型等。1. 瀑布模型(Waterfall Model):这是一种传统的软件开发过程模型,按照需求分析、设计、编码、测试和维护的顺序进行。每个阶段都需完成规定的工作并经过审查,确保下一阶段工作的顺利进行。这种模型适用于需求明确且不太可能出现变更的项目...

19660152930:软件测试过程模型主要有哪些
姬储答:v模型在软件测试方面,V模型是最广为人知的模型,尽管很多富有实际经验的测试人员还是不太熟悉V模型,或者其它的模型。V模型已存在了很长时间,和瀑布开发模型有着一些共同的特性,由此也和瀑布模型一样地受到了批评和质疑。V模型中的过程从左到右,描述了基本的开发过程和测试行为。V模型的价值在于它...

19660152930:介绍常见软件过程模型(瀑布,原型,增量,螺旋)的原理及优缺点?回答好追分...
姬储答:2) 在开发过程中,需求的变化是不可避免的。增量模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速原型模型,但也很容易退化为边做边改模型,从而是软件过程的控制失去整体性。 在使用增量模型时,第一个增量往往是实现基本需求的核心产品。核心产品交付用户使用后,经过评价形成下一个增量的开发计划,它包...

19660152930:软件测试基础之过程模型w模型
姬储答:一个基于V&V原理的W模型示意图如图1所示 W模型应用 W模型由Evolutif公司推出,相对于V模型,W模型更科学。W模型可以说是V模型自然而然的发展。它强调:测试伴随者整个软件开发周期,而且测试的对象不仅仅是程序,需求、功能和设计同样要测试。这样,主要相应的开发活动完成,我们就可以开始执行测试,可以说...

19660152930:简述各类软件过程模型的特点
姬储答:这种模型是最早也是应用最广泛的软件过程模型(虽然这种模型会引起“堵赛状态”)。优点:1.它提供了一个模板,这个模板使得分析、设计、编码、测试和支持的方法可以在该摸板下有一个共同的指导。2.虽然有不少缺陷但比在软件开发中随意的状态要好得多。缺点:1.实际的项目大部分情况难以按照该模型给出的顺序进行,而且...

(编辑:本站网友)
相关推荐
关于我们 | 客户服务 | 服务条款 | 联系我们 | 免责声明 | 网站地图
@ 百韵网