Open implementation design guidelines
- 1 January 1997
- proceedings article
- Published by Association for Computing Machinery (ACM)
- p. 481-490
- https://doi.org/10.1145/253228.253431
Abstract
Designing reusable software modules can be extremely difficult. The design must be balanced between being ge n- eral enough to address the needs of a wide range of clients and being focused enough to truly satisfy the requirements of each specific client. One area where it can be partic u- larly difficult to strike this balance is in the implementation strategy of the module. The problem is that general-purpose implementation strategies, tuned for a wide range of clients, aren ' t necessarily optimal for each specific client — this is especially an issue for modules that are intended to be reusable and yet provide high- performance. An examination of existing software systems shows that an increasingly important technique for handling this pro b- lem is to design the module' s interface in such a way that the client can assist or participate in the selection of the module' s implementation strategy. We call this approach open implementation. When designing the interface to a module that allows its clients some control over its implementation strategy , it is important to retain, as much as possible, the advantages of traditional closed implementation modules. This paper explores issues in the design of interfaces to open impl e- mentation modules. We identify key design choices, and present guidelines for deciding which choices are likely to work best in particular situ ations.Keywords
This publication has 0 references indexed in Scilit: