GEMS EMF Intelligence Framework
From Wikipedia, the free encyclopedia
Model-driven development (MDD) and Domain-Specific Modeling (DSM) help to improve the quality of software solutions through the use of domains-specific notations and constraint checking. With both MDD and DSM, a domain model includes special domain constraints that cannot be captured using standard third-generation programming languages, such as Java or C++. The domain constraints check properties of the solution that are critical to the domain, such as end-to-end response time or check-pointing. Domain constraints are typically captured using the Object Constraint Language (OCL).
Although DSM and MDD can improve solution correctness by checking the correctness of a complete model, in many domains, it is extremely difficult for a modeler to deduce a correct solution. Building a model of how to deploy software to electronic control units (ECUs) in an automobile, for example, requires considering complex constraints that are not easily handled with manual modeling techniques. Deploying software to ECUs requires considering resource (e.g total memory consumed) and safety (e.g. ECU distance from the perimeter of the car) constraints, which are both complex global constraints.
[edit] GEMS EMF Intelligence
The GEMS EMF Intelligence helps to guide developers towards correct solutions when there are multiple complex domain constraints.
GEMS EMF Intelligence is a framework designed to help developers reason about EMF models and derive correct modeling solutions. The framework provides a knowledge base that developers can assert EMF modeling elements into. Once modeling elements are asserted into the knowledge base, they can add constraints to relationships between model elements. Finally, developers can use GEMS EMF Intelligence to derive valid endpoints (other objects in the knowledge base) for relationships (such as EReferences) of a modeling element. GEMS EMF Intelligence supports constraints written in OCL, Prolog, Groovy, and BeanShell. Multiple constraint languages can be mixed in a single knowledge base.