当前位置: 主页 > 建站知识 > 软件开发

软件开发迭代模型-迭代增量开发

发布时间:2023-02-12 10:28   浏览次数:次   作者:佚名

软件开发模型大致可以分为两种类型。 第一种是以软件需求完全确定为前提的瀑布模型。 二是在软件开发初期只能提供基本需求时采用的增量开发模式,如原型模型、螺旋模型等。在实践中,往往将几种模型组合使用,以充分发挥其优势。各种型号的优点。

1.瀑布模型

瀑布模型也称为软件生命周期模型,由 W. Royce 于 1970 年首先提出。

瀑布模型根据软件生命周期各阶段的任务,从系统需求分析开始,阶段性逐步变化,直至软件产品通过验收测试并得到用户确认。 瀑布模型上一阶段的变换结果是下一阶段变换的输入,相邻的两个阶段具有因果关系,密切相关。

一个工作阶段的错误会波及到所有后续阶段。 为保证软件开发的正确性,在每个阶段的任务完成后,必须对其阶段性产品进行评审,确认无误后再转入下一阶段的工作。 在审核过程中发现错误和遗漏后,应反馈到上一阶段进行纠错和补漏,然后重复前面的工作,直到某一阶段审核通过后才进入下一阶段。 这种形式的瀑布模型是带有反馈的瀑布模型,

模型中每个阶段的任务和软件开发活动如上所述。 瀑布模型在软件工程中占有重要地位。 它为软件开发提供了一个基本框架,这比依靠“个人技能”来开发软件要好得多。 有利于大型软件开发过程中人员的组织和管理,有利于软件开发方法和工具的研究和使用,从而提高大型软件项目开发的质量和效率。

迭代开发管理_迭代增量开发_软件开发迭代模型

瀑布模型的主要特点是:

阶段之间的先后顺序和依赖关系,开发过程是一个严格向下的过程,即上一阶段的输出是下一阶段的输入,每一阶段工作的完成都需要确认,确认过程为严格追溯流程,

后期的问题要通过前期的再确认来解决。 因此,越晚发现问题,修复它的成本就越高。

瀑布模型的主要缺点是:

(1) 在软件开发的初始阶段就规定一个软件系统的所有需求是困难的,有时甚至是不现实的。 从认识论的角度看,人的认知是一个不断重复、实践-认知-再实践-再认知、多次认知、多次飞跃,最终对客观世界更正确认识的过程。 软件开发是人类的智力认知活动,不能一次完成,需要多次重复。 然而,瀑布模型划分的阶段并没有反映出这种认知过程的重复性,缺乏灵活性。

(2)软件开发是一项知识密集型的开发活动,需要人们相互合作、交流才能完成。 因此,人员之间的通信和活动之间的并行和串行活动是必要的,但这方面在瀑布模型中没有体现。 随着软件开发项目的规模越来越大,由此产生的问题也越来越严重。

2. 快速原型模型快速原型法是针对瀑布模型(即传统的生命周期法)提出的一种方法。

其基本思想是避免(或暂时避免)传统生命周期方法中的一些困难,跟随用户的需求,快速构建原型。 让用户通过这个原型初步表达自己的需求,并在征求用户对原型的意见的过程中,进一步修改、完善、确认软件系统的需求,达到一致的理解,大大避免了冗长的开发过程瀑布模型 在此过程中,看不到最终软件产品原型的现象。 通过反复的修改和完善,逐渐接近用户的所有需求,最终形成一个完全满足用户需求的新系统。

因此,快速成型法最大的特点就是速度快,避免了很多因理解不同而导致的错误。 原型开发模型如图6.7所示。

快速原型制作的三种方法:

(1)利用计算机仿真软件系统的人机界面和人机交互方式。

(2) 开发一个工作原型来实现软件系统的一些重要且容易被误解的功能。

(3) 使用同类软件向客户展示软件需求中的部分或全部功能。 为了快速开发原型,应尽可能采用软件重用技术,同时也可以对算法的时间/空间开销进行折中,争取时间,尽快将原型提供给用户。 原型应充分展示软件的可见部分,如数据输入方式、人机界面、数据输出格式等。

快速原型法模型突出了基于各阶段用户反馈活动的快速改进过程,它改变了瀑布模型的线性结构,采用逐步细化的方法逐步完善原型以满足用户的需求。要求。 是一个在新的高水平上不断迭代推进的过程。

由于原型是由用户和软件开发人员共同设计和评审的,使用原型可以统一用户和软件开发人员对软件项目需求的理解,有助于需求的定义和确认。 在使用原型定义和确认软件需求后,可以设计、编码、测试和维护软件系统。

原型系统的缺点如下:

(1) 为了使系统尽快运行,系统开发者往往在初始阶段没有考虑周全,这可能会阻止原型成为最终软件产品的一部分软件开发迭代模型,这只是一个例子。 这样一来,在实际开发软件产品时,还有很多工作要做。

(2)原型模型的实现需要大量完备实用的软件工具的支持,即原型模型对工具和环境的依赖性很强。 3.螺旋模型 螺旋模型是B. Boehm于1988年提出的,它是瀑布模型和原型模型的结合软件开发迭代模型,既体现了两种模型的优点,又增加了一个新的组成部分——风险分析。

它由四个部分组成:

(1) 需求定义 最初建立原型时,必须分析用户需求; 在基于现有原型构建新的、更丰富、更完整的原型时,必须包括用户对现有原型的评论、改进建议和对现有原型的反馈。 分析新原型的需求。

(2) 风险分析根据最初的要求或改进意见,审查备选方案,给出消除或降低风险的方法。

(3) 项目实施 根据前期获得的用户需求,进行软件设计、编码、调试和测试。

(4) 评审检查原型是否实现了用户需求,邀请用户实际操作原型,请用户评价,提出改进建议和进一步要求。

螺旋模型是由上述步骤组成的迭代模型。 软件开发过程每迭代一次,螺旋增加一周,软件开发又推进一个层次,系统生成新的版本,软件开发的时间和成本都有新的投入。

在大多数情况下,软件开发过程是沿着螺旋路径不断进行的,希望最终得到用户满意的软件版本。 理论上,迭代过程可以无限进行下去,但在实践中,迭代结果必须尽快收敛到用户允许或可接受的目标范围内。 只有减少迭代次数,减少每次迭代的工作量,才能降低软件开发的时间和成本。

螺旋模型的每个周期包括四个阶段:需求定义、风险分析、项目实施和评审。 这是一个典型的生命周期的发展。 它不仅在生命周期模型中保留了系统的、分阶段的软件开发和“边审查边开发”的风格,同时引入了风险分析,并以制作原型作为风险分析的主要措施。

用户始终关心和参与软件开发,对阶段性软件产品提出评审意见,对保证软件产品质量非常有利。