您好,欢迎访问三七文档
软件开发模型1.瀑布模型瀑布模型的开发过程是通过设计一系列阶段顺序展开的,从系统需求分析开始直到产品发布和维护,每个阶段都会产生循环反,因此,如果有信息未被覆盖或者发现了问题,那么最好“返回”上一个阶段并进行适当的修改,项目开发进程从一个阶段“流动”到下一个阶段,这也是瀑布模型名称的由来。瀑布模型适用于需求比较稳定,很少需要变更的项目。瀑布模型核心思想是按工序将问题化简,将功能的实现与设计分开,便于分工协作,即瀑布模型采用结构化的分析与设计方法将逻辑实现与物理实现分开。将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。2.演化模型演化模型是一种全局的软件(或产品)生存周期模型,属于迭代开发风范。该模型可以表示为:第一次迭代(需求--设计--实现--测试--集成)--反馈--第二次迭代(需求--设计--实现--测试--集成)--反馈--„„。实际上,这个模型可看作是重复执行的多个“瀑布模型”。演化模型根据用户的基本需求,通过快速分析构造出该软件的一个初始可运行版本,这个初始的软件通常称之为原型,然后根据用户在使用原型的过程中提出的意见和建议对原型进行改进,获得原型的新版本。重复这一过程,最终可得到令用户满意的软件产品。采用演化模型的开发过程,实际上就是从初始的原型逐步演化成最终软件产品的过程。演化模型特别适用于对软件需求缺乏准确认识的情况。3.增量模型增量模型融合了瀑布模型的基本成分(重复应用)和原型实现的迭代特征,该模型采用随着日程时间的进展而交错的线性序列,每一个线性序列产生软件的一个可发布的“增量”。当使用增量模型时,第1个增量往往是核心的产品,即第1个增量实现了基本的需求,但很多补充的特征还没有发布。客户对每一个增量的使用和评估都作为下一个增量发布的新特征和功能,这个过程在每一个增量发布后不断重复,直到产生了最终的完善产品。增量模型与原型实现模型和其他演化方法一样,本质上是迭代的,但是更强调每一个增量均发布一个可操作产品。增量模型的特点是引进了增量包的概念,无须等到所有需求都出来,只要某个需求的增量包出来即可进行开发。虽然某个增量包可能还需要进一步适应客户的需求并且更改,但只要这个增量包足够小,其影响对整个项目来说是可以承受的。4.螺旋模型螺旋模型将瀑布模型和快速原型模型结合起来,强调了其他模型所忽视的风险分析,特别适合于大型复杂的系统。螺旋模型采用一种周期性的方法来进行系统开发。该模型是快速原型法,以进化的开发方式为中心,螺旋模型沿着螺线旋转,在四个象限上分别表达了四个方面的活动,即:制定计划──确定软件目标,选定实施方案,弄清项目开发的限制条件。风险分析──分析所选方案,考虑如何识别和消除风险。实施工程──实施软件开发。客户评估──评价开发工作,提出修正建议。螺旋模型强调风险分析,使得开发人员和用户对每个演化层出现的风险有所了解,继而做出应有的反应,因此特别适用于庞大、复杂并具有高风险的系统。5.喷泉模型(毛毛虫)喷泉模型是一种以用户需求为动力,以对象为驱动的模型,主要用于描述面向对象的软件开发过程。喷泉模型认为软件开发过程自下而上周期的各阶段是相互迭代和无间隙的特性。软件的某个部分常常被重复工作多次,相关对象在每次迭代中随之加入渐进的软件成分。无间隙指在各项活动之间无明显边界,如分析和设计活动之间没有明显的界限,由于对象概念的引入,表达分析、设计、实现等活动只用对象类和关系,从而可以较为容易地实现活动的迭代和无间隙,使其开发自然地包括复用。6.构件组装模型构件组装模型融合了螺旋模型的许多特征。它本质上是演化的支持软件开发的迭代方法。但是,构件组装模型是利用预先包装好的软件构件(有时称为“类”)来构造应用程序的。开发活动从候选类的标识开始。这一步通过检查将被应用程序操纵的数据及用于实现该操纵的算法来完成,相关的数据和算法封装成一个类。以前的软件工程项目中创建的类被存储在一个类库或仓库中、一旦标识出候选类,就可以搜索该类库,确认这些类是否已经存在。如果已经存在,就从库中提取出来复用。如果一个候选类在库中并不存在,就采用面向对象方法开发它。之后就可以利用从库中提取出来的类以及为了满足应用程序的特定要求而建造的新类,来构造待开发应用程序的第一个迭代。过程流程而后又回到螺旋,并通过随后的工程活动最终再进入构件组装迭代。7.V模型V模型它是瀑布模型的变种,它说明测试活动是如何与分析和设计相联系的。在这种模型的测试过程中,首先,进行可行性研究需求定义,然后以书面的形式对需求进行描述,产生需求规格说明书。之后,开发人员根据需求规格说明书来对软件进行概要设计,测试人员根据需求规格说明书设计出系统测试用例。概要设计之后,开发人员根据概要设计对软件进行详细设计,测试人员根据概要设计设计出集成测试用例。详细设计之后,开发人员根据详细设计进行编码,测试人员根据详细设计设计出单元测试用例。编码完成之后,测试人员根据单元测试用例对设定的软件的测试单元进行测试,单元测试完成之后,进行集成测试,然后进行系统测试,最后进行验收测试。验—需、系—概、集—详、单—编8.RUPRUP(RationalUnifiedProcess,统一软件开发过程)是一个面向对象且基于网络的程序开发方法论。根据Rational(RationalRose和统一建模语言的开发者的说法,RUP好像一个在线的指导者,它可以为所有方面和层次的程序开发提供指导方针,模版以及事例支持。RUP和类似的产品,例如面向对象的软件过程,以及OPENProcess都是理解性的软件工程工具,把开发中面向过程的方面(例如定义的阶段,技术和实践)和其他开发的组件(例如文档,模型,手册以及代码等等)整合在一个统一的框架内。RUP中的软件生命周期在时间上被分解为四个顺序的阶段,分别是:初始阶段、细化阶段、构造阶段和交付阶段。每个阶段结束于一个主要的里程碑(生命周期目标里程碑、生命周期结构里程碑、初始功能里程碑、产品发布里程碑);每个阶段本质上是两个里程碑之间的时间跨度。在每个阶段的结尾执行一次评估以确定这个阶段的目标是否已经满足。如果评估结果令人满意的话,可以允许项目进入下一个阶段。
本文标题:软件开发模型
链接地址:https://www.777doc.com/doc-5232899 .html