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 |
1 | Tuesday 22 September 13:45 -- 18:00 | Theory | M.G.005 + M.G006 + online |
Course introduction: goals, structure, evaluation, planning, Python!
Causes of complexity, Software Intensive Systems |
| | | |
lecture recordings:
part 1,
part 2,
part 3,
part 4 |
2 | Monday 28 September 18:00 -- 20:00 | Theory | online | UML notations: Use Case / Object / Class / Sequence Diagrams |
| | | |
lecture recordings:
part 1,
part 2 |
2 | Wednesday 30 September 10:45 -- 12:45 | Assignment | online | UML notations: Regular Expressions, Finite State Automata -- assignment #1 |
| | | |
lecture recordings:
part 1,
part 2 |
3 | Monday 5 October 18:00 -- 20:00 | Theory | online | The structure of modelling languages
Introduction to Causal Block Diagrams |
| | | |
lecture recordings:
part 1,
part 2 |
3 | Wednesday 7 October 10:45 -- 12:45 | Theory | online | Algebraic Causal Block Diagrams (denotational/operational) |
| | | |
lecture recordings:
part 1,
part 2 |
4 | Monday 12 October 18:00 -- 20:00 | Theory | online | Algebraic Causal Block Diagrams (operational) loop detection and solving
Discrete-Time Causal Block Diagrams (denotational/operational) |
| | | |
lecture recordings:
part 1,
part 2 |
4 | Wednesday 14 October 10:45 -- 12:45 | Assignment | online | Alg + DT CBD -- assignment #2 |
| | | |
assignment presentation |
4 | | Theory | online | Continuous-Time Causal Block Diagrams |
| | | |
lecture recording |
4 | Wednesday 14 October 23:59 | Deadline | Blackboard | Assignment 1: Requirements Checking |
5 | Monday 19 October 18:00 -- 20:00 | Theory | online | Continuous-Time Causal Block Diagrams |
| | | |
lecture recordings:
part 1 (CBD modelling in draw.io/diagrams.net),
part 2,
part 3 |
5 | Wednesday 21 October 10:45 -- 12:45 | Theory | online | CT-CBD approximation accuracy
PID controllers |
| | | |
lecture recordings:
part 1,
part 2 |
5 | | Assignment | online | CT CBD; PID controllers -- assignment #3 |
6 | Monday 26 October 18:00 -- 20:00 | Theory | online | Finite State Automata; Petri Nets |
| | | |
lecture recordings:
part 1,
part 2 |
6 | Wednesday 28 October 10:45 -- 12:45 | Theory | online | Petri nets |
| | | |
lecture recordings:
part 1,
part 2 |
6 | Saturday 31 October 23:59 | Deadline | Blackboard | Assignment 2: Algebraic and Discrete-Time CBDs |
7 | Monday 2 November | | | All Saints day - no class |
7 | Wednesday 4 November 10:45 -- 12:45 | Theory | online | Petri nets: analysis, fairness, time, colour |
| | | |
lecture recordings:
part 1,
part 2 |
8 | Monday 9 November 18:00 -- 20:00 | Theory | online | Petri nets: analysis, LTL/CTL |
| | | |
lecture recordings:
part 1,
part 2 |
8 | Wednesday 11 November | | | Armistice day - no class |
9 | Monday 16 November 18:00 -- 20:00 | Theory | online | Higraphs; Statecharts |
| | | |
lecture recordings:
part 1,
part 2 |
9 | Wednesday 18 November 10:45 -- 12:45 | Assignment | online | Petri nets -- assignment #4 |
| | | |
assignment presentation |
9 | | Theory | online | Statecharts |
| | | |
lecture recording |
10 | Monday 23 November 18:00 -- 20:00 | Theory | online | Statecharts |
| | | |
lecture recordings:
part 1,
part 2 |
10 | Wednesday 25 November 10:45--11:45 | Theory | online | Statecharts |
| | | |
lecture recording |
10 | Wednesday 25 November 11:45--12:45 | Assignment | online | Statecharts hands-on -- assignment #5 |
| | | |
tutorial recording |
10 | Sunday 29 November 23:59 | Deadline | Blackboard | Assignment 3: Continuous-Time CBDs + PID control |
11 | Monday 30 November 18:00--20:00 | Theory | online | Discrete-Event World Views: Event Scheduling, Activity Scanning |
| | | |
lecture recordings:
part 1,
part 2 |
11 | Wednesday 2 December 10:45 -- 12:45 | Theory | online | Discrete-Event World Views: Process Interaction
Gathering statistics |
| | | |
lecture recordings:
part 1,
part 2 |
12 | Monday 7 December 18:00 -- 20:00 | Theory | online | Atomic DEVS |
| | | |
lecture recordings:
part 1,
part 2 |
12 | Monday 7 December | Deadline | Blackboard | Assignment 4: Petri Nets |
12 | Wednesday 9 December 10:45 -- 12:45 | Theory | online | Coupled DEVS + flattening |
12 | | | |
lecture recordings:
part 1,
part 2 |
13 | Monday 14 December 18:00 -- 19:30 | Theory | online | DEVS patterns
(scaled)real-time simulation
what to study for the exam |
| | | |
lecture recording |
13 | Monday 14 December 19:30 -- 20:00 | Assignment | online | DEVS -- assignment #6 |
| | | |
recording |
13 | Thursday 16 December | Deadline | Blackboard | Assignment 5: Statecharts |
| Sunday 3 January | Deadline | Blackboard | Assignment 6: DEVS |
| Wednesday 13 January 13:30 -- 16:30 | Theory Exam | M.G.010 | Exam Topics/Questions |
Lectures
The material taught in class is covered by the highlighted papers/presentations below.
Non-highlighted material is provided as background.
Overview
Modelling and Simulation to Tackle Complexity
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. |
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] |
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. (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
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)
(scaled) Real Time Simulation/Execution
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 course grade.
The combined assignments count for 75% of the course grade.
The assignments will all have some link with the
industrial/manufacturing/production engineering domain.
|