常用软件开发模型Word文件下载.docx
《常用软件开发模型Word文件下载.docx》由会员分享,可在线阅读,更多相关《常用软件开发模型Word文件下载.docx(16页珍藏版)》请在冰豆网上搜索。
![常用软件开发模型Word文件下载.docx](https://file1.bdocx.com/fileroot1/2022-10/24/dccc5aa6-ce43-417b-96f4-bfc92d5e42a5/dccc5aa6-ce43-417b-96f4-bfc92d5e42a51.gif)
瀑布模型即生存周期模型,其核心思想是按工序将问题化简,将功能的实现与设计分开,
便于分工协作,即采用结构化的分析与设计方法将逻辑实现与物理实现分开。
瀑布模型将软
件生命周期划分为软件计划、需求分析和定义、软件设计、软件实现、软件测试、软件运行和维护这6个阶段,规定了它们自上而下、相互衔接的固定次序,如同瀑布流水逐级下落。
采用瀑布模型的软件过程如图1-3所示。
图1-3采用瀑布模型的软件过程
瀑布模型是最早出现的软件开发模型,在软件工程中占有重要的地位,它提供了软件开
发的基本框架。
瀑布模型的本质是一次通过,即每个活动只执行一次,最后得到软件产品,
也称为“线性顺序模型”或者“传统生命周期”。
其过程是从上一项活动接收该项活动的工
作对象作为输入,利用这一输入实施该项活动应完成的内容给出该项活动的工作成果,并作
为输出传给下一项活动。
同时评审该项活动的实施,若确认,则继续下一项活动;
否则返回
前面,甚至更前面的活动。
有利于软件开发方法和工具的
然而软件开发的实践表明,上述
瀑布模型有利于大型软件开发过程中人员的组织及管理,研究与使用,从而提高了大型软件项目开发的质量和效率。
各项活动之间并非完全是自上而下且呈线性图式的,因此瀑布模型存在严重的缺陷。
1由于开发模型呈线性,所以当开发成果尚未经过测试时,用户无法看到软件的效果。
这样软件与用户见面的时间间隔较长,也增加了一定的风险。
2在软件开发前期末发现的错误传到后面的开发活动中时,可能会扩散,进而可能会造成整个软件项目开发失败。
③在软件需求分析阶段,完全确定用户的所有需求是比较困难的,甚至可以说是不太可能的。
1.2.2螺旋模型
螺旋模型将瀑布和演化模型(EvolutionModel)结合起来,它不仅体现了两个模型的优
点,而且还强调了其他模型均忽略了的风险分析。
这种模型的每一个周期都包括需求定义、风险分析、工程实现和评审4个阶段,由这4个阶段进行迭代。
软件开发过程每迭代一次,
软件开发又前进一个层次。
采用螺旋模型的软件过程如图1-4所示。
图1-4采用螺旋模型的软件过程
螺旋模型基本做法是在“瀑布模型”的每一个开发阶段前引入一个非常严格的风险识
别、风险分析和风险控制,它把软件项目分解成一个个小项目。
每个小项目都标识一个或多
个主要风险,直到所有的主要风险因素都被确定。
螺旋模型强调风险分析,使得开发人员和用户对每个演化层出现的风险有所了解,继而
做出应有的反应,因此特别适用于庞大、复杂并具有高风险的系统。
对于这些系统,风险是
软件开发不可忽视且潜在的不利因素,它可能在不同程度上损害软件开发过程,影响软件产
品的质量。
减小软件风险的目标是在造成危害之前,及时对风险进行识别及分析,决定采取
何种对策,进而消除或减少风险的损害。
与瀑布模型相比,螺旋模型支持用户需求的动态变化,为用户参与软件开发的所有关键决策提供了方便,有助于提高目标软件的适应能力。
并且为项目管理人员及时调整管理决策提供了便利,从而降低了软件开发风险。
但是,我们不能说螺旋模型绝对比其他模型优越,事实上,这种模型也有其自身的如下
缺点。
1采用螺旋模型需要具有相当丰富的风险评估经验和专门知识,在风险较大的项目开发中,如果未能够及时标识风险,势必造成重大损失。
2过多的迭代次数会增加开发成本,延迟提交时间。
1.2.3变换模型
变换模型是基于形式化规格说明语言及程序变换的软件开发模型,它采用形式化的软件
开发方法对形式化的软件规格说明进行一系列自动或半自动的程序变换,最后映射为计算机
系统能够接受的程序系统。
采用变换模型的软件过程如图1-5所示。
图1-5采用变换模型的软件过程
为了确认形式化规格说明与软件需求的一致性,往往以形式化规格说明为基础开发一个
软件原型,用户可以从人机界面、系统主要功能和性能等几个方面对原型进行评审。
必要时,
可以修改软件需求、形式化规格说明和原型,直至原型被确认为止。
这时软件开发人员即可对形式化的规格说明进行一系列的程序变换,直至生成计算机系统可以接受的目标代码。
“程序变换”是软件开发的另一种方法,其基本思想是把程序设计的过程分为生成阶段
和改进阶段。
首先通过对问题的分析制定形式规范并生成一个程序,通常是一种函数型的
“递归方程”。
然后通过一系列保持正确性的源程序到源程序的变换,把函数型风格转换成
过程型风格并进行数据结构和算法的求精,最终得到一个有效的面向过程的程序。
这种变换
过程是一种严格的形式推导过程,所以只需对变换前的程序的规范加以验证,变换后的程序
的正确性将由变换法则的正确性来保证。
变换模型的优点是解决了代码结构经多次修改而变坏的问题,减少了许多中间步骤(如
设计、编码和测试等)。
但是变换模型仍有较大局限,以形式化开发方法为基础的变换模型需要严格的数学理论和一整套开发环境的支持,目前形式化开发方法在理论、实践和人员培
训方面距工程应用尚有一段距离。
1.2.4喷泉模型
喷泉模型是一种以用户需求为动力,以对象为驱动的模型,主要用于描述面向对象的软
件开发过程。
该模型认为软件开发过程自下而上周期的各阶段是相互重叠和多次反复的,就
像水喷上去又可以落下来,类似一个喷泉。
各个开发阶段没有特定的次序要求,并且可以交互进行,可以在某个开发阶段中随时补充其他任何开发阶段中的遗漏。
采用喷泉模型的软件
过程如图1-6所示。
图1-6采用喷泉模型的软件过程
喷泉模型主要用于面向对象的软件项目,软件的某个部分通常被重复多次,相关对象在
每次迭代中随之加入渐进的软件成分。
各活动之间无明显边界,例如设计和实现之间没有明
显的边界,这也称为“喷泉模型的无间隙性”。
由于对象概念的引入,表达分析、设计及实
现等活动只用对象类和关系,从而可以较容易地实现活动的迭代和无间隙。
喷泉模型不像瀑布模型那样,需要分析活动结束后才开始设计活动,设计活动结束后才
开始编码活动。
该模型的各个阶段没有明显的界限,开发人员可以同步进行开发。
其优点是
可以提高软件项目开发效率,节省开发时间,适应于面向对象的软件开发过程。
由于喷泉模
型在各个开发阶段是重叠的,因此在开发过程中需要大量的开发人员,因此不利于项目的管
理。
此外这种模型要求严格管理文档,使得审核的难度加大,尤其是面对可能随时加入各种
信息、需求与资料的情况。
1.2.5智能模型
智能模型也称为“基于知识的软件开发模型”,它把瀑布模型和专家系统结合在一起,利用专家系统来帮助软件开发人员的工作。
该模型应用基于规则的系统,采用归纳和推理机
制,使维护在系统规格说明一级进行。
这种模型在实施过程中以软件工程知识为基础的生成
规则构成的知识系统与包含应用领域知识规则的专家系统相结合,构成这一应用领域软件的
开发系统。
采用智能模型的软件过程如图1-7所示。
图1-7采用智能模型的软件过程
智能模型所要解决的问题是特定领域的复杂问题,涉及大量的专业知识,而开发人员-般不是该领域的专家,他们对特定领域的熟悉需要一个过程,所以软件需求在初始阶段很难定义得很完整。
因此,采用原型实现模型需要通过多次迭代来精化软件需求。
智能模型以知识作为处理对象,这些知识既有理论知识,也有特定领域的经验。
在开发
过程中需要将这些知识从书本中和特定领域的知识库中抽取出来(即知识获取),选择适当
的方法进行编码(即知识表示)建立知识库。
将模型、软件工程知识与特定领域的知识分别存入数据库,在这个过程中需要系统开发人员与领域专家的密切合作。
智能模型开发的软件系统强调数据的含义,并试图使用现实世界的语言表达数据的含义。
该模型可以勘探现有的数据,从中发现新的事实方法指导用户以专家的水平解决复杂的
问题。
它以瀑布模型为基本框架,在不同开发阶段引入了原型实现方法和面向对象技术以克
服瀑布模型的缺点,适应于特定领域软件和专家决策系统的开发。
1.2.6增量模型
增量模型融合了瀑布模型的基本成分(重复应用)和原型实现的迭代特征,该模型采用
随着日程时间的进展而交错的线性序列,每一个线性序列产生软件的一个可发布的“增量”。
当使用增量模型时,第1个增量往往是核心的产品,即第1个增量实现了基本的需求,
但很多补充的特征还没有发布。
客户对每一个增量的使用和评估都作为下一个增量发布的新特征和功能,这个过程在每一个增量发布后不断重复,直到产生了最终的完善产品。
增量模
型强调每一个增量均发布一个可操作的产品。
采用增量模型的软件过程如图1-8所示。
增量模型与原型实现模型和其他演化方法一样,本质上是迭代的,但与原型实现不一样
的是其强调每一个增量均发布一个可操作产品。
早期的增量是最终产品的“可拆卸”版本,但提供了为用户服务的功能,并且为用户提供了评估的平台。
增量模型的特点是引进了增量
包的概念,无须等到所有需求都出来,只要某个需求的增量包出来即可进行开发。
虽然某个
增量包可能还需要进一步适应客户的需求并且更改,但只要这个增量包足够小,其影响对整
个项目来说是可以承受的。
图1-8采用增量模型的软件过程
采用增量模型的优点是人员分配灵活,刚开始不用投入大量人力资源。
如果核心产品很
受欢迎,则可增加人力实现下一个增量。
当配备的人员不能在设定的期限内完成产品时,它
提供了一种先推出核心产品的途径。
这样即可先发布部分功能给客户,对客户起到镇静剂的
作用。
此外,增量能够有计划地管理技术风险。
增量模型的缺点是如果增量包之间存在相交
的情况且未很好处理,则必须做全盘系统分析,这种模型将功能细化后分别开发的方法较适
应于需求经常改变的软件开发过程。
1.2.7WINWIN模型
WINWIN模型融合了螺旋模型的基本成分和原型实现的迭代特征,强调风险分析和标识。
通过早期谈判使客户和开发者之间达成一致协议,它将变成进展到软件和系统定义的关
键标准。
WINWIN模型引入了3个里程碑,称为“抛锚点”。
它可帮助建立一个生命周期的完全性,并提供在软件项目向前进展前的决策里程碑。
采用WINWIN模型的软件过程如
图1-9所示。
图1-9采用WINWIN模型的软件过程
本质上,抛锚点表示了项目遍历螺旋时的3个不同的进展视图,第1个抛锚点称为“生
存周期目标”,定义了一组针对每个主要软件工程活动的目标;
第2个抛锚点称为“生存周
期体系结构”,建立了当系统和软件体系结构被定义时必须满足的目标;
第3个抛锚点称为
“初始操作能力”,它表示一组目标,这些目标和将要安装/销售软件的安装前场地准备和