登录   |   注册
    准考证打印   论文投票   报考指南   论文辅导   软考培训   郑重申明  
您现在的位置:  首页 > 软考学苑 > 中高项知识图谱 >> 正文
正文
1.1. 生命周期模型(8种)
来源: 作者: 时间;2017-12-28 09:27:53 点击数: 尚大软考交流群:376154208
1.1. 生命周期模型有很多种,如瀑布模型、演化模型、增量模型、螺旋模型、喷泉模型、构件组装模型、V模型等。
<尚大教育,教育至上,人才为大:sdedu.cc>

 1.1. 生命周期模型

QQ截图20171228092858.jpg

软件生存周期的瀑布模型

1.瀑布模型

瀑布模型的开发过程是通过设计一系列阶段顺序展开的,从系统需求分析开始直到产品发布和维护,每个阶段都会产生循环反馈,因此,如果有信息未被覆盖或者发现了问题,那么最好“返回”上一个阶段并进行适当的修改,项目开发进程从一个阶段“流动”到下一个阶段,这也是瀑布模型名称的由来。瀑布模型适用于需求比较稳定,很少需要变更的项目。

瀑布模型核心思想是按工序将问题化简,将功能的实现与设计分开,便于分工协作,即瀑布模型采用结构化的分析与设计方法将逻辑实现与物理实现分开。将软件生命周期划分为制定计划需求分析软件设计程序编写软件测试运行维护等六个基本活动,如图1-4-1所示,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。


 

 

 

2.jpg

 

螺旋模型

它将瀑布模型和快速原型模型结合起来,强调了其他模型所忽视的风险分析,特别适合于大型复杂的系统

图片5.jpg

1-4-4    螺旋模型

螺旋模型采用一种周期性的方法来进行系统开发。该模型是快速原型法,以进化的开发方式为中心,螺旋模型沿着螺线旋转,在四个象限上分别表达了四个方面的活动,即:

Ø 制定计划──确定软件目标,选定实施方案,弄清项目开发的限制条件。

Ø 风险分析──分析所选方案,考虑如何识别和消除风险。

Ø 实施工程──实施软件开发。

Ø 客户评估──评价开发工作,提出修正建议。

螺旋模型强调风险分析,使得开发人员和用户对每个演化层出现的风险有所了解,继而做出应有的反应,因此特别适用于庞大、复杂并具有高风险的系统。


 

3.jpg

喷泉模型

喷泉模型如图所示,是一种以用户需求为动力,以对象为驱动的模型,主要用于描述面向对象的软件开发过程。

喷泉模型认为软件开发过程自下而上周期的各阶段是相互迭代和无间隙的特性。软件的某个部分常常被重复工作多次,相关对象在每次迭代中随之加入渐进的软件成分。无间隙指在各项活动之间无明显边界,如分析和设计活动之间没有明显的界限,由于对象概念的引入,表达分析、设计、实现等活动只用对象类和关系,从而可以较为容易地实现活动的迭代和无间隙,使其开发自然地包括复用。

 

 


 

 

4.jpg

 

V模型示意图

 

 V模型的左边下降的是开发过程各阶段,与此相对应的是右边上升的部分,即各测试过程的各个阶段。在不同的组织中对测试阶段的命名可能有所不同。 

在模型图中的开发阶段一侧,先从定义业务需求、需求确认或测试计划开始,然后要把这些需求转换到概要设计、概要设计的验证及测试计划,从概要设计进一步分解到详细设计、详细设计的验证及测试计划,最后进行开发,得到程序代码和代码测试计划。接着就是测试执行阶段一侧,执行先从单元测试开始,然后是集成测试、系统测试和验收测试。 


V模型的价值在于它非常明确地标明了测试过程中存在的不同级别,并且清楚地描述了这些测试阶段和开发各阶段的对应关系。 
(1)单元测试的主要目的是针对编码过程中可能存在的各种错误,例如用户输入验证过程中的边界值的错误。 
(2)集成测试主要目的是针对详细设计中可能存在的问题,尤其是检查各单元与其他程序部分之间的接口上可能存在的错误。 
(3)系统测试主要针对概要设计,检查系统作为一个整体是否有效地得到运行,例如在产品设置中是否能达到预期的高性能。 
(4)验收测试通常由业务专家或用户进行,以确认产品能真正符合用户业务上的需要。 


