Modelling of Software-Intensive Systems 

Lecturer: Prof. Dr. Hans Vangheluwe

Lab Assistants: Yentl Van Tendeloo (main contact), Cláudio Gomes, István Dávid

  Course Description and Learning Outcomes

This is a mandatory course taught in the first year, first semester of the Master in Computer Science (all streams) at the University of Antwerp.

The UA course description can be found here.

The course is taught in English.

This course will introduce you to the different kinds of complexity we have to deal with when designing large software-intensive systems. This complexity will be tackled using different modelling formalisms, each appropriate for specific problems/aspects: various UML diagrams, Causal Block Diagrams, Petri Nets, Statecharts, Event Scheduling/Activity Scanning/Process Interaction Discrete-Event, DEVS, Forrester System Dynamics. Control Theory will also be briefly introduced with focus on the development of an optimal (software) controller.

The goal of the course is to gain understanding of the similarities and differences between different formalisms. Modelling formalisms vary in the level of detail in which they consider time (e.g., partial order, discrete-time, continuous-time), whether they allow modelling of sequential or concurrent behaviour, whether they are deterministic (mostly suited for system/software synthesis) or non-deterministic (mostly suited for modelling system environment effects, with subsequent safety analysis), whether they support a notion of spatial distribution, ...

At the end of the course, you should be able to choose between (and explain why) and use appropriate formalisms for modelling, analysis, simulation and synthesis of diverse (software-intensive) applications.

The above forms a starting point for more advanced topics. In particular, the combination of different formalisms and the development of Domain-Specific Modelling Languages. The latter is one of the topics of the course Model Driven Engineering.

  Assessment Methods and Criteria

The course grades are distributed as follows:

  • 25% on the theory exam;
  • 75% on the assignments.
To pass the course, you need to attend/submit and orally defend every part (theory exam and each and every assignment) of the course. If not, your grade will be "AFW" - absent. If you do attend/submit every part, you still need an overall score of 50% to pass the course. Additionally, if for at least one part (theory exam, or any assignment) your score is strictly below 40%, your overall grade will be min(7, your_score). your_score is the score you would get when applying the weights given above.

The (written) theory exam takes place during the exam period (see SiSa). Use of your notes or other materials such as laptops is not allowed (aka "closed book" exam).

Here is a tentative list of Exam Topics/Questions

For the (September) supplemental exam period, partial exemptions for specific parts of the course may be given. This is discussed individually. You should request exemptions yourself by e-mail to the course lecturer.


Object-Oriented programming. The course assumes that you master Object-Oriented concepts and are able to understand and produce Object-Oriented code.
The first couple of assignments make extensive use of the object-oriented programming language Python. We advise you to prepare for this course by learning the language, if you don't already know it.

A useful tutorial can be found at:

Basics of Object-Oriented design (notions of design patterns) and basics of the Unified Modelling Language (UML).

As a refresher, a short introduction will be given on OO Design and UML during one of the first lectures. The first assignment will test your knowledge on this topic and will demonstrate the relationship between the different languages in the UML family of languages.

Schedule (gets updated as the semester progresses)






