Modelling of Software-Intensive Systems 

  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/majors) 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 (aka Synchronous Data Flow), 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 (embedded, 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.


  Prerequisites

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: http://docs.python.org/tutorial/


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

Week

Date

Type

Room

Subject

1Friday 27 September 10:45 -- 12:45 Theory M.G.015 Course introduction: goals, structure, evaluation, planning, Python!
Causes of complexity, Software Intensive Systems
1Friday 24 September 16:00 -- 18:00 Theory M.G.016 Causes of complexity, Software Intensive Systems
2Friday 4 October 10:45 -- 12:45 Theory M.G.015 UML notations: Class Diagrams, Sequence Diagrams, Regular Expressions, FSA
2Friday 4 October 16:00 -- 18:00 Assignment M.G.016 UML notations -- assignment #1
3Friday 11 October 10:45 -- 12:45 Theory M.G.015The structure of modelling languages
Algebraic Causal Block Diagrams (denotational)
3Friday 11 October 16:00 -- 18:00 Theory M.G.016Algebraic Causal Block Diagrams (operational)
4Thursday 17 October Deadline Assignment 1: Requirements Checking
4Friday 18 October 10:45 -- 12:45 Theory M.G.015Algebraic Causal Block Diagrams (operational) loop detection and solving
Discrete-Time Causal Block Diagrams
4 Assignment M.G.015Alg + DT CBD -- assignment #2
4Friday 18 October 16:00 -- 18:00 Theory M.G.016Continuous-Time Causal Block Diagrams
5Friday 25 October 10:45 -- 12:45 Theory M.G.015PID controllers
5Friday 25 October 10:45 -- 12:45 Assignment M.G.015PID controllers; CT CBD -- assignment #3
5Friday 25 October 10:45 -- 12:45 Theory M.G.015Finite State Automata; Petri Nets
5Friday 25 October 16:00 -- 18:00 Theory M.G.016Petri nets
6Thursday 31 October Deadline Assignment 2: Algebraic and Discrete-Time CBDs
6Friday 1 November All Saints day - no class
7Friday 8 November 10:45 -- 12:45 Theory M.G.015Petri nets: fairness/time
7Friday 8 November 16:00 -- 18:00 Theory M.G.015Petri nets: analysis
7 Assignment M.G.015Petri nets -- assignment #4
7Thursday 14 November Deadline Assignment 3: PID controllers; Continuous-Time CBD
8Friday 15 November 10:45 -- 12:45 Theory M.G.015Higraphs; Statecharts
8Friday 15 November 16:00 - 18:00 Theory M.G.016Statecharts
9Thursday 21 November Deadline Assignment 4: Petri Nets
9Friday 22 November 10:45--12:45 Assignment M.G.026Statecharts hands-on -- assignment #5
9Friday 22 November 16:00--18:00 Theory M.G.016Discrete-Event World Views: Event Scheduling, Activity Scanning, Process Interaction
Gathering statistics
10Friday 29 November 10:45 -- 12:45 Theory M.G.015Atomic DEVS; Coupled DEVS (flattening)
10Friday 29 November 16:00 -- 18:00 Theory M.G.016Python(P)DEVS; DEVS -- assignment #6
11Wednesday 4 December 9:30 -- 17:30 Oral EvaluationM.G.116Assignment 1: Requirements Checking
11Thursday 5 December Deadline Assignment 5: Statecharts
11Friday 6 December 10:45 -- 12:45 Theory M.G.015Cellular Automata; Agent-Based Modelling and Simulation
11Friday 6 December 16:00 -- 18:00 Theory M.G.016Real-Time Simulation/Execution; Systems Theory
12Tuesday 17 December Deadline Assignment 6: DEVS
12Friday 13 December 10:45 -- 12:45 no class
12Friday 13 December 16:00 -- 18:00 no class
12Friday 13 December 9:30 -- 17:30 Oral Evaluation M.G.330Assignment 4: Petri nets
13Monday 16 December 9:30 -- 17:30 Oral Evaluation M.G.220Assignment 5: Statecharts
13Thursday 19 December 9:30 -- 17:30 Oral Evaluation M.G.330Assignment 6: DEVS
13Thursday 19 December 8:30 -- 19:30 Oral EvaluationM.G.220Assignments 2 and 3: Algebraic, Discrete-Time and Continuous-Time CBDs
13Friday 20 December 8:30 -- 19:30 Oral EvaluationM.G.220Assignments 2 and 3: Algebraic, Discrete-Time and Continuous-Time CBDs
13Friday 20 December 10:45 -- 12:45 Theory M.G.015Forrester System Dynamics
Putting it all together
What to study for the theory exam?
13Friday 20 December 16:00 -- 18:00 no class
Thursday 23 January 13:00 -- 17:00Theory ExamM.G.005Exam Topics/Questions

  Lectures

The material taught in class is covered by the highlighted papers/presentations below. Non-highlighted material is provided as background.

Blackboard scribbles (will be updated during the term) [pdf].

Overview
presentation [pdf]

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

Formalisms: Use Cases, Sequence Diagrams, Regular Expressions and Finite State Automata
presentation [pdf] discussing these formalisms in the context of checking the requirements of a system.

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 [pdf].
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
presentation[pdf]
Lectures on Petri Nets (thanks to Mohammed Hassan for the recordings) [videos].
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
Statecharts presentation[pdf]. The Yakindu Statecharts example project can be found via our MoDELS 2019 conference Statecharts tutorial website.
Lectures on Statecharts (thanks to Mohammed Hassan for the recordings) [videos] (note that you may have to download the videos if they do not play directly in the browser).
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].
S. Esmaeilsabzali, N.A. Day, J.M. Atlee, and J. Niu. Deconstructing the semantics of big-step modelling languages. Requirements Engineering 15, 2 (2010), 235–265. [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)

