【软件工程】软件开发的领路者——过程模型

来源:互联网 发布:seo招聘北京 编辑:程序博客网 时间:2024/04/30 17:36

     不管做什么事吧,我们都会在做事儿之前制定一个大致的计划,并按照计划执行。比如计划一次暑假旅行,一次的节日欢庆,一次重要的会议等等,有了计划我们就知道了在什么时间做什么事。 同样在软件开发中也要制定一个计划,这个计划是什么?

    在软件工程中,这个计划就是软件软件开发的领路者——过程模型

    那么,过程模型是什么?干什么的?为什么要那么做?有什么好处?

    过程模型是软件开发全部过程、活动和任务的结构框架。它说明了软件开发应该遵循的步骤,是软件开发过程中共同遵守的规则。俗话说“无规矩不成方圆”,在开发过程中只有遵循了这样的步骤和规则,开发就有章可循,按部就班地进行了。 这种做法可以发现过程及组成部分中的不一致、冗余和遗漏,必然使得开发有序而高效。

    

一、常用的五种类型。

   瀑布模型:从时间角度对软件开发和维护的复杂问题进行分解,把软件生存的漫长周期依次划分为若干个阶段,每个阶段有相对独立的任务,然后逐步完成每个阶段的任务。

   原型根据用户的基本需求,通过快速分析构造出该软件的一个初始可运行版本。

   演化模型用户在使用原型的过程中提出的意见和建议对原型进行改进,获得原型的新版本。重复这一过程,最终可得到令用户满意的软件产品。

      螺旋模型采用一种周期性的方法来进行系统开发。

   喷泉模型是一种以用户需求为动力,以对象为驱动的模型,主要用于描述面向对象的软件开发过程

 

二、联系与区别

   万物发展是不断变化的,因为变化,所以更加适应环境,更加有利于发展。在上面我们看到了过程模型的位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)效率明显高,比较省时间

   

   

三、总结

 

    对一个软件的开发无论其大小,我们都需要选择一个合适的软件过程模型,也可以针对不同阶段选择合适模型。这种选择基于项目和应用的性质、采用的方法、需要的控制,以及要交付的产品的特点。

   “一将无能,累死三军” ,一个错误模型的选择,将迷失我们的开发方向,造成巨大的损失。

   “八仙过海,各显神通”,灵活运用各种模型,使开发更高效,软件质量更有保证,用户体验更满意。

 

 

1 0
原创粉丝点击