常用软件开发模型比较分析.docx

上传人:牧羊曲112 文档编号:5281673 上传时间:2023-06-22 格式:DOCX 页数:9 大小:104KB
返回 下载 相关 举报
常用软件开发模型比较分析.docx_第1页
第1页 / 共9页
常用软件开发模型比较分析.docx_第2页
第2页 / 共9页
常用软件开发模型比较分析.docx_第3页
第3页 / 共9页
常用软件开发模型比较分析.docx_第4页
第4页 / 共9页
常用软件开发模型比较分析.docx_第5页
第5页 / 共9页
亲,该文档总共9页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《常用软件开发模型比较分析.docx》由会员分享,可在线阅读,更多相关《常用软件开发模型比较分析.docx(9页珍藏版)》请在三一办公上搜索。

1、1.2常用软件开发模型比较分析正如任何事物一样,软件也有其孕育、诞生、成长、成熟和衰亡的生存过程,一般 称其为“软件生命周期”。软件生命周期一般分为6个阶段,即制定计划、需求分析、 设计、编码、测试、运行和维护。软件开发的各个阶段之间的关系不可能是顺序且线性 的,而应该是带有反馈的迭代过程。在软件工程中,这个复杂的过程用软件开发模型来 描述和表示。软件开发模型是跨越整个软件生存周期的系统开发、运行和维护所实施的全部工作 和任务的结构框架,它给出了软件开发活动各阶段之间的关系。目前,常见的软件开发 模型大致可分为如下3种类型。 以软件需求完全确定为前提的瀑布模型(Waterfall Model)

2、o 在软件开发初始阶段只能提供基本需求时采用的渐进式开发模型,如螺旋模型(S piral Model)o 以形式化开发方法为基础的变换模型(Transformational Model)o本节将简单地比较并分析瀑布模型、螺旋模型和变换模型等软件开发模型。1.2.1瀑布模型瀑布模型即生存周期模型,其核心思想是按工序将问题化简,将功能的实现与设计 分开,便于分工协作,即采用结构化的分析与设计方法将逻辑实现与物理实现分开。瀑 布模型将软件生命周期划分为软件计划、需求分析和定义、软件设计、软件实现、软件 测试、软件运行和维护这6个阶段,规定了它们自上而下、相互衔接的固定次序,如同 瀑布流水逐级下落。采

3、用瀑布模型的软件过程如图1-3所示。图1-3采用瀑布模型的软件过程瀑布模型是最早出现的软件开发模型,在软件工程中占有重要的地位,它提供了软 件开发的基本框架。瀑布模型的本质是一次通过,即每个活动只执行一次,最后得到软 件产品,也称为“线性顺序模型”或者“传统生命周期”。其过程是从上一项活动接收 该项活动的工作对象作为输入,利用这一输入实施该项活动应完成的内容给出该项活动 的工作成果,并作为输出传给下一项活动。同时评审该项活动的实施,若确认,则继续 下一项活动;否则返回前面,甚至更前面的活动。瀑布模型有利于大型软件开发过程中人员的组织及管理,有利于软件开发方法和工 具的研究与使用,从而提高了大型

