先说软件工程的产生,在软件开发刚开始的几年里,没有成文的开发方法,人们只是凭着赶脚弄,但是大部分的感性认识是错误的,人们根据前人的经验,逐渐趋向于理性开发。
这个发展阶段经历了从程序设计----------软件设计----------软件工程阶段。所以说,成功不是一个人的,我们都是吸取前人的经验成长的。
到现在,软件工程阶段逐渐流行起来,随之而产生了各种开发模型。有 1.边做边改模型 2.瀑布模型 3.快速原型模型 4.增量模型 5.螺旋模型 6.喷泉模型 7.智能模型
8.混合模型 9.RAD模型。
1、 边做边改
顾名思义,一边开发软件,一边修改软件开发过程中出现的错误,我赶脚这和程序设计阶段无异,这是一种没有吸取前人经验的一种开发模型。这种开发模型只且只能适合于自己开发一个小小的软件,工作当中绝不能出现这种开发模型。
缺点:没有规划,没有进行需求和设计,软件开发无据可循,所以也会致使后期维护雪上加霜。
2、瀑布模型
这是一种文档驱动型的模型,文档有(可行性研究报告、需求说明书、用户手册)软件开发按照线性开发执行,当前活动接受上一级活动的结果,如果上一级活动不通过,则继续进行上一级活动。
它有这么几个缺点:
① 各个阶段的划分固定,文档多,负担重;
② 线性开发的弊端(只有等到开发的末期才能看到开发结果,增加了开发的风险);
③ 早期的错误,可能要等到开发的测试阶段才能发现,进而带来严重的后果。
所以瀑布模型已不适合现代软件的开发模式,这种开发模型将要成为历史。
3、 快速原型模型
由上图可以看出,快速原型模型的要点就是 快速建立模型,了解客户的真正需求后在快速的修改模型。可以减少开发过程中的风险。
4、 增量模型(演化模型)
增量模型就是不断地重复 分析---设计---编码---测试 这个过程。软件被作为一系列的增量构建来设计、实现、集成和测试 。优点是客户可以不断地看到正在开发的软件,降低了开发风险。
缺点:
① 加入的构件很难保证不破坏已构造好的系统部分;
② 在开发过程中,客户需求的变化是不可避免的,所以这种模型也很容易退化成边做边改模型;
5、 螺旋模型
结合了瀑布模型和快速原型模型,特别适合大型复杂的系统。
四个象限分别代表
① 制定计划
② 风险分析
③ 实施工程(实施软件开发和验证)
④ 客户评估
6、 喷泉模型(面向对象的生存期模型)
此模型具有更多的增量和迭代性质,而且还可以在整个项目的生存期中嵌入子生存期。
7、 智能模型
智能模型拥有一组工具(数据查询、报表生成、数据处理、屏幕定义、代码生成、高层图形功能、电子表格等)。这种方法需要第四代语言(4GL)的支持,但目前仅限于事务信息系统的中、小型应用程序的开发。
8、 混合模型(过程开发模型)
顾名思义就是把几种不同模型组合成一种适合团队开发的一种混合模型,实际上,很多开发团队都是使用不同的混合开发模型进行软件的开发的。
9、 RAD模型(快速应用开发)
强调极短的开发周期,是瀑布模型的一个‘高速’变种。此模型完成的主要任务有 业务建模、数据建模、过程建模、应用程序生成、测试与交付。
总结
上面是目前市面上的九种开发模型。开发不同性质的、不同规模的、不同功能的。都需要有不同的软件开发模型,每种开发模型都不是花无缺,都不是‘紫色’的,都有优缺点,在实际的开发过程中,需要那种开发模型,取决于很多因素。
参考资料 http://baike.baidu.com/view/8300.htm?fr=aladdin