next up previous
Next: Separation of Concerns Up: Methodology Previous: Methodology

The 3Cs Model

In the design of a single system, the tendency is to combine the "what" with the "where", tailoring a component specification for a particular set of usage needs. In Generic Engineering, we are concerned with separating from the environment that part of the specification that is independent of the environment, i.e., the "what" that is independent of the "where". It can then be used across a variety of environments. The negotiation occurs not at the time that a system is conceived, but at the time when a family of systems, or generic architecture, is conceived.

The 3Cs model derives its name from the terms used for the "what", "how", and "where" of a component:

  1. The concept - the abstract semantics of the component, roughly equivalent to its specification.
  2. The content - the implementation of the component, i.e., the "how" of the behavior described by the concept. There is typically a one-to-many relationship between the concept of a component and its content.
  3. The context - those parts of the environment needed to "complete" the definition of the concept or content within that environment. The context can be considered to be the parameterization of the component.

We refer to the domain of applicability of a concept as its conceptual environment. From the point of view of the concept, this environment is represented by the range of conceptual context that can be provided to instantiate a concept. A particular choice of conceptual context can therefore be viewed as a "narrowing" of the conceptual environment.

Once a concept has been provided with conceptual context and a conceptual environment established, any choices of content or contentual context are design decisions that must keep invariant the properties defined by this environment. The corresponding content environment is thus derived from the conceptual environment and the range of "allowable" design decisions under this conceptual environment.

It is of course possible, and in many cases desirable, to defer the specific choice of conceptual context and to provide content and corresponding contentual context for a "generic" concept. Ada generics provide limited ability to do this.



next up previous
Next: Separation of Concerns Up: Methodology Previous: Methodology



Larry Latour
Fri Feb 23 23:01:25 EST 1996