Software Engineering for Smart Data Analytics & Smart Data Analytics for Software Engineering

User Tools

Site Tools

Assignment 9: Model Driven Architecture I

Due at Thursday, January 14th, 11:00 am (before the lecture starts)
You find the sample solutions in the SVN:

Project: A09T22_23_MOF_UML_Meta_Models_Solution. Also see our comments for further explanations.

Task 22: MOF-based Meta-Model

6 points

0. Check out the project A09T22_23_MOF_UML_Meta_Models from your SVN repository.

1. Create a MOF-based meta model for a simple, form-based GUI with the following elements:

A Form contains Panels, which may contain Panels (without self-references), Editable fields, Labels and Buttons. Buttons may contain links to other forms1). Edit fields can be restricted to one of the following basic types: String, Double, Integer.

Use a UML class diagram to draw the diagram.

2. Draw an example model which instantiates your meta-model. Since we have no concrete syntax for our meta-model you may use your own graphical representation or draw an object graph.

Task 23: UML Profile-based Meta-Model

6 points

Create an UML-Profile the form-based GUI. First read Creating and Applying UML Profiles with Topcased UML editors. Use /A09T22_23_MOF_UML_Meta_Models/model/form_gui.profile.umldi as a starting point for your UML profile and the class diagram /A09T22_23_MOF_UML_Meta_Models/model/form_gui_model.umldi for the model instance. Everytime you modify an save the profile you will be asked if the profile you be “re-defined”. Answer with OK if you want to use your modification in the model file. You will have to re-apply the profile in your model file each time you re-defined the profile to update your model to the latest profile version. To restrict your stereotypes use OCL or, if your are not familiar with OCL, natural language. See here on how to add (OCL) constraints to a (meta-)model element.

Task 24: Generate a report from UML model with Xpand

8 points

Your task is to generate a report from the modeling in color hotel model from task 12. The model and profile file are already included in the task's project A09T24_Xpand_Report_Generation. The report should list all classes grouped by stereo type (party, place, etc). List the rm-details as sub items of the moment-intervals and roles as sub items of their associated party.

Example Report:

Report for: hotel
==== Parties ====
 * Person
   * role: Booker
   * role: Guest

==== Moment Intervals ====
 * Reservation
   * mi-interval: ReservedRoomCategory

0. Read the updated lecture slides on Xpand and, if this is not sufficient, the XPand Reference.

1. Right-click on xpand/generator.mwe and select Run As→MWE Workflow, this will pass the model /A09T24_Xpand_Report_Generation/model/HotelDomain3.uml file to the root Template in xpand/templates/Report.xpt 2). This will create the file src-gen/hotel_report.txt.

2. Complete the Report.xpt as described above.

Some usefull methods:

  • Object.allOwnedElements() returns all owned elements, e.g. all classes and associations in a package * List.typeSelect(Type) selects all elements that are sub type of Type
  • Class.getAssociatedClasses() retrieves all associated classes (defined utils.ext)
the target form will be opened on click
if you are interested in the workflow setup look at xpand/generator.mwe and for details
teaching/lectures/atsc/2009/assignment_9.txt · Last modified: 2018/05/09 01:59 (external edit)

SEWiki, © 2023