在不同的开发阶段,会出现不同类型的缺陷和错误,所以需要不同的测试技术和方法来发现这些缺陷。

 

 

 2.演化模型

演化模型如图1-4-2所示,是一种全局的软件(或产品)生存周期模型,属于迭代开发风范。该模型可以表示为:第一次迭代(需求-->设计-->实现-->测试-->集成)-->反馈-->第二次迭代(需求-->设计-->实现-->测试-->集成)-->反馈-->……。实际上,这个模型可看作是重复执行的多个瀑布模型

图片3.jpg 

1-4-2    演化模型

演化模型根据用户的基本需求,通过快速分析构造出该软件的一个初始可运行版本,这个初始的软件通常称之为原型,然后根据用户在使用原型的过程中提出的意见和建议对原型进行改进,获得原型的新版本。重复这一过程,最终可得到令用户满意的软件产品。采用演化模型的开发过程,实际上就是从初始的原型逐步演化成最终软件产品的过程。演化模型特别适用于对软件需求缺乏准确认识的情况。

 

3.增量模型

增量模型如图1-4-3所示,融合了瀑布模型的基本成分(重复应用)和原型实现的迭代特征,该模型采用随着日程时间的进展而交错的线性序列,每一个线性序列产生软件的一个可发布的“增量”。当使用增量模型时,第1个增量往往是核心的产品,即第1个增量实现了基本的需求,但很多补充的特征还没有发布。客户对每一个增量的使用和评估都作为下一个增量发布的新特征和功能,这个过程在每一个增量发布后不断重复,直到产生了最终的完善产品。

图片4.jpg 

1-4-3    增量模型

增量模型与原型实现模型和其他演化方法一样,本质上是迭代的,但是更强调每一个增量均发布一个可操作产品。增量模型的特点是引进了增量包的概念,无须等到所有需求都出来,只要某个需求的增量包出来即可进行开发。虽然某个增量包可能还需要进一步适应客户的需求并且更改,但只要这个增量包足够小,其影响对整个项目来说是可以承受的。

4.螺旋模型

螺旋模型如图1-4-4所示,它将瀑布模型和快速原型模型结合起来,强调了其他模型所忽视的风险分析,特别适合于大型复杂的系统

图片5.jpg

1-4-4    螺旋模型

螺旋模型采用一种周期性的方法来进行系统开发。该模型是快速原型法,以进化的开发方式为中心,螺旋模型沿着螺线旋转,在四个象限上分别表达了四个方面的活动,即:

Ø 制定计划──确定软件目标,选定实施方案,弄清项目开发的限制条件。

Ø 风险分析──分析所选方案,考虑如何识别和消除风险。

Ø 实施工程──实施软件开发。

Ø 客户评估──评价开发工作,提出修正建议。

螺旋模型强调风险分析,使得开发人员和用户对每个演化层出现的风险有所了解,继而做出应有的反应,因此特别适用于庞大、复杂并具有高风险的系统。

5.喷泉模型

喷泉模型如图1-4-5所示,是一种以用户需求为动力,以对象为驱动的模型,主要用于描述面向对象的软件开发过程

图片6.jpg 

1-4-5    喷泉模型

喷泉模型认为软件开发过程自下而上周期的各阶段是相互迭代和无间隙的特性。软件的某个部分常常被重复工作多次,相关对象在每次迭代中随之加入渐进的软件成分。无间隙指在各项活动之间无明显边界,如分析和设计活动之间没有明显的界限,由于对象概念的引入,表达分析、设计、实现等活动只用对象类和关系,从而可以较为容易地实现活动的迭代和无间隙,使其开发自然地包括复用。

6.构件组装模型

构件组装模型融合了螺旋模型的许多特征。它本质上是演化的支持软件开发的迭代方法。但是,构件组装模型是利用预先包装好的软件构件(有时称为“类”)来构造应用程序的。

