新闻动态NEWS

当前位置:主页 > 新闻动态 > 公司新闻 > 公司新闻

软件过程模型之瀑布模型和原型模型

       苏州软件公司认为软件工程的目标是以较经济的手段获取高质量的软件,然而这一目标终归要靠一系列活动来实现。如何组织这些活动,从事活动的开发者应该遵循什么样的规范、流程,有哪些工具可以支持他们完成活动中的具体任务?所有这些问题,都推动着软件工程过程的发展与广泛应用。
 
       软件过程概述
 
       软件过程也称为软件生存周期过程,是指软件工程人员为了获得软件产品而实施的一系列软件活动。这些活动可以是顺序的、迭代的、并行的、嵌套的,或者是依据条件而发生的。
 
       苏州安卓软件开发认为随着客户对系统的要求越来越复杂,建立这些系统的软件过程也越来越复杂,这种复杂性也与工程师的判断力有关。正是由于需要判断力和创造力,软件过程无法实现完全自动化。CASE工具可以帮助支持一些过程活动,但无法完全取代人类在软件过程中的富含创造性的活动。此外,不同的人、不同的机构、不同的软件系统有不同的适合的软件过程,因此软件过程具有很大的差异性。这种差异性是软件过程无法实现自动化的另一个原因。
 
       虽然存在许多不同的软件过程,但构成软件过程的基本活动还是相同的。这些基本活动包括以下几个方面。
 
       (1)软件规格描述,即通俗的需求分析,用来刻画软件的功能、性能需求及运行环境约束。
 
       (2)软件开发,包括软件设计与实现,即按照软件规格描述的要求实现一个系统。
 
       (3)软件的验证,即测试环节,用来检验开发的软件是否与规格描述相一致。
 
       (4)软件的进化,即维护,软件按一定的要求变更。
 
       苏州adnroid开发认为软件过程本身一直在演化,这种演化源于工程师们用经验知识来改进软件工程开发的过程流程,在可以预见的未来,这种演化将会持续下去。软件的过程模型是软件过程的一个抽象表示法,也是对这种演化的阶段性总结或刻画。
 
       软件过程模型
 
       软件过程模型是软件开发的指导思想和全局性框架,软件过程模型的提出和发展反映了人们对软件过程的某种认识观,体现了人们对软件过程认识的提高和飞跃。下面介绍一些一般性的软件过程模型,每个过程模型都从某个特定角度表现一个过程,提供过程的一些信息。
 
       需要指出的是,这些过程模型不是某种必须遵循的标准,它只是一种有用的对过程的抽象,在实际的大型项目开发中,需要作必要的裁剪或组合。
 
       瀑布模型
 
       瀑布模型又称为软件生命周期模型,是最早提出的模型。如图2.1所示,它以软件生命周期的每一个阶段作为一个活动,依序逐渐完成这些活动。
 
       苏州工业自动化软件认为采用瀑布模型开发软件时,前一个阶段任务的完成是后一个阶段任务开始的基础和前提,后一阶段是前一阶段工作的进一步具体化。每一个阶段的开始和结束都有严格标准。按照该方法,各阶段的工作自顶向下从抽象到具体顺序进行,就像奔流不息的瀑布,因而称为瀑布模型。
 
       瀑布模型的优点如下。
 
       (1)历史较长、应用面广泛、为广大软件工作者所熟悉,并且已有与之配套的一组十分成熟的开发方法和丰富的支撑工具。
 
       (2)结构简单明了,反映了工程的实际情况。每个阶段必须完成规定的文档,每个阶段结束前完成文档审查,能及早改正错误。
 
       (3)阶段具有顺序性和依赖性,确定了需求分析的绝对重要性,强调推迟实现的观点。
 
       瀑布模型把软件过程看成严格线性化的过程,适用于需求能在早期阶段被完全确定、后期变化很小的情况。然而,瀑布模型的这种假设太过理想化,实际中需求很难在开发初期就明确给定,并且软件开发流程之间存在大量的交叉和迭代。
 
       采用瀑布模型开发软件时,暴露出的主要问题包括以下几个方面。
 
       (1)对用户需求变更的响应较困难,尤其当这种需求是在开发的后期提出时。
 
       (2)早期引人的错误可能在开发后期才发现,这时修改的代价很大,甚至可能导致项目最终失败。
 
       采用极端的瀑布型开发方法意味着要以严格的顺序来完成一系列的项目阶段:需求分析、设计、实现和测试。实际上,多数的开发团队使用改进了的瀑布型开发方法,他们将项目分解成为两个或者更多的部分,这些部分被称为阶段或者时期。
 
       这种改良可以帮助简化集成、使测试人员更早地进行测试工作和提供更早的项目状态的观测。这种方法也将代码分解成了易于管理的片断并最小化了以存根和驱动程序形式的、被测试需要的代码集成。此外,这种方法允许使用来自每一个阶段的反馈修改设计。然而,使用瀑布型开发方法的执行与想象是相反的:很多设计团队把在第一阶段之后的对设计的修改视为最初设计或者需求过程的失败。虽然一个改进了的瀑布型开发方法并不排除反馈的使用,但是它并没有促进、支持和鼓励反馈的使用。
 
       原型模型
 
       苏州软件定制认为软件过程模型一直在演变中,原型过程模型是在瀑布模型基础上引入局部迭代而得到的。原型模型先快速构建一个可运行的软件原型,由客户或未来的用户试用该原型,并在原型的帮助下确定需求。如图2.2所示,这一交互过程一直进行,直到开发人员可以将客户的真实需求完全确定为止。最后,在确定的需求基础上开发软件产品。
 
       原型法的优点如下。
 
       (1)原型法强化沟通,可以改进需求质量,降低风险,提高项目成功率。
 
       (2)原型虽然投人了较多先期的时间,但可以显著减少后期变更的时间。
 
       (3)原型投入的人力成本代价并不大,还可以节省后期成本。
 
       (4)原型通过充分和客户交流,还可以提高客户满意度。
 
       依据对待原型的方式,原型法又分为:抛弃式,即原型只用来获取需求,在取得的明确需求基础上重新开始设计与开发;演化式(探索式),即最后的系统是在原型基础上继续开发完成的。无论抛弃式还是探索式,原型主要用来解决系统描述中不确定的、模糊的部分。
 
       对于很小规模的系统或者中型系统,原型法可以快速构建系统原型,明确系统需求,进而克服瀑布模型的缺点。但是,对于大型的、生命周期很长的系统,快速构建系统原型不太可能,这时使用原型法存在诸多问题。具体包括以下几个方面。
 
       (1)原型法强调快速开发,系统开发过程变得不可见。但对于强调工程控制和管理的大型系统来说,这一点显然无法承受。
 
       (2)软件原型是通过不断修改而形成的,因此系统的结构通常较差,这很容易导致大型项目在集成时失败。
 
       (3)需要采用支持快速构造的开发技术和工具,但这些技术和工具未必与主流技术和工具相容,而且掌握这些特别工具和技术的人较少。
 
       苏州软件开发认为软件生命周期法中并不包括原型,或者说没有明确提供原型的概念和定义。可以认为原型是需求分析中的一个子部分。另外,应该说原型方法是对生命周期法的有益补充和完善。图2.3所示为原型(抛弃式)用在软件工程过程中的图示。

在线咨询
在线咨询
在线客服