软件工程第一讲教案(4)

2019-04-16 22:22

瀑布模型为软件开发和软件维护提供了一种有效的管理图式。根据这一图式制定开发计划、进行成本预算、组织开发力量,以项目的阶段评审和文档控制为手段有效地对整个开发过程进行指导,从而保证了软件产品及时交付,并达到预期的质量要求。与此同时,瀑布模型在大量的软件开发实践中也逐渐暴露出它的严重缺点。其中最为突出的缺点是该模型缺乏灵活性,特别是无法解决软件需求不明确或不准确的问题。这些问题的存在对软件开发会带来严重影响,最终可能导致开发出的软件并不是用户真正需要的软件,并且,由于瀑布开发模型具有顺序性和相关性,凡后一阶段出现的问题需要通过前一阶段的重新确认来解决,所以这一点在开发过程完成后才有所察觉,因此其代价十分高昂。而且,随着软件开发项目规模的日益庞大,由于瀑布模型不够灵活等缺点引发出的上述问题显得更为严重。软件开发需要人们合作完成,因此人员之间的通讯和软件工具之间的联系以及开发工作之间的并行和串行等都是必要的,但瀑布模型中并没有体现出这一点。 2.螺旋模型

为克服瀑布模型的不足,近年来已经提出了多种其他模型。对于复杂的大型软件,开发一个原型往往达不到要求。螺旋模型将瀑布模型与演化模型结合起来,并且加入两种模型均忽略了的风险分析,弥补了两者的不足。

软件风险是普遍存在于任何软件开发项目中的实际问题。对于不同的项目,其差别只是风险有大有小而已,在制定软件开发计划时,系统分析员必须回答:项目的需求是什么,需要投入多少资源以及如何安排开发进度等一系列问题。然而,要他们当即给出准确无误的回答是不容易的,甚至几乎是不可能的。但系统分析员又不可能完全回避这一问题。凭借经验的估计出发给出初步的设想便难免带来一定风险。实践表明,项目规模越大,问题越复杂。资源、成本、进度等因

16

素的不确定性越大,承担项目所冒的风险也越大。总之,风险是软件开发不可忽视的潜在不利因素,它可能在不同程度上损害到软件开发过程或软件产品的质量。软件风险驾驭的目标是在造成危害之前及时对风险进行识别、分析,采取对策,进而消除或减少风险的损害。 螺旋模型沿着螺线旋转,如图1-5所示,在笛卡尔坐标的四个象限上分别表达了四个方面的活动,即:

(1)制定计划:确定软件目标,选定实施方案,弄清项目开发的限制条件; (2)风险分析:分析所选方案,考虑如何识别和消除风险; (3)实施工程:实施软件开发;

(4)客户评估:评价开发工作,提出修正建议。

图1-5 螺旋模型

沿螺线自内向外每旋转一圈便开发出更为完善的一个新的软件版本。例如,在第一圈,确定了初步的目标、方案和限制条件以后,转入右上象限,对风险进行识别和分析。如果风险分析表明,需求有不确定性,那么在右下的工程象限内,所建的原型会帮助开发人员和客户,考虑其他开发模型,并对需求做进一步修正。客户对工程成果做出评价之后,给出修正建议。在此基础上需再次计划,并进行风险分析。在每一圈螺线上,做出风险分析的终点是否继续下去的判断。假如风险过大,开发者和用户无法承受,项目有可能终止。多数情况下沿螺线的活动会继续下去,自内向外,逐步延伸,最终得到所期望的系统。

如果软件开发人员对所开发项目的需求已有了较好的理解或较大的把握,则无需开发原型可采用普通的瀑布模型,这在螺旋模型中可认为是单圈螺线。与此相反,如果对所开发项目需求理解较差,则需要开发原型,甚至需要不止一个原型的帮助,那就需要经历多圈螺线。在种情况下,外圈的开发包含了更多的活动。也可能某些开发采用了不同的模型。

螺旋模型适合于大型软件的开发,应该说它是最为实际的方法,它吸收了软件工程“演化”既念,使得开发人员和客户对每个演化层出现的风险有所了解,继而做出应有的反映。螺旋模型的优越性比起其他模型来说是明显的,但并不是

17

绝对的。要求许多客户接受和相自化方法并不容易。这个模型的使用需要具有相当丰富的风险评估经验和专门知识,如果目风险较大,又未能及时发现,势必造成重大损失。此外,螺旋模型是出现较晚的新模型,远瞩瀑布模型普及,要让广大软件人员和用户充分肯定它,还有待于更多的实践。 3.第四代技术模型

