软件重用是在不同的软件开发过程中重复使用相同或相似软件元素的过程,以提高开发效率、质量和灵活性。以下是一些常见的软件重用方法:
源代码模块或类一级的重用:
这是最基本的软件重用形式,包括代码提取、源代码部件和软件逻辑结构。代码提取涉及从现有程序中提取适合重用的代码段并进行必要的修改。源代码部件是专门编写并经过测试的代码段,用于完成特定功能。软件逻辑结构则是对数据结构、逻辑结构和过程的抽象,用于构建可重用的源代码部件。
二进制形式的重用:
包括组件重用,例如使用预先构建的组件来构建新的应用程序。这种方式在需要快速集成现有功能时非常有用。
组装式重用:
将多个应用程序的功能集成在一起,形成一个新的应用程序。例如,一个门户站点可以集成天气查询、股市行情和在线购物等功能,这些功能由不同的网络应用服务供应商提供。
分析级别重用:
重用软件需求说明、系统设计、分析数据等,以减少重复工作并提高开发效率。
模板方法:
将程序设计过程分为算法说明和实现说明,使得算法可以在不同的数据类型上重用。这种方法通过推迟数据类型的选择,提高了算法的通用性。
软件重用库:
建立和维护一个包含各种可重用软件部件的库,如函数库、类库等。这些库可以通过标准接口供其他程序调用,从而提高开发效率和质量。
面向问题编程:
使用面向问题的编程语言或高级编程语言编写程序,这些程序实质上是问题的一种高级描述,便于重用和修改。
程序更换:
设计能将一种语言的源代码变换成另一种语言的程序的源代码变换系统,以实现跨语言的重用。
程序系统生成:
设计一个根据特定说明和要求能产生特定软件的系统,即程序自动生成系统。例如,一些程序设计语言提供的界面生成工具。
横向和纵向重用:
横向重用是指在不同应用领域之间重用软件元素,如数据结构、分类算法等。纵向重用则是在具有较多公共性的应用领域之间进行软部件重用,通过域分析预测软部件的可重用性,并进行一般化处理,使其适应新的应用领域。
设计结果重用:
重用某个软件系统的设计模型,有助于将一个应用系统移植到不同的软硬件平台。
分析结果重用:
重用某个系统的分析模型,特别适用于用户需求未改变,但系统体系结构发生根本变化的场合。
通过这些方法,软件重用不仅可以提高开发效率,还可以改善软件质量,增加软件的灵活性和标准化程度。在实施软件重用时,需要考虑如何检索、修剪和组织可重用软部件,并系统地生产可重用的软部件,以确保软部件库的可用性和可维护性。