A reusable framework for creating domain-specific design environments must support a
set of abstract modeling concepts that are generic enough to be applicable to a wide
range of domains. These concepts might include containment (composition, aggregation,
hierarchy), module interconnection, multi-aspect modeling, inheritance and
textual/numerical attributes. Selected concepts are "instantiated," i.e. customized,
for each target domain, possibly multiple times, to support domain concepts directly.
The key idea in the MIC framework is the consistent application of a meta-level
architecture. MIC follows the standard four-layer metamodeling architecture
applied in the specification of CDIF and UML depicted in Figure below.
There is one predefined language in this scheme, the metamodeling language,
that must be rich enough to describe modeling languages for a wide variety of
domains. (As a consequence, it can describe itself in the form of a meta-metamodel.)
A metamodel specifies a domain modeling language which, in turn, is used to specify
models of artifacts in the particular domain. The key in this four-layer architecture
is that a lower layer is always described in terms of the next higher layer.
To illustrate these ideas, consider the metamodel of a simplistic Finite State Machine
(FSM) language shown in the figure. The metamodeling language in MIC is the UML class
diagram notation. The State Machine UML class on the right hand side is a container
that can hold States. Transitions are associations between States. Below the metamodel
an example model in the FSM language is shown. Notice that information specifying how
concepts are to be visualized need to be part of the metamodel, but are omitted in
this example for simplicity.