Stampa
Chiudi

Codice
SWE245
Struttura  Moduli 1 / 4 gg
Coordinamento Didattico  Giovanni Lofrumento


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.

Metodologia didattica
La metodologia adottata è di tipo interattivo e prevede l’uso di esercitazioni per sperimentare le tecniche presentate.

Destinatari
- Architetti software
- Progettisti di applicazioni software
- Responsabili di progetti software

Prerequisiti
Conoscenze sullo sviluppo del software.

Risultati attesi
- Acquisire le tecniche per effettuare la progettazione object-oriented con UML
- Saper usare i diagrammi UML per documentare gli artefatti di progettazione

 

Information Technology

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