开发活动从候选类的标识开始。这一步通过检查将被应用程序操纵的数据及用于实现该操纵的算法来完成,相关的数据和算法封装成一个类。以前的软件工程项目中创建的类被存储在一个类库或仓库中、一旦标识出候选类,就可以搜索该类库,确认这些类是否已经存在。如果已经存在,就从库中提取出来复用。如果一个候选类在库中并不存在,就采用面向对象方法开发它。之后就可以利用从库中提取出来的类以及为了满足应用程序的特定要求而建造的新类,来构造待开发应用程序的第一个迭代。过程流程而后又回到螺旋,并通过随后的工程活动最终再进入构件组装迭代。

7.V模型

V模型如图1-4-6所示,它是瀑布模型的变种,它说明测试活动是如何与分析和设计相联系的。在这种模型的测试过程中,首先,进行可行性研究需求定义,然后以书面的形式对需求进行描述,产生需求规格说明书。之后,开发人员根据需求规格说明书来对软件进行概要设计,测试人员根据需求规格说明书设计出系统测试用例。概要设计之后,开发人员根据概要设计对软件进行详细设计,测试人员根据概要设计设计出集成测试用例。详细设计之后,开发人员根据详细设计进行编码,测试人员根据详细设计设计出单元测试用例。编码完成之后,测试人员根据单元测试用例对设定的软件的测试单元进行测试,单元测试完成之后,进行集成测试,然后进行系统测试,最后进行验收测试。

图片7.jpg

1-4-6    V模型

8.RUP

RUPRational Unified Process,统一软件开发过程)是一个面向对象且基于网络的程序开发方法论。

根据Rational(Rational Rose和统一建模语言的开发者的说法,RUP好像一个在线的指导者,它可以为所有方面和层次的程序开发提供指导方针,模版以及事例支持。 RUP和类似的产品,例如面向对象的软件过程,以及OPEN Process都是理解性的软件工程工具,把开发中面向过程的方面(例如定义的阶段,技术和实践)和其他开发的组件(例如文档,模型,手册以及代码等等)整合在一个统一的框架内。

RUP中的软件生命周期在时间上被分解为四个顺序的阶段,分别是:初始阶段细化阶段构造阶段交付阶段。每个阶段结束于一个主要的里程碑;每个阶段本质上是两个里程碑之间的时间跨度。在每个阶段的结尾执行一次评估以确定这个阶段的目标是否已经满足。如果评估结果令人满意的话,可以允许项目进入下一个阶段。

初始阶段的目标是为系统建立商业案例并确定项目的边界,在这个阶段中所关注的是整个项目进行中的业务和需求方面的主要风险。初始阶段结束时是第一个重要的里程碑:生命周期目标里程碑。

  细化阶段的目标是分析问题领域,建立健全的体系结构基础,编制项目计划,淘汰项目中最高风险的元素。为了达到该目的,必须在理解整个系统的基础上,对体系结构作出决策,包括其范围、主要功能和诸如性能等非功能需求。同时为项目建立支持环境,包括创建开发案例,创建模板、准则并准备工具。 细化阶段结束时第二个重要的里程碑:生命周期结构里程碑。

  在构建阶段,所有剩余的构件和应用程序功能被开发并集成为产品,所有的功能被详细测试。从某种意义上说,构建阶段是一个制造过程,其重点放在管理资源及控制运作以优化成本、进度和质量。构建阶段结束时是第三个重要的里程碑:初始功能里程碑,此时的产品版本也常被称为beta”版。

 

  交付阶段的重点是确保软件对最终用户是可用的。交付阶段可以跨越几次迭代,包括为发布做准备的产品测试,基于用户反馈的少量的调整。在生命周期的这一点上,用户反馈应主要集中在产品调整,设置、安装和可用性问题,所有主要的结构问题应该已经在项目生命周期的早期阶段解决了。在交付阶段的终点是第四个里程碑:产品发布里程碑。

 

 

<尚大教育,教育至上,人才为大:sdedu.cc>
 
   各省软考办 
 
来顶一下
返回首页
返回首页
上一篇:返回列表
下一篇:1.2. 决策树计算分析
 相关文章
 
 
跟贴共
笔 名 :   验证码:
网友评论仅供其表达个人看法,并不表明尚大教育同意其观点或证实其描述
距离2023年05月27-28日软考考试还有
尚大软考交流群:376154208
软考各地考务机构
历年真题汇总




各省市软考报名简章