Next: 2.3 A Semantic Space
Up: 2 Position
Previous: 2.1 Problem Being Addressed
Answers to these questions are important for component-based system engineering because they are a necessary link in defining precisely certain relations involving operational program components, specifications, and templates. These relations are central to understanding component-based systems and to performing component-level maintenance activities [EGWZ97,Gib97] because they allow a software engineer to reason about the behavioral effects of substituting one operational program component for another. Here is a quick intuitive overview of some of the most important relations, with C/Ci, S/Si, and T/Ti taken to be operational program components, specifications, and templates, respectively:
The first relation, uses , is the usual connection between software components. This connection allows to be ``constructed'' bottom-up [Edw95]. That is, suppose C2 mentions C1 in its context (i.e., brings it into scope, in the programming language sense). If C2 invokes some operation of C1, then is defined in terms of . The meaning of the uses relation as defined above can be formalized independently of the meanings of specifications and templates. But the meanings of the other relations above cannot be so formalized; yet these other relations lie at the heart of component-based system design and maintenance [Gib97].
David S. Gibson and Bruce W. Weide