现代软件工程

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

软件开发模型中几种模型的介绍和比较学院:姓名:学号:目录1.1什么是智能模型.................................................................................................................11.2智能模型的必要性.............................................................................................................22.1什么是RAD开发模型........................................................................................................22.2RAD模型的软件过程.........................................................................................................33.1各种模型的比较.................................................................................................................53.2各种模型的优点和缺点.....................................................................................................5瀑布模型...........................................................................................................................5快速模型...........................................................................................................................6增量模型...........................................................................................................................6RAD模型...........................................................................................................................7螺旋模型...........................................................................................................................71软件开发模型(SoftwareDevelopmentModel)是指软件开发全部过程、活动和任务的结构框架。软件开发包括需求、设计、编码和测试等阶段,有时也包括维护阶段。软件开发模型能清晰、直观地表达软件开发全过程,明确规定了要完成的主要活动和任务,用来作为软件项目工作的基础。对于不同的软件系统,可以采用不同的开发方法、使用不同的程序设计语言以及各种不同技能的人员参与工作、运用不同的管理方法和手段等,以及允许采用不同的软件工具和不同的软件工程环境。本文主要重点介绍智能模型(IntelligentModel)和RAD开发模型。1.1什么是智能模型智能模型基于知识的软件开发模型,它与专家系统结合在一起。该模型应用基于规则的系统,采用归纳和推理机制,帮助软件人员完成开发工作,并使维护在系统规格说明一级进行。该模型在实施过程中要建立知识库,将模型本身、软件工程知识与特定领域的知识分别存入数据库。以软件工程知识为基础的生成规则构成的专家系统与含应用领域知识规则的其他专家系统相结合,构成这一应用领域软件的开发系统。智能模型也称为“基于知识的软件开发模型”,它把瀑布模型和专家系统结合在一起,利用专家系统来帮助软件开发人员的工作。该模型应用基于规则的系统,采用归纳和推理机制,使维护在系统规格说明一级进行。这种模型在实施过程中以软件工程知识为基础的生成规则构成的知识系统与包含应用领域知识规则的专家系统相结合,构成这一应用领域软件的开发系统。采用智能模型的软件过程如下图所示:智能模型拥有一组工具(如数据查询、报表生成、数据处理、屏幕定义、代码生成、高层图形功能及电子表格等),每个工具都能使开发人员在高层次上定义软件的某些特性,并把开发人员定义的这些软件自动地生成为源代码。这种方2法需要四代语言(4GL)的支持。4GL不同于三代语言,其主要特征是用户界面极端友好,即使没有受过训练的非专业程序员,也能用它编写程序;它是一种声明式、交互式和非过程性编程语言。4GL还具有高效的程序代码、智能缺省假设、完备的数据库和应用程序生成器。目前市场上流行的4GL(如Foxpro等)都不同程度地具有上述特征。但4GL目前主要限于事务信息系统的中、小型应用程序的开发。1.2智能模型的必要性智能模型所要解决的问题是特定领域的复杂问题,涉及大量的专业知识,而开发人员一般不是该领域的专家,他们对特定领域的熟悉需要一个过程,所以软件需求在初始阶段很难定义得很完整。因此,采用原型实现模型需要通过多次迭代来精化软件需求。智能模型以知识作为处理对象,这些知识既有理论知识,也有特定领域的经验。在开发过程中需要将这些知识从书本中和特定领域的知识库中抽取出来(即知识获取),选择适当的方法进行编码(即知识表示)建立知识库。将模型、软件工程知识与特定领域的知识分别存入数据库,在这个过程中需要系统开发人员与领域专家的密切合作。智能模型开发的软件系统强调数据的含义,并试图使用现实世界的语言表达数据的含义。该模型可以勘探现有的数据,从中发现新的事实方法指导用户以专家的水平解决复杂的问题。它以瀑布模型为基本框架,在不同开发阶段引入了原型实现方法和面向对象技术以克服瀑布模型的缺点,适应于特定领域软件和专家决策系统的开发。2.1什么是RAD开发模型RAD模型是一个线性顺序的软件开发模型,强调极短的开发周期。RAD模型是线性顺序模型的一个“高速”变种,通过使用基于构件的建造方法获得了快速开发。如果需求理解得很好,且约束了项目范围,RAD过程使得一个开发组能够在很短时间内(如60到90天)创建出“功能完善的系统”。RAD方法主要用于信息系统应用软件的开发,它包含如下几个开发阶段:业务建模:业务活动中的信息流被模型化,以回答如下问题:什么信息驱动业务流程?生成什么信息?谁生成该信息?该信息流往何处?谁处理它?3数据建模:业务建模阶段定义的一部分信息流被精化,形成一组支持该业务所需的数据对象。标识出每个对象的特征(称为属性),并定义这些对象间的关系。处理建模:数据建模阶段定义的数据对象变换成为要完成一个业务功能所需的信息流。创建处理描述以便增加、修改、删除或获取某个数据对象。应用生成:RAD假设使用第四代技术。RAD过程不是采用传统的第三代程序设计语言来创建软件,而是复用已有的程序构件(如果可能的话)或是创建可复用的构件(如果需要的话)。在所有情况下,均使用自动化工具辅助软件建造。测试及反复:因为RAD过程强调复用,许多程序构件已经是测试过的,这减少了测试时间。但新构件必须测试,所有接口也必须测到。RAD(RapidApplicationDevelop,快速应用开发)模型是一个增量型的软件开发过程模型,强调极短的开发周期。该模型是瀑布模型的一个“高速”变种,通过大量使用可复用构件,采用基于构件的建造方法赢得了快速开发。如果正确地理解了需求,而且约束了项目的范围,利用这种模型可以很快创建出功能完善的信息系统。其流程从业务建模开始,随后是数据建模、过程建模、应用生成、测试及反复。RAD目的是快速发布系统方案,而技术上的优美相对发布的速度来说是次要的。2.2RAD模型的软件过程采用RAD模型的软件过程如图所示。RAD模型各个活动期所要完成的任务如下。(1)业务建模4确定驱动业务过程运作的信息、要生成的信息、如何生成、信息流的去向及其处理等,可以辅之以数据流图。(2)数据建模为支持业务过程的数据流查找数据对象集合、定义数据对象属性,并与其他数据对象的关系构成数据模型,可辅之以E-R图。(3)过程建模使数据对象在信息流中完成各业务功能,创建过程以描述数据对象的增加、修改、删除、查找,即细化数据流图中的处理框。(4)应用程序生成利用第4代语言(4GL)写出处理程序,重用已有构件或创建新的可重用构件,利用环境提供的工具自动生成以构造出整个的应用系统。(5)测试与交付由于大量重用,一般只做总体测试,但新创建的构件还是要测试的。与瀑布模型相比,RAD模型不采用传统的第3代程序设计语言来创建软件,而是采用基于构件的开发方法复用已有的程序结构(如果可能)或使用可复用构件和或创建可复用的构件(如果需要)。在所有情况下,均使用自动化工具辅助软件创造。很显然,加在一个RAD模型项目上的时间约束需要“一个可伸缩的范围”。如果一个业务能够被模块化使得其中每一个主要功能均可以在不到3个月的时间内完成,则其是RAD的一个候选者。每一个主要功能可由一个单独的RAD组来实现,最后集成起来形成一个整体。按照WoodandSilver(1995)的观点,RAD组合了5个方面的技术:1、进化原型2、CASE工具(可进行正向工程和反向工程)3、拥有能使用先进工具的专门人员(一个RAD开发小组)4、交互式JAD5、时间表RAD模型通过大量使用可复用构件加快了开发速度,对信息系统的开发特别有效。但是与所有其他软件过程模型一样,RAD模型也有不足之处:51、对大型项目而言,RAD需要足够的人力资源。2、开发人员和客户必须在很短的时间内完成一系列的需求分析,任何一方配合不当都会导致RAD项目失败。3、并非所有系统都适合:不能合理模块化的系统、高性能需求并且要调整构件接口的系统均不适合。4、RAD只能用于信息系统开发,不适合技术风险很高的情况。当一个新应用要采用很多新技术或当新软件要求与已有的计算机程序的高互操作性时,这种情况就会发生。3.1各种模型的比较每个软件开发组织应该选择适合于该组织的软件开发模型,并且应该随着当前正在开发的特定产品特性而变化,以减小所选模型的缺点,充分利用其优点,下表列出了几种常见模型的优缺点。3.2各种模型的优点和缺点瀑布模型瀑布模型的优点:有利于大型软件开发过程中人员的组织、管理,有利于软件开发方法和工具的研究,从而提高了大型软件项目开发的质量和效率。瀑布模型的缺点:(1)开发过程一般不能逆转,否则代价太大;(2)实际的项目开发很难严格按该模型进行;(3)客户往往很难清楚地给出所有的需求,而该模型却要求如此。(4)软件的实际情况必须到项目开发的后期客户才能看到,这要求客户有足够的耐心。瀑布模型的使用范围:(1)用户的需求非常清楚全面,且在开发过程中没有或很少变化;(2)开发人员对软件的应用领域很熟悉;(3)用户的使用环境非常稳定;(4)开发工作对用户参与的要求很低。快速原型快速原型模型的优点:(1)可以得到比较良好的需求定义,容易适应需求的变化;(2)有利于开发与培训的同步;6(3)开发费用低、开发周期短且对用户更友好。快速原型模型的缺点:(1)客户与开发者对原型理解不同;(2)准确的原型设计比较困难;(3)不利于开发人员的创新。快速原型模型的使用范围:(1)对所开发的领域比较熟悉而且有快速的

1 / 9
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功