MDSD :: Model-Driven Software Development

Study period 2, 2015/16
Course codes: DIT945/GU and TDA593/Chalmers, 7.5 hp

Given by Computer Science and Engineering at
Chalmers Technical University and Gothenburg University

The syllabus can be found at the Chalmers Student Portal.

In this course, the students will study how to design and develop a software system using software modeling techniques. The students will hereby create different models describing both the static structure and the dynamic behavior of the system. The students will first do a system analysis using software models such as domain models. Based on this step, they will model the software design and finally use these models to implement the system. The focus will be on the analysis and the design phases.

Course Objectives

After attending this course, a student should be able to

1. Knowledge and Understanding

  1. describe how models can be used for design and analysis of a software system
  2. describe how models can be used for specifying the behavior of a software system
  3. summarize how models can be used for documenting software systems
  4. illustrate how models can fit into a software process consisting of analysis, design and implementation
2. Skills and Abilities
  1. create software analysis models
  2. create software design models
  3. explain the functionality of a system with the help of analysis and design models
  4. write reports with the help of software models
  5. translate software models into executable code
3. Judgment and approach
  1. judge how well software models relate to their real-life counterparts
  2. identify which software models are appropriate for modeling a system
  3. critically assess the quality of software models


Throughout the course, the students will work on a group project. There will be weekly compulsory meetings, which all group members have to attend. The outcome of the group project is a written report and an executable system. Both the report and the executable system will be evaluated. Within the group project, each student will be responsible for a certain part of the overall project. The students will report individually on their responsibilities in a final report, independent of the overall project report. In the group project, there will be an oral examination in which the groups' project work is assessed. Additionally to the project, there will be individual assessments in order to test the students' knowledge of the topics covered in the lectures. In order to pass the course, the students have to pass both the individual part and the group project.

Course Elements

Lectures: There are two lectures a week, see Lectures. The purpose of the lectures is not to cover all the material, but rather to highlight important issues concerning modelling of software, which you will need for solving the project.

Group work: In order to obtain a deeper understanding of how to build software, the students will work in groups on a project, see project information. There will be problems to solve every week. The end result will be a report of the project together with a presentation and examination. To be able to do the project the group members are required to read about the topics related to the project in more detail.

Obligatory meetings: There will be a 35-minute obligatory meeting every week. Time and place for these meetings are decided during the first lecture.

Individual Assignments: In order to be able to assess students individually, there will be individual assignments throughout the course and the group project. Details regarding this will be discussed in the first lecture.

Final examination: The course ends with a final examination during the examination week. This examination will together with the other evidence of your input to the project and your understanding of the course material give the final grade. See Examination for more details on the course's grading system.

Course languages

During the first part of the course, we will use informal modelling languages. Later on, we will most likely use the Unified Modeling Language (UML) for modelling. However, no previous knowledge about UML is required for attending the course. For the last part of the course, students will implement the system in Java. For this, we assume a good understanding of Java.

The course will be taught in English. In those cases where both the students and the supervisor speaks Swedish the group meetings can be held in Swedish.