软件复用是一种计算机软件工程方法和理论。60年代的“软件危机”使程序设计人员明白难于维护的软件成本是极其高昂的,当软件的规模不断扩大时,这种软件的综合成本可以说是没有人能负担的,并且即使投入了高昂的资金也难以得到可靠的产品,而软件重用的思想是解决这一问题的根本方法。
软件复用的主要思想是,将软件看成是由不同功能部分的“组件”所组成的有机体,每一个组件在设计编写时可以被设计成完成同类工作的通用工具,这样,如果完成各种工作的组件被建立起来以后,编写一特定软件的工作就变成了将各种不同组件组织连接起来的简单问题,这对于软件产品的最终质量和维护工作都有本质性的改变。
软件复用一直作为软件设计的一个显著的目标,从目前的研究结果来看,置换的研究更加提升对软件复用的帮助,而且置换推导出来的一些结果也将更有利于进行更恰当的软件复用。
在软件复用中,需要让所复用的组件或者模块具有在概念、原则和规则上都保持一致,而“置换”的研究正是以为了达到这样的目标,能够通过一个更加广泛的逻辑抽象方法针对软件系统设计进行数学模型化的过程,而且此本书中大家也能够体会到我正在试图使用一种统一方法来构建软件设计,因此这两者之间是息息相关的。
软件复用要求复用和被复用这间更少的耦合,最好采用接口的方式,这样在复用上会变得更加的容易方便一些,而通过“置换”的研究我们也发现,耦合度的减少一般的情形下是通过增加中间层来满足,而中间层是否合理,正好可以使用“置换”来进行度量。而接口在“置换”观点中看来,其具有两个方向上的置换,所以其置换的效果更好,其灵活性也是最好的处理方式。
软件复用要求复用以后其接口必须保持一致性以及可替换性,而只要更好的使用“置换”的一些设计原则,则一致性和可替换性其实是显而易见的,这方面应该是达到惊人的一致要求。
另外,软件复用要求被复用的组件具有统一性,具有通用性,其实这就迫切的需要软件系统设计必须统一起来,需要找寻到一些原理上的证明,只有这样才能通过更加抽象的方式来对软件设计进行更加统一化的处理。而对于“置换”来说,即使不是最终的原理,然而,我想此方式是正确的,即使最终不是通过“置换”来完全表达,然而,更好的理论却要求必须包含“置换”已经呈现的这些原则和现象。