SlideShare a Scribd company logo
DIAGRAMMI DEI CASI D’USO 
INGEGNERIA DEL SOFTWARE 
Università degli Studi di Padova 
Dipartimento di Matematica 
Corso di Laurea in Informatica, A.A. 2014 – 2015 
rcardin@math.unipd.it
SOMMARIO 
 Cosa sono gli Use Case 
 Specifica Use Case 
 Diagrammi dei Casi d’Uso 
 Use Case: Inclusione 
 Use Case: Estensione 
 Use Case: Generalizzazione 
 Individuazione Use Case 
Ingegneria del software mod. A 
Riccardo Cardin 2
SOMMARIO 
 Cosa sono gli Use Case 
 Specifica Use Case 
 Diagrammi dei Casi d’Uso 
Use Case: Inclusione 
Use Case: Estensione 
Use Case: Generalizzazione 
 Individuazione Use Case 
Ingegneria del software mod. A 
Riccardo Cardin 3
DIAGRAMMI DEI CASI D’USO 
Ingegneria del software mod. A 
Riccardo Cardin 4
DIAGRAMMI DEI CASI D’USO 
 Analisi dei Requisiti 
Ingegneria del software mod. A 
Riccardo Cardin 5 
• Diagrammi Use case 
• Diagrammi di flusso 
Revisione dei 
Requisiti 
R. Progetto 
Architetturale 
Revisione di 
Qualifica 
R. di 
Accettazione 
• Diagrammi dei package 
• Diagrammi delle classi 
• Diagrammi degli oggetti 
• Diagrammi di attività 
• Diagrammi di sequenza 
• Diagrammi delle classi 
• Diagrammi di attività 
• Diagrammi di sequenza 
• Diagrammi di flusso
COSA SONO GLI USE CASE 
 Tecniche per individuare i requisiti funzionali 
 Descrivono interazioni 
 Sistema 
 Utenti (attori)/elementi esterni al sistema 
 Come il sistema deve essere utilizzato? 
 Che funzionalità espone? 
Ingegneria del software mod. A 
Riccardo Cardin 6 
Esempio 
È richiesto lo sviluppo di un’applicazione che permetta la gestione di un semplice blog. 
In particolare devono essere disponibili almeno tutte le funzionalità base di un blog: 
deve essere possibile per un utente inserire un nuovo post e successivamente per gli 
altri utenti deve essere possibile commentarlo. Queste due operazioni devono essere 
disponibili unicamente agli utenti registrati all’interno del sistema. La registrazione 
avviene scegliendo una username e una password. La username deve essere univoca 
all’interno del sistema.
COSA SONO GLI USE CASE 
 Scenari 
 Sequenza di passi che descrivono interazioni 
 Attori (utenti) e il sistema 
 Rappresentazione di una possibilità 
 Scenari alternativi 
 Esempio: la carta di credito non è accettata, il cliente è 
abituale e il suo profilo è già presente nel sistema, … 
 Tutti gli scenari (principale e alternativo) condividono 
uno scopo 
 Esempio: l’acquisto di almeno un prodotto 
Ingegneria del software mod. A 
Riccardo Cardin 7
COSA SONO GLI USE CASE 
 Definizione 
Un caso d’uso è un insieme di scenari (sequenze di azioni) 
che hanno in comune uno scopo finale (obiettivo) per un 
utente (attore). 
 Informale 
 Un caso d’uso è una situazione nella quale il sistema viene 
utilizzato per soddisfare uno o più bisogno dell’utente. 
 Descrivono l’insieme di funzionalità del sistema come 
sono percepite dagli utenti 
 Visione esterna del sistema 
 Nessun dettaglio implementativo 
Ingegneria del software mod. A 
Riccardo Cardin 8
COSA SONO GLI USE CASE 
 Attori 
 Ruolo dell’ utente nell’interazione con il sistema 
 Utente: persona, altro sistema esterno 
 Utente “fisico”  più ruoli (attori) 
 Più utente  medesimo ruolo (attore) 
 Svolgono il caso d’uso per raggiungere l’obiettivo 
 Stesso attore  più casi d’uso 
 Un caso d’uso  più attori 
 Buon mezzo di individuazione dei casi d’uso 
