1、瀑布模型程序员
瀑布模型(Waterfall Model)是一个项目开发架构,开发过程是经过设计一系列阶段顺序展开的,从系统需求分析开始直到产品发布和维护,每一个阶段都会产生循环反馈,所以,若是有信息未被覆盖或者发现了问题,那么最好“返回”上一个阶段并进行适当的修改,项目开发进程从一个阶段“流动”到下一个阶段,这也是瀑布模型名称的由来。包括软件工程开发、企业项目开发、产品生产以及市场销售等构造瀑布模型。
瀑布模型也称软件生存周期模型。它在软件工程中占有重要地位,它提供了软件开发的基本框架,这比依靠“我的技艺”开发软件好得多。它有利于大型软件开发过程当中人员的组织、管理,有利于软件开发方法和工具的研究与使用,从而提升了大型软件项目开发的质量和效率。
首先,对于绝大多数人来讲,刚接手一个新项目的时候都会不自觉的选择“瀑布模型”—-咱们跟客户交谈后指定需求分析,以后进行简单的设计,以后编写代码,提交,完成。新手会不自觉的选择这种方案,由于它直白,想到哪一步作到哪一步,须要作什么就作什么。可是,这在有些时候是要付出惨重的代价的。好比A拥有一家跑车公司,能够给客户自定义生产跑车。有一天一土豪来到A的公司,跟A商谈了一个跑车项目,他们谈好了车型,材料,马力等等细节。以后,A带着团队作了6个月,作成了这架跑车,交给了土豪。但是土豪开了一天以后回来要求重作,缘由是当讨论方案的时候,双方都忘记给跑车安尾灯了!可是给跑车安装尾灯,就要涉及到整个车尾的从新设计,就要把整辆车拆掉再从新组装!
这个模型显然只适合已经成熟了的项目,团队接手项目以后如庖丁解牛般行云流水。当团队接手了创新项目以后,显然已经再也不适合用瀑布模型。数据库
一、瀑布模型有如下优势:编程
1)为项目提供了按阶段划分的检查点。
2)当前一阶段完成后,您只须要去关注后续阶段。
3)可在迭代模型中应用瀑布模型。
架构
二、瀑布模型有如下缺点:框架
1)在项目各个阶段之间极少有反馈。
2)只有在项目生命周期的后期才能看到结果。
3)经过过多的强制完成日期和里程碑来跟踪各个项目阶段。数据库设计
三、瀑布模型适用场所:模块化
适合于结构化方法,也就是面向过程的软件开发方法。
软件项目或产品选择瀑布模型必须知足下列条件:
1)在开发时间内需求没有或不多变化;
2)分析设计人员应对应用领域很熟悉;
3)低风险项目(对目标、环境很熟悉);
4)用户使用环境很稳定;
5)用户除提出需求之外,不多参与开发工做。函数
2、原型模型工具
原型模型是先借用已有系统做为原型模型,经过“样品”不断改进,使得最后的产品就是用户所须要的。主要是经过向用户提供原型获取用户的反馈,使开发出的软件可以真正反映用户的需求。同时,原型模型采用逐步求精的方法完善原型,使得原型可以“快速”开发,避免了像瀑布模型同样在冗长的开发过程当中难以对用户的反馈做出快速的响应。相对瀑布模型而言,原型模型更符合人们开发软件的习惯,是目前较流行的一种实用软件生存期模型性能
1、原型模型的优势:
1)开发人员和用户在“原型”上达成一致。这样一来,能够减小设计中的错误和开发中的风险,也减小了对用户培训的时间,而提升了系统的实用、正确性以及用户的满意程度。
2)缩短了开发周期,加快了工程进度。
3)下降成本。
二、原型模型的缺点:
1)当告诉用户,还必须从新生产该产品时,用户是很难接受的。这每每给工程继续开展带来不利因素。
2)开发者为了使一个原型快速运行起来,每每在实现过程当中采用这种手段。
3) 不宜利用原型系统做为最终产品。采用原型模型开发系统,用户和开发者必须达成一致:原型被建造仅仅是用户用来定义需求,以后便部分或所有抛弃,最终的软件是要充分考虑了质量和可维护性等方面以后才被开发。
三、原型模型的适用场所:
原型模型适用于那些不能预先确切定义需求的软件系统的开发,更适用于那些项目组成员(包括分析员、设计员、程序员和用户)不能很好的交流或者通讯的状况下。
3、喷泉模型
喷泉模型是一种以用户需求为动力,以对象为驱动的模型,主要用于描述面向对象的软件开发过程。该模型认为软件开发过程自下而上周期的各阶段是相互重叠和屡次反复的,就像水喷上去又能够落下来,相似一个喷泉。各个开发阶段没有特定的次序要求,而且能够交互进行,能够在某个开发阶段中随时补充其余任何开发阶段中的遗漏。采用喷泉模型的软件过程以下图所示:
![]()
喷泉模型主要用于面向对象的软件项目,软件的某个部分一般被重复屡次,相关对象在每次迭代中随之加入渐进的软件成分。各活动之间无明显边界,例如设计和实现之间没有明显的边界,这也称为“喷泉模型的无间隙性”。因为对象概念的引入,表达分析、设计及实现等活动只用对象类和关系,从而能够较容易地实现活动的迭代和无间隙。
喷泉模型是由B.H.Sollers和J.M.Edwards于1990年提出的一种新的开发模型。喷泉模型主要用于采用面向对象技术的软件开发项目,喷泉一词自己就体现了迭代和无间隙的特征。无间隙指在各项活动之间无明显边界,如分析、设计和编码之间没有明显的界限。在编码以前再进行需求分析和设计,期间添加有关功能,使系统得以演化。喷泉模型在系统某个部分经常被重复工做屡次,相关对象在每次迭代中随之加入渐进的系统。因为对象概念的引入,需求分析、设计、实现等活动只用对象类和关系来表达,从而能够较为容易地实现活动的迭代和无间隙,而且使得开发过程天然地包括复用。
一、喷泉模型的优势:
喷泉模型不像瀑布模型那样,须要分析活动结束后才开始设计活动,设计活动结束后才开始编码活动。该模型的各个阶段没有明显的界限,开发人员能够同步进行开发。其优势是能够提升软件项目开发效率,节省开发时间,适应于面向对象的软件开发过程。
2、喷泉模型的缺点:
因为喷泉模型在各个开发阶段是重叠的,所以在开发过程当中须要大量的开发人员,所以不利于项目的管理。此外这种模型要求严格管理文档,使得审核的难度加大,尤为是面对可能随时加入各类信息、需求与资料的状况。
3、喷泉模型适用场所:
适应于面向对象的软件开发过程。
详情能够参考:喷泉模型(Fountain Model)智库百科 中的实例
4、V模型
RAD(Rap Application Development,快速应用开发)模型是软件开发过程当中的一个重要模型,因为其模型构图形似字母V,因此又称软件开发的V模型。
![]()
它经过开发和测试同时进行的方式来缩短开发周期,提升开发效率。V模型大致能够划分为如下几个不一样的阶段步骤:需求分析、概要设计、详细设计、软件编码、单元测试、集成测试、系统测试、验收测试。对概要设计中表述的各模块进行深刻分析,对各模块组合进行分析等,这一阶段要求达到伪代码级别,已经把程序的具体实现的功能,现象等描述出来。1、需求分析
即首先要明确客户须要的是什么,须要软件做成什么样子,须要有那几项功能,这一点上比较关键的是分析师和客户沟通时的理解能力与交互性。要求分析师能准确的把客户所须要达到的功能,实现方式,等表述出来,给出分析结果,写出需求规格说明书。
2、概要设计
主要是架构的实现,指搭建架构、表述各模块功能、模块接口链接和数据传递的实现等项事务。
3、详细设计
对概要设计中表述的各模块进行深刻分析,对各模块组合进行分析等,这一阶段要求达到伪代码级别,已经把程序的具体实现的功能,现象等描述出来。其中须要包含数据库设计说明。
4软件编码
按照详细设计好的模块功能表,编程人员编写出实际的代码。
5单元测试
按照设定好的最小测试单元进行按单元测试,主要是测试程序代码,为的是确保各单元模块被正确的编译,单元的具体划分按不一样的单位与不一样的软件有不一样,好比有具体到模块的测试,也有具体到类,函数的测试等。
6集成测试
通过了单元测试后,将各单元组合成完整的体系,主要测试各模块间组合后的功能实现状况,以及模块接口链接的成功与否,数据传递的正确性等,其主要目的是检查软件单位之间的接口是否正确。根据集成测试计划,一边将模块或其余软件单位组合成系统,一边运行该系统,以分析所组成的系统是否正确,各组成部分是否合拍。
7系统测试
通过了单元测试和集成测试之后,咱们要把软件系统搭建起来,按照软件规格说明书中所要求,测试软件其性能功能等是否和用户需求相符合,在系统中运行是否存在漏洞,等。
8验收测试
主要就是用户在拿到软件的时候,在使用现场,会根据前边所提到的需求,以及规格说明书来作相应测试,以肯定软件达到符合效果的。
1、V模型的优势:
1)缩短开发周期
2)提升开发效率
二、V模型的缺点:
V模型仅仅把测试过程做为在需求分析、系统设计及编码以后的一个阶段,忽视了测试对需求分析,系统设计的验证,需求的知足状况一直到后期的验收测试才被验证。
解决的思路是,当一个软件开发的时候,研发人员和测试人员须要同时工做,测试在软件作需求分析的同时就会有测试用例的跟踪,这样,能够尽快找出程序错误和需求偏离,从而更高效的提升程序质量,最大可能的减小成本,同时知足用户的实际软件需求。
3、V模型适用场所:
模式是一种传统软件开发模型,通常适用于一些传统信息系统应用的开发,而一些高性能高风险的系统、互联网软件,或一个系统难以被具体模块化的时候,就比较难作成V模式所需的各类构件,须要更强调迭代的开发模型或者敏捷开发模型。