Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
didattica:magistrale:csd:ay_1819:main [2018/10/06 08:22] flavio [Complex System Design] |
didattica:magistrale:csd:ay_1819:main [2020/09/17 16:55] (current) |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Complex System Design ====== | ====== Complex System Design ====== | ||
- | Le lezioni del corso di Complex Systems Design riprenderanno il giorno 18 Ottobre 2018 | ||
- | Flavio Corradini | + | ORARIO DELLE LEZIONI: |
- | ---- | + | - GIOVEDI' DALLE 16:00 ALLE 18:00 |
+ | |||
+ | - VENERDI' DALLE 09:00 ALLE 13:00 | ||
===== News ===== | ===== News ===== | ||
- | <WRAP center round important 95%> | + | |
- | * <wrap em>**date**</wrap>: news | + | Le lezioni del corso di Complex Systems Design riprenderanno il giorno 18 Ottobre 2018 |
- | </WRAP> | + | |
---- | ---- | ||
Line 25: | Line 26: | ||
---- | ---- | ||
===== Course Objectives ===== | ===== Course Objectives ===== | ||
+ | |||
+ | Apprendere i concetti fondazionali e le tecniche di base per modellare e analizzare sistemi software. Acquisire consapevolezza dello stato dell'arte per ciò che concerne la progettazione rigorosa di software ed essere in grado di personalizzare e contestualizzare i metodi acquisiti. | ||
+ | Applicare le tecniche proposte in contesti reali quali sistemi operativi, protocolli di comunicazione, linguaggi di programmazione concorrenti e orientati agli oggetti. | ||
+ | |||
<WRAP box round 95% center> | <WRAP box round 95% center> | ||
Line 32: | Line 37: | ||
---- | ---- | ||
===== Course Contents ===== | ===== Course Contents ===== | ||
+ | |||
+ | Analisi e verifica dei sistemi software complessi richiedono una progettazione rigorosa. Questo è particolarmente evidente per i cosiddetti sistemi "safety-critical", in cui errori nel codice possono avere conseguenze disastrose (perdita di vite umane, finanziarie etc.). L'uso di tecniche rigorose applicate allo studio e allo sviluppo di sistemi software è quindi essenziale, non solo al fine di scongiurare errori catastrofici, ma anche per evitare una lievitazione dei costi legata alla loro correzione tardiva. Il testing è in grado di identificare problemi, ma non è generalmente sufficiente per garantire un livello di qualità soddisfacente. I metodi formali - come le Algebre di Processo, che forniscono un apparato formale per ragionare in modo composizionale sulla struttura ed il comportamento dinamico dei sistemi - offrono invece tecniche rigorose che vanno dalla descrizione dei requisiti attraverso notazioni formali fino a tecniche di verifica automatica del software. | ||
+ | Questo corso mira a proporre agli studenti i concetti fondazionali delle Algebre di Processo senza perdere di vista le necessità pratiche e applicative dei programmatori e degli analisti di software. Tratterà le tecniche di base per descrivere forma e significato dei termini di processo e per ragionare su questi in modo rigoroso. Il contesto di studio scelto sarà il CCS, un ben noto linguaggio per sistemi reattivi, ed alcune delle sue estensioni più importanti. Sulla base di questi calcoli verranno discusse alcune nozione di equivalenza e tecniche di dimostrazione associate. Durante il corso verranno prese in considerazione anche calcoli CCS-like orientati all'analisi integrata della correttezza funzionale, delle performance e di aspetti di dipendenza dei sistemi software. | ||
+ | |||
+ | Contenuti: | ||
+ | - Introduzione ai metodi formali. | ||
+ | - Il linguaggio delle espressioni regolari come linguaggio di sistemi reattivi. | ||
+ | - Calculus of Communicating Systems (CCS) di Milner: sintassi e semantica operazionale. | ||
+ | - Equivalenze: bisimulazione strong e weak. | ||
+ | - Congruenza osservazionale e sua decidibilità. | ||
+ | - Varianti (con tempo, con località, etc.) del CCS. | ||
+ | - Linguaggi per la valutazione delle performance. | ||
+ | |||
<WRAP round 95% center box> | <WRAP round 95% center box> | ||
Line 37: | Line 55: | ||
</WRAP> | </WRAP> | ||
---- | ---- | ||
+ | |||
+ | |||
===== Study material ===== | ===== Study material ===== | ||
+ | |||
+ | - R. Milner: A Calculus of Communicating Systems. LNCS 92, Springer (1980). | ||
+ | |||
+ | - A. Aldini, M. Bernardo, F. Corradini: A Process Algebraic Approach to Software Architecture Design. Springer (2009). | ||
+ | |||
+ | - Altre letture ad articoli di ricerca, selezionati durante il corso. | ||
+ | |||
<WRAP box round center 95%> | <WRAP box round center 95%> | ||
See the [[https://didattica.unicam.it/Guide/PaginaADErogata.do?ad_er_id=2018*N0*N0*S2*14564*7550&ANNO_ACCADEMICO=2018&mostra_percorsi=S|description on ESSE3]] | See the [[https://didattica.unicam.it/Guide/PaginaADErogata.do?ad_er_id=2018*N0*N0*S2*14564*7550&ANNO_ACCADEMICO=2018&mostra_percorsi=S|description on ESSE3]] | ||
Line 43: | Line 70: | ||
---- | ---- | ||
===== Exams ===== | ===== Exams ===== | ||
+ | |||
+ | Sviluppo di un progetto svolto in gruppi. | ||
+ | |||
<WRAP box round center 95%> | <WRAP box round center 95%> | ||
Consult the [[https://didattica.unicam.it|ESSE3 portal]] | Consult the [[https://didattica.unicam.it|ESSE3 portal]] | ||
</WRAP> | </WRAP> |