Corso UML: Analisi e progettazione software

Descrizione:

L’analisi e il design, oltre a determinare la qualità delle applicazioni, influenzano la produttività dei progetti: quando vengono svolte in modo efficace riducono i costi ed i tempi dello sviluppo software, anche perché agevolano la comunicazione tra i ruoli coinvolti.

Il corso insegna ad affrontare l’analisi e il design mediante l’uso di tecniche e princìpi di progettazione software, e l’uso della notazione UML (Unified Modeling Language), lo standard di rappresentazione internazionale per documentare, progettare e fare evolvere i sistemi software.

Viene offerta una panoramica completa sui concetti, sugli elementi e sui diagrammi di UML, con particolare attenzione alle modalità concrete del loro uso nelle diverse situazioni
progettuali, e con linee guida minimali e pragmatiche che distinguono tra ciò che è indispensabile fare in ogni caso e ciò che può invece risultare utile solo in ambiti specifici.

Nel corso viene effettuata una esercitazione / caso studio completa, con utilizzo dei principali diagrammi UML.


Destinatari:

  • analisti
  • architetti e progettisti software
  • sviluppatori

Prerequisiti:

Nessuno.


Contenuti:

Introduzione

  • ruolo di analisi e design nello sviluppo software
  • princìpi base Object Oriented
  • caratteristiche generali di UML
  • UML e processi di sviluppo (a cascata, Unified Process, iterativi, agili)
  • panoramica sui diagrammi UML
  • Model-Driven-Architecture (MDA)
  • costrutti generali (package, stereotipi, meccanismi di estensione, profili)
  • cenni sugli strumenti di modellazione

Casi d’uso

  • attori, casi d’uso, sistema di riferimento (subject)
  • rappresentazione del contesto del sistema
  • diagramma dei casi d’uso
  • cenni sulla specifica dei casi d’uso

Modellare gli aspetti strutturali del sistema

Diagramma dei componenti

  • rappresentazione di un sistema ad alto livello
  • componenti
  • interfacce
  • dipendenze

Diagramma delle strutture composite

  • scomposizione di un elemento complesso in parti
  • porte e connettori

Diagramma dei package

  • package per organizzare la documentazione di progetto
  • package per organizzare il software

Diagrammi delle classi e degli oggetti

  • strategie per l’individuazione e la definizione delle classi
  • attributi e operazioni
  • associazioni e altre relazioni tra classi
  • rappresentazione delle strutture dati
  • relazioni tra componenti e classi

Diagramma di deployment

  • nodi
  • connessioni
  • ambienti di esecuzione
  • artifact e componenti

Modellare gli aspetti dinamici del sistema

Diagrammi di interazione

  • messaggi e responsabilità
  • diagramma di sequenza
  • diagramma di comunicazione (collaborazione)
  • rappresentazione dello schema di navigazione interfaccia utente
  • rappresentazione di servizi
  • diagramma di overview dell’interazione
  • diagramma di timing

Diagramma di stato

  • stati e transizioni
  • stati compositi
  • transizioni composite e pseudostati

Diagrammi di attività

  • attività e azioni
  • flussi di controllo
  • parallelismi e sincronizzazioni
  • oggetti in input ed output

Durata: 4 giorni