|
Progettazione object-oriented con UML
Programma
Concetti generali
- elementi fondamentali di un processo di sviluppo del software e 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: generalizzazione, associazione, aggregazione, composizione, realizzazione, dipendenza
- tecniche di modularizzazione e principi di coesione e di accoppiamento fra moduli
- principi di progettazione object-oriented: Open/Closed, sostituibilità di Liskov, design by contract, inversione delle dipendenze, dependency injection, …
- I principali design pattern: Model-View-Controller (MVC), Observer, Bridge, Abstract Factory, Singleton, …
Transizione dalla progettazione alla programmazione object-oriented.
Esercitazioni
|