Models are the fundamental human instruments for managing complexity and understanding. As such they play a key role in any scientific and engineering discipline as well as in everyday life.
The main idea of MCA (Model Centered Architecture) is to understand software and information system development processes as mere modeling processes: we focus on models and their meta-models (MMs) in any development step up to the running system. We take models not only as representatives of underlying originals but to use them as the core of a system for both the addressed application functionality and the flexible definition of any kind of system interfaces.
By MCA we aim at contributing perspectives on the power of conceptual modeling. We do not introduce a completely new technology but a kind of add-on to the MDA/MDSD (Model Driven Architecture / Model Driven Software Development) and the models@runtime methodology.
MCA is based
on models, their related universal or domain specific meta-models, and the modeling languages defined in connection with these meta-models,
as well as on mechanisms for the transformation of models into other representations.
The following visualizes the paradigm based on the MOF hierarchy:
On the M2 (meta-model) level the concepts of the DSMLs for the application domain, the user and device interfaces, and the data exchance interfaces are defined. This is done using a meta-modeling language provided on level M3 (meta-meta-model, not shown on the picture), and by specifying the symbols for language representation. The DSMLs thus are extensions of M3 and mod- els (intensions) for M1. M2 interfaces allow for handling meta-models as MCA artifacts (meta model management, e.g. using authoring environments) and for integrating external meta-models (meta-model exchange).
On the M1 (model) level the various M2 meta-models are instantiated for a concrete application situation; the extension links are shown as dashed arrows. This leads to a (domain specific) application model, user and device interface models as well as a data exchange model. Again, for handling models as MCA artifacts, management (including modeling) and exchange interfaces are defined for this level, as they are typically provided by a meta-modeling framework.
On the M0 (instance) level, the application itself results from creating exten-sions of the M1 application model elements (visualized in the figure again by dashed arrows).
If a comprehensive DSML is defined on M2 (i.e., providing concepts for structure, dynamics and function) and used on M1, then the M0 extension form the models@runtime which are handled by an interpreter that is orchestrated by M2. The solid lines in the Figure visualize that correlation. Thus, the system components are implemented as model consumers and handlers which directly use and manipulate application domain and interface models to provide the necessary functionality (see MCA System Pattern).
MCA based approaches may work with different kinds of conceptual models as well as MMs for defining DSMLs and DSMMs. By defining them for each relevant interface and data core, it is possible to create powerful domain-specific systems.
Also, model transformation is a key mechanism for MCA based approaches, since different representations, excerpts and aggregations as well as different purposes exist for models.