1. Individuare la lista degli attori 
2. Comprendere i loro obiettivi e come interagiscono con il 
sistema (quale ruolo a quale funzionalità) 
 Nessun dettaglio implementativo sui modi di interazione! 
Ingegneria del software mod. A 
Riccardo Cardin 9
COSA SONO GLI USE CASE 
Ingegneria del software mod. A 
Riccardo Cardin 10 
 Identificare gli 
ATTORI
SOMMARIO 
 Cosa sono gli Use Case 
 Specifica Use Case 
 Diagrammi dei Casi d’Uso 
Use Case: Inclusione 
Use Case: Estensione 
Use Case: Generalizzazione 
 Individuazione Use Case 
Ingegneria del software mod. A 
Riccardo Cardin 11
SPECIFICA USE CASE 
 Use Case sono puro TESTO 
 UML descrive solo gli use case diagram 
 Specificano l’interazione tra i casi d’uso 
Caso d’uso: UC1 - Registrazione 
Attore primario: Utente 
Precondizioni: L’utente non è ancora autenticato presso il sistema 
Postcondizioni: L’utente possiede un’account presso il sistema, contraddistinto da una username e da 
una password 
Scenario principale: 
1. L’utente accede al sistema 
2. L’utente seleziona la funzionalità "Registrati" 
3. L’utente inserisce una username univoca nel sistema 
4. L’utente inserisce una password che rispetta i vincoli imposti 
Estensioni: 
a. Nel caso in cui l’utente inserisca una username già censita a sistema: 
Ingegneria del software mod. A 
Riccardo Cardin 12 
1. L’utente non viene registrato presso il sistema 
2. Viene visualizzato un errore esplicativo 
3. Viene fornita all’utente la possibilità di scegliere un’altra password
SPECIFICA USE CASE 
 Il valore aggiunto è nel contenuto testuale 
 Nome/Identificatore 
 Scenario principale 
 Scenari alternativi 
 D’eccezione o errore 
 Pre-condizioni 
 Effetti / Garanzia (post-condizioni) 
 Trigger 
 Evento scatenante del caso d’uso 
 Attori principali 
 Attori secondari 
Ingegneria del software mod. A 
Riccardo Cardin 13
SPECIFICA USE CASE 
 Considerazioni 
 Un solo scenario principale per caso d’uso 
 Scenari alternativi (0..*) 
 Prendono in considerazione solo la parte che differisce dallo 
scenario principale 
 Granularità 
 Soddisfa lo scopo di un attore (fare un ordine, …) 
 Più piccolo di un processo di business 
 Non fornisce dettagli significativi, non individua le funzionalità 
del sistema 
 Kite level 
 Più grande di una singola operazione su un componente 
 Dettaglio eccessivo allontana il focus dall’obiettivo 
 Sea level, Fish level 
Ingegneria del software mod. A 
Riccardo Cardin 14
SOMMARIO 
 Cosa sono gli Use Case 
 Specifica Use Case 
 Diagrammi dei Casi d’Uso 
 Use Case: Inclusione 
 Use Case: Estensione 
 Use Case: Generalizzazione 
 Individuazione Use Case 
Ingegneria del software mod. A 
Riccardo Cardin 15
DIAGRAMMI DEI CASI D’USO 
 Rappresentazione grafica dei casi d’uso 
 Mette in evidenza attori e servizi del sistema 
 Grafo i cui nodi sono 
 Attori 
 Use case 
 Archi del grafo rappresentano 
 La comunicazione tra gli attori e gli use case 
 I legami tra gli use case 
 Relazione di estensione 
 Relazione di inclusione 
 Relazione di generalizzazione 
 Il diagramma individua i confini del sistema nello 
scenario 
Ingegneria del software mod. A 
Riccardo Cardin 16
DIAGRAMMI DEI CASI D’USO 
 Componenti di un diagramma use case 
Ingegneria del software mod. A 
Riccardo Cardin 17 
Attore 
Use case 
Il nome del caso 
d’uso può essere 
posizionato dentro 
o fuori della figura 
Associazione 
Inclusione 
Estensione 
Generalizzazione 
«include» 
«extend» 
Relazioni
DIAGRAMMI DEI CASI D’USO 
 Esempio 
Blog 
 Associazione attore - use case: partecipazione 
 Comunicazione diretta 
 Utilizzazione del sistema 
 DEVE essere descritta anche in versione TESTUALE 
 Precondizioni e postcondizioni non possono essere desunte 
