Note that this page still contains some of last year's material, to give you an idea of what is to come.
It will soon be replaced by a planning for this year as well as new assignments.
This is the first semester of the 20242025 academic year version of this course.
Have a look at Prof. Vangheluwe's teaching page for earlier incarnations of this course.
In the first semester 202021 version of this course you will
find recordings of online lectures. The recordings were made while the university was closed for inperson lectures due to Covid19.
Though this year's course will cover roughly the same material,
it does deviate in some parts. The recordings are provided as background material, not as a replacement for the lectures.
You should attend all lectures.
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 official UA course number is 2001WETMSI.
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 softwareintensive 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 DiscreteEvent, 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, discretetime, continuoustime),
whether they allow modelling of sequential or concurrent behaviour, whether they are deterministic (mostly suited for system/software synthesis)
or nondeterministic (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 (softwareintensive) applications.
The above forms a starting point for more advanced topics. In particular, the combination of different formalisms and the development
of DomainSpecific 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. Note that handing in an assignment n days late incurs a (1+n)% (on the grade of that assignment)
penalty.
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 email to the course lecturer.

Prerequisites
ObjectOriented programming. The course assumes that you master ObjectOriented concepts and are able to understand and produce
ObjectOriented code.
The first couple of assignments make extensive use of the objectoriented 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 ObjectOriented 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 online lectures, if and when they occur, in the course announcements on Blackboard
Lectures
For your reference, on the 20202021 course website, you will find recordings of the online (due to
Covid19) lectures in the Schedule section. Note that for a recording of the Systems Theory lecture, you should look
on the 20212022 course website.
Note that recordings may not correspond exactly to this year's lectures. The recordings are provided asis in case you were exceptionally
not able to attend a lecture. They are not a replacement for attending class!
The material taught in class is covered by the highlighted papers/presentations below.
Nonhighlighted material is provided as background.
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. 
Modelling of Physical Systems (with Modelica)
(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 1619, 1966.
[pdf] 
Causal Block Diagram slides. 
Topological Sorting
and Strong Component algorithms. 
Claudio Gomes, Joachim Denil, and Hans Vangheluwe.
CausalBlock Diagrams: A family of languages for causal modelling of cyberphysical systems.
In Paulo Carreira, Vasco Amaral, and Hans Vangheluwe, editors,
Foundations of MultiParadigm Modelling for CyberPhysical Systems, chapter 4, pages 97125. Springer International Publishing, 2020.
[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. Petri's doctoral dissertation.

Tadao Murata.
Petri nets: Properties, analysis and applications.
Proceedings of the IEEE, 77(4):541580, 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. 
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. McGrawHill, 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 UMLstatecharts.
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 bigstep 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.
In Paulo Carreira, Vasco Amaral, and Hans Vangheluwe, editors, Foundations
of MultiParadigm Modelling for CyberPhysical Systems, chapter 6, pages 155  176. Springer International Publishing, 2020.
[pdf].

D. Harel and E. Gery, "Executable object modeling with statecharts," in Computer, vol. 30, no. 7, pp. 3142, July 1997.
[pdf]. 
The digital watch assignment (not an assignment this year). 
Formalisms: DiscreteEvent World Views; PseudoRandom Number Generators; Gathering Statistics
Formalisms: DiscreteEVent System Specification (DEVS)
presentation[pdf]. 
PythonPDEVS and examples used in the presentation. 
Yentl Van Tendeloo and Hans Vangheluwe.
DEVS: Discreteevent modelling and simulation for performance analysis of resourceconstrained systems.
In Paulo Carreira, Vasco Amaral, and Hans Vangheluwe, editors, Foundations of MultiParadigm Modelling for CyberPhysical Systems, chapter 5,
pages 127  153. Springer International Publishing, 2020.
[pdf]. 
Introducing spatial distribution (Cellular Automata) and individualbased modelling (AgentBased Simulation)
(scaled) Real Time Simulation/Execution
Modelling and Simulation Foundations: Systems Specification
presentation [pdf] 
notes [pdf] 
Formalisms: (Forrester) System Dynamics
Formalisms and their Features
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 use car/automotive traffic (i.e., cars, roads, road networks...) as a usecase.
 [10%] Checking requirements using Sequence Diagrams and Trace Matches.
 [10%] Modelling, simulation and (PID) control of physical systems using Modelica.
 [10%] Causal Block Diagrams modelling, simulation and synthesis.
 [15%] PetriNet modelling and analysis.
 [20%] Statecharts modelling, simulation, synthesis, and testing.
 [20%] DEVS modelling and simulation for performance analysis.
These assignments will be completed in groups of two students (optionally alone). These groups should be maintained throughout the entire semester.
Note that as of the 20172018 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.
