The Library Scaling Problem and the Limits of Concrete Component Reuse

  • Ted J. Biggerstaff

MSR-TR-94-19 |

Publication

The growth of component libraries puts them on a collision course with a key reuse problem – the difficulty in scaling reuse libraries in both component sizes and feature variations. Because of the concreteness of conventional, mainstream programming languages, one is torn between combinatorial growth of reuse libraries containing components with good run-time performance, or linear growth with poor performance. The paper identifies the extensions necessary to solve the scaling problem, notably 1) factored component libraries based on a “layers of abstraction” notion, 2) a composition operator and compile-time generator to manufacture combinatorially many custom components from compositions of factors, and 3) extra-linguistic attributes associated with individual programming constructs to make inter-factor dependencies explicit and machine processable. This paper analyzes and compares existing reuse systems that contain instances of these extensions and indicates the directions for factored component libraries.