Ingegneria del software mod. A 
Riccardo Cardin 18 
UC1 - Registrazione 
Utente 
esegue
DIAGRAMMI DEI CASI D’USO 
 Esempio 
Ingegneria del software mod. A 
Riccardo Cardin 19 
attore 
soggetto 
caso d’uso
USE CASE: INCLUSIONE 
 Funzionalità comune fra più use case 
 Ogni istanza di A esegue B 
 B è incondizionatamente incluso nell’esecuzione di A 
 A non conosce i dettagli di B, ma solo i suoi risultati 
 B non conosce di essere inlcuso da A 
 Responsabilità esecuzione di B è completamente di A 
 Evita la ripetizione / Aumenta il riutilizzo 
Ingegneria del software mod. A 
Riccardo Cardin 20 
A B
USE CASE: INCLUSIONE 
 Esempio 
Ingegneria del software mod. A 
Il database deve 
essere esterno al 
perimetro del sistema 
(i.e. Facebook, 
Twitter)!!! 
Riccardo Cardin 21
USE CASE: ESTENSIONE 
 Aumento delle funzionalità di un use case 
A B 
 Ogni istanza di A può esegue B in modo condizionato 
 L’esecuzione di B interrompe A 
 La responsabilità dei casi di estensione è di chi estende (B) 
 Non rappresenta l’ereditarietà nei linguaggi di progr. 
Ingegneria del software mod. A 
Riccardo Cardin 22
USE CASE: ESTENSIONE 
 Estensione 
 Condizione di estensione 
 Determina quando l’estensione deve essere utilizzata 
 Descrizione narrativa e/o icona dello use case 
 La condizione di estensione è verificata 
 Può esistere indipendentemente dagli use case estesi 
 Può estendere più use case base (riuso) 
 Attenzione al perimetro del caso d’uso esteso 
 Modifica scenario principale / post condizione 
 Esempio: gestione dei casi di eccezione 
Ingegneria del software mod. A 
Riccardo Cardin 23
USE CASE: ESTENSIONE 
 Esempio 
Ingegneria del software mod. A 
Riccardo Cardin 24
INCLUSIONE E ESTENSIONE 
 Aspetti in comune 
 Fattorizzano comportamenti comuni a più use case 
 Aumentano il comportamento di un use case base 
 Differenze 
 Estensione: l’attore può non eseguire tutte le 
estensioni 
 Condizioni non verificate 
 Inclusione: l’attore esegue sempre tutte le inclusioni 
 Casi di utilizzo 
 Inclusione: una funzionalità si ripete in più use case 
 Estensione: si vogliono descrivere variazioni dalla 
funzionalità standard 
Ingegneria del software mod. A 
Riccardo Cardin 25
USE CASE: GENERALIZZAZIONE 
 Aggiungere o modificare caratteristiche base 
 Attori 
 A è generalizzazione di B se B condivide almeno le 
funzionalità di A 
 Use Case (più raro) 
 I casi d’uso figli possono aggiungere funzionalità rispetto ai 
padri, o modificarne il comportamento 
 Tutte le funzionalità non ridefinite nel figlio si mantengono 
in questo come definite nel padre 
Ingegneria del software mod. A 
Riccardo Cardin 26 
Generalizzazione 
fra use case 
Generalizzazione 
fra attori
USE CASE: GENERALIZZAZIONE 
 Esempio 