1Wednesday 28 September 10:45 -- 12:45 Theory M.G.015 Course introduction: goals, structure, evaluation, planning, Python!
Causes of complexity, Software Intensive Systems
1Thursday 29 September 10:45 -- 12:45 Academic opening and Studay - no class
2Wednesday 5 October 10:45 -- 12:45 Theory M.G.015UML notations: Class Diagrams, Sequence Diagrams, Regular Expressions, FSA
2 Assignment M.G.015UML notations -- assignment #1
2Thursday 6 October 10:45 -- 12:45 Theory M.G.004The structure of modelling languages
Algebraic Causal Block Diagrams (denotational)
3Sunday 11 October Deadline Assignment 1: Requirements Checking
3Wednesday 12 October 10:45 -- 12:45 Theory M.G.015Algebraic Causal Block Diagrams (operational), loop detection and solving
3Thursday 13 October 10:45 -- 12:45 Theory M.G.004Discrete-Time Causal Block Diagrams
3 Assignment M.G.004Alg+DT CBD -- assignment #2
4Wednesday 19 October 10:45 -- 12:45 Theory M.G.015Continuous-Time Causal Block Diagrams
4Thursday 20 October 10:45 -- 12:45 Assignment M.G.004PID controllers; CT CBD -- assignment #3
5Sunday 25 October Deadline Assignment 2: Algebraic and Discrete-Time CBDs
5Wednesday 26 October 10:45 -- 12:45 Theory M.G.015Finite State Automata; Petri Nets
5Thursday 27 October 10:45 -- 12:45 Theory M.G.004Petri nets, the tool pipe2
5 Assignment M.G.004Petri nets -- assignment #4
6Tuesday 1 November All Saints day
6Wednesday 2 November 10:45 -- 12:45 All Souls day - no class
6Thursday 3 November 10:45 -- 12:45 Theory M.G.004Petri nets: fairness/time
7Monday 7 November 16:00 -- 17:00Oral Evaluation M.G.028Assignment 1: Requirements Checking
7Tuesday 8 November 14:00 -- 15:30Oral Evaluation M.G.028Assignment 1: Requirements Checking
7Tuesday 8 November Deadline Assignment 3: Continuous-Time CBD
7Wednesday 9 November 10:45 -- 12:45 Theory M.G.015Petri nets: analysis; Higraphs
7Thursday 10 November 10:45 -- 11:45 Theory M.G.004Statecharts
7Friday 11 November Armistice
8Monday 14 November 14:00--18:00 Oral EvaluationM.G.028Assignments 2 and 3: Algebraic, Discrete-Time and Continuous-Time CBDs
8Tuesday 15 November 14:00--18:00 Oral EvaluationM.G.028Assignments 2 and 3: Algebraic, Discrete-Time and Continuous-Time CBDs
8Wednesday 16 November 11:15 -- 13:15 Theory M.G.015Statecharts
8 Assignment M.G.025Statecharts hands-on -- assignment #5
8Wednesday 16 November 14:00--18:00 Oral EvaluationM.G.028Assignments 2 and 3: Algebraic, Discrete-Time and Continuous-Time CBDs
8Thursday 17 November 10:45 -- 12:45 Theory M.G.004Discrete-Event World Views: Event Scheduling, Activity Scanning, Process Interaction
9Tuesday 22 November Deadline Assignment 4: Petri Nets
9Wednesday 23 November 10:45 -- 12:45 Theory M.G.015Gathering statistics
9Thursday 24 November 10:45 -- 12:45 Theory M.G.004Atomic DEVS
10Wednesday 30 November 10:45 -- 12:45 Theory M.G.015Coupled DEVS (flattening)
10Thursday 1 December 10:45 -- 12:45 Assignment M.G.025Python(P)DEVS; DEVS -- assignment #6
11Monday 5 December 16:00 -- 17:00Oral Evaluation M.G.028Assignment 4: Petri nets
10Tuesdag 6 December Deadline Assignment 5: Statecharts
11Tuesday 6 December 14:00 -- 16:30Oral Evaluation M.G.028Assignment 4: Petri nets
11Wednesday 7 December 14:00 -- 15:00Oral Evaluation M.G.028Assignment 4: Petri nets
11Wednesday 7 December 10:45 -- 12:45 Theory M.G.015Real-Time Simulation/Execution; Systems Theory
11Thursday 8 December 10:45 -- 12:45 Theory M.G.004Population Dynamics and Forrester System Dynamics
12Wednesday 14 December 10:45 -- 12:45 Theory M.G.015Advanced Formalisms: spatial distribution (cellular automata), individual-based (AnyLogic), hybrid (Ptolemy II), a-causal (Modelica), ...
Course overview: how it all fits together (and beyond: MDE, MPM, ...)
Exam Topics/Example Questions
12Thursday 15 December 10:45 -- 12:45 M.G.004No class (replaced by MDE class)
12Friday 16 December 09:00 -- 12:45 Oral EvaluationM.G.330Assignments 5: Statecharts
12Friday 16 December 13:45 -- 15:45 Theory G.T.135Guest Lecture on Modelling Complex Engineered Systems in Industry with Matlab/Simulink by Dr. Pieter Mosterman of The Mathworks, Natick, MA
13Tuesday 20 December Deadline Assignment 6: DEVS
13Wednesday 21 December 10:45 -- 12:45 M.G.015No class
13Thursday 22 December 10:45 -- 12:45 M.G.004No class
13Friday 23 December 09:00 -- 16:00 Oral Evaluation M.G.330Assignments 6: DEVS
Monday 23 January 09:00 -- 12:00Theory ExamM.G.010Selected Topics


The theory exam will cover the highlighted papers/presentations below.

Blackboard scribbles [pdf].

presentation [pdf]

Modelling and Simulation to Tackle Complexity
presentation [pdf] exploring the causes of complexity.

Formalisms: Causal Block Diagrams (CBDs)
Analog computers and CSMP [pdf]
CSMP: Robert D. Brennan: Digital simulation for control system design. DAC. New Orleans, Louisiana, USA, May 16-19, 1966. [pdf]
(old) Blackboard Scribbles.
Topological Sorting and Strong Component algorithms.
Lecture on Algebraic and Discrete-Time CBDs [video].
Lecture on Continuous-Time CBDs [video].
Note: the above are not recordings of this year's class, but rather of an older version of the course, with the same content however.
Lecture on (PID) controllers [pdf]

