软件开发模型简介
2015-08-11 09:21
281 查看
学习软件工程,软件开发模型是很重要的一部分,下面就来为大家介绍几种基本的软件开发模型:
一、瀑布模型:
本篇博客采用图文结合的方式来为大家讲解,模型的特点讲解都放在了图上,下面几张图依然一样。
瀑布模型核心思想是按工序将问题化简,将功能的实现与设计分开,便于分工协作,即采用结构化的分析与设计方法将逻辑实现与物理实现分开。将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。
瀑布模型是最早的开发模型,到现在几乎已经被淘汰了,但是它清晰的层次性思想,依然被人们所沿用。
二、b模型:
这也是一种迭代思想的体现。
三、快速原型法:
首先制出样品以表达设计构想,快速获取产品设计的反馈信息,并对产品设计的可行性作出评估、论证。这种快速原型的思想还是比较为用户考虑的,这一点非常赞同。
四、渐增模型:
渐增模型是典型的先整体后部分,先实现部分功能,然后逐渐完善。
五、螺旋模型:
这是一种演化软件开发过程模型,兼顾了快速原型的迭代的特征以及瀑布模型的层次化与严格审查性。最大的特点在于引入了其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减小损失。同时,在每个迭代阶段构建原型是螺旋模型用以减小风险的途径。螺旋模型更适合大型的昂贵的系统级的软件应用。
缺点:建设周期长,很可能开发出来的时候,软件已经过时了。
六、喷泉模型:
优点:不像瀑布模型那样,需要分析活动结束后才开始设计活动,设计活动结束后才开始编码活动。该模型的各个阶段没有明显的界限,开发人员可以同步进行开发。可以提高软件项目开发效率,节省开发时间,适应于面向对象的软件开发过程。
缺点:喷泉模型的缺点也很明显,由于在各个开发阶段是重叠的,因此在开发过程中需要大量的开发人员,不利于项目的管理。此外这种模型要求严格管理文档,使得审核的难度加大,尤其是面对可能随时加入各种信息、需求与资料的情况。
最后来和大家探讨一下原型思想(原型也是增量模型的另一种体现形式):
思想:允许从部分需求出发,先建立一个不全面的系统,通过测试系统,逐步扩充、完善。
优点:开发过程中开发人员和客户共同参与,有问题可以随时修改,很好的满足用户需求。
缺点:周期长,成本高,整体结构、软件文档不如瀑布模型划分严格。
一、瀑布模型:
本篇博客采用图文结合的方式来为大家讲解,模型的特点讲解都放在了图上,下面几张图依然一样。
瀑布模型核心思想是按工序将问题化简,将功能的实现与设计分开,便于分工协作,即采用结构化的分析与设计方法将逻辑实现与物理实现分开。将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。
瀑布模型是最早的开发模型,到现在几乎已经被淘汰了,但是它清晰的层次性思想,依然被人们所沿用。
二、b模型:
这也是一种迭代思想的体现。
三、快速原型法:
首先制出样品以表达设计构想,快速获取产品设计的反馈信息,并对产品设计的可行性作出评估、论证。这种快速原型的思想还是比较为用户考虑的,这一点非常赞同。
四、渐增模型:
渐增模型是典型的先整体后部分,先实现部分功能,然后逐渐完善。
五、螺旋模型:
这是一种演化软件开发过程模型,兼顾了快速原型的迭代的特征以及瀑布模型的层次化与严格审查性。最大的特点在于引入了其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减小损失。同时,在每个迭代阶段构建原型是螺旋模型用以减小风险的途径。螺旋模型更适合大型的昂贵的系统级的软件应用。
缺点:建设周期长,很可能开发出来的时候,软件已经过时了。
六、喷泉模型:
优点:不像瀑布模型那样,需要分析活动结束后才开始设计活动,设计活动结束后才开始编码活动。该模型的各个阶段没有明显的界限,开发人员可以同步进行开发。可以提高软件项目开发效率,节省开发时间,适应于面向对象的软件开发过程。
缺点:喷泉模型的缺点也很明显,由于在各个开发阶段是重叠的,因此在开发过程中需要大量的开发人员,不利于项目的管理。此外这种模型要求严格管理文档,使得审核的难度加大,尤其是面对可能随时加入各种信息、需求与资料的情况。
最后来和大家探讨一下原型思想(原型也是增量模型的另一种体现形式):
思想:允许从部分需求出发,先建立一个不全面的系统,通过测试系统,逐步扩充、完善。
优点:开发过程中开发人员和客户共同参与,有问题可以随时修改,很好的满足用户需求。
缺点:周期长,成本高,整体结构、软件文档不如瀑布模型划分严格。
相关文章推荐
- Codeforces Round #315 (Div. 2)569A Music(模拟)
- Autofact 的使用
- 【Stirling Number I】
- MySQL日期数据类型、时间类型使用总结
- JavaScript与jQuery中获取屏幕的宽度和高度的常用方法以及HTML中精确定位
- UILabel控件Origin值设置细节
- 计蒜客 难题题库 224 判断奇偶
- Seek the Name, Seek the Fame poj 2752
- linux 安装JDK
- 学习笔记002之学习资料
- 关于tomcat启动成功,无法访问的各种坑爹集锦
- 安装ndoutils 提示“MySQL library could not be located”错误!
- instancetype和id的区别
- 非整除序列
- 计蒜客 难题题库 223 字母排序
- [J2EE]UEditor编辑器实现新闻发布系统[jsp版]
- poj 3020 Antenna Placement (最小路径覆盖)
- android解析xml的方式
- hdu 1711 Number Sequence
- 超强、超详细Redis数据库入门教程