|Abstract:||Model-Driven Development is a field in Software Engineering that, for several years, has represented software artifacts as models in order to improve productivity, quality, and cost effectiveness. Models provide a more abstract description of a software artifact than the final code of the application. In this field, Model-Driven Architecture (MDA) is an initiative, sponsored by the OMG, that is constituted by a family of industry standards including: Meta-Object Facility (MOF), Unified Modeling Language (UML), Object Constraint Language (OCL), XML Metadata Interchange (XMI), and Query/Views/Transformations (QVT). These standards provide common guidelines for model-based tools and processes in order to improve interoperability among executable frameworks, automation in the software development process, and analysis techniques to avoid errors during this process.
The MOF standard describes a generic framework where the abstract syntax of modeling languages can be defined. This standard aims at offering a good basis for Model-Driven Development processes, providing some of the building blocks that are needed to support a Model-Driven Development approach: what is a model, what is a metamodel, what is reflection in a MOF framework, etc. However, most of these concepts lack at present a formal semantics in the current MOF standard. Furthermore, OCL is a constraint definition language that permits adding semantics to a MOF metamodel. Unfortunately, the relation between a metamodel and its OCL constraints also lacks a formal semantics. This is, in part, due to the fact that metamodels can only be defined as data in the MOF framework.
The MOF standard also provides the so-called MOF-Reflection facilities, by means of a generic API, to manipulate software artifacts that are made up out of objects. Broadly speaking, reflection is the capacity to represent entities that have a formal semantics at a base level, such as types, as data at a metalevel. Metalevel entities, once metarepresented, can be computationally manipulated and transformed. This notion of reflection is still not supported in the MOF standard.
In this dissertation, we define a reflective, algebraic, executable framework for precise metamodeling that provides support for the MOF and the OCL standards. On the one hand, our formal framework provides a formal semantics for the building blocks that are usually involved in a Model-Driven Development process. On the other hand, our framework provides an executable environment that is plugged into the Eclipse Modeling Framework (EMF) and that constitutes the kernel of a model management framework, supporting model transformations and formal verification techniques.