====== Formal Modeling of Software Intensive Systems ======
----
===== News =====
* The date of the project presentations is March 20th
* December 22th: this lecture is postponed
* October 18th: this lecture is postponed
* October 13th: this lecture is postponed
* October 6th: this lecture is postponed
* October 4th: first lecture
----
===== General Info =====
**Teacher**:
* [[http://docenti.unicam.it/pdett.aspx?ids=N&tv=d&UteId=990&ru=PA|Francesco Tiezzi]]
**Lessons schedule**:
* Tuesday 11 - 13 (R. Milner room)
* Thursday 15 - 17 (R. Milner room)
**Students Office hours**:
* on appointment (via email), room CS 08, second floor of Polo Tecnologico Palazzo Battibocca, via del Bastione 1, Camerino
----
===== Course Objectives =====
D1 – KNOWLEDGE AND UNDERSTANDING\\
At the end of the course, the student should be able to:\\
- Have the knowledge of the issues concerning concurrent/distributed programming and the modelling of hardware/software systems as software-intensive systems.
- Have the knowledge of the semantics of the operators of the process algebras CCS, CSP and ACP.
- Have the knowledge of the syntax and the semantics of the modal logic Hennessy-Milner Logic (HML), with and without recursion, and of the ACTL logic.
- Have the knowledge of the main observational behavioural equivalences, weak and strong.
- Have the knowledge of the tools for the automatic verification of software-intensive systems modelled by means of process algebras.
D2 – APPLYING KNOWLEDGE AND UNDERSTANDING\\
At the end of the course, the student should be able to:\\
- Modelling a software-intensive system using the formal languages presented in the course, using a compositional approach.
- Derive the labelled transition system associated to a process.
- Decide if one or more state of a labelled transition system are stong or weak bisimilar, providing a suitable bisimulation relation whereas possible.
- Decide if one or more states of a labelled transition system satisfy formulas of HML and ACTL logics.
- Define temporal properties of a software-intensive system using the HML and ACTL logics.
- Use a specific software tool for the analysis of software-intensive systems modelled using the CCS language or other formalism.
D3 – MAKING JUDGEMENTS\\
At the end of the course, the student should be able to:\\
- Identify the best model suitable for describing a system using a given formalism.
D4 - COMMUNICATION SKILLS\\
At the end of the course, the student should be able to:\\
- Write a clear report on the modelling and analysis of a system under study using a formal style.
- Write a brief survey and state of the art about a given research topic by searching the scientific literature.
D5 – LEARNING SKILLS\\
At the end of the course, the student should be able to:\\
- Search the scientific literature for specific advances in formalisms and tools aimed at modelling and verifying software-intensive systems.
- Autonomously understand and learn to use new features added to tools for modelling and verifying software-intensive systems.
----
===== Course Contents =====
* Introductory concepts: concurrent, reactive and software-intensive systems
* Preliminary mathematical concepts
* Semantics of the operators of the process algebras CCS, CSP and ACP
* The Maude toolset
* Main behavioural equivalences, weak and strong
* Hennessy-Milner Logic and ACTL
* Software tools for the automatic verification of software-intensive systems modelled by means of process algebras: TAPAs and muCRL2
----
===== Study material =====
**Course Slides**
* {{ :didattica:magistrale:fmsis:ay_1617:fmsis_intro.pdf |Introduction and general information}}
* {{ :didattica:magistrale:fmsis:ay_1617:2_-_preliminaries.pdf |Preliminaries}}
* {{ :didattica:magistrale:fmsis:ay_1617:3_-_formal_semantics_of_regular_expressions.pdf | Formal semantics of regular expressions}}
* {{ :didattica:magistrale:fmsis:ay_1617:intro-to-pa.pdf | Introduction to Process Algebras}}
* {{ :didattica:magistrale:fmsis:ay_1617:4_-_ccs.pdf | CCS}}
* {{ :didattica:magistrale:fmsis:ay_1617:5_-_tapas.pdf | Model and equivalence checking via TAPAs}}
**Lectures**
* [[https://cmr-em.webex.com/cmr-em-it/lsr.php?RCID=58574c805e6bb9abccd5526b2f6c3873|15 December]]
* [[https://cmr-em.webex.com/cmr-em-it/lsr.php?RCID=426cf070257127a545e8f805bd4114e1|16 December]]
* [[https://drive.google.com/open?id=0B2v4obBsNmUOdEFaaUlIWVZpTkE|23 December]] (password: PuSwKri3)
* [[https://drive.google.com/open?id=0B2v4obBsNmUOR1A3ZkRQSUYzbnc|12 January]](password: 9PxhmF8t)
* [[https://drive.google.com/open?id=0B2v4obBsNmUOLU1ZTHRnOHFHbGs|13 January]](password: 3tGpp9aV)
* [[https://drive.google.com/open?id=0B2v4obBsNmUOTjR4S0YxNDRaMDQ|26 January]] (password: 2mNW5Aec)
* [[https://drive.google.com/open?id=0B2v4obBsNmUOTDV2elRpN0g3YTA|27 January]] (password: mTSTvZM5)
* [[https://drive.google.com/open?id=0B2v4obBsNmUOWVNsNk9lRnNJZ2s|2 February]](password: FdGTsJA3)
* [[https://drive.google.com/open?id=0B2v4obBsNmUOVUJGSGp0M3BQeWs|9 February]]
* [[https://drive.google.com/open?id=0B2v4obBsNmUONHlrU2FadWhXTU0|10 February]]
* [[https://drive.google.com/open?id=0B2v4obBsNmUORXcxZHJBX2d6Wnc|17 February]]
**Reference books**\\
The main material of the course consists of:
* Rocco De Nicola. A gentle introduction to Process Algebras. Notes obtained by the restructuring of two entries (Process Algebras - Behavioural Equivalences) of Encyclopedia of Parallel Computing, David A. Padua (Ed.). Springer 2011; pp. 120-127 and pp. 1624-1636.
* Luca Aceto, Anna Ingolfsdottir, Kim Guldstrand Larsen and Jiri Srba, "Reactive Systems. Modelling, Specification and Verification", Cambridge University Press, 2007. ISBN: 9780521875462. Website of the book with additional material available: http://rsbook.cs.aau.dk
Morover, lecture notes, papers and slides may be provided in this website.
The Maude tool can be downloaded for free for academic use, together with documentation and tutorials, from the website: http://maude.cs.illinois.edu/
The TAPAs tool can be downloaded for free for academic use, together with documentation and tutorials, from the website: http://rap.dsi.unifi.it/tapas/
The mCRL2 tool can be downloaded for free for academic use, together with documentation and tutorials, from the website: http://www.mcrl2.org/release/user_manual/index.html
----
===== Exams =====
**Exam Dates A.Y. 2016/2017**
* Appello I: 28/02/2017 ore 14:00 - Polo Lodovici - AB1
* Appello II: 16/03/2017 ore 14:00 - Polo Lodovici - AB1
* Appello III: 05/06/2017 ore 10:00 - Polo Lodovici
* Appello IV: 07/07/2017 ore 10:00 - Polo Lodovici
* Appello V: 21/07/2017 ore 10:00 - Polo Lodovici
* Appello VI: 06/09/2017 ore 10:00 - Polo Lodovici
* Appello VII: 20/09/2017 ore 10:00 - Polo Lodovici
* Appello VIII: 02/10/2017 ore 10:00 - Polo Lodovici
**Results of the written in itinere test of 3/2/2017**
* 098875: 30
* 098434: 30
* 099978: 30
* 098702: 30
* 098443: 29
* 098543: 29
* 098442: 27
* 098541: 27
* 098438: 25
* 097946: 25
* 098431: 21
* 098437: 19
**Results of the written in itinere test of 3/2/2017**
* 098875 26
* 098434 26
* 099978 30
* 098702 27
* 098443 26
* 098543 26
* 098442 23
* 098541 26
* 098438 23
* 097946 28
* 098431 25
* 098437 27
* 093700 25
**Exam rules**:
* **Written test**. On the exam date a written test takes place, it has a mixed structure: solution of exercises, and open/close answer questionnaire. During the course in itinere tests take place; in case they are evaluated positively, they replace the written test of the exam date.
* Realisation of a **project** with a software tool presented during the course, or writing of a report. There is an **oral discussion**.
** Exam Results **
* N/A