欢迎来到天天文库
浏览记录
ID:50077574
大小:398.00 KB
页数:40页
时间:2020-03-08
《软件工程 教学课件 作者 张海藩 第十六章.ppt》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
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%代码量,因此,重用的效果非常显著。·数据。在大多数经常被重用的软件成分中,被重用的数据包括:内部表、列表和记录结构,以及文件和完整的数据库。·测试用例。一旦设计或代码构件将被重用,相关的测试用
5、例应该“附属于”它们。16.2软件重用过程16.2.1构件组装模型“重用”应该是每个软件过程的一个不可缺少的组成部分。图16.1所示的构件组装模型,举例说明了怎样把一个可重用的软件构件库集成到典型的演化过程模型中。图16.1构件组装模型16.2.2类构件利用面向对象技术,可以比较方便、有效地实现软件重用。面向对象技术中的“类”,是比较理想的可重用的软构件,不妨称之为类构件,在上一小节中讲述的构件组装模型,就是利用类构件来构造应用程序。1.可重用的软构件应具备的特点(1)模块独立性强(2)具有高度可塑性(3)接口清晰、简明、可靠2
6、.类构件的重用方式(1)实例重用(2)继承重用面向对象方法特有的继承性,提供了一种对已有的类构件进行裁剪的机制。当已有的类构件不能通过实例重用完全满足当前系统需求时,继承重用提供了一种安全地修改已有类构件,以便在当前系统中重用的手段(3)多态重用利用多态性不仅可以使对象的对外接口更加一般化(基类与派生类的许多对外接口是相同的),从而降低了消息连接的复杂程度,而且还提供了一种简便可靠的软构件组合机制,系统运行时,根据接收消息的对象类型,由多态性机制启动正确的方法,去响应一个一般化的消息,从而简化了消息界面和软构件连接过程。16.2.3
7、重用过程模型为了实现软件重用,已经提出了许多过程模型,这些模型都强调领域工程与软件工程同时进行。领域工程完成一系列工作,以建立一组可以被软件工程师重用的软件成分。图16.2给出了一个典型的明显适用于重用的过程模型。领域工程创建应用领域的模型,在软件工程流中使用该模型作为分析用户需求的基础。软件体系结构及相应的结构点(见16.3.3节)为应用系统的设计提供了输入信息。最后,在可重用的软件成分作为领域工程的一部分被构造出来之后,它们可以在软件开发活动中被软件工程师使用。图16.2一个强调重用的过程模型16.3领域工程领域工程的目的是,标识、
8、构造、分类和传播一组软件成分,在特定的应用领域中这些软件成分可适用于现有的和未来的软件系统。其总体目标是,建立相应的机制,使得软件工程师可以在新的或现有的系统中分享
此文档下载收益归作者所有