SENG405-23S2 (C) Semester Two 2023

Model-Driven Software Engineering

15 points

Start Date: Monday, 17 July 2023
End Date: Sunday, 12 November 2023
Withdrawal Dates
Last Day to withdraw from this course:
  • Without financial penalty (full fee refund): Sunday, 30 July 2023
  • Without academic penalty (including no fee refund): Sunday, 1 October 2023


The purpose of this course is to introduce students to model-driven software engineering practices where models (e.g., software component or activity diagrams, state or flow charts,...) are not used as documentation and reasoning artefacts solely, but are first class products from which other modelling, simulation artefacts or executable source code can be produced. Students will first learn about appropriate methodologies and suitable tooling support for model-driven software engineering. Then, they will develop team work skills as software language engineers where they will create their own software language and implement a dedicated development environment. Last, they will conduct a scientifically-grounded empirical evaluation of a domain specific language framework developed by their peers. The course will use a mix of theoretical lectures (e.g., language engineering, model notations, knowledge management, ontologies) and practical labs (using e.g., Arduinos, testing frameworks) to put in practice both software language engineering and model-driven engineering techniques. The assignments will be executed in pairs and presented to the whole class. The final examination will be an open book exam.

The lecture of this course provides the fundamental knowledge of model-driven methodologies to enable the students to build their own domain-specific languages, including editors and code generation capabilities. It includes, among others, standard modeling specification (Ecore, MetaObject Facility (MOF), Unified Modeling Language (UML)), the Model to Model (QVT) specification, and the Model to Text (MofM2T) specification. This knowledge is used in the lab, where an Arduino domain-specific language is built using the Eclipse Modeling Framework (EMF). The developed meta-model is used to create a graphical editor using Eclipse Sirius and a text editor using XText (for both parts, 15-minute tutorials are available (Sirius, XText)). Now it is possible to create a model of the structure and behaviour of an Arduino example setup. Based on this model, an executable application using a self-defined generator using Acceleo is generated.

Learning Outcomes

  • Knowledge about model-driven software engineering standard and specifications (MDA, MOF, Ecore, UML, Model to Model and Model to Text transformation (QVT, MofM2T, Xtext))
  • Build self-defined domain specific languages
  • Build graphical and textual domain specific editors
  • Generate text (source code) based on domain specific models
  • Transform models of a defined language into other models in another language
  • Use this knowledge in practical applications


Course Coordinator

Fabian Gilson


Ralph Maschotta


Assessment Due Date Percentage  Description
Domain Specific Language (meta-model) 10% Create a meta-model for embedded systems that can describe the embedded system's structure and behavior
Graphical and textual editor and for the Domain Specific Language 10% Create a graphical editor using Eclipse Sirius and a text editor using Xtext for the defined DSL
Model to Text Transformation (Code Generation) for the Domain Specific Language 10% Create a model-to-text transformation to enable the model-driven development of an Arduino application
Example Model and executable example Application 10% Create an example Arduino model and executable application
Documentation and Presentation of the results 20% Document all parts and present the results of the Lab
Open Book Exam 40%

Indicative Fees

Domestic fee $1,079.00

International fee $5,125.00

* All fees are inclusive of NZ GST or any equivalent overseas tax, and do not include any programme level discount or additional course-related expenses.

For further information see Computer Science and Software Engineering .

All SENG405 Occurrences

  • SENG405-23S2 (C) Semester Two 2023