软件工程 教学课件 ppt 作者 张海藩 第十六章

上传人:E**** 文档编号:89542524 上传时间:2019-05-27 格式:PPT 页数:40 大小:398KB
返回 下载 相关 举报
软件工程 教学课件 ppt 作者  张海藩 第十六章_第1页
第1页 / 共40页
软件工程 教学课件 ppt 作者  张海藩 第十六章_第2页
第2页 / 共40页
软件工程 教学课件 ppt 作者  张海藩 第十六章_第3页
第3页 / 共40页
软件工程 教学课件 ppt 作者  张海藩 第十六章_第4页
第4页 / 共40页
软件工程 教学课件 ppt 作者  张海藩 第十六章_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《软件工程 教学课件 ppt 作者 张海藩 第十六章》由会员分享,可在线阅读,更多相关《软件工程 教学课件 ppt 作者 张海藩 第十六章(40页珍藏版)》请在金锄头文库上搜索。

1、第16章 软件重用,退出,重用(reuse)也称为再用或复用,是指同一事物不做修改或稍加改动就多次重复使用。显然,软件重用是降低软件成本、提高软件生产率和软件质量的非常合理、有效的途径。,16.1 可重用的软件成分 16.2 软件重用过程 16.3 领域工程 16.4 开发可重用的构件 16.5 分类和检索构件 16.6 软件重用的效益 16.7 小结,16.1 可重用的软件成分,广义地说,软件重用可划分成以下三个层次:知识重用(例如,软件工程知识的重用);方法和标准的重用(例如,面向对象方法或国家标准局制定的软件开发规范或某些国际标准的重用);软件成分的重用。本章仅讨论软件成分的重用问题。

2、软件成分的重用可以进一步划分成以下三个级别。 (1) 代码重用,(2) 设计结果重用 设计结果重用指的是,重用某个软件系统的设计模型(即求解域模型)。这个级别的重用有助于把一个应用系统移植到完全不同的软/硬件平台上。 (3) 分析结果重用 这是一种更高级别的重用,即重用某个系统的分析模型。这种重用特别适用于用户需求未改变,但系统体系结构发生了根本变化的场合。更具体地说,可能被重用的软件成分主要有以下10种。 项目计划。软件项目计划的基本结构和许多内容(例如,SQA计划)都是可以跨项目重用的。这样做减少了用于制定计划的时间,也降低了与建立进度表和进行风险分析等活动相关联的不确定性。, 成本估计。

3、因为在不同项目中经常含有类似的功能,所以有可能在只做极少修改或根本不做修改的情况下,重用对该功能的成本估计结果。 体系结构。即使在考虑不同的应用领域时,也很少有截然不同的程序和数据体系结构。因此,有可能创建一组类属的体系结构模板(例如,事务处理体系结构),并把那些模板作为可重用的设计框架。 需求模型和规格说明。类和对象的模型及规格说明是明显的重用的候选者,此外,用传统软件工程方法开发的分析模型(例如,数据流图),也是可重用的。, 设计。用传统方法开发的体系结构、数据、接口和过程设计结果,是重用的候选者,更常见的是,系统和对象设计是可重用的。 源代码。用兼容的程序设计语言书写的、经过验证的程序构

4、件,是重用的候选者。 用户文档和技术文档。即使针对的应用是不同的,也经常有可能重用用户文档和技术文档的大部分。 用户界面。这可能是最广泛被重用的软件成分,GUI(图形用户界面)软件经常被重用。因为它可占到一个应用程序的60%代码量,因此,重用的效果非常显著。, 数据。在大多数经常被重用的软件成分中,被重用的数据包括:内部表、列表和记录结构,以及文件和完整的数据库。 测试用例。一旦设计或代码构件将被重用,相关的测试用例应该“附属于”它们。,16.2 软件重用过程,16.2.1 构件组装模型 “重用”应该是每个软件过程的一个不可缺少的组成部分。图16.1所示的构件组装模型,举例说明了怎样把一个可重