Ingegneria del software mod. A 
Riccardo Cardin 27
USE CASE: ESEMPIO 
Tripadvisor è un noto sito di viaggi diffuso in tutto il mondo. Per accedervi, è 
necessario registrarsi fornendo una username e una password. Come in molti altri 
sistemi, la usename deve essere univoca: il sistema, quindi, non permette ad un 
nuovo utente di registrarsi utilizzando una username già scelta da un altro utente. 
All’interno del sito sono presenti le recensioni di numerose attrazioni turistiche, 
ristoranti, hotel, ecc...Le recensioni sono visibili pubblicamente e possono essere lette 
anche dagli utenti non registrati. La scrittura delle recensioni è disponibile unicamente 
per gli utenti registrati. Ogni recensione contiene un giudizio riassuntivo che l’utente 
inserisce utilizzando le “stelle” (da una a cinque) e da una descrizione di almeno 100 
caratteri. Nel caso si cerchi di inserire una recensione di lunghezza inferiore, il sistema 
avvisa l’utente con un messaggio di errore. È possibile per l’eventuale proprietario 
dell’attrazione turistica rispondere brevemente ad una recensione, inserendo a sua 
volta un commento. Il profilo di un utente è caratterizzato oltre che dal suo nome e 
dalla sua foto, che può essere modificata, dai distintivi che ha ottenuto. I distintivi sono 
legati al numero di recensioni scritte: ad esempio, dopo 20 recensioni l’utente diviene 
un “Recensore esperto” e il sistema lo notifica con un messaggio opportuno. È infine 
possibile collegare il proprio account con il proprio profilo Facebook. In questo caso il 
sistema notificherà l’utente ogni qualvolta un proprio amico inserisce all’interno di 
Tripadvisor una recensione. 
Ingegneria del software mod. A 
Riccardo Cardin 28
USE CASE: ESEMPIO 
Ingegneria del software mod. A Riccardo Cardin 29
SOMMARIO 
 Cosa sono gli Use Case 
 Specifica Use Case 
 Diagrammi dei Casi d’Uso 
Use Case: Inclusione 
Use Case: Estensione 
Use Case: Generalizzazione 
 Individuazione Use Case 
Ingegneria del software mod. A 
Riccardo Cardin 30
INDIVIDUAZIONE USE CASE 
 Definizione del contesto 
1. Identificazione attori e responsabilità 
2. Identificazione degli obiettivi da raggiungere per 
ciascun attore 
 Primi approssimazione use case 
3. Valutare attori e use case e raffinarli 
 Divisione e accorpamento 
4. Trovare le relazioni di inclusione 
5. Trovare le relazioni di estensione 
6. Trovare le relazioni di generalizzazione 
 «A use case is something that provides some measurable result to 
the user on an external system» 
Ingegneria del software mod. A 
Riccardo Cardin 31
INDIVIDUAZIONE USE CASE 
 Fino a che livello di dettaglio spingersi? 
 Kite level 
 Livello molto astratto, definisce macro funzionalità 
 Sea level 
 Livello intermedio, utile nella scoperta di funzionalità 
nascoste 
 Fish level 
 Livello di dettaglio, da esso si individuano direttamente i 
requisiti del sistema 
 Vediamo un esempio... 
Ingegneria del software mod. A 
Riccardo Cardin 32
RIFERIMENTI 
 OMG Homepage – www.omg.org 
UML Homepage – www.uml.org 
UML Distilled, Martin Fowler, 2004, Pearson 
(Addison Wesley) 
 Learning UML 2.0, Kim Hamilton, Russell Miles, 
O’Reilly, 2006 
Ingegneria del software mod. A 
Riccardo Cardin 33

More Related Content

PDF
Quantum Hardware Hacking
PDF
Definition of Done Meets Infrastructure in the Cloud
PDF
Agile Is the New Waterfall
ODP
Agile Project management
PPTX
Secrets of Scrum
PDF
Scrum for Video Game Development
PDF
Scrum cheatsheet
PPTX
Diagrammi di Attività
Quantum Hardware Hacking
Definition of Done Meets Infrastructure in the Cloud
Agile Is the New Waterfall
Agile Project management
Secrets of Scrum
Scrum for Video Game Development
Scrum cheatsheet
Diagrammi di Attività

Viewers also liked (20)

