Modelling of Software-Intensive Systems 

Lecturer: Prof. Dr. Hans Vangheluwe.

Lab Assistants: Randy Paredis (main contact). Joeri Exelmans (Statecharts assignment).


  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:

  • 15% on the theory exam;
  • 85% 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 (will be updated as the term progresses)

You can find the URLs of the online lectures in the course announcements on Blackboard

Week

Date

Type

Room

Subject

1Wednesday 29 September 08:30 -- 10:30 Theory M.G.006 Course introduction: goals, structure, evaluation, planning, Python!
Causes of complexity, Software Intensive Systems
2Friday 1 October 13:45 -- 15:45 Theory M.G.006 UML notations: Use Case / Object / Class / Sequence Diagrams
2 Assignment UML notations: Regular Expressions, Finite State Automata -- assignment #1
3Friday 8 October 10:45 -- 12:45 Theory M.A.143UML notations: Use Case / Object / Class / Sequence Diagrams
3Friday 8 October 13:45 -- 15:45 Theory M.G.006Modelling of physical systems
4Friday 15 October 10:45 -- 12:45 Theory online (streamed in M.A.143)Modelica
lecture recordings: part 1, part 2
4Friday 15 October 13:45 -- 15:45 Theory online (streamed in M.G.006)PID Control, Modelling Language Structure (syntax/semantics)
lecture recordings: part 1, part 2
5Monday 18 October 16:00 -- 18:00 Lab Session M.G.026Tutorial: OMEdit (OpenModelica Connection Editor)
5 Assignment Modelica, PID Control -- assignment #2
5Friday 22 October 10:45 -- 12:45 Theory M.A.143Algebraic Causal Block Diagrams (operational) loop detection and solving
Discrete-Time Causal Block Diagrams (denotational/operational)
5Friday 22 October 13:45 -- 15:45 Theory M.G.006Continuous-Time Causal Block Diagrams
6 Assignment CBDs -- assignment #3
5Friday 22 October 23:59 Deadline Blackboard Assignment 1: Requirements Checking
6Tuesday 26 October 9:00 -- 12:00 Oral Defense onlineAssignment 1: Requirements Checking (doodle)
6Tuesday 26 October 14:00 -- 16:00 Oral Defense onlineAssignment 1: Requirements Checking (doodle)
6Wednesday 27 October 14:00 -- 18:00 Oral Defense M.G. 330Assignment 1: Requirements Checking (doodle)
6Friday 29 October 10:45 -- 12:45 Theory G.T.138Finite State Automata; Petri Nets
6Friday 29 October 13:45 -- 15:45 Theory M.G.006Petri nets
6Friday 29 October 16:00 -- 18:00 Oral Defense M.G. 330Assignment 1: Requirements Checking (doodle)
6Friday 29 October 23:59 Deadline Blackboard Assignment 2: Modelica, PID control
7Friday 5 November 10:45 -- 12:45 Theory online (M.G.016 available)Petri nets: analysis, fairness, time, colour
lecture recordings: part 1, part 2
7Friday 5 November 13:45 -- 15:45 Theory online (M.G.006 available)Petri nets: analysis
lecture recordings: part 1, part 2
Coverability Tree/Graph construction
LTL and CTL property languages
8Monday 8 November 16:00 -- 18:00 Lab Session M.G.026Tutorial: Petri nets with tapaal
8 Assignment Petri nets -- assignment #4
8Wednesday 10 November 23:59 Deadline Blackboard Assignment 3: Causal-Block Diagrams
8Friday 12 November Armistice - no class
9Friday 19 November 10:45 -- 12:45 Theory recordingStatecharts
part 1 (66min, lecture starts at 4min12s): reactive systems, discrete-event, higraphs
part 2 (40min): traffic light running example/requirements, automata with time
9Friday 19 November 13:45 -- 15:45 Theory recordingStatecharts
part 3 (67min): data store/action code, testing
part 4 (54min): entry/exit actions, hierarchy
10Tuesday 23 November 9:30 -- 12:30 Oral Defense onlineAssignments 2 & 3: Modelica + CBD (doodle)
10Tuesday 23 November 14:00 -- 17:00 Oral Defense onlineAssignments 2 & 3: Modelica + CBD (doodle)
10Wednesday 24 November 9:30 -- 12:30 Oral Defense onlineAssignments 2 & 3: Modelica + CBD (doodle)
10Wednesday 24 November 14:00 -- 18:00 Oral Defense onlineAssignments 2 & 3: Modelica + CBD (doodle)
10Wednesday 24 November Deadline Blackboard Assignment 4: Petri Nets
10Thursday 25 November 9:30 -- 12:30 Oral Defense onlineAssignments 2 & 3: Modelica + CBD (doodle)
10Thursday 25 November 14:00 -- 18:00 Oral Defense onlineAssignments 2 & 3: Modelica + CBD (doodle)
10Friday 26 November 9:30 -- 10:30 Oral Defense onlineAssignments 2 & 3: Modelica + CBD (doodle)
10Friday 26 November 10:45 -- 12:45 Theory recordingStatecharts
part 5 (52min): history, orthogonal components
part 6 (49min): code generation, semantic variations
10Friday 26 November 13:45 -- 15:45 Lab Session M.G.006Tutorial: Statecharts with Yakindu
10 Assignment Statecharts -- assignment #5
11Friday 3 December 10:45--12:45 Theory online (M.A.143 available) Discrete-Event World Views: Event Scheduling, Activity Scanning
lecture recordings: part 1, part 2
11Friday 3 December 13:45 -- 15:45 Theory online (M.G.006 available)Discrete-Event World Views: Process Interaction
Gathering statistics
lecture recordings: part 1, part 2
12Friday 10 December 10:45 -- 12:45 Theory recordingAtomic DEVS
lecture recordings: part 1, part 2
12Friday 10 December 13:45 -- 15:45 Theory recordingCoupled DEVS + flattening
12 lecture recordings: part 1, part 2
12Sunday 12 December Deadline Blackboard Assignment 5: Statecharts
13Monday 13 December 16:00 -- 18:00 Lab Session onlineTutorial: DEVS with PythonPDEVS
13 Assignment DEVS -- assignment #6
lecture recording
13Friday 17 December 10:45 -- 12:45 Theory online (M.A.143 available)DEVS patterns
(scaled)real-time simulation
lecture recordings: part 1, part 2
13Friday 17 December 13:45 -- 15:45 Theory online (M.G.006 available)Systems Theory
what to study for the exam
lecture recordings: part 1, part 2
13Monday 20 December 9:30 -- 12:30 Oral Defense onlineAssignment 4: Petri-Nets (doodle)
13Monday 20 December 14:00 -- 16:00 Oral Defense onlineAssignment 4: Petri-Nets (doodle)
13Tuesday 21 December 9:30 -- 12:30 Oral Defense onlineAssignment 4: Petri-Nets (doodle)
13Tuesday 21 December 14:00 -- 16:00 Oral Defense onlineAssignment 4: Petri-Nets (doodle)
13Wednesday 22 December 9:30 -- 12:30 Oral Defense onlineAssignment 4: Petri-Nets (doodle)
Tuesday 28 December Deadline Blackboard Assignment 6: DEVS
January Oral Defense onlineAssignment 5: Statecharts (doodle)
January Oral Defense onlineAssignment 6: DEVS (doodle)
Tuesday 19 January 8:30 -- 13:30 Oral Defense M.G.116 (Statecharts)
M.G.330 (DEVS)
Assignments 5 & 6: Statecharts and DEVS (doodle (Statecharts), doodle (DEVS))
Tuesday 19 January 14:30 -- 17:30Theory ExamG.V.008Exam Topics/Questions

  Lectures

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

