The descriptions are for modules currently being taught. They should be viewed as an example of the modules we provide. All modules are subject to change for later academic years.

Model-Driven Engineering (MODE) 2015/6

Workload - Private Study - Assessment - Description - Aims - Learning Outcomes - Content - Teaching Materials - Recommended Books

Module Code COM00111M
Lecturers Dimitris Kolovos, Louis Rose, Richard Paige
Taken By ACS, LSCITS 1, LSCITS 2, LSCITS 3, LSCITS 4, MEng CS 4, MEng CSAI 4, MEng CSBES 4, MEng CSESE 4, MEng CSSE 4, MEng CSYS 4, MMath 4, SWE
Number of Credits 10
Teaching Autumn 2-5
Open Assessment Open assessment [100%]
7th Oct → 6th Jan
Feedback: 3rd Feb
Reassessment [100%] Open Assessment (SuT/Friday 6-9 for MSc; Vac 5-8 Wednesday for MEng/MMath)

Module Prerequisites

Prerequisite knowledge

MODE assumes some knowledge of object-orientation, ideally from both programming and design, and a good understanding of software engineering.


  • Lectures: 8 x 2hrs
  • Practicals: 4 x 3hrs
  • Assessment: 72 x 1hr

Note that, rather than separate out as "private study" the time that we might expect a student to spend developing the skills for the assessments, we have indicated that all non-contact time is to be spent on the assessment.

Private Study

(see Workload Notes, above)


Open Assessment

NOTE: from October 2015, there will be one Summative assessment (proposed Aut/2/Wed to Spr/1/Wed). The first assessment will be Formative, designed to help students adjust to the open assessment style and to understand how to report and justify solutions.

The open assessments test understanding and practical use of model-driven engineering tools and techniques. The summative assessment builds on the formative work and discussion of this in class.

Formative Feedback

Each practical session provides intensive support and guidance from staff experienced in model driven engineering and its tools.
The formative assessment and feedback are aimed at preparing students for a York open assessment, as well as at establishing competence in the tools and techniques taught in MODE.


The module focuses on metamodel-based language design and management. Lectures motivate this approach to software engineering and introduce the principles, model management languages and techniques. Practicals and assessment use a state-of-the-art model-management tool suite, Epsilon, running in the Eclipse development environment, to create the abstract syntax of a language, to explore metamodel constraints and validation, to generate a concrete syntax and a graphical editor, to create models consistent with the metamodel, and to explore transformation between well-defined models.


To introduce the theory, principles and practices of model-driven engineering, focusing on technical topics, including: modelling, metamodelling, model management, model transformation, model-driven traceability, workflows, model validation, and model evolution. Non-technical issues including standards (MOF, Ecore), domain-specific MDE versus general-purpose MDE and MDE processes will also be considered.

Learning Outcomes

By the end of the module, students should be able to:

  • Understand the principles and practices of modelling and metamodelling;
  • Know how to construct models and metamodels that are fit for engineering purposes;
  • Understand the differences between model-driven engineering and other approaches to systems engineering, particularly grammar-based approaches.
  • Understand the techniques and practices of model management;
  • Be able to construct and evaluate model management operations;
  • Understand the fundamental standards for Model-Driven Engineering, including Ecore, MOF, QVT, MOF Model-to-Text;
  • Be able to implement simple models, metamodels and model management operations using Eclipse-based tools;
  • Understand the principles of orchestrating model management workflows.
  • Appreciate how Model-Driven Engineering integrates with wider system engineering processes and policies.


Specific topics to be covered in the module are:

  • Modelling: what is a model, what is an acceptable model, general-purpose versus domain-specific models.
  • Metamodelling: what is a metamodel, how does it relate to models, what is an acceptable metamodel. Constructing metamodels using standards and tools.
- MOF, Ecore, Emfatic.
  • Metamodelling versus grammarware: conceptual and technical differences
  • Model management:
- Specific model management operations: model transformation, model-to-text, model comparison, model merging, model validation.
- Model evolution and migration.
- Testing model management operations.
- Traceability in model management.
  • Tools to support model management.
- Epsilon.
- Eclipse-based tooling, e.g., Exeed, ModeLink, EuGENia.
  • Model management workflows: orchestrating operations.
  • Applications and examples of Model-Driven Engineering.
  • Scalability issues in Model-Driven Engineering.
  • Advanced research topics, in particular incrementality, flexible modelling.

Teaching Materials

Lecture slides; support websites for Epsilon languages; crib sheet for tool use.

Recommended Books

Rating Author Title Publisher Year
**** Thomas Stahl et al Model-Driven Software Development Addison-Wesley 2006
**** Marco Brambilla and Jordi Cabot Model-Driven Software Engineering in Practice Morgan and Claypool 2012
Back to top

Last updated: 19th September 2016