Jump to content

MOD350 Model-driven Software Engineering

Course description for academic year 2017/2018

Contents and structure

Model-driven software engineering (MDSE) is an emerging software engineering discipline which focuses on models as primary artefacts of the software development process while programs are mainly generated by means of automated model-to-code transformations. MDE is applicable across a wide range of domains such as cloud- and web-based services, networked embedded systems, mobile applications. This course will provide the participants with state of-the-art working knowledge on the application and theory of model-driven software development and software verification for cost-effective development of reliable software. This includes recent research results with the area.

 

The course introduces the core principles and concept underlying model-driven software engineering, including meta-modelling, domain-specific modelling languages, abstract and concrete syntax, model transformations, model constraints, model validation and automated code generation. Particular emphasis is on supporting software technologies. Automated software verification and model checking for the development of reliable systems is introduced in the context of explicit state space exploration.

Learning Outcome

On successful completion of this module, students should be able to:

  • Understand the fundamental principal of structural and behavior modelling and know how to apply models for architecture, requirements and process description.
  • Explain the principles and concepts underlying model-driven software engineering
  • Describe concept and approaches for defining the syntax and semantics of domain-specific modelling languages
  • Explain the basic concepts and techniques underlying automated software design and verification

  • Apply modelling in practice from requirements gathering to running software
  • Apply frameworks for model-driven software engineering, including the definition of meta-models for domain-specific modelling languages
  • Apply tools for model construction, simulation, and verification of medium-sized concurrent software systems
  • Use abstraction in the construction of software models and in the definition of domain-specific modelling languages

  • Assess the applicability and limitations of model-driven engineering and tools for development of software
  • Judge the practical application of modelling and software verification for software systems
  • Discuss and document the construction and validation of models and extensions of supporting software tools

Entry requirements

General admission requirements for the study programme. Background knowledge on the Unified Modelling Language (UML) is an advantage.

Teaching methods

The course consists of 6 hours of combined lectures and hands-on exercises per week. In addition, there are smaller mandatory programming assignments and a larger project. The project work will be concerned with the study and/or practical application of recent techniques for model-driven development. The project must be documented in a 15-page written report. Assignments and the project may be conducted in groups of 2-4 participants.

Compulsory learning activities

3 mandatory assignments in the form of written reports or oral presentations.

The assignments must be submitted within set deadlines and must be approved before examination can take place.

Approved assignments are valid for the examination semester and 2 following semesters.

Assessment

The course has an examination in two parts: an oral exam and a project report.

The project report counts for 40% of the final grade and the oral exam counts for 60% of the final grade.

Both parts must get a passing grade in order to get a final grade for the course. In case one of the parts gets a failing grade, that part can be taken as a re-sitting/postponed exam.
Grading scale is A-F where F is fail.

Examination support material

None

More about examination support material