【软件工程】软件开发的领路者——过程模型
2014-11-16 21:54
337 查看
不管做什么事吧,我们都会在做事儿之前制定一个大致的计划,并按照计划执行。比如计划一次暑假旅行,一次的节日欢庆,一次重要的会议等等,有了计划我们就知道了在什么时间做什么事。 同样在软件开发中也要制定一个计划,这个计划是什么?
在软件工程中,这个计划就是软件软件开发的领路者——过程模型。
那么,过程模型是什么?干什么的?为什么要那么做?有什么好处?
过程模型是软件开发全部过程、活动和任务的结构框架。它说明了软件开发应该遵循的步骤,是软件开发过程中共同遵守的规则。俗话说“无规矩不成方圆”,在开发过程中只有遵循了这样的步骤和规则,开发就有章可循,按部就班地进行了。 这种做法可以发现过程及组成部分中的不一致、冗余和遗漏,必然使得开发有序而高效。
一、常用的五种类型。
瀑布模型:从时间角度对软件开发和维护的复杂问题进行分解,把软件生存的漫长周期依次划分为若干个阶段,每个阶段有相对独立的任务,然后逐步完成每个阶段的任务。
原型:根据用户的基本需求,通过快速分析构造出该软件的一个初始可运行版本。
演化模型:用户在使用原型的过程中提出的意见和建议对原型进行改进,获得原型的新版本。重复这一过程,最终可得到令用户满意的软件产品。
螺旋模型:采用一种周期性的方法来进行系统开发。
喷泉模型:是一种以用户需求为动力,以对象为驱动的模型,主要用于描述面向对象的软件开发过程
二、联系与区别
万物发展是不断变化的,因为变化,所以更加适应环境,更加有利于发展。在上面我们看到了过程模型的位5种类型,它们是怎么发展而来的呢? 我们先从瀑布模型说起吧,它是其他模型的发源地。
1.瀑布模型
软件开发时一个非常复杂的系统活动,人们解决复杂问题时普遍对其进行分解后再分别解决。应用这种思想把软件开发活动分成了几个阶段。
产生了瀑布模型。
(1)开发步骤
①可行性:有用户和高级程序员从软件的价值、目标、规模、技术、经济社会因素等方面确定软件系统能否开发。
②需求分析:用书面形式描述系统能干什么。
③设计:先整体后局部,将系统分解成模块,然后对模块内代码、数据结构等进行设计。
④编程:选语言编写程序,可在计算机上运行。
⑤测试:排除2,3,4阶段的错误,保证软件质量。
⑥运行与维护:不断进行修改、完善、维护系统。
(2)模型特点:
①需求分析中明确软件的全部需求是困难的,即便确定了需求也得要很长时间才能得到软件最初版本
②开发成功率低
③风险较大
④各阶段有一定的依赖性,只有完成一个后才能进行下一个
2.原型模型
针对瀑布模型特点①,可以快速开发出一个模型,使其能够展示待开发软件系统的全部或部分功能。原型充分展示软件的可见部分,在征求用户对原型意见的过程中,进一步修改、完善、确认软件的需求。原型模型类似于城区规划,用虚拟技术设计出规划蓝图,从中可以看出未来城市的面貌。
原型和瀑布相比具有的一些特点:
(1)与用户见面早
(2)整体结构不清晰
(3)产生的文档不严格
(4)周期长,成本高
3.演化模型
瀑布模型中特点①②,使得开发项目难于做到一次开发成功,出现返工在所难免。因此,从需求认识和开发成功率着手,进行二次开发。软件开发人员根据用户的需求,首先开发出核心系统,用户评价并提出精化系统、增强系统能力的需求。其次,软件开发人员根据用户的反馈,实施开发的迭代过程。
迭代过程由需求、设计、编码、测试、集成等阶段组成。 每迭代一次都开发一部分的功能,它们成为这个产品的原型的新增功能。不断地演化出新的系统。
相比瀑布和原型模型,它的特点:
(1)类似于多次重复瀑布模型
(2)以原型为基础进行,逐步求精
(3)软件质量有保证,成功率高
4.螺旋模型
将开发活动与风向管理结合起来,对项目每个阶段实行瀑布模型。每一个开发阶段前引入一个非常严格的风险识别、分析和控制,它把软件项目分解成一个个小项目。每个小项目都标识一个或多个主要风险,直到所有的主要风险因素都被确定。
与其他模型相比,特点有:
(1)同风险管理结合
(2)借鉴了上述三种模型一个特点
(3)周期性较强
(4)每一个周期都包括需求定义、风险分析、工程实现和评审。
5.喷泉模型
借鉴演化模型迭代的思想和面向对象技术,在开发过程中自下而上各阶段是周期地相互迭代开发,软件的某个部分常常被重复工作多次,相关对象在每次迭代中随之加入其中。
新颖之处:
(1)用到了面向对象技术
(2)各阶段可以同时进行开发
(3)效率明显高,比较省时间
三、总结
对一个软件的开发无论其大小,我们都需要选择一个合适的软件过程模型,也可以针对不同阶段选择合适模型。这种选择基于项目和应用的性质、采用的方法、需要的控制,以及要交付的产品的特点。
“一将无能,累死三军” ,一个错误模型的选择,将迷失我们的开发方向,造成巨大的损失。
“八仙过海,各显神通”,灵活运用各种模型,使开发更高效,软件质量更有保证,用户体验更满意。
在软件工程中,这个计划就是软件软件开发的领路者——过程模型。
那么,过程模型是什么?干什么的?为什么要那么做?有什么好处?
过程模型是软件开发全部过程、活动和任务的结构框架。它说明了软件开发应该遵循的步骤,是软件开发过程中共同遵守的规则。俗话说“无规矩不成方圆”,在开发过程中只有遵循了这样的步骤和规则,开发就有章可循,按部就班地进行了。 这种做法可以发现过程及组成部分中的不一致、冗余和遗漏,必然使得开发有序而高效。
一、常用的五种类型。
瀑布模型:从时间角度对软件开发和维护的复杂问题进行分解,把软件生存的漫长周期依次划分为若干个阶段,每个阶段有相对独立的任务,然后逐步完成每个阶段的任务。
原型:根据用户的基本需求,通过快速分析构造出该软件的一个初始可运行版本。
演化模型:用户在使用原型的过程中提出的意见和建议对原型进行改进,获得原型的新版本。重复这一过程,最终可得到令用户满意的软件产品。
螺旋模型:采用一种周期性的方法来进行系统开发。
喷泉模型:是一种以用户需求为动力,以对象为驱动的模型,主要用于描述面向对象的软件开发过程
二、联系与区别
万物发展是不断变化的,因为变化,所以更加适应环境,更加有利于发展。在上面我们看到了过程模型的位5种类型,它们是怎么发展而来的呢? 我们先从瀑布模型说起吧,它是其他模型的发源地。
1.瀑布模型
软件开发时一个非常复杂的系统活动,人们解决复杂问题时普遍对其进行分解后再分别解决。应用这种思想把软件开发活动分成了几个阶段。
产生了瀑布模型。
(1)开发步骤
①可行性:有用户和高级程序员从软件的价值、目标、规模、技术、经济社会因素等方面确定软件系统能否开发。
②需求分析:用书面形式描述系统能干什么。
③设计:先整体后局部,将系统分解成模块,然后对模块内代码、数据结构等进行设计。
④编程:选语言编写程序,可在计算机上运行。
⑤测试:排除2,3,4阶段的错误,保证软件质量。
⑥运行与维护:不断进行修改、完善、维护系统。
(2)模型特点:
①需求分析中明确软件的全部需求是困难的,即便确定了需求也得要很长时间才能得到软件最初版本
②开发成功率低
③风险较大
④各阶段有一定的依赖性,只有完成一个后才能进行下一个
2.原型模型
针对瀑布模型特点①,可以快速开发出一个模型,使其能够展示待开发软件系统的全部或部分功能。原型充分展示软件的可见部分,在征求用户对原型意见的过程中,进一步修改、完善、确认软件的需求。原型模型类似于城区规划,用虚拟技术设计出规划蓝图,从中可以看出未来城市的面貌。
原型和瀑布相比具有的一些特点:
(1)与用户见面早
(2)整体结构不清晰
(3)产生的文档不严格
(4)周期长,成本高
3.演化模型
瀑布模型中特点①②,使得开发项目难于做到一次开发成功,出现返工在所难免。因此,从需求认识和开发成功率着手,进行二次开发。软件开发人员根据用户的需求,首先开发出核心系统,用户评价并提出精化系统、增强系统能力的需求。其次,软件开发人员根据用户的反馈,实施开发的迭代过程。
迭代过程由需求、设计、编码、测试、集成等阶段组成。 每迭代一次都开发一部分的功能,它们成为这个产品的原型的新增功能。不断地演化出新的系统。
相比瀑布和原型模型,它的特点:
(1)类似于多次重复瀑布模型
(2)以原型为基础进行,逐步求精
(3)软件质量有保证,成功率高
4.螺旋模型
将开发活动与风向管理结合起来,对项目每个阶段实行瀑布模型。每一个开发阶段前引入一个非常严格的风险识别、分析和控制,它把软件项目分解成一个个小项目。每个小项目都标识一个或多个主要风险,直到所有的主要风险因素都被确定。
与其他模型相比,特点有:
(1)同风险管理结合
(2)借鉴了上述三种模型一个特点
(3)周期性较强
(4)每一个周期都包括需求定义、风险分析、工程实现和评审。
5.喷泉模型
借鉴演化模型迭代的思想和面向对象技术,在开发过程中自下而上各阶段是周期地相互迭代开发,软件的某个部分常常被重复工作多次,相关对象在每次迭代中随之加入其中。
新颖之处:
(1)用到了面向对象技术
(2)各阶段可以同时进行开发
(3)效率明显高,比较省时间
三、总结
对一个软件的开发无论其大小,我们都需要选择一个合适的软件过程模型,也可以针对不同阶段选择合适模型。这种选择基于项目和应用的性质、采用的方法、需要的控制,以及要交付的产品的特点。
“一将无能,累死三军” ,一个错误模型的选择,将迷失我们的开发方向,造成巨大的损失。
“八仙过海,各显神通”,灵活运用各种模型,使开发更高效,软件质量更有保证,用户体验更满意。
相关文章推荐
- 软件开发过程及几个常见的开发模型(软件工程学习笔记)
- 软件开发过程模型
- 微软软件开发过程与团队模型
- UML建模与软件开发过程模型
- 软件工程——软件生存周期(软件过程)模型的总结
- 软件开发过程生命周期模型
- 软件工程之软件开发模型类型
- 常用软件开发过程模型比较
- 模型驱动与测试驱动相结合的软件开发过程(2010-09-21)
- 软件工程——软件生存周期(软件过程)模型的总结
- 『程序员』 [.Net]微软软件开发过程与团队模型
- .Net微软软件开发过程与团队模型
- UML建模与软件开发过程模型
- 软件开发过程模型比较
- 统一软件开发过程之1:创建领域模型
- 软件工程--软件过程模型
- 模型驱动与测试驱动相结合的软件开发过程
- 软件开发过程模型,软件过程模型,软件开发过程几种模型对比
- 软件工程--开发过程模型对比
- 软件工程--软件过程模型