4、软件项目开发的质量和效率。然而软件开发的实践表 明,上述各项活动之间并非完全是自上而下且呈线性图式的,因此瀑布模型存在严重的 缺陷。 由于开发模型呈线性,所以当开发成果尚未经过测试时,用户无法看到软件的效 果。这样软件与用户见面的时间间隔较长,也增加了一定的风险。 在软件开发前期末发现的错误传到后面的开发活动中时,可能会扩散,进而可能 会造成整个软件项目开发失败。 在软件需求分析阶段,完全确定用户的所有需求是比较困难的,甚至可以说是不太可能的。规划分析设计实现评价运行与 维护工期 开发工程AMIS工程维护L工程&纵向结构(管理层次-(时间维分解)(空间维分解)职能分化时间维:沿着生命周期的时间

5、顺序,把开发的全过程分解成若干阶段,每个阶段再划分为若 干步骤,使开发有计划,有步骤,有组织的进行。空间维:把MIS的实体(系统)划分为若干个子系统。按垂直方向如分解为战略决策与计划,管理控制和执行处理三个层次;再按水平方向分解,如划分为:生产管理,材料管理, 财会管理等子系统。常用方法:把系统按空间维分成若干个子系统,分期开发子系统,子系统的开发再遵循时间维 的分解,按开发工程分步骤开发。1.2.2螺旋模型螺旋模型将瀑布和演化模型(Evolution Model)结合起来,它不仅体现了两个模型 的优点,而且还强调了其他模型均忽略了的风险分析。这种模型的每一个周期都包括需 求定义、风险分析、工

6、程实现和评审4个阶段,由这4个阶段进行迭代。软件开发过程 每迭代一次,软件开发又前进一个层次。采用螺旋模型的软件过程如图1-4所示。需求定义工理实现| 评审图1-4采用螺旋模型的软件过程螺旋模型基本做法是在“瀑布模型”的每一个开发阶段前引入一个非常严格的风险 识别、风险分析和风险控制,它把软件项目分解成一个个小项目。每个小项目都标识一 个或多个主要风险,直到所有的主要风险因素都被确定。螺旋模型强调风险分析,使得开发人员和用户对每个演化层出现的风险有所了解, 继而做出应有的反应,因此特别适用于庞大、复杂并具有高风险的系统。对于这些系统,风险是软件开发不可忽视且潜在的不利因素,它可能在不同程度上损

7、害软件开发过程, 影响软件产品的质量。减小软件风险的目标是在造成危害之前,及时对风险进行识别及 分析,决定采取何种对策,进而消除或减少风险的损害。与瀑布模型相比,螺旋模型支持用户需求的动态变化,为用户参与软件开发的所有 关键决策提供了方便,有助于提高目标软件的适应能力。并且为项目管理人员及时调整 管理决策提供了便利,从而降低了软件开发风险。但是,我们不能说螺旋模型绝对比其他模型优越,事实上,这种模型也有其自身的 如下缺点。 采用螺旋模型需要具有相当丰富的风险评估经验和专门知识,在风险较大的项目 开发中,如果未能够及时标识风险,势必造成重大损失。 过多的迭代次数会增加开发成本,延迟提交时间。1.

8、2.3变换模型变换模型是基于形式化规格说明语言及程序变换的软件开发模型,它采用形式化的 软件开发方法对形式化的软件规格说明进行一系列自动或半自动的程序变换,最后映射 为计算机系统能够接受的程序系统。采用变换模型的软件过程如图1-5所示。图1-5采用变换模型的软件过程为了确认形式化规格说明与软件需求的一致性,往往以形式化规格说明为基础开发 一个软件原型,用户可以从人机界面、系统主要功能和性能等几个方面对原型进行评审。 必要时,可以修改软件需求、形式化规格说明和原型,直至原型被确认为止。这时软件开发人员即可对形式化的规格说明进行一系列的程序变换,直至生成计算机系统可以接 受的目标代码。“程序变换”

9、是软件开发的另一种方法,其基本思想是把程序设计的过程分为生成 阶段和改进阶段。首先通过对问题的分析制定形式规范并生成一个程序,通常是一种函 数型的“递归方程”。然后通过一系列保持正确性的源程序到源程序的变换,把函数型 风格转换成过程型风格并进行数据结构和算法的求精,最终得到一个有效的面向过程的 程序。这种变换过程是一种严格的形式推导过程,所以只需对变换前的程序的规范加以 验证,变换后的程序的正确性将由变换法则的正确性来保证。变换模型的优点是解决了代码结构经多次修改而变坏的问题,减少了许多中间步骤 (如设计、编码和测试等)。但是变换模型仍有较大局限,以形式化开发方法为基础的 变换模型需要严格的数

10、学理论和一整套开发环境的支持,目前形式化开发方法在理论、 实践和人员培训方面距工程应用尚有一段距离。1.2.4喷泉模型喷泉模型是一种以用户需求为动力,以对象为驱动的模型,主要用于描述面向对象 的软件开发过程。该模型认为软件开发过程自下而上周期的各阶段是相互重叠和多次反 复的,就像水喷上去又可以落下来,类似一个喷泉。各个开发阶段没有特定的次序要求, 并且可以交互进行,可以在某个开发阶段中随时补充其他任何开发阶段中的遗漏。采用 喷泉模型的软件过程如图1-6所示。图1-6采用喷泉模型的软件过程喷泉模型主要用于面向对象的软件项目,软件的某个部分通常被重复多次,相关对象在每次迭代中随之加入渐进的软件成分

11、。各活动之间无明显边界,例如设计和实现之间没有明显的边界,这也称为“喷泉模型的无间隙性”。由于对象概念的引入,表达分析、设计及实现等活动只用对象类和关系,从而可以较容易地实现活动的迭代和无间隙。喷泉模型不像瀑布模型那样,需要分析活动结束后才开始设计活动,设计活动结束后才开始编码活动。该模型的各个阶段没有明显的界限,开发人员可以同步进行开发。其优点是可以提高软件项目开发效率,节省开发时间,适应于面向对象的软件开发过程。由于喷泉模型在各个开发阶段是重叠的,因此在开发过程中需要大量的开发人员,因此不利于项目的管理。此外这种模型要求严格管理文档,使得审核的难度加大,尤其是面对可能随时加入各种信息、需求

12、与资料的情况。1.2.5智能模型智能模型也称为“基于知识的软件开发模型”,它把瀑布模型和专家系统结合在一起,利用专家系统来帮助软件开发人员的工作。该模型应用基于规则的系统,采用归纳和推理机制,使维护在系统规格说明一级进行。这种模型在实施过程中以软件工程知识为基础的生成规则构成的知识系统与包含应用领域知识规则的专家系统相结合,构成这一应用领域软件的开发系统。采用智能模型的软件过程如图1-7所示。需求分析知识接袤祁表示图1-7采用智能模型的软件过程秋1干募现I智能模型所要解决的问题是特定领域的复杂问题,涉及大量的专业知识,而开发人 员一般不是该领域的专家,他们对特定领域的熟悉需要一个过程,所以软件

13、需求在初始 阶段很难定义得很完整。因此,采用原型实现模型需要通过多次迭代来精化软件需求。智能模型以知识作为处理对象,这些知识既有理论知识,也有特定领域的经验。在 开发过程中需要将这些知识从书本中和特定领域的知识库中抽取出来(即知识获取), 选择适当的方法进行编码(即知识表示)建立知识库。将模型、软件工程知识与特定领 域的知识分别存入数据库,在这个过程中需要系统开发人员与领域专家的密切合作。智能模型开发的软件系统强调数据的含义,并试图使用现实世界的语言表达数据的 含义。该模型可以勘探现有的数据,从中发现新的事实方法指导用户以专家的水平解决 复杂的问题。它以瀑布模型为基本框架,在不同开发阶段引入了

14、原型实现方法和面向对 象技术以克服瀑布模型的缺点,适应于特定领域软件和专家决策系统的开发。1.2.6增量模型增量模型融合了瀑布模型的基本成分(重复应用)和原型实现的迭代特征,该模型 采用随着日程时间的进展而交错的线性序列,每一个线性序列产生软件的一个可发布的 “增量”。当使用增量模型时,第1个增量往往是核心的产品,即第1个增量实现了基 本的需求,但很多补充的特征还没有发布。客户对每一个增量的使用和评估都作为下一 个增量发布的新特征和功能,这个过程在每一个增量发布后不断重复,直到产生了最终 的完善产品。增量模型强调每一个增量均发布一个可操作的产品。采用增量模型的软件 过程如图1-8所示。增量模型

15、与原型实现模型和其他演化方法一样,本质上是迭代的,但与原型实现不 一样的是其强调每一个增量均发布一个可操作产品。早期的增量是最终产品的“可拆卸” 版本,但提供了为用户服务的功能,并且为用户提供了评估的平台。增量模型的特点是 引进了增量包的概念,无须等到所有需求都出来,只要某个需求的增量包出来即可进行 开发。虽然某个增量包可能还需要进一步适应客户的需求并且更改,但只要这个增量包 足够小,其影响对整个项目来说是可以承受的。图1-8采用增量模型的软件过程采用增量模型的优点是人员分配灵活,刚开始不用投入大量人力资源。如果核心产 品很受欢迎,则可增加人力实现下一个增量。当配备的人员不能在设定的期限内完成产 品时,它提供了一种先推出核心产品的途径。这样即可先发布部分功能给客户,对客户 起到镇静剂的作用。此外,增量能够有计划地管理技术风险。增量模型的缺点是如果增 量包之间存在相交的情况且未很好处理,则必须做全盘系统分析,这种模型将功能细化 后分别开发的方法较适应于需求经常改变的软件开发过程。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号