5、用的软件构件库集成到典型的演化过程模型中。,图16.1 构件组装模型,16.2.2 类构件 利用面向对象技术,可以比较方便、有效地实现软件重用。面向对象技术中的“类”,是比较理想的可重用的软构件,不妨称之为类构件,在上一小节中讲述的构件组装模型,就是利用类构件来构造应用程序。 1. 可重用的软构件应具备的特点 (1) 模块独立性强 (2) 具有高度可塑性 (3) 接口清晰、简明、可靠,2. 类构件的重用方式 (1) 实例重用 (2) 继承重用 面向对象方法特有的继承性,提供了一种对已有的类构件进行裁剪的机制。当已有的类构件不能通过实例重用完全满足当前系统需求时,继承重用提供了一种安全地修改已有

6、类构件,以便在当前系统中重用的手段 (3) 多态重用 利用多态性不仅可以使对象的对外接口更加一般化(基类与派生类的许多对外接口是相同的),从而降低了消息连接的复杂程度,而且还提供了一种简便可靠的软构件组合机制,系统运行时,根据接收消息的对象类型,由多态性机制启动正确的方法,去响应一个一般化的消息,从而简化了消息界面和软构件连接过程。,16.2.3 重用过程模型 为了实现软件重用,已经提出了许多过程模型,这些模型都强调领域工程与软件工程同时进行。领域工程完成一系列工作,以建立一组可以被软件工程师重用的软件成分。 图16.2给出了一个典型的明显适用于重用的过程模型。领域工程创建应用领域的模型,在软

7、件工程流中使用该模型作为分析用户需求的基础。软件体系结构及相应的结构点(见16.3.3节)为应用系统的设计提供了输入信息。最后,在可重用的软件成分作为领域工程的一部分被构造出来之后,它们可以在软件开发活动中被软件工程师使用。,图16.2 一个强调重用的过程模型,16.3 领域工程,领域工程的目的是,标识、构造、分类和传播一组软件成分,在特定的应用领域中这些软件成分可适用于现有的和未来的软件系统。其总体目标是,建立相应的机制,使得软件工程师可以在新的或现有的系统中分享这些软件成分重用它们。 领域工程包括三个主要的活动,它们是分析、构造和传播。,16.3.1 分析过程 领域分析过程基本上由下述步骤

8、组成。 定义被研究的领域。 把从该领域中抽取出来的项分类。 收集该领域中有代表性的应用样本。 分析每个应用样本。 开发对象的分析模型。,16.3.2 领域特征 为了确定一个可能可重用的软件成分在特定情况下是否确实可以被使用,有必要定义一组领域特征,这些特征是该领域中所有软件共有的。领域特征定义了该领域中所有产品共有的类属属性,例如,安全(或可靠性)的重要性,程序设计语言,处理中的并发性等。 一个可重用的软件成分的领域特征集可以表示为DP,集合中每一项DPi表示一个特定的领域特征。赋给DPi的值表示等级,它指出该特征与软件成分P的相关性。典型的等级如下。, 与重用是否合适不相关。 仅在特殊情况下

9、才相关。 相关,但存在差异无关紧要,该软件成分经过修改后仍然可以被使用。 明显相关,如果新软件不具有此特征,虽然重用仍然是可能的,但却是低效的。 很相关,如果新软件不具有此特征,重用将是非常低效的,此时不推荐重用。 当在该应用领域中要开发一个新软件w时,可以为它导出一组领域特征Dw,然后比较DPi与Dwi,以决定是否现存的软件成分P可以在应用系统w中有效地重用。 表16.1列出了可能对软件重用有影响的典型的领域特征,为了有效地重用软件成分,必须考虑这些领域特征。,即使待开发的软件明显属于某个应用领域,对该领域中可重用的软件成分也必须加以分析,以确定它们在当前项目中的可重用性。在少数情况下,从头

10、开发可能仍然是成本最低的途径。 16.3.3 结构建模和结构点 每个应用领域都可以用一个结构模型来刻画(例如,不同飞行器飞行控制系统的细节差别很大,但是在该领域的所有现代软件都具有相同的结构模型),因此,结构模型是一种体系结构制品,它可以也应该在该领域内的所有应用系统中被重用。,16.4 开发可重用的构件,16.4.1 为了重用的分析与设计 当开发一个新软件时,应该对描述需求的分析模型进行分析,以发现模型中那些指向现有的可重用的软件成分的元素。为此,应该使用能够导致“规格说明匹配”的方式从需求模型中抽取信息。,16.4.2 基于构件的开发 当重用在应用系统开发中占据主导地位时,就把这样的开发方

