Jump to content

DAT353 Model Driven Software Engineering

Course description for academic year 2019/2020

Contents and structure

Model-driven software engineering (MDSE) is a software engineering discipline which focuses on models as primary artefacts of the software development process wherein programs are, where development of programming artefacts is represented by model-to-model transformations and code-generation. In particular, modelling languages tailored to specific domains promise to increase the productivity and quality of software. This course concentrates on modelling, syntax and semantics of (domain specific) modelling languages, model transformations, and tools and technologies for MDSE.  

The course covers paradigms and example languages central to MDSE including UML, Ecore, Graph transformations, QVT, ATL and Diagram Predicate Framework. Domain-specific language engineering, model transformation and code generation are the main topics of the course; different control and execution mechanisms for model transformations are covered, as well as positive and negative application conditions, bi-directionality, sequential and parallel rule execution. Specific MDSE related topics like model version control, meta-model/model co-evolution, multilevel and deep meta-modelling are introduced. Object constraint language, first order logic and graph constraints/predicates are introduced for specification of correctness properties.  

Learning Outcome

Upon completion of the course the candidate should be able to: 

Knowledge 

  • explain different ways of defining syntax and semantics of (domain specific) modelling languages. 
  • explain the principles behind state-of-the-art tools and frameworks used for (meta)modelling, language definition and model transformation. 
  • explain different kinds of models, such as structural and behavioural. 
  • define and explain graph based and rule based model transformation systems. 
  • explain abstract and concrete syntaxes for modelling languages and distinguish between graph based and text based semantics of models. 
  • define and explain different ways of defining constraints on software models, such as OCL, Graph Constraints, Relational Logic, etc. 
  • explain model management activities such as version control, model evolution, model-metamodel migration, etc.  

Skills 

  • determine proper abstraction levels for domain specific modelling languages. 
  • formulate correctness and quality criteria for software models and model transformations.  
  • apply computer tools for model driven development of software. 
  • apply tools for verification of models against constraints and properties. 
  • plan and conduct experimental evaluation of tools and techniques for MDSE 
  • apply MDSE in all phases of software development from requirements capturing to deployment and maintenance. 

General competence 

  • assess the applicability and limitations of MDSE for development of software. 
  • discuss and relate recent developments and technology trends within MDSE. 
  • identify application domains where MDSE is suitable and which criteria are important for its success. 

Entry requirements

General admission criteria for Masters degree in software engineering.

Teaching methods

The course consists of a combination of lectures, seminars and workshops. The lectures will be used for covering the core material of the course. Seminars permit participants to present and discuss recent technology developments in model-driven software engineering. The seminars will also be used for presentations by visiting-researchers from the field. The workshops will be used for experimentation and assessment of tools and technologies supporting MDSE; especially, within the domains of eHealth, robotics and IoT.

Compulsory learning activities

The course includes a number of small assignments concentrating on the application of MDSE for the development of small and medium sized software systems. A larger project will be conducted by the students focusing on a case study applying MDSE tools and technologies on a larger example of a software system. The results from the project must be presented in a seminar and documented in a project report.  

Assessment

The course is graded pass/fail based on the project report and an oral exam. Each of the two components must result in a pass grade in order to obtain a pass grade for the entire course. Each participant must give at least one seminar/presentation and an oral presentation of the larger project. The small assignments must have been approved in order to take the exam.