This paper discusses issues of software reuse both from a general perspective and within the framework of the Ada language and environment. The presentation deals largely with identifying problems associated with reuse, and introduces a classification of software into active and passive components. Active components are complete programs, capable of running on their own, while passive components require the inclusion of other pieces to form a complete program. The authors argue that each of these component classes requires significantly different paradigms for design and use.
The presentation appears to suffer from the attempt to cover a large subject in a small space. The effect is that while the framework of the paper is logical, and the issues discussed are valid areas of concern, their treatment is rather too superficial to be of much use. The same space limitations may have caused the authors to omit explicit justification or supporting references for certain claims. For example, the authors state that significant loss of runtime performance will occur with the application of prefabricated modules. While this may often be true, no supporting evidence is given. Additionally, there is evidence that, in a practical sense, the reverse is true in complex application environments.
Finally, no mention is made of type inheritance, or subtyping, as a mechanism for reuse. While the omission may have been deliberate because of the context in which the paper appeared (an Ada conference), some mention of it might have been made in the paper’s general discussion of reusability.