TU Wien:Model Engineering VU (Kappel)/2019-12-09 Model Engineering Exam 1 GroupA
1) OMG MDA Model[Bearbeiten | Quelltext bearbeiten]
Outline the OMG (Object Management Group) metamodeling stack including the relationships among its levels and briefly explain each level with an example (7 points)
2) Graphical Concrete Syntax Approaches[Bearbeiten | Quelltext bearbeiten]
Outline and briefly explain the 3 general approaches for defining the graphical concrete syntax of a modeling language (6 points)
3) Multiple Choice[Bearbeiten | Quelltext bearbeiten]
- A general-purpose modeling language is a language that is designed specifically for a certain domain (NO)
- A model is an instance of a metamodel (YES)
- If an Ecore metaclass A defines a containment reference to the metaclass B, it means that an instance of metaclass B is a part of at most one instance of metaclass A (YES)
- OCL invariants are OCL expressions that return a Boolean value indicating whether a model element fulfills the invariant (YES)
- Mappings in Sirius allow to specify the type and cardinality of references
- A diagram is the graphical visualization of a model
4) Metamodeling[Bearbeiten | Quelltext bearbeiten]
Below, an example of a simple library model is given. It defines a library named “TU Library” located in “Resselgasse 4, 1040 Wien”. This library offers two sections: “DAT” and “MAT”. In the section “DAT”, two monographies with the titles “Eclipse Modeling Framework” and “Mathematical modelling techniques” authored by “Budinsky” and “Aris” are offered, as well as one edited book titled “Web engineering” edited by “Kappel”. Note that monographies have an author, while edited books haveaneditor. To the section “MAT”, two monographies are assigned. Note that a book (both monographies and edited books) can be assigned to more than one section (in the example below, the book “Mathematical modelling techniques”is assigned to both sections “DAT” and “MAT”). Define a metamodel, which allows to define simple library models similar to the given example. Use the full power of the metamodeling language Ecore,i.e., attributes, datatypes, multiplicities, different kinds of references, generalizations, etc.
Define the metamodel in class diagram notation!