Abstract :
Summary form only given, as follows. Reusing software improves quality as well as productivity. In practice, it is hard to achieve significant levels of reuse in commercial applications beyond generic support software. This tutorial will present programming and design techniques for achieving more reuse. The first session will examine the obstacles to reuse in commercial data processing, and illustrate the potential benefits. The main session will: 1) consider design reuse, source code reuse and routine libraries; 2) review the principles of modular design, cohesion, coupling and information hiding; 3) show how inheritance and dynamic binding extend and enhance these established techniques. The final session addresses organisational aspects of reuse, an alternative project lifecycle, metrics and developer motivation. The tutorial is intended for developers and their managers regardless of language, method or platform.