Difference between revisions of "TU Wien:Model Engineering VU (Kappel)/Test 1 - 2020-11-16"

From VoWi
Jump to navigation Jump to search
(Test 16.11.2020)
 
(extend content)
Line 32: Line 32:
* The validity of a model can only be determined in combination with a metamodel.
* The validity of a model can only be determined in combination with a metamodel.
* Theoretically, the concept of meta-hierarchies is not limited to four layers.  
* Theoretically, the concept of meta-hierarchies is not limited to four layers.  
Define a metmodel with the adapted OCL syntax for the following description:
A company has multiple containers and one or more vehicles. A Container always has a capacity. A vehicle can either be a truck or a van, but each vehicle has an id, which is the same as the number plate of the vehicle. A truck can transport a container of the company but it can also drive alone. A van can either be rented, leased or bought. Use the adapted OCL syntax to describe your metamodel.
Example (model in graphical syntax was also given):
class A {
  property elements: B[*] {containment};
  property main: C[0|1];
}
abstract class B {
  attribute name: EString[1];
}
class C extends B;
class D extends B {
  attribute type: E[1];
}
enum E {X, Y}
Simplified Truck-Metamodel from above was given. What name should the method have such that the scoping for the transported containers of a truck only shows containers of the same company?
Java code snippet within a DeclarativeScopeProvider:
public IScope ???(Truck truck, EReference eReference) {
  Company company = (Company) truck.eContainer();
  return Scopes.scopeFor(company.containers());
}
* scope_Truck_Container_transports
* scope_Container_Truck
* scope_Truck_Container
* scope_Truck_transports
* scope_transports_Truck
* scope_Truck_transports_Container


== OCL ==
== OCL ==
Line 42: Line 73:
* OCL constraints are defined on metamodel level and evaluated on model level
* OCL constraints are defined on metamodel level and evaluated on model level
* OCL is ofted used as a query language
* OCL is ofted used as a query language
Model and OCL constraint was given. What is the result?




Line 109: Line 142:
* References can be represented as edges as well as labels.
* References can be represented as edges as well as labels.
* The sirius runtime automatically and dynamically interprets the model and adjusts the graphical representation.
* The sirius runtime automatically and dynamically interprets the model and adjusts the graphical representation.
Consider a metamodel. Extend the already defined Sirius specification to achieve a person representation like in the person diagram below (child-parent different collors and borders)

Revision as of 18:32, 23 January 2021

Metamodeling

Select the correct statements:

  • During the modeling phase the technologies used for the implementation are defined.
  • PIM models can specify functionalities defined in PSM models in more detail.
  • A business process is an example for a computation independent model.
  • UML is an example for a General Purpose (Modeling) Language.
  • In Model-Driven Software Engineering models are just pictures.
  • Changes in technology stacks do not always require changes in the domain models.
  • In Model-Driven Engineering models are primarily used for communication of ideas and alternatives.
  • A model is based on an original (= System), but it only reflects a selection of the original's properties.

To which of the 4 Metamodeling Layers does EBNF belong to?

  • M0 (Model instance)
  • M1 (Model)
  • M2 (Metamodel)
  • M3 (Meta-Metamodel)

To which of the 4 Metamodeling Layers does a SQL Statement belong to?

  • M0 (Model instance)
  • M1 (Model)
  • M2 (Metamodel)
  • M3 (Meta-Metamodel)

Which of the following statements about metamodeling in EMF are true?

  • Metamodels are models conforming to higher level metamodels. Those higher level descriptions are called meta-metamodels.
  • If an Ecore metaclass A defines a containment reference to the metaclass B, it means that an instance of metaclass A is a part of at least one instance of metaclass B.
  • Classes and relations are not a part of Ecore metamodels
  • Upon changes in the metamodel, already existing models might become invalid.
  • Meta-metamodels are mostly self-descriptive which means they conform to themselves.
  • A model by definition conforms to multiple metamodels.
  • The validity of a model can only be determined in combination with a metamodel.
  • Theoretically, the concept of meta-hierarchies is not limited to four layers.

Define a metmodel with the adapted OCL syntax for the following description: A company has multiple containers and one or more vehicles. A Container always has a capacity. A vehicle can either be a truck or a van, but each vehicle has an id, which is the same as the number plate of the vehicle. A truck can transport a container of the company but it can also drive alone. A van can either be rented, leased or bought. Use the adapted OCL syntax to describe your metamodel. Example (model in graphical syntax was also given):

class A {
 property elements: B[*] {containment};
 property main: C[0|1];
}
abstract class B {
 attribute name: EString[1];
}
class C extends B;
class D extends B {
  attribute type: E[1];
}
enum E {X, Y}

Simplified Truck-Metamodel from above was given. What name should the method have such that the scoping for the transported containers of a truck only shows containers of the same company? Java code snippet within a DeclarativeScopeProvider:

public IScope ???(Truck truck, EReference eReference) {
  Company company = (Company) truck.eContainer();
  return Scopes.scopeFor(company.containers());
}
  • scope_Truck_Container_transports
  • scope_Container_Truck
  • scope_Truck_Container
  • scope_Truck_transports
  • scope_transports_Truck
  • scope_Truck_transports_Container

OCL

Select the correct statements about OCL

  • OCL is often used to define invariants on metamodel level
  • OCL invariants are expressions that can return boolean values as integer values
  • OCL is often used to set attribute values in models
  • OCL is often used to define invariants on meta-metamodel level
  • OCL constraints are defined on metamodel level and evaluated on model level
  • OCL is ofted used as a query language

Model and OCL constraint was given. What is the result?


Textual ML

Which of the following statements about Xtext are correct?

  • In a grammar-first approach, the metamodel can be generated from the grammar definition.
  • With Xtext semantics can be added to domain-specific languages.
  • The Java syntax could theoretically be defined with an Xtext grammar.
  • The Xtext grammar uses EBNF.
  • Scoping has to be implemented for every cross-reference in a Xtext grammar.
  • Scoping enables the definition of the attribute visibility in a Xtext grammar.

Consider the following Xtext grammar:

Company returns Company:
 'company' name=EString '{'
 (containers+=Container)*
 (trucks+=Truck=+
 '}'
;
Container returns Container:
 'container' name=EString
;
Truck returns Truck:
 (ParkedTruck|TransportingTruck)
;
ParkedTruck returns Truck:
 'parked' 'truck' name=EString
;
TransportingTruck returns Truck:
'truck' 'transports' transports=[Container]

Select the models conforming to this grammar:

company Comp1 {
 container C1 
 container C2 
 truck T2 transports C2
 truck T3
}
company Comp1 {
 container C1 
 truck T1 transports C1
 parked truck T2
}
company Comp1 {
 parked truck T1
}
company Comp1 {
 container C1
 truck T1 transports C2
 parked truck T2
}

Graphical ML

Select the correct statements about Sirius and Graphical Concrete Syntaxes:

  • The Sirius Creation Tools enable the creation of mappings between abstract syntax and their graphical representation.
  • Every class of a metamodel has to be covered by ate least one Sirius representation viewpoint.
  • If multiple conditional styles match to an element, all styles will be applied.
  • A viewpoint can only contain a single representation description
  • Sirius provides a default representation for undefined class mappings.
  • In an annotation based approach the metamodels are annotated within the Ecore file.
  • One abstract syntax of modeling language can be realized by multiple concrete syntaxes.
  • References can be represented as edges as well as labels.
  • The sirius runtime automatically and dynamically interprets the model and adjusts the graphical representation.

Consider a metamodel. Extend the already defined Sirius specification to achieve a person representation like in the person diagram below (child-parent different collors and borders)