![在这里插入图片描述](https://img-blog.csdnimg.cn/6b8ab44912544073a31cc89c64f62b63.png#pic_center)
一、瀑布模型
-
瀑布模型也称软件生存周期模型。瀑布模型将软件开发过程分解为可行性分析、需求分析、概要设计、详细设计、编码与调试、测试、运行和维护几个阶段。他们既是软件开发过程的分解,也是软件生存周期的阶段划分。瀑布模型按照各阶段的目标和任务逐步进行开发,直至通过确认测试,向用户交付最终软件制品为止。瀑布模型思路简洁、明确,上一阶段的开发结果是下一阶段开发的输入,相邻两个阶段具有因果关系,紧密联系。为了保障软件开发的正确性,每一阶段任务完成后,都必须对他的阶段性制品(文档、原型、程序等)进行评审,确认之后再转入下一阶段。
-
瀑布模型适用于规格较小、软件需求比较稳定的项目或子系统,采用瀑布模型能够显著提高软件开发的质量和效率。
-
但瀑布模型在使用过程中也暴露出下列缺点:
①只有在确定软件需求后才能进行后续的软件开发工作,但多数场合给出的大型软件项目的全部需求是困难的,有时甚至是不现实的。
②需求确定后需要相当长的时间(经过设计、实现、测试、运行)才能得到一个最初版本。
③开发人员在上游出现过失会为软件制品带来缺陷,并可能在最终软件运行时造成故障。 -
因此瀑布模型的使用要注意:
①需求明确后再施工。
②每个阶段的结果要及时评审和测试。
③开发周期尽可能段,尽快给用户使用,得到反馈意见。
④一次开发的软件规模不宜过大。
二、增量过程模型
-
增量过程模型的基本思想是:开发人员与用户协商将需求分解,划分为一系列增量,每个增量都经历需求、设计、编码、测试、移交几个阶段。在此过程中不断开发、不断集成、不断交付,直到完成所有增量的开发,得到最终的软件制品。
-
增量式开发的优点是:
①按照增量持续不断地发布软件新版本,可及时获得用户反馈。
②由于软件需求是确定的,可先对软件体系结构进行设计,保持良好地软件体系结构。 -
增量式开发的缺点是:
①增量规模不能大,否则会暴露瀑布模型的缺点。
②将需求分解成增量序列必须对系统需求十分了解,并有顶层设计经验。
三、原型建造模型
-
软件开发人员根据客户提出的软件(部分或全部)定义,快速地开发一个原型,向客户展示了待开发软件系统的全部或部分功能和性能,在征求客户对原型意见的过程中,进一步修改、完善、确认软件系统的需求并达到一致的理解。
-
快速开发原型的途径有:
①利用计算机模拟软件系统。
②利用敏捷软件开发方法开发工作原型。
③通过若干类似软件向客户展示需求中的部分或全部功能。 -
原型主要有两类:
①抛弃型原型,利用原型定义和确认了软件需求后原型就完成了任务。
②应用型原型,利用原型确认软件需求后,对其进一步加工、完善,使之称为系统的一个组成部分。
四、螺旋模型
-
螺旋模型是迭代模型。将瀑布模型和快速原型模型结合,从里向外,每个回路都由制定计划、风险分析、实施工程、用户评估四个阶段组成,适合大型软件开发。
-
螺旋模型的优点是:风险驱动,关注软件的重用、关注早期错误的消除、将质量目标放在首位、将开发阶段与维护阶段结合在一起。
-
螺旋模型的缺点是:由于需求的不确定性,软件开发初期无法进行软件体系结构设计,多次迭代会导致软件体系结构变坏,为软件理解和维护带来困难。
五、形式化方法模型
-
首先将软件需求描述提炼成采用数学符号表达的形式化描述。然后经过一系列的形式化转换将形式化描述转换成可执行程序,最后将整个系统集成起来测试。
-
形式化方法模型的优点:由于数学方法具有严密性和准确性,形式化方法开发过程所交付的软件系统具有较少的缺陷和较高的安全性。
-
形式化方法模型的缺点:
①开发人员需要具备一定技能并经过特殊训练。
②形式化描述和转换是一项费时费力的工作,成本高,质量不一定高。
③现实应用的系统大多数是交互性强的软件,难以用形式化方法进行描述。