PPTX
Diagrammi di Sequenza
PPTX
Diagrammi delle Classi
PPTX
Design pattern architetturali Model View Controller, MVP e MVVM
PPTX
Design Pattern Creazionali
PPTX
Java - Sockets
PPTX
Java - Processing input and output
PPTX
Java- Concurrent programming - Synchronization (part 1)
PPTX
Design Pattern Comportamentali
PPTX
Java- Concurrent programming - Synchronization (part 2)
PPTX
Introduzione a UML
PPTX
Java - Generic programming
PPTX
Java - Concurrent programming - Thread's advanced concepts
PPTX
Java - Concurrent programming - Thread's basics
PPTX
Design Pattern Strutturali
PPTX
Errori comuni nei documenti di Analisi dei Requisiti
PPTX
Software architecture patterns
PPTX
Java Graphics Programming
PPTX
Java Exception Handling, Assertions and Logging
PPTX
Java - Remote method invocation
PPTX
Design Pattern Architetturali - Dependency Injection
Diagrammi di Sequenza
Diagrammi delle Classi
Design pattern architetturali Model View Controller, MVP e MVVM
Design Pattern Creazionali
Java - Sockets
Java - Processing input and output
Java- Concurrent programming - Synchronization (part 1)
Design Pattern Comportamentali
Java- Concurrent programming - Synchronization (part 2)
Introduzione a UML
Java - Generic programming
Java - Concurrent programming - Thread's advanced concepts
Java - Concurrent programming - Thread's basics
Design Pattern Strutturali
Errori comuni nei documenti di Analisi dei Requisiti
Software architecture patterns
Java Graphics Programming
Java Exception Handling, Assertions and Logging
Java - Remote method invocation
Design Pattern Architetturali - Dependency Injection
Ad

Similar to Diagrammi Use Case (20)

PPTX
Introduzione ai Design Pattern
PPT
Un'architettura di riferimento per applicazioni enterprise
PDF
Generazione automatica diagrammi di rete con template pptx
PPTX
Introduzione al Domain Driven Design (DDD)
PPT
Figure dal libro Facile da Usare
PPTX
Tesi3
PDF
Idiomatic Domain Driven Design
PPT
Tesi Discussione
ZIP
WhyMCA12 - Android Tools e la gestione di progetti complessi
PDF
Progetto e sviluppo di un’applicazione per la gestione di un reagentario per ...
PPTX
Alm pills - Sessione community tour Dot Net Umbria 2011
PDF
Concorso Informatici C3 INPS 2007 - Banca Dati
PPTX
Slide per installatori
PDF
Software Testing Forum 2012 - Polarion e TRS SpA
PPTX
7. Applicazioni web e CMS
ZIP
Iloveyou
PDF
Verifica finale
PDF
Market e Tools: Utility per la personalizzazione di applicazioni Android
PDF
Smart api
Introduzione ai Design Pattern
Un'architettura di riferimento per applicazioni enterprise
Generazione automatica diagrammi di rete con template pptx
Introduzione al Domain Driven Design (DDD)
Figure dal libro Facile da Usare
Tesi3
Idiomatic Domain Driven Design
Tesi Discussione
WhyMCA12 - Android Tools e la gestione di progetti complessi
Progetto e sviluppo di un’applicazione per la gestione di un reagentario per ...
Alm pills - Sessione community tour Dot Net Umbria 2011
Concorso Informatici C3 INPS 2007 - Banca Dati
Slide per installatori
Software Testing Forum 2012 - Polarion e TRS SpA
7. Applicazioni web e CMS
Iloveyou
Verifica finale
Market e Tools: Utility per la personalizzazione di applicazioni Android
Smart api
Ad

