(Canale A-L & M-Z)
1. Ciclo di vita e qualità del software
Il contesto organizzativo. Il ciclo di sviluppo dei programmi: raccolta dei requisiti, analisi, progettazione & realizzazione, verifica & manutenzione. Le qualità del software: qualità esterne & interne. La modularizzazione. Criteri per la modularizzazione.
Materiale didattico Slide: Prima parte ed esercitazioni
2. La fase di analisi
Introduzione alla fase di analisi. Il linguaggio UML per l'analisi. Diagrammi strutturali e diagrammi comportamentali e d'interazione: Diagrammi delle Classi, Diagrammi degli oggetti, Diagrammi Stati e Transizioni, Diagrammi delle Attività. Specifica delle operazioni, delle transizioni e delle attività. OCL. La metodologia di analisi.
Materiale didattico Slide ed esercitazioni
3. La fase di progetto
Obiettivi e risultati attesi della fase di progetto. Specifica degli algoritmi. Responsabilità sulle associazioni. Uso di strutture di dati. Schemi realizzativi per oggetti e valori. Gestione degli eventi. Aspetti legati alla concorrenza. Pattern realizzativi. Il pattern observer-observable (per realizzare lo scambio di eventi), il pattern funtore (per realizzare le attività). API delle classi Java progettate.
Materiale didattico Slide ed esercitazioni
4. La fase di realizzazione
Realizzazione in Java dei diagrammi delle classi UML: la realizzazione di classi, la realizzazione di associazioni, uso dell'ereditarietà. Realizzazione in Java di diagrammi stato-transizione UML: realizzazione di oggetti reattivi, scambio di eventi tra oggetti reattivi. Realizzazione in Java dei diagramme delle attività: realizzazione di attività complesse concorrenti, realizzazione di attività atomiche atto all'uso concorrente, alri aspetti relativi alla concorrenza.
Materiale didattico Slide ed esercitazioni
NB: Per coloro che devono fare l'esame da 5 CFU (ORD509) o 6 CFU (Nettuno) gli aspetti più avanzati relativi alla realizzazione in Java di diagrammi delle attività e dei diagrammi stato-transizione saranno limitati.