欢迎访问文稿网!

软件生存期模型

范文之家 分享 时间: 加入收藏 我要投稿 点赞

软件生存期模型

    1.2.1 软件生存期模型

    所谓模型就是一种开发策略,这种策略是针对软件工程的各个阶段提供了一套范型,使工程的进展达到预期的目的。对一个软件的开发无论其大小,我们都需要选择一个合适的软件过程模型,这种选择基于项目和应用的性质、采用的方法、需要的控制,以及要交付的产品的特点。一个错误模型的选择,将导致开发方向的迷失。

    软件生存期模型(也称软件生命周期模型)——是描述软件开发过程中各种活动如何执行的模型。目前有瀑布模型、增量模型、螺旋模型、喷泉模型和变换模型等。

    一、瀑布模型

    瀑布模型(Waterfall Model)也称软件生存周期模型或线性顺序过程模型,由W.Royce于1970年首先提出的,提供软件开发的系统化的和顺序的方法。它是将软件生存周期各活动规定为线性顺序连接的若干阶段的模型,包括问题定义、可行性研究、需求分析、概要设计、详细设计、编码、测试和维护。瀑布模型从需求分析开始,逐渐进行,直至通过测试并得到用户确认的软件产品为止。瀑布模型的上一阶段的输出结果是下一阶段的输入,如同瀑布流水,逐级下落。

    1.瀑布模型表示

    瀑布模型表示如图1.1所示。该模型说明整个软件看法过程是按图中五个阶段进行的。每个阶段的任务完成之后,产生相应的文档,经过确认后的文档表明该阶段的工作完成了,可以进行下一阶段的工作。每个阶段均以上一阶段的文档作为开发的基础,如果某阶段的文档出问题,则可能需要追溯到前一些阶段,必要时还要修改前面已经完成的文档。

    img1

    

    图1.1 瀑布模型

    2.瀑布模型的优点

    ①它提供了一个模板,模板使得分析、设计、编码、测试和维护的方法可以在该模板下有一个共同的指导。

    ②虽然有不少缺陷,但比在软件开发中随意的状态要好得多。

    3.瀑布模型的缺点

    ①实际的项目大部分情况难以按照该模型给出的顺序进行,而且这种模型的迭代是间接的,这很容易由微小的变化而造成大的混乱。

    ②在通常情况下,用户难以表达真正的需求,而这种模式却要求如此,这种模型是不欢迎具有二义性问题存在的。

    ③用户要等到开发周期的晚期才能看到程序运行的测试版本,而在这时若发现大的错误,可能引起用户的惊慌,而后果也可能是灾难性的。

    ④采用这种线性模型,经常在过程的开始和结束时,要等待其他成员完成后,才能进行下去,有可能花在等待的时间比开发的时间要长。我们称之为“堵塞状态”。

    二、增量模型

    增量模型也称为渐增模型。该模型融合了线性顺序模型的基本成分和原型实现模型的迭代特征。增量模型采用随着日程时间的进展而交错的线性序列。每一个线性序列产生软件的一个可发布的“增量”。例如,使用增量模型开发字处理软件时,第一个增量构件可提供基本的文件管理、编辑和文档生成功能;第二个增量构件提供更完善的编辑和文档生成功能;第三个增量构件实现拼写和语法检查功能;第四个增量构件完成高级的页面排版功能。当使用增量模型时,第一个增量往往是核心的产品,也就是说,第一个增量实现了基本的需求,但很多的补充的特征还没有发布。用户对每一个增量的使用和评估,都作为下一个增量发布的新特征和功能。这个过程在每一个增量发布后不断重复,直到产生了最终的完善产品。增量模型强调每一个增量均发布一个可操作的产品。增量模型见图1.2所示。

    img2

    

    图1.2 增量模型

    1.增量模型的优点

    ①人员分配灵活,刚开始不用投入大量人力资源,当核心产品很受欢迎时,可增加人力实现下一个增量。

    ②当配备的人员不能在设定期限内完成产品时,它提供了一种先推出核心产品的途径,这样就可以先发布部分功能给用户,对用户起到镇静剂的作用。

    ③具有一定的市场。

    2.增量模型的缺点

    自始至终开发者和用户纠缠在一起,直到完全版本出来。

    三、螺旋模型

    螺旋模型(Spiral Model)是一个演化软件过程模型,如图1.3所示,它将原型实现的迭代特征和线性顺序模型中控制的和系统化的方面结合起来,使得软件的增量版本的快速开发成为可能。在螺旋模型中,软件开发是一系列的增量发布。在每一个迭代中,被开发系统的更加完善的版本逐渐产生。螺旋模型被划分为若干框架活动,也称为任务区域。对于大型软件,只开发一个原型往往达不到要求。螺旋模型将瀑布模型和增量模型结合起来,并加入了风险分析。螺旋模型将开发过程分为几个螺旋周期,每个螺旋周期可分为4个工作步骤:

    ①确定目标、方案和限制条件。

    ②评估方案、标识风险和解决风险。

    ③开发确认产品。

    ④计划下一周期工作。

    img3

    

    图1.3 螺旋模型

    这是一个相对较新的模型,它的功效还需要经历若干年的使用才能确定下来。

    1.螺旋模型的优点

    对于大型系统及软件的开发,这种模型是一个很好的方法。开发者和客户能够较好地对待和理解每一个演化级别上的风险。

    2.螺旋模型的缺点

    ①需要相当的风险分析评估的技术,且成功就依赖于这种技术。

    ②显然,若存在一个没有被发现的大风险,将会出现问题,甚至可能导致演化过程失去控制。

    这种模型相对比较新,应用不广泛,其功效需要进一步的验证。

    四、喷泉模型

    喷泉模型(Fountain Model)是一种以用户需求为动力,以对象为驱动的模型,主要用于采用对象技术的软件开发项目。喷泉模型如图1.4所示,该模型认为软件开发过程自下而上周期的各阶段是相互迭代和无间隙的特性。软件的某个部分常常被重复工作多次,相关对象在每次迭代中随之加入渐进的软件成分。无间隙指在各项活动之间无明显边界,如分析和设计活动之间没有明显的界线,由于对象概念的引入,表达分析、设计、实现等活动只用对象类和关系,从而可以较为容易地实现活动的迭代和无间隙,使其开发自然地包括复用。

    img4

    

    图1.4 喷泉模型

    1.喷泉模型的优点

    喷泉模型不像瀑布模型那样,需要分析活动结束后才开始设计活动,设计活动结束后才开始编码活动。该模型的各个阶段没有明显的界线,开发人员可以同步进行开发。其优点是可以提高软件项目开发效率,节省开发时间,适应于面向对象的软件开发过程。

    2.喷泉模型的缺点

    由于喷泉模型在各个开发阶段是重叠的,因此在开发过程中需要大量的开发人员,因此不利于项目的管理。此外这种模型要求严格管理文档,使得审核的难度加大,尤其是面对可能随时加入各种信息、需求与资料的情况。

    五、变换模型

    变换模型(Transformational Model)是基于形式化规格说明语言及程序变换的软件开发模型。它主要用于软件的形式化开发方法,对形式化的软件规格说明进行一系列自动或半自动的程序变换,最后映射成系统的目标程序。变换模型表示如图1.5所示。形式化方法模型包含了一组活动,它们导致了计算机软件的数学规约。形式化方法使得软件工程师能够通过应用一个严格的数学符号体系规约、开发和验证基于计算机的系统。

    img5

    

    图1.5 变换模型

    变换模型开发方法必须有严格的数学理论和形式化技术的支持,目前这种开发方法尚处于研究和实验阶段。

    1.变换模型的优点

    ①形式化规约可直接作为程序验证的基础,可以尽早地发现和纠正错误(包括那些在其他情况下不能发现的错误)。

    ②开发出来的软件具有很高的安全性和健壮性,特别适合安全部门或者软件错误会造成经济损失的开发项目。

    2.变化模型的缺点

    ①开发费用高,而且需要的时间长。

    ②不能将该模型作为对客户通信的机制,因为客户对这些数学语言一无所知。

    ③具有开发无缺陷软件的承诺。

221381
领取福利

微信扫码领取福利

微信扫码分享