Introducing spatial distribution (Cellular Automata) and individual-based modelling (Agent-Based Simulation)
presentation [pdf]

(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)

  Assignments

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 chat room.
  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 chat room.
  5. [15%] Statecharts modelling, simulation, synthesis, and testing of a chat room.
  6. [15%] DEVS modelling and simulation for performance analysis of a chat room.

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 1: UML/Requirements

Date: 4 December 2019

Place: M.G.116 (Hans Vangheluwe's office, 1st floor)

Nadezhda Avramovska9:30 AM - 9:45 AM
Ilion Beyst9:45 AM - 10:00 AM
Joanna Joseph10:00 AM - 10:15 AM
Tobia De Koninck10:15 AM - 10:30 AM
Ebert Schoofs10:30 AM - 10:45 AM
Henry Tirla10:45 AM - 11:00 AM
Mathias Ooms11:00 AM - 11:15 AM
Michaël Adriaensen11:15 AM - 11:30 AM
Benjamin Vandersmissen11:30 AM - 11:45 AM
Sylvain Elias11:45 AM - 12:00 PM
Kasper1:00 PM - 1:15 PM
Jiří Zdvomka1:15 PM - 1:30 PM
Oguz Birdal1:30 PM - 1:45 PM
Lars Van Roy1:45 PM - 2:00 PM
Heerok Banerjee2:00 PM - 2:15 PM
Md Bazlur Rahman Khan2:15 PM - 2:30 PM
Pieter Hendriks3:30 PM - 3:45 PM
Thomas Avé4:00 PM - 4:15 PM
Andrei Bondarenko4:15 PM - 4:30 PM
Ewout Pockelé4:30 PM - 4:45 PM
Ken Mendes4:45 PM - 5:00 PM
Mohammed Hassan5:00 PM - 5:15 PM
Adham Mohamed5:15 PM - 5:30 PM

Oral Evaluation Assignment 4: Petrinets

Date: 13 December 2019

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

Andrei Bondarenko9:30 AM - 9:45 AM
Oguz Birdal9:45 AM - 10:00 AM
Tobia De Koninck10:15 AM - 10:30 AM
Jiří Zdvomka10:30 AM - 10:45 AM
Joanna Joseph10:45 AM - 11:00 AM
Mathias Ooms11:00 AM - 11:15 AM
Ebert Schoofs11:15 AM - 11:30 AM
Sylvain Elias11:30 AM - 11:45 AM
Nadezhda1:00 PM - 1:15 PM
Ewout Pockelé1:15 PM - 1:30 PM
Kasper1:30 PM - 1:45 PM
Henry Tirla1:45 PM - 2:00 PM
Michaël Adriaensen2:00 PM - 2:15 PM
Benjamin Vandersmissen2:15 PM - 2:30 PM
Lars Van Roy2:30 PM - 2:45 PM
Ilion Beyst2:45 PM - 3:00 PM
Thomas Avé3:00 PM - 3:15 PM
Heerok3:15 PM - 3:30 PM
Pieter Hendriks3:30 PM - 3:45 PM
Md Bazlur Rahman Khan3:45 PM - 4:00 PM
Mohammed Hassan4:45 PM - 5:00 PM
Ken Mendes5:00 PM - 5:15 PM
Adham mohamed5:15 PM - 5:30 PM

Oral Evaluation Assignment 5: Statecharts

Date: 16 December 2019

Place: M.G.220 (Meeting room, 2nd floor)

Pieter Hendriks9:30 AM - 9:45 AM
Mathias Ooms9:45 AM - 10:00 AM
Joanna Joseph10:00 AM - 10:15 AM
Tobia De Koninck10:15 AM - 10:30 AM
Jiří Zdvomka10:30 AM - 10:45 AM
Henry Tirla10:45 AM - 11:00 AM
Ewout Pockelé11:00 AM - 11:15 AM
Benjamin Vandersmissen11:15 AM - 11:30 AM
Heerok11:30 AM - 11:45 AM
Sylvain Elias11:45 AM - 12:00 PM
Nadezhda1:00 PM - 1:15 PM
Md Bazlur Rahman Khan1:15 PM - 1:30 PM
Kasper1:30 PM - 1:45 PM
Ilion Beyst1:45 PM - 2:00 PM
Lars Van Roy2:15 PM - 2:30 PM
Thomas Avé3:00 PM - 3:15 PM
Oguz Birdal3:45 PM - 4:00 PM
Michaël Adriaensen4:00 PM - 4:15 PM
Ebert Schoofs4:15 PM - 4:30 PM
Andrei Bondarenko4:30 PM - 4:45 PM
Mohammed Hassan4:45 PM - 5:00 PM
Ken Mendes5:00 PM - 5:15 PM
Adham mohamed5:15 PM - 5:30 PM

Oral Evaluation Assignment 6: DEVS

Date: 19 December 2019

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

Ilion Beyst9:30 AM - 9:45 AM
Pieter Hendriks9:45 AM - 10:00 AM
Tobia De Koninck10:00 AM - 10:15 AM
Andrei Bondarenko10:15 AM - 10:30 AM
Mathias Ooms10:30 AM - 10:45 AM
Stein de Groof10:45 AM - 11:00 AM
Joanna Joseph11:00 AM - 11:15 AM
Ebert Schoofs11:15 AM - 11:30 AM
Michaël Adriaensen11:30 AM - 11:45 AM
Nadezhda11:45 AM - 12:00 PM
Ewout Pockelé1:00 PM - 1:15 PM
Henry Tirla1:15 PM - 1:30 PM
Kasper1:30 PM - 1:45 PM
Lars Van Roy1:45 PM - 2:00 PM
Sylvain Elias2:00 PM - 2:15 PM
Leandre Nzabarushimana2:15 PM - 2:30 PM
Thomas Avé2:30 PM - 2:45 PM
Heerok3:00 PM - 3:15 PM
Md Bazlur Rahman Khan3:15 PM - 3:30 PM
Benjamin Vandersmissen3:30 PM - 3:45 PM
Oguz Birdal3:45 PM - 4:00 PM
Mohammed Hassan4:45 PM - 5:00 PM
Ken Mendes5:00 PM - 5:15 PM
Adham mohamed5:15 PM - 5:30 PM
Maintained by Hans Vangheluwe. Last Modified: 2018/10/08 10:34:16.