13
Esercitazioni di Ingegneria del Software con UML Giuseppe Berio [email protected]

Esercitazioni di Ingegneria del Software con UML Giuseppe Berio [email protected]

Embed Size (px)

Citation preview

Page 1: Esercitazioni di Ingegneria del Software con UML Giuseppe Berio berio@di.unito.it

Esercitazioni di Ingegneria del Software con

UML

Giuseppe [email protected]

Page 2: Esercitazioni di Ingegneria del Software con UML Giuseppe Berio berio@di.unito.it

© G.Berio DI-UNITO 2005

Passo I• Costruire un Modello (Diagramma) dei Casi d’Uso che

mostri cosa deve fare il Sistema Software (Requisiti) facendo quindi riferimento al Dominio del Problema

• E’ possibile usare tre strategie:– Indicando per ogni “Attore” del Sistema Software quale ne

sia il caso d’uso a valore aggiunto– Indicando a quali “Eventi” deve reagire il Sistema Software– Indicando per ogni requisito iniziale una rappresentazione in

termini di casi d’uso

• Valutare il giusto livello di astrazione del Modello dei Casi d’Uso sviluppato:– È possibile avere un modello più astratto e meno dipendente

dalla situazione contingente?

Page 3: Esercitazioni di Ingegneria del Software con UML Giuseppe Berio berio@di.unito.it

© G.Berio DI-UNITO 2005

Passo II

• Completare il Modello dei Casi d’Uso con descrizioni testuali per ciascun caso d’uso

• Scelto un caso d’uso (esempio, “raccomandare polizza”) rappresentare la sua descrizione con un Modello delle Attività indicando, in particolare, le Attività che sono svolte dal Sistema Software

• Rispondere alla seguente domanda: – basandosi sulla soluzione data, quali sono le

differenze con l’Analisi Strutturata?

Page 4: Esercitazioni di Ingegneria del Software con UML Giuseppe Berio berio@di.unito.it

© G.Berio DI-UNITO 2005

Traccia per la Descrizione Testuale dei Casi d’Uso

Caso d'uso

Breve descrizione

Attori

Precondizioni

Flusso principale

Flussi alternativi

Postcondizioni

Page 5: Esercitazioni di Ingegneria del Software con UML Giuseppe Berio berio@di.unito.it

© G.Berio DI-UNITO 2005

Passo III

• Raggruppare i Casi d’Uso in Sottosistemi (principio di Coesione) considerando i sottosistemi rappresentabili con Package

Page 6: Esercitazioni di Ingegneria del Software con UML Giuseppe Berio berio@di.unito.it

© G.Berio DI-UNITO 2005

Passo IV• Identificare le Classi del Dominio del Problema• Nominare ogni Classe identificata• Per identificare le Classi è possibile usare le

seguenti strategie:– Guidata dai casi d’uso (prevede la precedente

costruzione del modello dei casi d’uso)– Guidata dai requisiti (in generale):

• Categorie di classi: in fase di specifica dei requisiti, pattern di analisi (cose tangibili, ruoli in organizzazioni, incidenti, interazione, specifica); in fasi di progetto, pattern di progetto

• Analisi di nomi e di frasi nominali Associare una definizione ad ogni Classe identificata

Page 7: Esercitazioni di Ingegneria del Software con UML Giuseppe Berio berio@di.unito.it

© G.Berio DI-UNITO 2005

Passo V• Identificare gli Attributi delle Classi• Nominare ogni Attributo identificato• E’possibile seguire la seguente strategia per ogni Classe:

– Categorie di Attributi :• Attributi descrittivi, descrivono le caratteristiche tipiche di un oggetto

della classe• Attributi di identificazione, rappresentano il modo con cui un singolo

oggetto della classe può essere identificato senza ambiguità• Attributi referenziali, rappresentano possibili legami con altre classi (e

tuttavia in questo caso è necessario rimandare alle associazioni)

– Indicare eventualmente per ogni Attributo il Tipo:• Specifico• Generico (del linguaggio di programmazione usato)

– Indicare eventualmente per ogni Attributo la Visibilità

• Associare una definizione ad ogni Attributo

Page 8: Esercitazioni di Ingegneria del Software con UML Giuseppe Berio berio@di.unito.it

© G.Berio DI-UNITO 2005

Passo VI

• Mettere in atto le seguenti “verifiche di qualità” sul Modello delle Classi:– Controllare per ogni Classe,

• La sua definizione valutando che– sia semplice e precisa (cioè non ambigua relativamente al

Dominio del Problema)– non contenga “OR” o non sia una lista

• Che non sia singolare• Che abbia attributi e possibilmente attributi di

identificazione• Gli attributi opzionali privi di significato per interi insiemi

d’oggetti, chiaramente identificabili• Gli attributi il cui singolo valore è un insieme (di valori)

Page 9: Esercitazioni di Ingegneria del Software con UML Giuseppe Berio berio@di.unito.it

© G.Berio DI-UNITO 2005

Passo VII

• Introdurre le associazioni nel Modello delle Classi indicando:– Il nome (anche se non obbligatorio)– Gli eventuali nomi di ruolo (seguendo i due

standard comunemente usati)– Le cardinalità

• Stabilire le eventuali Classi d’Associazione

Page 10: Esercitazioni di Ingegneria del Software con UML Giuseppe Berio berio@di.unito.it

© G.Berio DI-UNITO 2005

PassoVIII

• Mettere in atto le seguenti “verifiche di qualità” sul Modello delle Classi:– Verificare la definizione di ogni associazione– Verificare la coerenza tra la definizione di ogni

classe e la cardinalità delle associazioni cui la classe partecipa

– Se tra due classi esistono più associazioni, verificare le definizioni delle associazioni stesse in modo che non vi siano “sovrapposizioni”

Page 11: Esercitazioni di Ingegneria del Software con UML Giuseppe Berio berio@di.unito.it

© G.Berio DI-UNITO 2005

Il Documento dei Requisiti I

• Finalità del software• Definizioni, acronimi, abbreviazioni• Documenti di riferimento• Sintesi

– Descrizione degli elementi esterni al software (inclusa la tipologia d’utente)

– Descrizione delle funzionalità principali del software• Use case, diagrammi di attività

– Vincoli di progetto

– Ipotesi

Page 12: Esercitazioni di Ingegneria del Software con UML Giuseppe Berio berio@di.unito.it

© G.Berio DI-UNITO 2005

Il Documento dei Requisiti II• Requisiti dettagliati

– Requisiti funzionali • Funzionalità (incluso formati di I/O; vincoli)

– descrizione testuale– use case, eventuali diagrammi di attività, sequence e statechart

• Informazioni trattate– descrizione testuale– classi, eventuali statechart

– Requisiti non funzionali• Prestazioni• Affidabilità• Disponibilità• Sicurezza• Manutenibilità• Portabilità

– Interfacce• Interazione con gli utenti

– diagrammi di attività o use case

• Interazione con i sistemi

Page 13: Esercitazioni di Ingegneria del Software con UML Giuseppe Berio berio@di.unito.it

© G.Berio DI-UNITO 2005

Esercitazione Finale: Primi Obiettivi

• Obiettivo 1:– Scrivere un documento dei requisiti

• Obiettivo 2:– Specificare i requisiti con UML:

• per ogni caso d’uso, indicare una descrizione completa (con o senza il diagramma delle attività)

• (per ogni caso d’uso), indicare i diagrammi di sequenza (ed eventualmente di collaborazione);

• definire il diagramma delle classi completo;

• (per ogni classe), definire gli eventuali statechart.