Implementing an OCL 2.0 Compiler for ... - ResearchGate
Implementing an OCL 2.0 Compiler for ... - ResearchGate
Implementing an OCL 2.0 Compiler for ... - ResearchGate
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
metamodel. The in<strong>for</strong>mation represented by a model has a tendency to be<br />
incomplete, in<strong>for</strong>mal, imprecise, <strong>an</strong>d sometimes even inconsistent. For example a<br />
UML diagram, such as a class diagram, is typically not refined enough to provide<br />
all the relev<strong>an</strong>t aspects of a specification. Beside other issues, there is a need to<br />
describe additional constraints about the objects in the model. Such constraints are<br />
often described in a natural l<strong>an</strong>guage. Practice has shown that this always results<br />
in ambiguities. For example a comp<strong>an</strong>y uses a customized modeling l<strong>an</strong>guage to<br />
model the hierarchies, <strong>an</strong>d relations between the employers. The comp<strong>an</strong>y w<strong>an</strong>ts<br />
to define a model that is only valid if all the employers are older th<strong>an</strong> eighteen<br />
years. In order to write unambiguous constraints, <strong>for</strong>mal l<strong>an</strong>guages have been<br />
developed. The disadv<strong>an</strong>tage of traditional <strong>for</strong>mal l<strong>an</strong>guages is that they require<br />
modelers with a strong mathematical background, but difficult <strong>for</strong> the average<br />
business or system modeler to use. Object Constraint L<strong>an</strong>guage (<strong>OCL</strong>) [1] is a<br />
<strong>for</strong>mal l<strong>an</strong>guage that remains easy to read <strong>an</strong>d write. It is a subset of the industry<br />
st<strong>an</strong>dard Unified Modeling L<strong>an</strong>guage [2] that allows software developers to write<br />
constraints <strong>an</strong>d queries over object models. A constraint is a restriction on one or<br />
more values of <strong>an</strong> object-oriented model or system. <strong>OCL</strong> <strong>2.0</strong> is perfect to extend<br />
the metamodel definitions in order to support model validation.<br />
Visual Modeling <strong>an</strong>d Tr<strong>an</strong>s<strong>for</strong>mation System (VMTS) [3] is <strong>an</strong> n-layer<br />
metamodeling environment that gr<strong>an</strong>ts full tr<strong>an</strong>sparency between the layers (each<br />
layer is h<strong>an</strong>dled with the same methods), <strong>an</strong>d offers graphical metamodel editing<br />
features. VMTS is implemented using Microsoft .NET Framework [4]. VMTS<br />
consists of several subsystems. The complete structure c<strong>an</strong> be seen in Fig. 1.<br />
Attributed Graph Architecture Supporting Interface (AGSI) is responsible <strong>for</strong> the<br />
graph database actions <strong>an</strong>d it offers a high-level interface <strong>for</strong> the other<br />
components. The Rule Editor <strong>an</strong>d the Rewriting Engine are used <strong>for</strong> graph<br />
tr<strong>an</strong>s<strong>for</strong>mations; Traversing Processors are used <strong>for</strong> traversing the models in order<br />
to generate program code or other artifacts. VMTS Presentation Framework is the<br />
graphical environment part of VMTS used <strong>for</strong> displaying <strong>an</strong>d editing the models<br />
with their proprietary presentation. The Constraint Validator Modules consists of<br />
two components: the <strong>OCL</strong> Modul, <strong>an</strong>d the Multiplicity Modul. <strong>OCL</strong> Modul<br />
contains the <strong>OCL</strong> <strong>Compiler</strong>, <strong>an</strong>d the related functions, Multiplicity Modul is used<br />
to check if the model contains only those types which are defined in its<br />
metamodel, <strong>an</strong>d validates the connections between the model elements.<br />
This paper discusses new results, experiences <strong>an</strong>d consequences evolved from the<br />
implementation of <strong>an</strong> <strong>OCL</strong> <strong>2.0</strong> compiler <strong>an</strong>d further conceptual development of<br />
constraint checking <strong>an</strong>d h<strong>an</strong>dling in a metamodel-based model tr<strong>an</strong>s<strong>for</strong>mation<br />
system. This work presents the constraint validation module of a metamodeling<br />
environment supporting creation, propagation <strong>an</strong>d validation of constraints in<br />
metamodels.