系统开发和项目管理基础——软件开发模型

一个好的软件开发模型可以更好的去指导我们如何去开发一个新系统,可以更有利于我们的项目管理,在软考中,常见的软件开发模型需要掌握这几种开发模型的特点以及区别,第一种瀑布模型,后面还有V模型、喷泉模型、原型化模型、演化模型、增量模型。


瀑布模型:

瀑布模型.png

瀑布模型也叫软件生命周期法,它是把整个软件开发过程分为软件计划,需求分析,软件设计,程序编码,软件状态,运行维护这几个阶段,并且规定这几个阶段的次序是从上到下,逐级进行下落,就像瀑布流水一样,瀑布模型前面是每一个阶段只做一次,例如现在在做需求分析,后面做软件设计的时候是不会返回来做需求分析的,但是如果需求分析做完了但是没有通过,那么还是需要返回来继续做需求分析,一旦通过到了软件设计,就不会返回来做需求分析了。

瀑布模型非常有利于大型项目中人员的管理,但是瀑布模型有它一些特有的缺陷,例如错误,在前期没有发现的一些错误,到后续阶段的时候,这个错误暴露出来可能会影响整个项目的开发失败,但是最重要的一部分是需求分析,在需求分析这个阶段用户是参与进来的,直到测试完毕之后用户才参与进来了,中间的阶段用户是不参与进来的,那就会导致如果不能精准的捕获用户的需求就会出现一些问题,例如你是乙方,客户是甲方,甲方委托乙方开发一个新系统,这个新系统乙方以前没有类似的开发经验,从来没有开发过类似规模的系统,第一次开发。现在向甲方捕获需求,甲方多半是非IT的人员,根本不懂什么叫需求,只要求这个系统好看好用就可以,但是一旦乙方按照自己理解的好看好用来做,很有可能经过乙方的的需求分析之后,中间历时软件设计、编码、测试,直到最后把新系统交给甲方,甲方发现跟甲方理解的好看好用偏差很远,就会导致项目失败,所以强调的是在瀑布模型中,需求分析一定要能精准的捕获用户的需求,对用户需求不能精准捕获的不能使用瀑布模型。对需求不明确的项目适合使用原型化模型、演化模型和增量模型。


原型化模型:

原型化模型首先会构建一个软件原型,这个软件原型可以是一个非常粗糙的界面,上面会内置一些按钮,说明系统有什么样的功能,再让用户使用,使用之后在提出具体的改进意见,通过这种方式去精准捕获用户的需求,有一种叫抛弃原型式,这种原型一开始的目的就是捕获用户的需求,当新系统开发完成后,这个原型就不在使用,新系统的开发不是在这个原型上进行开发的。


演化模型和增量模型

演化模型和增量模型是在原型的基础上进一步的演化和增量,直到形成一个完整的新系统,演化和增量的区别在于增量要求每一次增量发布都要发布一个可操作的产品出来,而演化模型不要求每一次都要发布一个可操作的产品出来。


V模型:

V模型.png

V模型是拔高了测试地位,因为在瀑布模型中,测试放在了后面,把整个编码玩抽后才去做测试,而V模型就是拔高了测试地位,就是在做需求分析的时候同时做好系统测试的计划,做概要设计的时候做好集成测试的计划,做详细设计的时候做好单元测试的计划,单元测试对应的详细设计,所以单元测试测试的是整个模块,集成测试对应的概要设计,它测试的是模块与模块之间的协作性,最后做系统测试,这个测试主要是测试新系统是否符合用户的需求,可以结合网络、硬件来测试整个新系统,验收测试主要是看一下是否满足合同要求,不管哪一个测试,一旦测试中发现问题,就需要对问题进行修改,修改之后还需要检查这种修改是否会引起其他错误,要针对这个问题再次测试,这种测试叫回归测试或退化测试。


喷泉模型:

喷泉模型.png

喷泉模型指的是软件开发的各个阶段存在一个迭代机制,也就是说我需求分析还没做完的时候我就可以先做小部分的软件设计了,喷泉模型强调的是各个阶段之间没有明显的界线,主要是为了提高开发的效率,但是不利于人员的组织和管理,不利于文档的管理。


螺旋模型

螺旋模型.png

螺旋模型其实就是原型化模型加上一个瀑布模型的组合,主要是加入了一个风险分析。开发的时候会围绕着螺线从里到外一步一步开发。


二维码

发表评论