Descrizione
Il disegno è un momento cruciale dello sviluppo di un’applicazione, in cui si porta a pieno compimento la definizione della sua architettura.
Nelle pratiche abituali, tuttavia, troppo spesso si passa dalle fasi "alte" dell’analisi direttamente all’implementazione, avendo definito in modo sommario l’architettura e non affrontando con la dovuta attenzione e disciplina la fase di progettazione. Si ha così un impatto fortemente negativo su qualità essenziali del software quali le prestazioni, la manutenibilità , l’efficienza, la portabilità . Inoltre non viene favorito il riutilizzo, non solo del codice ma in senso lato.
Il corso illustra inizialmente come si cala la fase di Disegno nei vari tipi di processo di sviluppo, definendone presupposti e risultati; vengono quindi esaminate le tecniche di Disegno ed i principi che guidano la realizzazione delle migliori architetture, attingendo abbondantemente alle "best practices" e ponendo particolare enfasi sui pattern di disegno.
In tale ottica va anche visto l'utilizzo della notazione UML (lo Unified Modeling Language: qui viene fatto riferimento alla versione 2.0) e il riferimento all’approccio MDA, Model Driven Architecture, di cui UML è un fondamento.
Il corso è completato da una serie di cenni all’implementazione e ai fondamenti di progettazione dell’interfaccia utente.
Destinatari
- architetti di sistema
- analisti applicativi
- analisti programmatori
- specialisti di metodi e standard
Prerequisiti
Corso di "Analisi Object Oriented con UML" o conoscenze equivalenti.
E’ utile l’esperienza di programmazione con linguaggi OO
Contenuti
UML e processi software
- UML: convergenza dei metodi, convergenza sul metodo
- UML e processi software
- I principali artefatti di UML
- Un linguaggio senza processo?
- Linee guida per uno sviluppo incrementale, iterativo, basato sull'architettura
Dall'Analisi al Disegno
- Ruolo dell’Analisi e del Disegno nel Processo software
- Il Disegno in un processo di tipo iterativo/incrementale, basato sull’architettura e sui casi d’uso
- Prodotti "ereditati" dall’Analisi: specifiche funzionali, requisiti non funzionali, Diagramma dei Casi d’Uso, Diagramma delle Classi, Diagrammi di Stato e di Attività , Diagrammi di Sequenza; caratteristiche richieste a questi prodotti
- Estensione e affinamento in Disegno dei diagrammi UML "ereditati"
- Documentare l’architettura applicativa: concetti base dell’approccio Model Driven Architecture (PIM, PSM, ...)
Principi per il disegno Object Oriented
- Coesione e coupling delle componenti
- Ruoli, ResponsabilitĂ e Collaborazioni: contratti e deleghe, distribuzione delle responsabilitĂ
- Framework e Pattern: concetti fondamentali; come usarli per ottenere economie in fase di progettazione e per favorire il riuso non solo del codice
- Pattern fondamentali : MVC, Façade, Publish Subscribe, Proxy, Abstract Factory, GRASP, ecc. Quali usare, quando e come
Disegno dell'applicazione
- Disegno dell’architettura applicativa: partizionamento in Sottosistemi, stratificazione dei Sottosistemi, tecniche di interfacciamento e disaccoppiamento
- Disegno delle componenti: individuazione delle componenti, definizione delle loro responsabilitĂ e collaborazioni, realizzazione dei diagrammi di disegno (diagrammi di sequenza, delle classi, delle azioni, delle componenti)
Linee guida alla implementazione
- Ergonomia: impostazione di uno standard di progettazione delle interfacce
- Problemi applicativi: validazione dell’input, exception handling, accesso a fonti di dati eterogenee
- Mapping a un DBMS relazionale: classi vs tabelle, riferimenti all’uso di chiavi artificiali, trigger e stored procedure
- cenni all’Aspect Oriented Programming, nuovo paradigma di programmazione
Case study
Durata
3 giorni
|