Скачать 0.98 Mb.
The research work in this thesis is cross-cutting several research fields, which we introduce in this section. Here we give a more detailed presentation of the specific background and related work of the several areas in which we address problems.
Understanding existing systems or building new ones is a complex process. When dealing with this complexity people try to break large systems into manageable pieces. In order to experiment with systems people create models that can answer questions about specific system properties. As a simple example of a system we can take a fish; our mental model of a fish is our internal mind representation, experiences, and beliefs about this system. In other words, a model is an abstraction of a system which mirrors parts or all its characteristics we are interested in. Models are created for various reasons from proving that a particular system can be built to understanding complex existing systems. Modeling – the process of model creation – is often followed by simulation performed on the created models. A simulation can be regarded as an experiment applied on a model.
Meta-modeling is still a modeling activity but its aim is to create meta-models. A meta-model is one level of abstraction higher than its described models.
The usefulness of meta-models highly depends on the purpose for which they are created and what they attempt to describe. In general, a meta-model can be regarded as:
Thus, meta-models are ways to express and share some kind of knowledge that helps in the design and management of models.
When the models are programs, the programs that manipulate them are called meta-programs and the process of their creation is denoted as meta-programming. As examples of meta-programs we can include program generators, interpreters, compilers, static analyzers, and type checkers. In general meta-programs do not act on the source code directly but on a representation (model) of the source code, such as abstract syntax trees. The abstract syntax trees together with the meta-program that manipulates them can be regarded as a meta-model.
One can make a distinction between general purpose modeling and domain specific modeling, for example physical systems modeling. General purpose modeling is concerned with expressing and representing any kind of knowledge, while domain specific modeling is targeted to specific domains. Lately, approaches that use general purpose modeling languages (meta-metamodels) to define domain specific modeling languages (meta-models) together with their environments have started to emerge. The meta-metamodeling methodology is used to specify such approaches.
Combining different models that use different formalisms and different levels of abstraction to represent aspects of the same system is highly desirable. Computer aided multi-paradigm modeling is a new emerging field that is trying to define a domain independent framework along several dimensions such as multiple levels of abstraction, multi-formalism modeling, meta-modeling, etc.
Hardly anyone can speak of general purpose modeling without mentioning the Unified Modeling Language (UML) (OMG ). UML is by far the most used specification language used for modeling. UML together with the Meta-Object Facility (MOF) (OMG ) forms the bases for the Model-Driven Architecture (MDA) (OMG ) which aims at unifying the design, development, and integration of system modeling. The architecture has four layers, called M0 to M3 presented in Figure 2 -2 and below:
An instance at a certain level is always an instance of something defined at one level higher. An actual object at M0 is an instance of a class defined at M1. The classes defined in UML models at M1 are instances of the Class concept defined at M2. The UML meta-model itself is an instance of M3. Other meta-models that define other modeling languages are also instances of M3.
Figure 2 2. The Object Management Group (OMG) 4-Layered
Model Driven Architecture (MDA).
Within the MDA framework, UML Profiles are used to tailor the general UML language to specific areas (domain specific modeling).
Modeling environment configuration approaches similar to the UML Profiles, are present within the Generic Modeling Environment (GME) (Ledeczi et al. 2001 , Ledeczi et al. 2001 ) which is a configurable toolkit for creating domain-specific modeling and program synthesis environments. Here, the configuration is accomplished through meta-models specifying the modeling paradigm (modeling language) of the application domain.
Computer-aided Multi-paradigm Modeling and Simulation (CaMpaM) (Lacoste-Julien et al. 2004 , Lara et al. 2003 ) supported by tools such as the ATOM3 environment (A Tool for Multi-formalism and Meta-Modeling) (Vangheluwe and Lara 2004 ) is aiming at combining several dimensions of modeling (levels of abstractions, multi-formalisms and meta-modeling) in order to configure environments tailored for specific domains.
We have already described what meta-modeling and meta-programming are. From another point of view meta-modeling and meta-programming are orthogonal solutions to system modeling (Figure 2 -3) that can be combined to achieve model definition and transformation at several abstraction levels.
By using meta-programming it is possible to achieve transformation between models or meta-models. The meta-models one level up can be used to enforce the correctness of the transformation. Translation and transformation between models are highly desirable as new models appear and solutions to system modeling require different modeling languages and formalisms together with their environments.
Figure 2 3. Meta-Modeling and Meta-Programming dimensions.
|The Domain Analysis Integrated in an Object Oriented Development Methodology||Hypergraph-based Object-oriented Model for gis application|
|Object-Oriented Object-Oriented Languages||Applying uml and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development (3rd Edition)|
|Model Development of a Total Integrated Maintenance System||An integrated framework for model-based flow assurance in deep-water oil and gas production|
|This paper introduces the basic concepts of Agile Database Techniques, and effective ways to go about the Data-Oriented aspects of Object Oriented software||Object-Oriented Metrics: an Annotated Bibliography|
|An Introduction and Brief Examination of Object-Oriented Data Modeling||An Object-Oriented Support Tool for the Design of Casting Procedures|