软件重用技术
1.什么是软件重用技术
所谓软件重用技术是指开发新的应用软件时,再次使用已有的软件、知识和方法的技术。
2.软件重用技术的种类[1]
1.软件组合技术
该技术是按照一定规则把可重用的软件成分组合在一起,构成软件系统或新的可重用成分。其特点是可重用的软件成分作为被动的原子模块使用,它们在整个组合过程中保持不变。用底层部件库法和上层组合法可把软构件组合成所需的软件。
2.软件生成技术
该技术是按照形式化的软件功能描述和一定的生成机理,由生成器系统主动地生成目标程序。这种方法所使用的可重用部件是生成器本身的代码板或隐藏在变换规则集中的模板。这种技术抽象级别高,需要有可重用软件库和知识库的支持。
3.面向对象的软件重用技术
面向对象的软件技术是重用技术中最成功的一个,它可以通过提高方法的聚合性、减小方法的规模和交互耦合的程度,以及利用继承机制、委托和封装等来提高软件的可重用性。利用面向对象技术,可以更方便、更有效地实现软件重用。面向对象技术中的“类”,是比较理想的可重用软构件,不妨称为类构件。它有实例重用、继承重用和多态重用三种重用方式。
(1)实例重用是最基本的重用方式。因为类的封装性,使用者不用了解实现细节,就可以使用适当的构造函数,按照需要创建类的实例,然后向所创建的实例发送适当的消息,启动相应的服务,完成需要的工作。此外,还可以用几个简单的对象作为类成员,创建出一个更复杂的类。
(2)继承重用。面向对象方法特有的继承性,提供了一种对已有的类构件进行裁剪的机制。当已有的类构件不能通过实例重用来完全满足当前系统需求时,继承重用提供了一种安全地修改已有类构件的方式,以便在当前系统中重用。要提高继承重用的效果,关键是每个子类在继承父类的属性和服务的基础上,只加入少量新属性和新服务,这不仅降低了每个类构件的接口复杂度,表现出一个清晰的进化过程,提高每个子类的可理解性,而且为软件开发人员提供了更多可重用的类构件。要提高继承重用的效果,其关键是设计一个合理的、具有一定深度的类构件继承层次结构,必要时应在领域专家帮助下建立符合领域知识的继承层次。
(3)多态重用。利用类的多态性不但可以降低消息连接的复杂程度,使对象的对外接口更加一般化,而且还提供了一种简单可靠的软构件组合机制。系统运行时,根据接收消息的对象类型,由多态机制启动正确的方法,去响应一个一般化的消息,从而简化了消息界面和软构件连接的过程。为充分实现多态重用,在设计类构件时,应该把注意力集中到一些可能影响重用特性的操作上(如与表示方法有关的操作、与数据结构有关的操作、与外部设备有关的操作等)。否则,这些操作会妨碍类构件的重用,这时,必须把它们从类的操作中分离出来,作为“适配接口”,也可以把适配接口再进一步细分为转换接口和扩充接口。