软件复用的内容是怎样的呢?
人们开发了许多基于各种OOPL的编程类库,有力地支持了源程序层次的软件复用,但不足以实现更高层次的软件复用。
软件复用的几种方式?
软件复用是利用已有的软件及其有效组件来构造新的软件或系统。不仅仅是软件程序的复用,还包括软件生产过程中其他劳动成果的复用,如项目计划、可行性报告、需求分析、概要设计、详细设计、编码(源程序)、测试用例、文档和手册等。因此,软件复用包括软件产品复用和软件过程复用。
软件复用不同于软件移植。软件移植是指对软件进行修改和扩展,使其在保留原有功能、适应原有平台的基础上,运行在新的软硬件平台上。复用是指在多个系统中使用已有的软件组件,尤其是在新系统中。
从复用产品和复用方法的理解上,也可以分为白盒复用和黑盒复用。黑盒复用是指直接复用已有的产品或组件,不做任何修改,是一种理想的复用方法。主要是基于二进制代码的复用,包括可执行程序的复用和基于库(包括动态链接库和静态库)的复用。白盒重用是指根据用户需求对现有产品进行适应性修改。;使用前的需求。白盒复用一般是源代码级别的复用和相应测试用例、文档的复用。
无论白盒复用还是黑盒复用,熟悉和掌握复用的软件系统都需要一定的成本。从经济角度考虑,再利用的成本必须远小于再开发的成本,否则不应考虑。
软件复用的一个关键因素是抽象。抽象是对软件可复用对象的抽象和概括,即从特定的语言、环境等细节中提取可复用对象的基本属性和相应的操作。软件的可复用性很大程度上取决于对可复用对象的理解深度或可复用对象的抽象程度。抽象程度越高,与具体环境和具体细节越不相关,被未来系统重用的可能性就越大。领域分析是一个强大的抽象工具。领域分析借助特定领域和行业的专业知识和技能,对软件系统对象进行抽象和分类,提炼认知对象及其关系,获得系统的整体结构,生成可复用的软件构件。
通过软件复用,我们可以在应用系统的开发中充分利用现有的开发成果,减少包括分析、设计、编码、测试等在内的大量重复性工作。,从而提高软件开发的效率。同时,通过复用高质量的已有开发成果,可以避免二次开发可能引入的错误,从而提高软件的质量。
软件复用有三个基本原则。首先,必须有可重用的对象。第二,被重用的对象必须是有用的。第三,重用者需要知道如何使用被重用的对象。的对象。软件复用包括两个相关的过程:开发复用软件(组件)和开发不复用基于可复用软件(组件)的应用系统。只有解决了这些问题,才能实现真正成功的软件复用。
可复用软件(构件)的开发是实现软件复用的基本条件。对象技术的广泛使用为构建和使用组件提供了概念基础和实用工具。利用可复用软件,可以实现基于可复用软件(组件)的应用系统的构建(集成和组装)。软件的制作也可以像硬件的制作一样,在设计好框架后,用标准组件组装。一般来说,组件是具有一定功能的程序体,可以独立工作,也可以与其他组件协同工作。一旦产生,就与其具体的实现语言无关。可以认为是二进制代码和数据段,其内部实现是不可见的。成熟的组件可以作为商品出售,在保证开发者利益的同时,最大程度满足社会需求。使用组件开发软件可以重用他人现有的劳动成果更有效。
在可复用软件的设计中,如何设计和构造可复用软件是软件设计者必须面对的首要问题。根据面向对象的设计原则,我们应该重点关注以下几个方面:
(1)封装
在软件组件的定义中,用户只关心事件的输入和输出,而不关心事件的输入和输出。;我不必关心事情的内幕。方法和事件独立于应用程序。用户可以在软件组件中定义他们自己的事件,但是他们没有。;不知道内部调用的复杂性,从而提高了隐蔽性。
(2)超载
重载意味着在同一个软件组件中使用相同的名称来表示不同的方法名。一般有两种实现,一种是重载方法参数的个数,另一种是重载方法参数的类型。
(3)继承
继承是在不同范围内对高级类的重用。
(4)聚合
聚合就是把一个很难复用的大型软件分成几个组件,让其中的一部分可以复用。
(5)多态性
多态意味着一个方法不仅可以处理结构相同的对象,也可以处理结构不同的对象。
中间件和相关软件是商业软件复用。单看程序,软件复用后的产品不仅包括中间件软件,还包括软件框架、应用框架、通用业务组件等可复用形式。