目录
一.瀑布模型
二、喷泉模型
三、快速原型模型
四、增量模型
五、螺旋模型
六、Rational统一模型
七、微软过程模型
Hello,你好呀!我是灰小猿,一个超会写bug的程序猿!
今天来和大家分享一下在进行系统的软件开发的过程中常用的七大软件过程模型,熟悉软件开发常用的几种模型方法。助力每一个程序员小伙伴都可以尽早成为项目经理哟!
一.瀑布模型
瀑布模型严格遵循软件生命周期各阶段的固定顺序:计划、分析、设计、编程、训试和维护,上一阶段完成后才能进入到下一阶段, 整个模型就像一个飞流直下的瀑布。
瀑布模型的过程如下图:
瀑布模型有许多优点:
可强迫开发人员采用规范的方法:
严格规定了各阶段必须提交的文档:
要求每个阶段结束后,都要进行严格的评审。
但这也造就了瀑布模型过于理想化,而且缺之灵活性,无法在开发过程中逐渐明确用户难以确切表达或一时难以想到的需求,直到软件开发完成之后才发现与用户需求有很大距离,此时必须付出高额的代价才能纠正这一偏差,这开发模型主要适用于需求非常明确的应用。
二、喷泉模型
喷泉模型主要用于描述面向对象的开发过程,“喷泉”一词体现了面向对象开发过程的迭代和无间隙特征。迭代意味着模型中的开发活动常常需要多次重复,每次重复都会增加或明确一些目 标系统的性质,但却不是对先前工作结果的本质性改动。无间隐是指在开发活动(如分析、设计、编程)之间不存在明显的边界,而是允许各开发活动交叉、迭代地进行。
喷泉模型具有的优点是:
无缝、可同步开发,提高开发效率,节省开发时间,适用于面向对象的软件开发。
但是对于这样的模型同样是具有缺点的:
在软件开发过程中可能随时会增加各种信息、需求和资料,需要严格管理文档,这样就造成了审核的难度逐渐增大。
三、快速原型模型
快速原型模型对于许多需求不够明确的项目,比较适合采用该模型。它采用了一种动态定义需求的方法,通过快速地建立个能够反映用户主要需求的软件原型,让用户在计算机上使用它,了解其概要,再根据反馈的结果进行修改,因此能够充分体现用户的参与和决策。原型化人员对原型的实施很重要,衡量他们的重要标准是能否从用户的模糊描述中快速地获取实际的需求。
快速原型模型的优点是:
由于该模型是通过原型与用户进行交互,所以在确定需求上优于瀑布模型,通过开发原型和演示原型对开发者和使用者了解系统都有积极作用。同时最重要的一点是有的软件原型可以成为最终产品的一部分。
但是由于该模型开发特有的特点,也使得它快速建立的系统结构加上连续的修改可能导致软件质量低下,原型系统的内部结构可能不好。
四、增量模型
增量模型(演化模型)也是一 种原型化开发方法,但与快速原型模型略有不同。在快速原型模型中,原型的用途是获知用户的真正需求,一 旦需求确定了,原型即被抛弃。而演化模型的开发过程,则是从初始模型逐步演化为最终软件产品的渐进过程。也就是说,快速原型模型是一种“抛弃式”的原型化方法,而增量模型则是一种“渐进式”的原型化方法。
增量模型所具有的优点是:
较短的时间内向用户提交可完成的有用工作产品,从而保证用户有充裕的时间学习适应产品,软件结构必须开放,能够方便向现有产品加入新构件。但也正是这样的一个要求也称为了增量模型开发的一个缺点,即在软件开发的过程中,向现有产品中加入新构件是十分不便的。
五、螺旋模型
螺旋模型结合瀑布模型和增量模型的优点,最主要的特点在于加入了风险分析。它是由制订计划、风险分析、实施工程、客户评估这循环组成的, 它最初从概念项目开始策一个螺旋, 这种开发模型将风险分析作为个单独的阶段来做,比较适合风险救大的大中型的软件开发项目。
根据螺旋模型开发的特点,我们其实就可以得出螺旋模型的优点就是对于大型软件开发项目具有较好的风险控制。
但是同样也就是这样的一个优点所造成了的缺点是,开发人员需要有风险评估的经验,契约开发通常需要指定过程模型和发布产品。
六、Rational统一模型
Rational统一过程是一个二维生命周期模型,该过程强调以迭代和增量的方法开发软件,
该模型的优点是:不断的版本发布成为一种团队日常工作的真正驱动力,将发现问题、制定方案和解决过程集成到下一次迭代,使用迭代开发,能够降低开发风险。能够更好的安排产品开发的辅助过程。
七、微软过程模型
规划阶段:微软过程模型开展市场调查研究,结合公司战略形成产品的远景目标,
设计阶段:根据产品远景目标,完成软件规格说明和总体设计,确定产品开发的主要进度。
开发阶段:主要则是完成产品中所有构件的研发,稳定阶段实行全面的内部和外部测试,最终形成可发布的RTM版本。
发布阶段:确定产品质量符合发布标准后,发布产品及其相关消息。
该模型采用渐进式的开发策略,解决问题的及时性、不确定性和变更因素的可控性,缩短产品上市周期。
好了,关于软件开发的七大过程模型就和大家分享这些,之后还会使用具体的项目案例针对每一种模型进行剖析。 灰小猿陪你一起进步!