Graceful Object‐Based Performance Evolution

Object‐based design and development are thought to facilitate graceful evolution of functionality, and thus enhance the reusability of software components. They can also facilitate graceful performance evolution. The performance of a layered object‐based component can be made tunable to meet changing needs by permitting clients to ‘plug in’ appropriate implementations for its constituent components through generic parameters. If the components and their constituents are carefully designed, then performance tuning is possible without direct modification to the internal details of the participating components, thus significantly lowering the cost for performance evolution. The contribution of this paper is to software practice. It explains how software engineers can build performance‐tunable components using C++ templates. It includes empirical results confirming that tuning produces expected performance improvements with minimal code change. The results are especially significant because they are scalable to arbitrarily large and heavily layered software components and subsystems. © 1997 by John Wiley & Sons, Ltd.