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.
Module 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.
Indicative assessment
Task
% of module mark
Essay/coursework
100
Special assessment rules
None
Indicative reassessment
Task
% of module mark
Essay/coursework
100
Module 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.
Indicative reading
**** 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