第四代技术(4GT)包含了一系列的软件工具,它们的共同点是:能使软件设计者在较高级别上说明软件的某些特征。然后软件工具根据说明自动生成源代码。在越高的级别上说明软件,就能越快地构造出程序。软件工程的第四代技术模型的应用关键在于软件描述的能力,它用一种特定的语言来完成或者以一种用户可以理解的问题描述方法来描述须解决的问题。

目前,一个支持第四代技术模型的软件开发环境及工具如下:数据库查询的非过程语言,报告生成器,数据操纵,屏幕交互及定义,以及代码生成;高级图形功能;电子表格功能。最初,上述的许多工具仅能用于特定应用领域,但今天,第四代技术环境已经扩展,能够满足许多软件应用领域的需要。

像其他模型一样,第四代技术模型也是从需求分析开始,理想情况下,用户能够描述出需求,而且这些需求能被直接转换成可操作原型。但这是不现实的,因为用户可能不能确定需要什么;在说明已知的事实时,可能出现二义性;可能不能够或是不愿意采用一个第四代技术工具可以理解的形式来说明信息,因此,其他模型中所描述的用户对话方式在第四代技术模型中仍是一个必要的组成部分。

对于较小型的应用软件,使用一个非过程的第四代语言有可能直接从需求分析过渡到实现。但对于较大的应用软件,就有必要制订一个系统的设计策略。对于较大项目,如果没有很好地设计,即使使用第四代技术也会产生不用任何方法来开发软件所遇到的同样的问题,这些问题包括:低质量、差的可维护性、难以被用户接受等。

应用第四代技术的生成功能使得软件开发者能够以一种方式表示期望的输出,这种方式使得可以自动生成产生该输出的代码。很显然,相关信息的数据结构必须已经存在,且能够被第四代技术访问。

要将一个第四代技术模型生成的功能变成最终产品,开发者还必须进行测试,写出有意义的文档,并完成其他软件工程模型中同样要求的所有集成活动。此外,采用第四代技术开发的软件还必须考虑维护是否能够迅速实现。 像其他所有软件工程模型一样,第四代技术模型也有优点和缺点。其优点是极大地降低了软件的开发时间,并显著提高了构造软件的生产率。缺点是目前的第四代技术并不比程序设计语言更容易使用,而且这类工具生成的结果源代码是“低效的”,使用第四代技术开发的大型软件系统的可维护性是令人怀疑的。 综上所述,概括如下:

18

(1)在过去十余年中,第四代技术模型的使用发展得很快,且目前已成为适用于多个不同的应用领域的方法。与计算机辅助软件工程(CASE)工具和代码生成器结合起来,第四代技术为许多软件问题提供了可靠的解决方案。 (2)从使用第四代技术模型的公司收集来的数据表明:在小型和中型的应用软件开发中,它使软件的生产所需的时间大大降低,且使小型应用软件的分析和设计所需的时间也降低了。

(3)在大型软件项目中使用第四代技术,需要同样的甚至更多的分析、设计和测试才能获得实际的时间节省。主要是通过编码量的减少获得时间的节省。 因此,第四代技术模型已经成为软件开发的一个重要方法。 4.原型模型

原型模型如图1-6所示,从需求分析开始。软件开发者和用户在一起定义软件的总目标,说明需求,并规划出定义的区域。然后快速设计软件中对用户/客户可见部分的表示。快速设计导致了原形的建造,原形由用户/客户评估,并进一步求精待开发软件的需求。逐步调整原形使之满足用户需,这个过程是迭代的。原型模型的优点和缺点如下所述。 (1)优点

·原型模型法在得到良好的需求定义上比传统生存周期法好得多,不仅可以处理模糊需求,而且开发者和用户可充分通信。

·原型模型系统可作为培训环境,有利于用户培训和开发同步,开发过程也是学习过程。

·原型模型给用户以机会更改心中原先设想的、不尽合理的最终系统。 ·原型模型可以低风险开发柔性较大的计算机系统。 ·原型模型使系统更易维护、对用户更友好的机会。 ·原型模型使总的开发费用降低,时间缩短。

19

(2)缺点

·“模型效应”或“管中窥豹”。对于开发者不熟悉的领域把次要部分当作主要框架,做出不切题的原型。

·原型迭代不收敛于开发者预先的目标。为了消除错误,每次更改,次要部分越来越大,“淹没”了主要部分。 ·原型过快收敛于需求集合,而忽略了一些基本点。 ·资源规划和管理较为困难,随时更新文档也带来麻烦。

·长期在原型环境上开发,只注意得到满意的原型,容易“遗忘”用户环境和原型环境的差异。 (3)适用范围

·特别适用需求分析与定义规格说明 ·设计人机界面 ·充作同步培训工具 ·“一次性”的应用

20


软件工程第一讲教案(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:决策树习题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: