软件工程 第4版 教学课件 ppt 作者 张海藩 吕云翔 编著 16

上传人:E**** 文档编号:89494211 上传时间:2019-05-25 格式:PPT 页数:92 大小:755.50KB
返回 下载 相关 举报
软件工程 第4版  教学课件 ppt 作者  张海藩 吕云翔 编著 16_第1页
第1页 / 共92页
软件工程 第4版  教学课件 ppt 作者  张海藩 吕云翔 编著 16_第2页
第2页 / 共92页
软件工程 第4版  教学课件 ppt 作者  张海藩 吕云翔 编著 16_第3页
第3页 / 共92页
软件工程 第4版  教学课件 ppt 作者  张海藩 吕云翔 编著 16_第4页
第4页 / 共92页
软件工程 第4版  教学课件 ppt 作者  张海藩 吕云翔 编著 16_第5页
第5页 / 共92页
点击查看更多>>
资源描述

《软件工程 第4版 教学课件 ppt 作者 张海藩 吕云翔 编著 16》由会员分享,可在线阅读,更多相关《软件工程 第4版 教学课件 ppt 作者 张海藩 吕云翔 编著 16(92页珍藏版)》请在金锄头文库上搜索。

1、北航软件学院 吕云翔,第十六章 软件重用,重用(reuse)也称为再用或复用,是指同一事物不做修改或稍加改动就可多次重复使用。显然,软件重用是降低软件成本、提高软件生产率和软件质量的非常合理、有效的途径。,引言,16.1 可重用的软件成分,广义地说,软件重用可划分成以下3个层次:知识重用(如软件工程知识的重用);方法和标准的重用(如面向对象方法或国家标准局制定的软件开发规范或某些国际标准的重用);软件成分的重用。本节仅讨论软件成分的重用问题。软件成分的重用可以划分为以下3个级别。,16.1 可重用的软件成分,(1)代码重用 源代码剪贴:这是最原始的重用形式。这种重用方式的缺点是,复制或修改原有

2、代码时可能出错。更糟糕的是,存在严重的配置管理问题,人们几乎无法跟踪原始代码块多次修改重用的过程。,16.1 可重用的软件成分, 源代码包含:许多程序设计语言都提供包含(include)库中源代码的机制。使用这种重用形式时,配置管理问题有所缓解,因为修改了库中源代码之后,所有包含它的程序自然都必须重新编译。,16.1 可重用的软件成分, 继承:利用继承机制重用类库中的类时,无须修改已有的代码,就可以扩充或具体化在库中找出的类,因此,基本上不存在配置管理问题。,16.1 可重用的软件成分,(2)设计结果重用 设计结果重用指的是,重用某个软件系统的设计模型(即求解域模型)。这个级别的重用有助于把一

3、个应用系统移植到完全不同的软、硬件平台上。,16.1 可重用的软件成分,(3)分析结果重用 这是一种更高级别的重用,即重用某个系统的分析模型。这种重用特别适用于用户需求未改变,但系统体系结构发生了根本变化的场合。,16.1 可重用的软件成分, 项目计划。软件项目计划的基本结构和许多内容(如SQA计划)都是可以跨项目重用的。这样做减少了用于制定计划的时间,也降低了与建立进度表和进行风险分析等活动相关联的不确定性。 成本估计。因为在不同项目中经常含有类似的功能,所以有可能在只做极少修改或根本不做修改的情况下,重用对该功能的成本估计结果。,16.1 可重用的软件成分, 体系结构。即使在考虑不同的应用

4、领域时,也很少有截然不同的程序和数据体系结构,因此,有可能创建一组类属的体系结构模板(如事务处理体系结构),并把那些模板作为可重用的设计框架。,16.1 可重用的软件成分, 需求模型和规格说明。类和对象的模型及规格说明是明显的重用的候选者,此外,用传统软件工程方法开发的分析模型(如数据流图),也是可重用的。 设计。用传统方法开发的体系结构、数据、接口和过程设计结果,是重用的候选者,更常见的是,系统和对象设计是可重用的。,16.1 可重用的软件成分, 源代码。用兼容的程序设计语言书写的、经过验证的程序构件,是重用的候选者。 用户文档和技术文档。即使针对的应用是不同的,也经常有可能重用用户文档和技

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

6、构件组装模型,举例说明了怎样把一个可重用的软件构件库集成到典型的演化过程模型中。,16.2.1 构件组装模型,16.2.1 构件组装模型,构件组装模型包含了螺旋模型的许多特征,它本质上是演化的,支持迭代的软件开发方法。构件组装模型利用预先存储在类库中的软件构件来构造应用程序。,16.2.1 构件组装模型,软件开发活动从对候选类的标识开始,这通过检查将被应用程序加工的数据及用于实现该加工功能的算法来完成。数据和相应的算法被封装成一个类。在以前的软件工程项目中创建出来的类,被存储在一个类库中。,16.2.1 构件组装模型,一旦标识出候选类,就搜索该类库以确定这些候选类是否已经存在。如果已经存在,就

7、从类库中提取出来重用;如果不存在,就用面向对象方法开发它。,16.2 软件重用过程,16.2.1 构件组装模型 16.2.2 类构件 16.2.3 重用过程模型,16.2.2 类构件,利用面向对象技术,可以比较方便、有效地实现软件重用。面向对象技术中的“类”,是比较理想的可重用的软构件。不妨称之为类构件。在上一小节中讲述的构件组装模型,就是利用类构件来构造应用程序。,16.2.2 类构件,1可重用的软构件应具备的特点 (1)模块独立性强。具有单一、完整的功能,且经过反复测试被确认是正确的。它应该是一个不受或很少受外界干扰的封装体,其内部实现在外面是不可见的。,16.2.2 类构件,(2)具有高

8、度可塑性。软构件的应用环境比集成电路更广阔、更复杂。显然,要求一个软构件能满足任何一个系统的设计需求是不现实的。因此,可重用的软构件必须具有高度可裁剪性,也就是说,必须提供为适应特定需求而扩充或修改已有构件的机制,而且所提供的机制必须使用起来非常简单方便。,16.2.2 类构件,(3)接口清晰、简明、可靠。软构件应该提供清晰、简明、可靠的对外接口,而且还应该有详尽的文档说明,以方便用户使用。,16.2.2 类构件,2类构件的重用方式 (1)实例重用 由于类的封装性,使用者无须了解实现细节,就可以使用适当的构造函数,按照需要创建类的实例。然后向所创建的实例发送适当的消息,启动相应的服务,完成需要

9、完成的工作。,16.2.2 类构件,(2)继承重用 面向对象方法特有的继承性,提供了一种对已有的类构件进行裁剪的机制。当已有的类构件不能通过实例重用完全满足当前系统需求时,继承重用提供了一种安全地修改已有类构件,以便在当前系统中重用的手段。,16.2.2 类构件, 每个子类在继承父类的属性和服务的基础上,只加入少量新属性和新服务,不仅降低了每个类构件的接口复杂度,表现出一个清晰的进化过程,提高了每个子类的可理解性,而且为软件开发人员提供了更多可重用的类构件。 为多态重用奠定了良好基础。,16.2.2 类构件,(3)多态重用 利用多态性不仅可以使对象的对外接口更加一般化,从而降低了消息连接的复杂

10、程度,而且还提供了一种简便可靠的软构件组合机制。系统运行时,根据接收消息的对象类型,由多态性机制启动正确的方法,去响应一个一般化的消息,从而简化了消息界面和软构件连接过程。,16.2.2 类构件, 与表示方法有关的操作,如不同实例的比较、显示、擦除等。 与数据结构、数据大小等有关的操作。 与外部设备有关的操作,如设备控制。 实现算法在将来可能会改进(或改变)的核心操作。,16.2.2 类构件,如果不预先采取适当措施,上述这些操作会妨碍类构件的重用。因此,必须把它们从类的操作中分离出来,作为“适配接口”。 如果某个服务有多种可能的实现算法,则应该把它当做扩充接口。,16.2 软件重用过程,16.

11、2.1 构件组装模型 16.2.2 类构件 16.2.3 重用过程模型,16.2.3 重用过程模型,为了实现软件重用,已经提出了许多过程模型,这些模型都强调领域工程与软件工程同时进行。领域工程完成一系列工作,以建立一组可以被软件工程师重用的软件成分。,16.2.3 重用过程模型,16.3 领 域 工 程,16.3.1 分析过程 16.3.2 领域特征 16.3.3 结构建模和结构点,16.3.1 分析过程, 定义被研究的领域。 把从该领域中抽取出来的项分类。 收集该领域中有代表性的应用样本。 分析每个应用样本。 开发对象的分析模型。,16.3.1 分析过程,在领域分析过程中,重要的是标识出可重

12、用的软件成分。下面的一组实际问题,可以作为标识可重用的软构件的指南。 在未来的实现工作中需要该构件功能吗? 该构件功能在这个领域中有多大通用性?,16.3.1 分析过程, 在这个领域中是否重复使用该构件功能? 该构件是否依赖于硬件? 在不同的实现中硬件是否保持不变? 可以把硬件细节移到另一个构件中吗? 是否已经为了实现而对设计做了足够的优化?,16.3.1 分析过程, 我们能否把一个不可重用的构件参数化,从而使它变成可重用的? 是否仅仅经过少许修改,该构件就可以在许多实现中重用? 经过修改后该构件是否可以重用? 能否把一个不可重用的构件分解成一组可重用的构件?,16.3 领 域 工 程,16.

13、3.1 分析过程 16.3.2 领域特征 16.3.3 结构建模和结构点,16.3.2 领域特征,为了确定一个可能可重用的软件成分在特定情况下是否确实可以被使用,有必要定义一组领域特征,这些特征是该领域中所有软件共有的。领域特征定义了该领域中所有产品共有的类属属性,如安全(或可靠性)的重要性,程序设计语言,处理中的并发性等。,16.3.2 领域特征,一个可重用的软件成分的领域特征集可以表示为DPi,集合中每一项DPi表示一个特定的领域特征。赋给DPi的值表示等级,它指出该特征与软件成分P的相关性。典型的等级如下:,16.3.2 领域特征, 与重用是否合适不相关; 仅在特殊情况下才相关; 相关,

14、但存在差异无关紧要,该软件成分经过修改后仍然可以被使用;,16.3.2 领域特征, 明显相关,如果新软件不具有此特征,虽然重用仍然是可能的,但却是低效的; 很相关,如果新软件不具有此特征,重用将是非常低效的,此时不推荐重用。,16.3.2 领域特征,当在该应用领域中要开发一个新软件w时,可以为它导出一组领域特征Dw,然后比较DPi与Dwi,以决定是否现存的软件成分P可以在应用系统w中有效地重用。,16.3.2 领域特征,16.3 领 域 工 程,16.3.1 分析过程 16.3.2 领域特征 16.3.3 结构建模和结构点,16.3.3 结构建模和结构点,当运用领域分析方法时,分析员寻找该领域

15、内不同应用系统中存在的重复模式。结构化建模是一种基于模式的领域工程方法,应用此方法的前提假设是,每个应用领域都有功能、数据和行为的重复模式,它们具有被重用的可能性。,16.3.3 结构建模和结构点,结构模型由少量的结构元素组成,其表明了交互的清晰模式。使用结构模型的系统的体系结构特点是,有多个由这些模型元素组成的集合,因此,在系统体系结构单元间的复杂交互可以用在这些少量元素间的简单交互模式来描述。,16.3.3 结构建模和结构点,每个应用领域都可以用一个结构模型来刻画(如不同飞行器飞行控制系统的细节差别很大,但是在该领域的所有现代软件都具有相同的结构模型),因此,结构模型是一种体系结构制品,它

16、可以也应该在该领域内的所有应用系统中被重用。,16.3.3 结构建模和结构点,结构点(structure point)是结构模型中独特的结构成分,它有3个显著特点。 一个结构点是一个抽象,它应该有有限个实例。用面向对象的术语来陈述,即类等级的规模应该小。此外,该抽象应该在该领域的所有应用系统中反复出现,否则,用于验证、文档化和传播该结构点所需要的工作量,从成本角度来考虑就是不合算的。,16.3.3 结构建模和结构点, 指导结构点使用的规则应该是容易理解的。此外,结构点的接口应该比较简单。 结构点应该通过隐藏包含在该结构点内的所有复杂性而实现信息隐藏,这会减少整个系统可被外界感知的复杂性。,16.3.3 结构建模和结构点, 界面:用户能够通过界面与系统交互 范围设置机制:通过该机制用户能够设置被测量的参数的范围。 传感器管理机制:其与所有监控传感器通信。 响应机制:其对传感器管理系统所提供的输入做出反应。 控制机

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

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

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