Il corso illustra le tecniche fondamentali per la progettazione object-oriented di sistemi software utilizzando il linguaggio UML 2 per la documentazione degli artefatti prodotti. I principali argomenti trattati sono le architetture del software, il modello di progettazione e gli aspetti più importanti della progettazione di dettaglio.
Durata 3 giorni
Programma
- Concetti generali:
- elementi fondamentali di un processo di sviluppo del software
- caratteristiche del modello di sviluppo iterativo e incrementale
- relazione fra l'analisi e la progettazione object-oriented
- introduzione al linguaggio di modellazione UML 2
- concetti fondamentali del modello object-oriented: classi e istanze, messaggi, operazioni, metodi, information hiding, ereditarietà
- architetture del software
- architetture e stili architetturali
- tipologie di architetture: architettura multi-tier, architettura basata su componenti, architettura orientata ai servizi.
- Il modello di progettazione:
- partizionamento del sistema software in sottosistemi
- individuazione e caratteristiche dei sottosistemi
- progettazione dei componenti: ruoli e modelli dei componenti, interfacce
- scelta del middleware per la comunicazione remota.
- La progettazione di dettaglio:
- trasformazione e raffinamento del modello di analisi nel modello di progettazione
- progettazione degli oggetti (oggetti transienti e persistenti, oggetti attivi e passivi)
- determinazione della visibilità degli attributi e delle operazioni
- attributi di classe e d'istanza
- attributi derivati
- i costruttori degli oggetti
- le relazioni fra le classi: generalizzazione, associazione, aggregazione, dipendenza, realizzazione
- analisi e trasformazione delle relazioni fra le classi: relazioni derivate;
- la delegazione come alternativa all'ereditarietà
- progettazione delle relazioni fra le classi
- tecniche di modularizzazione
- principi di coesione e di accoppiamento fra moduli
- principi di progettazione object-oriented
- i principali design pattern: Model-View-Controller (MVC), Observer, Bridge, Abstract Factory, Singleton, ™
- Transizione dalla progettazione alla programmazione object-oriented.
- Esercitazioni.