Jump to content

PCS955 Model-driven Software Engineering and Reliable Software Systems

Course description for academic year 2020/2021

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, 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  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 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 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 from 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 students 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.  Each participant must give at least one seminar/presentation and an oral presentation of the larger project. The small assignments and the project work (paper and presentation) must have been approved in order to take the exam. Approved compulsory assignments and project work are valid for one semester after the examination.

Assessment

The course is graded pass/fail based on an oral exam.

Course reductions

  • DAT355 - Modelldriven programvareutvikling og pålitelege programvaresystem - Reduction: 10 studypoints