Diagrammi Use Case

  • 1. DIAGRAMMI DEI CASI D’USO INGEGNERIA DEL SOFTWARE Università degli Studi di Padova Dipartimento di Matematica Corso di Laurea in Informatica, A.A. 2014 – 2015 rcardin@math.unipd.it
  • 2. SOMMARIO  Cosa sono gli Use Case  Specifica Use Case  Diagrammi dei Casi d’Uso  Use Case: Inclusione  Use Case: Estensione  Use Case: Generalizzazione  Individuazione Use Case Ingegneria del software mod. A Riccardo Cardin 2
  • 3. SOMMARIO  Cosa sono gli Use Case  Specifica Use Case  Diagrammi dei Casi d’Uso Use Case: Inclusione Use Case: Estensione Use Case: Generalizzazione  Individuazione Use Case Ingegneria del software mod. A Riccardo Cardin 3
  • 4. DIAGRAMMI DEI CASI D’USO Ingegneria del software mod. A Riccardo Cardin 4
  • 5. DIAGRAMMI DEI CASI D’USO  Analisi dei Requisiti Ingegneria del software mod. A Riccardo Cardin 5 • Diagrammi Use case • Diagrammi di flusso Revisione dei Requisiti R. Progetto Architetturale Revisione di Qualifica R. di Accettazione • Diagrammi dei package • Diagrammi delle classi • Diagrammi degli oggetti • Diagrammi di attività • Diagrammi di sequenza • Diagrammi delle classi • Diagrammi di attività • Diagrammi di sequenza • Diagrammi di flusso
  • 6. COSA SONO GLI USE CASE  Tecniche per individuare i requisiti funzionali  Descrivono interazioni  Sistema  Utenti (attori)/elementi esterni al sistema  Come il sistema deve essere utilizzato?  Che funzionalità espone? Ingegneria del software mod. A Riccardo Cardin 6 Esempio È richiesto lo sviluppo di un’applicazione che permetta la gestione di un semplice blog. In particolare devono essere disponibili almeno tutte le funzionalità base di un blog: deve essere possibile per un utente inserire un nuovo post e successivamente per gli altri utenti deve essere possibile commentarlo. Queste due operazioni devono essere disponibili unicamente agli utenti registrati all’interno del sistema. La registrazione avviene scegliendo una username e una password. La username deve essere univoca all’interno del sistema.
  • 7. COSA SONO GLI USE CASE  Scenari  Sequenza di passi che descrivono interazioni  Attori (utenti) e il sistema  Rappresentazione di una possibilità  Scenari alternativi  Esempio: la carta di credito non è accettata, il cliente è abituale e il suo profilo è già presente nel sistema, …  Tutti gli scenari (principale e alternativo) condividono uno scopo  Esempio: l’acquisto di almeno un prodotto Ingegneria del software mod. A Riccardo Cardin 7
  • 8. COSA SONO GLI USE CASE  Definizione Un caso d’uso è un insieme di scenari (sequenze di azioni) che hanno in comune uno scopo finale (obiettivo) per un utente (attore).  Informale  Un caso d’uso è una situazione nella quale il sistema viene utilizzato per soddisfare uno o più bisogno dell’utente.  Descrivono l’insieme di funzionalità del sistema come sono percepite dagli utenti  Visione esterna del sistema  Nessun dettaglio implementativo Ingegneria del software mod. A Riccardo Cardin 8
  • 9. COSA SONO GLI USE CASE  Attori  Ruolo dell’ utente nell’interazione con il sistema  Utente: persona, altro sistema esterno  Utente “fisico”  più ruoli (attori)  Più utente  medesimo ruolo (attore)  Svolgono il caso d’uso per raggiungere l’obiettivo  Stesso attore  più casi d’uso  Un caso d’uso  più attori  Buon mezzo di individuazione dei casi d’uso 1. Individuare la lista degli attori 2. Comprendere i loro obiettivi e come interagiscono con il sistema (quale ruolo a quale funzionalità)  Nessun dettaglio implementativo sui modi di interazione! Ingegneria del software mod. A Riccardo Cardin 9
  • 10. COSA SONO GLI USE CASE Ingegneria del software mod. A Riccardo Cardin 10  Identificare gli ATTORI
  • 11. SOMMARIO  Cosa sono gli Use Case  Specifica Use Case  Diagrammi dei Casi d’Uso Use Case: Inclusione Use Case: Estensione Use Case: Generalizzazione  Individuazione Use Case Ingegneria del software mod. A Riccardo Cardin 11
  • 12. SPECIFICA USE CASE  Use Case sono puro TESTO  UML descrive solo gli use case diagram  Specificano l’interazione tra i casi d’uso Caso d’uso: UC1 - Registrazione Attore primario: Utente Precondizioni: L’utente non è ancora autenticato presso il sistema Postcondizioni: L’utente possiede un’account presso il sistema, contraddistinto da una username e da una password Scenario principale: 1. L’utente accede al sistema 2. L’utente seleziona la funzionalità "Registrati" 3. L’utente inserisce una username univoca nel sistema 4. L’utente inserisce una password che rispetta i vincoli imposti Estensioni: a. Nel caso in cui l’utente inserisca una username già censita a sistema: Ingegneria del software mod. A Riccardo Cardin 12 1. L’utente non viene registrato presso il sistema 2. Viene visualizzato un errore esplicativo 3. Viene fornita all’utente la possibilità di scegliere un’altra password
  • 13. SPECIFICA USE CASE  Il valore aggiunto è nel contenuto testuale  Nome/Identificatore  Scenario principale  Scenari alternativi  D’eccezione o errore  Pre-condizioni  Effetti / Garanzia (post-condizioni)  Trigger  Evento scatenante del caso d’uso  Attori principali  Attori secondari Ingegneria del software mod. A Riccardo Cardin 13
  • 14. SPECIFICA USE CASE  Considerazioni  Un solo scenario principale per caso d’uso  Scenari alternativi (0..*)  Prendono in considerazione solo la parte che differisce dallo scenario principale  Granularità  Soddisfa lo scopo di un attore (fare un ordine, …)  Più piccolo di un processo di business  Non fornisce dettagli significativi, non individua le funzionalità del sistema  Kite level  Più grande di una singola operazione su un componente  Dettaglio eccessivo allontana il focus dall’obiettivo  Sea level, Fish level Ingegneria del software mod. A Riccardo Cardin 14
  • 15. SOMMARIO  Cosa sono gli Use Case  Specifica Use Case  Diagrammi dei Casi d’Uso  Use Case: Inclusione  Use Case: Estensione  Use Case: Generalizzazione  Individuazione Use Case Ingegneria del software mod. A Riccardo Cardin 15
  • 16. DIAGRAMMI DEI CASI D’USO  Rappresentazione grafica dei casi d’uso  Mette in evidenza attori e servizi del sistema  Grafo i cui nodi sono  Attori  Use case  Archi del grafo rappresentano  La comunicazione tra gli attori e gli use case  I legami tra gli use case  Relazione di estensione  Relazione di inclusione  Relazione di generalizzazione  Il diagramma individua i confini del sistema nello scenario Ingegneria del software mod. A Riccardo Cardin 16
  • 17. DIAGRAMMI DEI CASI D’USO  Componenti di un diagramma use case Ingegneria del software mod. A Riccardo Cardin 17 Attore Use case Il nome del caso d’uso può essere posizionato dentro o fuori della figura Associazione Inclusione Estensione Generalizzazione «include» «extend» Relazioni
  • 18. DIAGRAMMI DEI CASI D’USO  Esempio Blog  Associazione attore - use case: partecipazione  Comunicazione diretta  Utilizzazione del sistema  DEVE essere descritta anche in versione TESTUALE  Precondizioni e postcondizioni non possono essere desunte Ingegneria del software mod. A Riccardo Cardin 18 UC1 - Registrazione Utente esegue
  • 19. DIAGRAMMI DEI CASI D’USO  Esempio Ingegneria del software mod. A Riccardo Cardin 19 attore soggetto caso d’uso
  • 20. USE CASE: INCLUSIONE  Funzionalità comune fra più use case  Ogni istanza di A esegue B  B è incondizionatamente incluso nell’esecuzione di A  A non conosce i dettagli di B, ma solo i suoi risultati  B non conosce di essere inlcuso da A  Responsabilità esecuzione di B è completamente di A  Evita la ripetizione / Aumenta il riutilizzo Ingegneria del software mod. A Riccardo Cardin 20 A B
  • 21. USE CASE: INCLUSIONE  Esempio Ingegneria del software mod. A Il database deve essere esterno al perimetro del sistema (i.e. Facebook, Twitter)!!! Riccardo Cardin 21
  • 22. USE CASE: ESTENSIONE  Aumento delle funzionalità di un use case A B  Ogni istanza di A può esegue B in modo condizionato  L’esecuzione di B interrompe A  La responsabilità dei casi di estensione è di chi estende (B)  Non rappresenta l’ereditarietà nei linguaggi di progr. Ingegneria del software mod. A Riccardo Cardin 22
  • 23. USE CASE: ESTENSIONE  Estensione  Condizione di estensione  Determina quando l’estensione deve essere utilizzata  Descrizione narrativa e/o icona dello use case  La condizione di estensione è verificata  Può esistere indipendentemente dagli use case estesi  Può estendere più use case base (riuso)  Attenzione al perimetro del caso d’uso esteso  Modifica scenario principale / post condizione  Esempio: gestione dei casi di eccezione Ingegneria del software mod. A Riccardo Cardin 23
  • 24. USE CASE: ESTENSIONE  Esempio Ingegneria del software mod. A Riccardo Cardin 24
  • 25. INCLUSIONE E ESTENSIONE  Aspetti in comune  Fattorizzano comportamenti comuni a più use case  Aumentano il comportamento di un use case base  Differenze  Estensione: l’attore può non eseguire tutte le estensioni  Condizioni non verificate  Inclusione: l’attore esegue sempre tutte le inclusioni  Casi di utilizzo  Inclusione: una funzionalità si ripete in più use case  Estensione: si vogliono descrivere variazioni dalla funzionalità standard Ingegneria del software mod. A Riccardo Cardin 25
  • 26. USE CASE: GENERALIZZAZIONE  Aggiungere o modificare caratteristiche base  Attori  A è generalizzazione di B se B condivide almeno le funzionalità di A  Use Case (più raro)  I casi d’uso figli possono aggiungere funzionalità rispetto ai padri, o modificarne il comportamento  Tutte le funzionalità non ridefinite nel figlio si mantengono in questo come definite nel padre Ingegneria del software mod. A Riccardo Cardin 26 Generalizzazione fra use case Generalizzazione fra attori
  • 27. USE CASE: GENERALIZZAZIONE  Esempio Ingegneria del software mod. A Riccardo Cardin 27
  • 28. USE CASE: ESEMPIO Tripadvisor è un noto sito di viaggi diffuso in tutto il mondo. Per accedervi, è necessario registrarsi fornendo una username e una password. Come in molti altri sistemi, la usename deve essere univoca: il sistema, quindi, non permette ad un nuovo utente di registrarsi utilizzando una username già scelta da un altro utente. All’interno del sito sono presenti le recensioni di numerose attrazioni turistiche, ristoranti, hotel, ecc...Le recensioni sono visibili pubblicamente e possono essere lette anche dagli utenti non registrati. La scrittura delle recensioni è disponibile unicamente per gli utenti registrati. Ogni recensione contiene un giudizio riassuntivo che l’utente inserisce utilizzando le “stelle” (da una a cinque) e da una descrizione di almeno 100 caratteri. Nel caso si cerchi di inserire una recensione di lunghezza inferiore, il sistema avvisa l’utente con un messaggio di errore. È possibile per l’eventuale proprietario dell’attrazione turistica rispondere brevemente ad una recensione, inserendo a sua volta un commento. Il profilo di un utente è caratterizzato oltre che dal suo nome e dalla sua foto, che può essere modificata, dai distintivi che ha ottenuto. I distintivi sono legati al numero di recensioni scritte: ad esempio, dopo 20 recensioni l’utente diviene un “Recensore esperto” e il sistema lo notifica con un messaggio opportuno. È infine possibile collegare il proprio account con il proprio profilo Facebook. In questo caso il sistema notificherà l’utente ogni qualvolta un proprio amico inserisce all’interno di Tripadvisor una recensione. Ingegneria del software mod. A Riccardo Cardin 28
  • 29. USE CASE: ESEMPIO Ingegneria del software mod. A Riccardo Cardin 29
  • 30. SOMMARIO  Cosa sono gli Use Case  Specifica Use Case  Diagrammi dei Casi d’Uso Use Case: Inclusione Use Case: Estensione Use Case: Generalizzazione  Individuazione Use Case Ingegneria del software mod. A Riccardo Cardin 30
  • 31. INDIVIDUAZIONE USE CASE  Definizione del contesto 1. Identificazione attori e responsabilità 2. Identificazione degli obiettivi da raggiungere per ciascun attore  Primi approssimazione use case 3. Valutare attori e use case e raffinarli  Divisione e accorpamento 4. Trovare le relazioni di inclusione 5. Trovare le relazioni di estensione 6. Trovare le relazioni di generalizzazione  «A use case is something that provides some measurable result to the user on an external system» Ingegneria del software mod. A Riccardo Cardin 31
  • 32. INDIVIDUAZIONE USE CASE  Fino a che livello di dettaglio spingersi?  Kite level  Livello molto astratto, definisce macro funzionalità  Sea level  Livello intermedio, utile nella scoperta di funzionalità nascoste  Fish level  Livello di dettaglio, da esso si individuano direttamente i requisiti del sistema  Vediamo un esempio... Ingegneria del software mod. A Riccardo Cardin 32
  • 33. RIFERIMENTI  OMG Homepage – www.omg.org UML Homepage – www.uml.org UML Distilled, Martin Fowler, 2004, Pearson (Addison Wesley)  Learning UML 2.0, Kim Hamilton, Russell Miles, O’Reilly, 2006 Ingegneria del software mod. A Riccardo Cardin 33