Jump to content

PCS953 Model Driven Software Engineering

Course description for academic year 2018/2019

Contents and structure

Model-driven software engineering (MDSE) is a software engineering discipline that focuses on models as primary artefacts of the software development process wherein programs are, for the most part, generated by means of model-to-code transformations. In particular, modelling languages tailored to specific domains promise to increase the productivity and quality of software. This course concentrates on modelling, syntax and semantic 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 the Diagram Predicate Framework. Model transformation and code generation is a main topic 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 discussed. The object constraint language (OCL), 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 models.
  • 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 ways of defining constraints on software models, including OCL, graph constraints, and relational logic.
  • explain model management activities such as version control, model evolution, and model-meta-model migration.

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 research trends within MDSE.
  • identify central scientific venues and journals within MDSE.

Entry requirements

General admission criteria for the PhD programme.

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 research papers on topics in model-driven software engineering. The seminars will also be used for presentations by visiting-researchers in the field. The workshops will be used for experimentation and assessment of tools and technologies supporting MDSE.

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 participants focusing on either theoretical development, or a case study applying empirical methods to evaluate MDSE tools on a larger example of a software system. The results from the project must be presented in a seminar and documented in a research paper.

Assessment

The course is graded pass/fail based on the research paper 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 one research seminar and an oral presentation of the larger project. The smaller assignments must have been approved in order to take the exam.