11、法称为基于构件的开发或构件软件。领域工程为基于构件的开发提供了所需要的可重用构件库,这些可重用的构件中的一部分是内部开发的,另一部分是从现有的应用系统中抽取出来的,还有一部分是从第三方获取的。 但是,怎样创建一个具有一致结构的构件的库呢?答案是,采用统一的构件标准。 因为重用对软件产业有非常巨大的潜在影响,主要的公司和产业联盟已经提出了构件软件的一些标准。,1. OpenDoc 主要技术公司(包括IBM、Apple和Novell)的一个联盟,提出了复合文档和构件软件的标准OpenDoc。该标准定义了为使一个开发者提供的构件能够和另一个开发者提供的构件互操作,而必须实现的服务、控制基础设施和体系

12、结构。 2OMG/CORBA 对象管理组织(OMG)发布了公共对象请求代理体系结构(OMG/CORBA)。一个对象请求代理(ORB)提供了一系列服务,这些服务使得可重用的构件(对象)能够与其他构件通信,而不管它们在系统中位于何处。当应用OMG/CORBA标准建立构件时,可以保证这些构件无需修改就能集成到一个系统中。,以客户/服务器结构为例,在客户端应用系统中的对象可以向ORB服务器请求一个或多个服务。对象请求代理(ORB)是一个中间件构件,通过它驻留在客户端的对象可以向驻留在服务器上的对象发送消息,请求提供服务。在客户和服务器两端的对象和类都用接口描述语言(IDL)定义。为了适应客户端对象对服

13、务器端方法的请求,需要创建客户和服务器的IDL存根(stub),它提供了一条通路,通过这条通路可满足跨越客户/服务器系统的对象的请求。 由于对跨越网络的对象的请求在运行时发生,因此必须建立存储对象描述的机制,以便在需要时可以获得关于对象及其位置的信息,接口仓库提供了这种机制。,3. COM Microsoft公司开发了构件对象模型(COM),它提供了为在一个应用系统中使用不同厂商生产的对象而需要的规格说明。 COM的核心是一组应用程序调用接口API,该接口提供了创建构件和组装构件的功能。COM标准具有下述特点。 构件间的互操作基于指针,依赖于操作系统的API。 对Windows的依赖性强,对其

14、他操作系统的支持相对不足。 构件运行环境的提供者仅限于Microsoft公司,但支持COM标准的开发工具比较多(例如,VC+、VB等)。 对象连接与嵌入(OLE)是COM的一部分,其定义了可重用构件的标准结构。OLE已经成为Microsoft操作系统(例如,Windows98,Windows NT)的一部分。,4. JavaBean JavaBean构件实现标准由Sun公司在Java语言的基础上提出。由于Java是一种纯面向对象语言,因此JavaBean标准比较简洁、完备。JavaBean具有下述特点。 构件模型比较完备。 仅支持Java语言。 构件运行环境主要由Sun公司提供,其他厂商也可提

15、供运行环境,支持该标准的开发工具较多(例如,Visual Cafe,Visual Age for Java等)。,16.5 分类和检索构件,16.5.1 描述可重用的构件 可以用很多种方式描述可重用的软件构件,但是一种理想的描述方式是Tracz提出的3C模型概念(concept)、内容(content)和语境(context)。 软件构件的“概念”是对构件做什么的描述,应该完整地描述构件的接口,并在前置条件和后置条件的语境中标识构件的语义。概念应该表达出构件的意图。,构件的“内容”描述实现概念的方法。本质上,内容是对一般用户隐藏的信息,只有那些打算修改该构件的人才需要知道这些信息。 “语境”把可重用的软件构件置于其应用领域中,也就是说,通过指定概念的、操作的和实现的特征,语境使得软件工程师能够找到适当的构件以满足应用需求。 为了能够在实际环境中应用,必须把概念、内容和语境转换成具体的规格说明模式。人们对可重用的软件构件的分类模式已经做过许多研究,所提出的方法可分为三大类:图书馆和信息科学方法、人工智能方法以及超文本系统。到目前为止,绝大部分研究工作建议使用图书馆科学方法对构件分类。,图16.3 源于图书馆科学索引法的分类法,1. 枚举分类(Enumerated Classification) 通过定义一个层次结构来描述构件,在该结构中定义软件构件的类以及子类的不同层次。把实际的构

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号