next up previous
Next: 2.3 A Semantic Space Up: 2 Position Previous: 2.1 Problem Being Addressed

2.2 Significance for Component-Based Software Engineering

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 $\mathcal{M_{C}}$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 $\mathcal{M_{C}}(C_{2})$ is defined in terms of $\mathcal{M_{C}}(C_{1})$. 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].


next up previous
Next: 2.3 A Semantic Space Up: 2 Position Previous: 2.1 Problem Being Addressed

David S. Gibson and Bruce W. Weide
Sep. 12 1997