Formalisms: Petri Nets
Christos G. Cassandras. Discrete Event Systems. Irwin, 1993. Chapters 4, 5. [pdf (MoSIS access only)].
Carl Adam Petri. Kommunikation mit Automaten. 1962. (this is Petri's doctoral dissertation).
Tadao Murata. Petri nets: Properties, analysis and applications. Proceedings of the IEEE, 77(4):541-580, April 1989.
James L. Peterson. Petri Net Theory and the Modeling of Systems. Prentice Hall, 1981.

Formalisms: Statecharts
Higraphs presentation[pdf]. Statecharts presentation[pdf].
David Harel. Statecharts: A Visual Formalism for Complex Systems. Science of Computer Programming. Volume 8. 1987. pp. 231 - 274. [pdf].
David Harel. On Visual Formalisms. Communications of the ACM. Volume 31, No. 5. 1988. pp. 514 - 530. [pdf] [pdf (MoSIS access only)].
David Harel and Amnon Naamad, The STATEMATE semantics of statecharts. ACM Transactions on Software Engineering and Methodology (TOSEM) Volume 5 , Issue 4 (October 1996) pp.293 - 333. [pdf] [pdf (MoSIS access only)].
D. Harel and M. Politi. Modeling Reactive Systems with Statecharts: The STATEMATE Approach. McGraw-Hill, 1998. (available online).
David Harel and Hillel Kugler. The Rhapsody Semantics of Statecharts (or, On the Executable Core of the UML). Springer, Lecture Notes in Computer Science 3147. 2004. pp. 325 - 354. [pdf]
Michael von der Beeck. A structured operational semantics for UML-statecharts. Software and Systems Modeling. Volume 1, No. 2 pp.130 - 141. December 2002. [pdf].
The digital watch assignment (not an assignment this year).

Formalisms: Discrete-Event World Views; Pseudo-Random Number Generators; Gathering Statistics

Formalisms: Discrete-EVent System Specification (DEVS)

(scaled) Real Time Simulation/Execution
presentation [pdf]

Modelling and Simulation Foundations: Systems Specification
presentation [pdf]
notes [pdf]

Formalisms: (Forrester) System Dynamics

Formalisms: Hybrid DAE (Modelica)

Modelling Complex Engineered Systems in Industry with Matlab/Simulink (by Dr. Pieter Mosterman of The Mathworks, Natick, MA)


The weight of each assignment is given between [square brackets] as a percentage of the total grade. The combined assignments count for 75% of the course grade.

  1. [10%] Checking requirements using Sequence Diagrams and Trace Matches of a railway controller.
  2. [10%] Causal Block Diagrams (un-timed, discrete-time).
  3. [15%] Causal Block Diagrams (continuous-time).
  4. [10%] Petri net modelling and analysis of a railway junction controller.
  5. [15%] Statecharts modelling, simulation, synthesis, and testing of a train interface.
  6. [15%] DEVS modelling and simulation for performance analysis of a railway network.

These assignments will be completed in groups of two students (optionally alone).

Note that as of the 2017-2018 Academic Year, each International student should team up with "local" (i.e., whose Bachelor degree was obtained at the University of Antwerp).

Your solutions should be submitted on Blackboard. During the evaluation moments (see schedule), you will clarify your solution individually.

Oral Evaluation Assignment 5: Statecharts

Date: 16 December 2016

Place: M.G.330 (Yentl Van Tendeloo's office, 3rd floor)

Lucas Heer9:10
Matteo Guastella9:20
Olivier Bellemans9:30
Olivier Jeunen9:40
Phui San Cheong10:00
Wannes Ghielens10:10
Bruno De Deken10:20
Andres Carrasco10:30
Arkadiusz Rys10:40
Corrado Ballabio11:00
Dominique Heer11:10
Enes Kilicaslan11:20
Jonas Vanden Branden11:30
Jony Van Puymbroeck11:40
Josse Coen12:00
Keerthana Sanala Prakash12:10

Oral Evaluation Assignment 6: DEVS

Date: 22 December 2016

Place: M.G.330 (Yentl Van Tendeloo's office, 3rd floor)

Matteo Guastella10:50
Wannes Ghielens11:00
Andres Carrasco11:10
Corrado Ballabio11:20
Ksawery Jasienski11:30

Date: 23 December 2016

Place: M.G.330 (Yentl Van Tendeloo's office, 3rd floor)

Theodorakos Konstantinos9:20
Olivier Bellemans9:40
Olivier Jeunen10:00
Phui San Cheong10:10
Bruno De Deken10:20
Arkadiusz Rys10:30
Enes Kilicaslan10:40
Jonas Vanden Branden11:00
Jony Van Puymbroeck11:10
Josse Coen11:20
Keerthana Sanala Prakash11:30
Maintained by Hans Vangheluwe. Last Modified: 2017/09/27 09:05:30.