软件重用是最佳的软件工程实践。但是,对于一些初次接触可重用软件概念的人来说,如何实现软件可重用还是一头雾水。下面从技术的角度来讲讲实现软件可重用的原理。 我们知道,一个计算机软件通常是由许多小模块组成的。如果实现了软件重用开发,那么在理想的情况下,大部分模块都是来自于可重用库的库函数,只有少数软件专用的功能模块需要从头编写。而且,那些来自于可重用库的库函数都是已经通过充分测试的,只有那些新编写的代码才可能包含错误,因此软件的调试只需要在这部分代码中进行即可。 这意味着软件的开发效率极大地提高。这就是软件重用给我们带来的好处。 所以,实现软件重用开发的关键就是把一个又一个的软件模块变成可重用的库函数。那么,就让我们来了解一下模块的组成。 一个模块由接口和实现两部分组成。其中,接口指明了模块要做什么,声明了使用该模块的代码可用的标识符、类型和历程。而实现指明了模块是如何完成其接口声明的目标。
接口只需要指明被调用模块或程序使用的标识符即可,它应尽可能地隐藏一些无关的算法和细节。一个设计良好并且描述精确的接口应该尽量减少耦合。
在C语言中的数组、序列、线程、集合、位向量、字符串等都可以用接口和实现这样的组合来形成一个可重用的模块。 我们要把模块变成可重用的库函数,就是要理解接口和实现的上述规范,定义好接口的声明和标识符,以最简单的方式实现,打包成库函数,并且通过最严格的测试。 除此之外,我们还要考虑这些库函数的通用性、简单性和有效性的问题。这些问题才是比将一个模块打包成库函数更难解决的问题。 这正是: 实现软件可重用,模块打包库函数 掌握接口和实现,重用实现不会远 参考文献:《C语言接口与实现——创建可重用软件的技术》,David R. Hanson著,傅蓉等译,机械工业出版社。 |
|