27.10.2014 Views

Implementing an OCL 2.0 Compiler for ... - ResearchGate

Implementing an OCL 2.0 Compiler for ... - ResearchGate

Implementing an OCL 2.0 Compiler for ... - ResearchGate

SHOW MORE
SHOW LESS

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.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!