Class scribbles.

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

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

Modelling of Physical Systems (with Modelica)
Lecture on modelling of physical systems [pdf]
Modelica with OpenModelica

(PID) Control
Lecture on (PID) controllers [pdf]

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]
Causal Block Diagram scribbles.
Topological Sorting and Strong Component algorithms.

Formalisms: Petri Nets
Presentation [pdf]
2019 lectures on Petri Nets (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).
Christos G. Cassandras. Discrete Event Systems. Irwin, 1993. Chapters 4, 5. [pdf (MoSIS access only)].
Carl Adam Petri. Kommunikation mit Automaten. 1962. Petri's doctoral dissertation.
Tadao Murata. Petri nets: Properties, analysis and applications. Proceedings of the IEEE, 77(4):541-580, April 1989. The main survey article on Petri Nets [pdf].
James L. Peterson. Petri Net Theory and the Modeling of Systems. Prentice Hall, 1981. The classic book on Petri Nets [online].

Formalisms: Statecharts
Presentation [pdf]; older version, with animations expanded [pdf].
The Yakindu Statecharts example project can be found via our MoDELS 2019 conference Statecharts tutorial website.
2019 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].
Simon Van Mierlo and Hans Vangheluwe. Statecharts: A Formalism to Model, Simulate and Synthesize Reactive and Autonomous Timed Systems, chapter 6, pp. 155 - 176. Springer, 2020. [pdf].
D. Harel and E. Gery, "Executable object modeling with statecharts," in Computer, vol. 30, no. 7, pp. 31-42, July 1997. [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

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 course grade. The combined assignments count for 85% of the course grade.
The assignments will focus on a Personal Rapid Transit (PRT) use-case.

  1. [10%] Checking requirements using Sequence Diagrams and Trace Matches of a Publish/Subscribe architecture.
  2. [10%] Modelica modelling and simulation.
  3. [10%] Causal Block Diagrams modelling, simulation and synthesis.
  4. [15%] Petri-Net modelling and analysis.
  5. [20%] Statecharts modelling, simulation, synthesis, and testing.
  6. [20%] DEVS modelling and simulation for performance analysis.

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 w.r.t. the requirements given in each assignment. During the evaluation moments (see schedule), you will clarify your solution individually.

Maintained by Hans Vangheluwe. Last Modified: 2022/08/29 00:29:58.