赞
踩
边做边改模型如同他的字面意思一样,可以理解为,开始没有架构框架,通过在软件开发的过程中去整改,遇到问题才会去整改。
可以看到,很多的项目管理的考试中都包含了软件开发模型的类别,因为不能称作是真正的模型,所以很少有提到边做边改模型。但是在一些包含安全架构,安全开发的考试中就会提到,之所以会包含,是因为很多厂家都在采用这个方法。
瀑布模型是将项目活动分解为线性顺序阶段,其中每个阶段取决于前一个阶段的可交付成果,可以理解成线性生命周期的方法,在上一个阶段完成后,下一个阶段才开始。
在软件开发中,它往往是迭代性和灵活度较低的方法之一,因为进展在很大程度上沿一个方向流动(像瀑布一样“向下” )通过概念、启动、分析、设计、构建、测试等阶段,部署和维护。
这种模型比较适合小型项目,在开始就已经明确需求和目标,这个模型就可以很好的提供架构框架,但在变更或不确定性较高的项目中,这种方法就不适合。
总结一下瀑布模型的主要应用场景:
瀑布模型可能存在的问题:
首先接上面的瀑布模型:如果在复杂的大型项目中,容易错过需求阶段本身的关键细节。在这种情况下,一个完全错误的产品将交付给客户,可能需要重新开始项目,但在软件的设计和架构中犯了严重错误,项目经理和团队将不得不重新设计整个软件来纠正错误。
为了解决上面的问题,提出了V 模型。
V 模型是一个高度规范的 SDLC 模型( SDLC 是软件开发生命周期),其中有一个与每个开发阶段平行的测试阶段。V形模型与瀑布模型最大的不同在于,V形模型不再采用瀑布模型的平面线性方式,反而增加了每个阶段的验证和确认功能。
验证和确认的区别
验证:验证产品是否满足了产品规范
确认:是否通过合适的方式,针对问题提出了必要的解决方法
V形模型相比瀑布模型更高效的地方在于,V形模型在每个阶段结束后,都判断了结果,结果达到标准后再进行下一阶段。
原型模型要求在进行实际软件开发之前,应建立系统的工作原型。
原型通常是实际系统的一个非常粗糙的版本,与实际软件相比,可能表现出有限的功能能力、低可靠性和低效的性能。
在许多情况下,客户只能对软件产品的期望有一个大致的了解。在没有关于系统输入、处理需求和输出需求的详细信息的这种情况下,可以使用原型模型。
原型模型的优点:
原型模型的缺点:
一个不稳定/执行不善的原型通常会成为最终产品
花费大
很难知道该项目将持续多久
耗时长
快速原型:快速开发一个原型模型,开发的原型不一定是最终接受的原型的一部分
递进原型:渐进形式,过程中不断演化,也就是最初开发的原型在客户反馈的基础上逐步完善,直到最终被接受
运行原型:实在开发环境中的对原型的改进
在增量模型中,首先有一个完整的可交付的系统,然后随着改变和更新,每次增量都会产出一个可交付成果,也就是在每次进行增量模型时,都会对原产品进行改进。
增量模型有助于以增量方式交付发布序列,从而加快每个功能的开发进度。
每个开发的功能都会一个接一个地交付给最终用户,第一个增量始终是基本功能,其他功能在新版本的下一个增量中添加,以防客户在审核第一个版本后请求添加任何新功能。
这个过程一直进行到开发出完整的产品。
优点在于,每次都会在一个可交付的成果上进行改进,提高了效率,并且反馈的结果易于修改产品。
软件测试中的螺旋模型是一种适用于增量和原型技术的测试策略。螺旋模型看起来像一个带有许多循环的螺旋。螺旋的确切圈数是未知的,并且可能因项目而异。
对于风险高且开发和测试逐步进行的大型复杂项目,通常遵循螺旋模型策略。螺旋模型也称为螺旋生命周期模型。螺旋模型是由 Barry Boehm 于 1985 年引入的。
螺旋模型阶段
快速应用程序开发模型由 IBM 在 1980 年代首次提出。
如果可以将项目分解为小模块,其中每个模块可以独立分配给不同的团队,则可以使用此模型实施软件项目。
快速应用程序开发模型优点:
敏捷模型的主要目的是帮助项目快速适应变更请求,促进项目的快速完成。
敏捷性是通过使流程适合项目来实现的,消除对特定项目可能不是必需的活动并避免任何浪费时间和精力的事情。
敏捷模型的优点在于,可以促进跨部门的合作及更优的反馈机制。
在敏捷模型中,需求被分解成许多可以增量开发的小部分。敏捷模型采用迭代开发,每个增量部分都是在一次迭代中开发的。每次迭代都旨在小型且易于管理,并且可以在几周内完成。
敏捷模型是增量模型和迭代模型的集合,阶段包含:
敏捷模型通过结对编程产生编写良好的紧凑程序,与单独工作的程序员相比,错误更少,减少了整个项目的总开发时间。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。