软件工程之开发模型

news/2024/7/4 23:08:32

        先说软件工程的产生,在软件开发刚开始的几年里,没有成文的开发方法,人们只是凭着赶脚弄,但是大部分的感性认识是错误的,人们根据前人的经验,逐渐趋向于理性开发。

这个发展阶段经历了从程序设计----------软件设计----------软件工程阶段。所以说,成功不是一个人的,我们都是吸取前人的经验成长的。

        到现在,软件工程阶段逐渐流行起来,随之而产生了各种开发模型。有 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



http://www.niftyadmin.cn/n/4582058.html

相关文章

zookeeper(四):核心原理(Watcher、事件和状态)

zookeeper主要是为了统一分布式系统中各个节点的工作状态,在资源冲突的情况下协调提供节点资源抢占,提供给每个节点了解整个集群所处状态的途径。这一切的实现都依赖于zookeeper中的事件监听和通知机制。 zookeeper中的事件和状态 事件和状态构成了zooke…

flex几种多列布局

基本的等分三列布局 .container{display: flex;width: 500px;height: 200px;}.left{flex:1;background: red;}.middle{flex:1;background: green;}.right{flex:1;background: blue;} <div class"container"><div class"left"></div><…

软件工程--------耦合和内聚

我们在设计程序的时候&#xff0c;往往会划分模块&#xff0c;怎样更好的设计模块&#xff1f;模块的设计标准又是什么&#xff1f; 模块的耦合和内聚就是用来描述模块设计的好坏。模块的划分总原则是 高内聚、低耦合。 模块的耦合方式从低到高依次是非直接耦合----数据耦合-…

理理清楚 超键、候选键、主键和外键

超键也叫超关键字、候选键也叫候选关键字、主键也叫主关键字、外键也叫外关键字。中国的汉字真是博大精深那&#xff01; 先上概念&#xff1a; 超键&#xff1a; 在关系中能唯一标识元组的属性集称为关系模式的超键&#xff1b; 候选键&#xff1a; 不含有多余属性的…

自定义 Django的User Model,扩展 AbstractUser类注意事项

本篇主要讨论一下User Model的使用技巧. 注意, 由于Django 1.5之后user model带来了很大的变化, 本篇内容只针对django 1.5之后的版本. 1. 确定 User Model 我们推荐一下方式来确定某一django项目使用的user model: # 使用默认User model时>>> from django.contrib.au…

软功需要用到的几种图

随着软件危机的不断产生&#xff0c;所以大家才提出了软件工程这门学科&#xff0c;软件工程简单来说就是用工程化的方法管理软件的开发和维护&#xff0c;使软件容错率大大降低。 描述复杂的事物时图形远比文字叙述优越的多&#xff0c;它形象直观容易理解。 系统流程图 在…

进程中的事件

# 可控制 多个进程 同时 执行或阻塞# 事件# set 和 clear# 分别用来修改一个事件的状态&#xff0c;True或者False&#xff0c;True表示设置为非阻塞&#xff0c;False表示设置为阻塞# is_set 查看一个事件的状态# wait 根据事件状态来决定自己是否阻塞# from multiprocessing …

UML与软件开发的关系

我们都知道软件工程是由于软件危机而产生的一门具有科学化开发方法的一门学科。 经典的软件工程思想将软件开发分成以下五个阶段&#xff1a;需求捕获&#xff08;Requirement Capture&#xff09;阶段、系统分析与设计&#xff08;System Analysis And Design&#xff09;阶段…