Model-Integrated Computing (MIC) has been developed over a decade at ISIS, Vanderbilt University for building embedded software systems. The key element of this approach is the extension of the scope and usage of models such that they form the "backbone" of a model-integrated system development process. In Model-Integrated Computing models play the following central roles:
• Integrated, multiple-view models capture the information relevant to the system to be developed. Models can explicitly represent the designer's understanding of the entire system, including the information processing architecture, the physical architecture, and the environment it operates in.
• Integrated modeling allows the explicit representation of dependencies and constraints among the different modeling views.
• Tools analyze different, but interdependent characteristics of systems (such as performance, safety, reliability, etc.). Tool-specific model interpreters translate the information in the models to the input languages of analysis tools.
• The integrated models are used to automatically synthesize the software. The model-integrated program synthesis process utilizes model interpreters to translate the models into executable specifications.
• UML-based metaprogramming interface allows synthesis, evolution of domain-specific MIPS environments.
Using MIC technology one can capture the requirements, actual architecture, and the environment of a system in the form of high-level models. The requirement models allow the explicit representation of desired functionalities and/or non-functional properties. The architecture models represent the actual structure of the system to be built, while the environment models capture what the "outside world" of the system looks like. These models act as a repository of information that is needed for analyzing and generating the system.
Multigraph Architecture
The MultiGraph Architecture (MGA) provides a unified software architecture and framework for building domain-specific tools for: (1) building, testing, and storing domain models, (2) transforming the models into executable programs and/or extracting information for system engineering tools, and (3) integrating applications on heterogeneous parallel/distributed computing platforms. The MGA is comprised of three levels as described below.
Application Level
The Application Level represents the synthesized, adaptable software applications. The executable programs are specified in terms of the Multigraph Computational Model (MCM). The MCM is a macro-dataflow model which models the synthesized programs as an attributed, directed, bipartite graphs. The runtime support for MCM, the Multigraph Kernel, is implemented as an overlay above operating and communication systems.
Model-Integrated Program Synthesis (MIPS) Level
The Model-Integrated Program Synthesis (MIPS) Level includes generic, but customizable tools for model building, model analysis, and application synthesis. The generic components of the architecture are: (1) a customizable Graphical Model Editor (GME), (2) a database layer for storing and accessing models, (3) model analysis tools and external analysis tools, and (4) model interpreters that synthesize applications (executable models) in terms of the MCM, or translate models into input data structures of the analysis tools (analysis models).
The Meta-Level
The Meta-Level of MGA provides a metaprogramming interface for the components on the MIPS Level. The Metaprogramming Interface includes: (a) support for the formal specification of domainspecific modeling paradigms and model interpreters using formal languages, (b) metalevel translators to generate configuration files for the GME from the modeling paradigm specification, (c) metalevel program synthesis tools for generating model interpreters from their formal specification, and (d) support for the validation and verification of the metamodels. Metamodels capture the formal semantics of domain specific modeling languages and model interpreters. The formal semantics of modeling paradigms define the constraints that the domain models must satisfy with respect to the concepts, relations, model composition principles and domain-specific integrity constraints. As we can consider applications as "executable instances" of domain models, the domain models can be viewed as "instances" of metamodels.
Impact
• metaprogramming tools significantly decrease the required effort to create integrated domain specific modeling environments,
• metaprogramming tools decrease the development time of generators,
• MIPS environments enable the rapid modification/adaptation of applications by simply modifying domain specific models, and
• metaprogramming toolset supports environment evolution (i.e., changing the modeling paradigm).