Formalization in Component Based Development
We present a unifying conceptual framework for components, component interfaces, contracts and composition of components by focusing on the collection of properties or qualities that they must share. A specific property, such as signature, functionality, behavior or timing is an aspect. Each aspect may be specified in a formal language convenient for its purpose and, in principle, unrelated to languages for other aspects. Each aspect forms its own semantic domain, although a semantic domain may be parameterized by values derived from other aspects.
The notion of aspects is illustrated in terms of the currently most adapted terminology, we consider a contract as a collection of selected aspects compatible with some component. Keeping aspects separate opens up an opportunity to combine semantic models.
The proposed conceptual framework is introduced by small examples, using UML as concrete syntax for various aspects, and is illustrated by one larger case study based on an industrial prototype of a complex component based system.