Istituto di Scienza e Tecnologie dell'Informazione “A. Faedo”Software Engineering and Dependable Computing Laboratory
LEZIONE 3 LEZIONE 3 USE CASE DIAGRAM USE CASE DIAGRAM &&&& ACTIVITY DIAGRAM ACTIVITY DIAGRAM
Laboratorio di Ingegneria del Software
Guglielmo De Angelis
SOFTWARE ENGINEERING AND DEPENDABLE COMPUTING LABORATORYISTITUTO DI SCIENZA E TECNOLOGIE DELL'INFORMAZIONE “A. FAEDO”
nella puntata precedente
» introduzione alla modellazione» UML è un linguaggio di modellazione» le viste di UML
» use case view» logical view » implementation view » process view » deployment view
SOFTWARE ENGINEERING AND DEPENDABLE COMPUTING LABORATORYISTITUTO DI SCIENZA E TECNOLOGIE DELL'INFORMAZIONE “A. FAEDO”
la famiglia di diagrammi UML
diagrammi per descrivere :» struttura statica del sistema
» structure diagrams» comportamento del sistema
» behavior diagrams» interazioni tra gli oggetti
» interaction diagrams
SOFTWARE ENGINEERING AND DEPENDABLE COMPUTING LABORATORYISTITUTO DI SCIENZA E TECNOLOGIE DELL'INFORMAZIONE “A. FAEDO”
structure diagrams
» class diagram» object diagram» component diagram» deployment diagram» composite structure diagram» package diagram
SOFTWARE ENGINEERING AND DEPENDABLE COMPUTING LABORATORYISTITUTO DI SCIENZA E TECNOLOGIE DELL'INFORMAZIONE “A. FAEDO”
behavior diagram
» state machine diagram» activity diagram» use case diagram» interaction diagrams
» sequence diagram» communication diagram» interaction overview diagram» timing diagram
SOFTWARE ENGINEERING AND DEPENDABLE COMPUTING LABORATORYISTITUTO DI SCIENZA E TECNOLOGIE DELL'INFORMAZIONE “A. FAEDO”
behavior diagram
» state machine diagram» activity diagram» use case diagram» interaction diagrams
» sequence diagram» communication diagram» interaction overview diagram» timing diagram
SOFTWARE ENGINEERING AND DEPENDABLE COMPUTING LABORATORYISTITUTO DI SCIENZA E TECNOLOGIE DELL'INFORMAZIONE “A. FAEDO”
i casi d'uso -1-
» chi e che cosa usa il sistema» funzionalità e modi di uso del sistema
» come le percepisce l’utente» scenari tipici
» un caso d'uso modella l'intero processo di espletamento di una funzionalità:» dal momento dell'intenzione dell'utente del
sistema (generalmente esterno)
» al momento in cui il sistema processa la richiesta e torna un valore (o un ack) all'utente
SOFTWARE ENGINEERING AND DEPENDABLE COMPUTING LABORATORYISTITUTO DI SCIENZA E TECNOLOGIE DELL'INFORMAZIONE “A. FAEDO”
i casi d'uso -2-
» l'approccio alla modellazione a casi d'uso è black box
» non è importante:» come i casi d'uso sono implementati
nel sistema» come il sistema lavora internamente
SOFTWARE ENGINEERING AND DEPENDABLE COMPUTING LABORATORYISTITUTO DI SCIENZA E TECNOLOGIE DELL'INFORMAZIONE “A. FAEDO”
... ma perché e/o per chi?
» capire quali sono le funzionalità che si vogliono nel sistema» committenti (stakeholders)» project manager» progettisti
» individuazione dei requisiti e scelta delle tecniche di modellazione adeguate» progettisti» sviluppatori
» dare indicazioni per il test di sistema» testers» project manager
SOFTWARE ENGINEERING AND DEPENDABLE COMPUTING LABORATORYISTITUTO DI SCIENZA E TECNOLOGIE DELL'INFORMAZIONE “A. FAEDO”
i casi d'uso -3-
» ingredienti:» attori: ruolo o utente della funzionalità (spesso è
una persona fisica)» caso d'uso : descrive un'intera unità funzionale» sistema : oggetto della modellazione» relazioni tra le entità : specificata attraverso un
segmento che collega due o più entità» associazione : relazione semplice» generalizzazione, estensione, inclusione» ogni relazione ha una sua notazione specifica (i.e.
sintassi)» ogni relazione ha una specifica semantica astratta
SOFTWARE ENGINEERING AND DEPENDABLE COMPUTING LABORATORYISTITUTO DI SCIENZA E TECNOLOGIE DELL'INFORMAZIONE “A. FAEDO”
use case diagram – attore -
» un attore specifica un ruolo di interazione con il sistema
» un attore può rappresentare un essere umano, un device, un software, etc etc» in generale un attore può essere una qualsiasi
entità esterna al sistema considerato
SOFTWARE ENGINEERING AND DEPENDABLE COMPUTING LABORATORYISTITUTO DI SCIENZA E TECNOLOGIE DELL'INFORMAZIONE “A. FAEDO”
use case diagram – use case -
uno use case è» (normalmente) incluso in un sistema» correlato con attori tramite relazioni (di
uso, associazioni, generalizzazioni, etc etc)
» ogni relazione sottintendente ad una specifica semantica
» una unità funzionale autonoma » quindi non è associabile ad altri casi di uso
ma solo ad attori
SOFTWARE ENGINEERING AND DEPENDABLE COMPUTING LABORATORYISTITUTO DI SCIENZA E TECNOLOGIE DELL'INFORMAZIONE “A. FAEDO”
use case diagram – use case -
uno use case :» è sempre attivato da un attore
» un attore richiede (direttamente/indirettamente) al sistema di eseguire un caso d'uso
» deve produrre un qualche effetto visibile a uno o più attori» in genere “ritorna un valore” all'attore che lo attiva
» deve esse specificato in modo completo » uno use case è completamente specificato se a seguito della
sua esecuzione, il sistema risulta in uno stato per cui non sono attesi ulterioti input/azioni per il compimento della funzionalità che esso rappresenta
» un errore comuni:» micro use case che non hanno una valenza significativa
dal punto di vista delle funzionalità offerte dal sistema» macro use case che raggruppano funzionalità diverse
SOFTWARE ENGINEERING AND DEPENDABLE COMPUTING LABORATORYISTITUTO DI SCIENZA E TECNOLOGIE DELL'INFORMAZIONE “A. FAEDO”
use case diagram – use case -
SOFTWARE ENGINEERING AND DEPENDABLE COMPUTING LABORATORYISTITUTO DI SCIENZA E TECNOLOGIE DELL'INFORMAZIONE “A. FAEDO”
use case diagram – associazione -
» definisce quale attore (i.e. chi) è coinvolto in quale caso d'uso (i.e. che cosa) del sistema» specifica il solo coinvolgimento nel caso d'uso
non chi compie/subisce azioni sul sistema
» è graficamente rappresentata con una linea » attori associati a use case con cardinalità
maggiore di 1» un attore è coinvolto in più use case di quel tipo» non è specificato se l'interazione è concorrente o
mutuamente esclusiva rispetto al tempo
» è la relazione più usata
SOFTWARE ENGINEERING AND DEPENDABLE COMPUTING LABORATORYISTITUTO DI SCIENZA E TECNOLOGIE DELL'INFORMAZIONE “A. FAEDO”
la relazione di generalizzazione
» è associata ad un concetto molto importante e che viene riusato in molti diagrammi
» per il momento la introduciamo nella sua forma più semplificata
» è una relazioni tra due entità : “padre” e “figlio”
» specifica come un “figlio” estende (specializza) le caratteristiche del “padre”
» le caratteristiche ed i vincoli specificate nel padre sono implicitamente applicati al figlio
» nel corso delle altre lezioni questo concetto verrà ripreso ed esteso
SOFTWARE ENGINEERING AND DEPENDABLE COMPUTING LABORATORYISTITUTO DI SCIENZA E TECNOLOGIE DELL'INFORMAZIONE “A. FAEDO”
use case diagram - generalization -
» vincolo di relazione tra due use case» generic use case: contenente il comportamento comune » specific use case: aggiunge e/o modifica il
comportamento nel caso generale
» specifica come un “figlio” specializza le caratteristiche del “padre”
» le caratteristiche ed i vincoli specificate nel padre sono implicitamente applicati al figlio
» l’esecuzione dei use case “fratelli” è esclusiva»
SOFTWARE ENGINEERING AND DEPENDABLE COMPUTING LABORATORYISTITUTO DI SCIENZA E TECNOLOGIE DELL'INFORMAZIONE “A. FAEDO”
use case diagram - estensione -
» l'estensione può avvenire in uno o punti» specifica come il comportamento degli estendenti
è inserito nel comportamento base» comportamenti vincolati a particolari condizionali o
usi del sistema
SOFTWARE ENGINEERING AND DEPENDABLE COMPUTING LABORATORYISTITUTO DI SCIENZA E TECNOLOGIE DELL'INFORMAZIONE “A. FAEDO”
use case diagram - estensione -
» l'estensione è utile nei seguenti scenari: » il sistema che si sta modellando potrà essere
istanziato con molteplici configurazioni opzionali» l'istanza di un caso d'uso del sistema si compone di
sotto-funzionalità che possono essere non completamente specificate
» il caso d'uso base è definito indipendentemente dagli estendenti» lo use case base modella una interazione “completa”
tra sistema ed attori, il caso d'uso estendente può non avere senso se privato del caso d'uso base
» lo use case estendente può modificare le proprietà dello use case base; ma lo use case base no.
SOFTWARE ENGINEERING AND DEPENDABLE COMPUTING LABORATORYISTITUTO DI SCIENZA E TECNOLOGIE DELL'INFORMAZIONE “A. FAEDO”
use case diagram - inclusione -
» lo scopo primario della relazione include è il riuso di parti comuni
» il comportamento dello use case dipende dal comportamento (esterno) del use case incluso» lo use case incluso è sempre richiesto» concettualmente è simile alla chiamata di
funzioni
SOFTWARE ENGINEERING AND DEPENDABLE COMPUTING LABORATORYISTITUTO DI SCIENZA E TECNOLOGIE DELL'INFORMAZIONE “A. FAEDO”
use case diagram – piccolo esercizio -
provare a riformulare una possibile “interpretazione semantica” delle
relazioni include ed extend in termini insiemistici
SOFTWARE ENGINEERING AND DEPENDABLE COMPUTING LABORATORYISTITUTO DI SCIENZA E TECNOLOGIE DELL'INFORMAZIONE “A. FAEDO”
use case diagram – example 1 -
SOFTWARE ENGINEERING AND DEPENDABLE COMPUTING LABORATORYISTITUTO DI SCIENZA E TECNOLOGIE DELL'INFORMAZIONE “A. FAEDO”
use case diagram – example 2 -
SOFTWARE ENGINEERING AND DEPENDABLE COMPUTING LABORATORYISTITUTO DI SCIENZA E TECNOLOGIE DELL'INFORMAZIONE “A. FAEDO”
use case ... proviamoci!
Si vogliono modellare gli studenti (con nome, cognome, numero di matricola, età), il corso di laurea in cui sono iscritti, ed i corsi di cui hanno sostenuto l'esame, con il professore che ha verbalizzato l'esame, ed il voto conseguito. Di ogni corso di laurea interessa il codice e il nome. Di ogni corso interessa il nome e la disciplina a cui appartiene (ad esempio: matematica, fisica, informatica, ecc.). Di ogni professore interessa codice ed età.
Al momento dell'iscrizione, lo studente specifica il corso di laurea a cui si iscrive. Dopo che uno studente ha sostenuto un esame, il professore comunica l'avvenuta verbalizzazione con i dati relativi (studente, corso, voto).
La segreteria vuole periodicamente fare delle statistiche. In particolare, ogni volta che uno studente verbalizza un nuovo esame, vuole calcolare la media dei voti e del numero di esami sostenuti dallo studente. Inoltre, non appena nel sistema una nuova iscrizione viene effettuata, la segreteria vuole aggiornare il numero di studenti di un corso di laurea.
SOFTWARE ENGINEERING AND DEPENDABLE COMPUTING LABORATORYISTITUTO DI SCIENZA E TECNOLOGIE DELL'INFORMAZIONE “A. FAEDO”
soluzione possibile
SOFTWARE ENGINEERING AND DEPENDABLE COMPUTING LABORATORYISTITUTO DI SCIENZA E TECNOLOGIE DELL'INFORMAZIONE “A. FAEDO”
behavior diagram
» state machine diagram» activity diagram» use case diagram» interaction diagrams
» sequence diagram» communication diagram» interaction overview diagram» timing diagram
SOFTWARE ENGINEERING AND DEPENDABLE COMPUTING LABORATORYISTITUTO DI SCIENZA E TECNOLOGIE DELL'INFORMAZIONE “A. FAEDO”
behavior diagram
» state machine diagram» activity diagram» use case diagram» interaction diagrams
» sequence diagram» communication diagram» interaction overview diagram» timing diagram
SOFTWARE ENGINEERING AND DEPENDABLE COMPUTING LABORATORYISTITUTO DI SCIENZA E TECNOLOGIE DELL'INFORMAZIONE “A. FAEDO”
activity diagram
» attività in un processo generale di workflow» gli activity diagram sono utilizzati per :
» modellare le azioni compiute quando una operazione viene eseguita (sequenza di step).
» modellare il comportamento di un oggetto» descrivere come un insieme di azioni influisce
su un insieme di oggetti» modellare come uno use case è eseguito in
termini di azioni e (cambiamento di stato di) oggetti » modellare un processo di business in termini di
lavoratori (actors), workflows, organizzazioni, e risorse (oggetti)
SOFTWARE ENGINEERING AND DEPENDABLE COMPUTING LABORATORYISTITUTO DI SCIENZA E TECNOLOGIE DELL'INFORMAZIONE “A. FAEDO”
activity diagram – ingredienti principali -
» azioni» relazioni di flusso» nodi di controllo
» nodi decisionali» nodi di esecuzione parallela» nodi di sincronizzazione» nodi di inizio attività» nodi di fine attività» nodi di fine flusso
» contenitori di attività
SOFTWARE ENGINEERING AND DEPENDABLE COMPUTING LABORATORYISTITUTO DI SCIENZA E TECNOLOGIE DELL'INFORMAZIONE “A. FAEDO”
activity diagram – ingredienti principali -
» azioni: rappresentano un singolo “step” nella descrizione di una attività» possono includere una descrizione del
comportamento » attraverso altri modelli UML» attraverso altri tipi di linguaggi (opaque
behavior)
» possono essere collegate al verificarsi di un evento
» generazione di un evento» ricezione di un evento
SOFTWARE ENGINEERING AND DEPENDABLE COMPUTING LABORATORYISTITUTO DI SCIENZA E TECNOLOGIE DELL'INFORMAZIONE “A. FAEDO”
activity diagram – ingredienti principali -
» relazioni di flusso: rappresentano come due o più attività sono collegate» possono aver associato una condizione di
esecuzione» possono aver associato un peso (i.e.
probabilità di transizione)» possono descrivere il flusso di dati tra
attività
SOFTWARE ENGINEERING AND DEPENDABLE COMPUTING LABORATORYISTITUTO DI SCIENZA E TECNOLOGIE DELL'INFORMAZIONE “A. FAEDO”
activity diagram – ingredienti principali -
» nodi di controllo: rappresentano costrutti per la manipolazione dei flussi di controllo» decision node : struttura rami alternativi in un flusso
» merge node : fa confluire flussi alternativi in un unico flusso
» fork node : consente l'esecuzione paralella di più flussi
» join node : sincronizza tutti i flussi entranti nel nodo
» initial node : solo uno per attività
» final node : fine di una attività
» final flow : fine di un flusso ma non dell'attività
SOFTWARE ENGINEERING AND DEPENDABLE COMPUTING LABORATORYISTITUTO DI SCIENZA E TECNOLOGIE DELL'INFORMAZIONE “A. FAEDO”
activity diagram – ingredienti principali -
» activity partitions: in un activity diagram definiscono partizioni di azioni» ogni partizione raggruppa azioni che
condividono caratteristiche comuni» in un “business-model” sono utili nel
modellare la corrispondenza con unità organizzative
» possono essere utilizzate per allocare caratteristiche e/o risorse in funzione delle attività
» non influiscono sul flusso delle attività
SOFTWARE ENGINEERING AND DEPENDABLE COMPUTING LABORATORYISTITUTO DI SCIENZA E TECNOLOGIE DELL'INFORMAZIONE “A. FAEDO”
activity diagram
SOFTWARE ENGINEERING AND DEPENDABLE COMPUTING LABORATORYISTITUTO DI SCIENZA E TECNOLOGIE DELL'INFORMAZIONE “A. FAEDO”
activity diagram - example -
SOFTWARE ENGINEERING AND DEPENDABLE COMPUTING LABORATORYISTITUTO DI SCIENZA E TECNOLOGIE DELL'INFORMAZIONE “A. FAEDO”
activity diagram - example -
SOFTWARE ENGINEERING AND DEPENDABLE COMPUTING LABORATORYISTITUTO DI SCIENZA E TECNOLOGIE DELL'INFORMAZIONE “A. FAEDO”
activity diagram - example -
SOFTWARE ENGINEERING AND DEPENDABLE COMPUTING LABORATORYISTITUTO DI SCIENZA E TECNOLOGIE DELL'INFORMAZIONE “A. FAEDO”
activity diagram - example -
SOFTWARE ENGINEERING AND DEPENDABLE COMPUTING LABORATORYISTITUTO DI SCIENZA E TECNOLOGIE DELL'INFORMAZIONE “A. FAEDO”
activity diagram - example (rejected)-
SOFTWARE ENGINEERING AND DEPENDABLE COMPUTING LABORATORYISTITUTO DI SCIENZA E TECNOLOGIE DELL'INFORMAZIONE “A. FAEDO”
activity diagram – example (accepted) -
SOFTWARE ENGINEERING AND DEPENDABLE COMPUTING LABORATORYISTITUTO DI SCIENZA E TECNOLOGIE DELL'INFORMAZIONE “A. FAEDO”
activity diagram – example (accepted) -
SOFTWARE ENGINEERING AND DEPENDABLE COMPUTING LABORATORYISTITUTO DI SCIENZA E TECNOLOGIE DELL'INFORMAZIONE “A. FAEDO”
activity diagram – example (accepted) -
SOFTWARE ENGINEERING AND DEPENDABLE COMPUTING LABORATORYISTITUTO DI SCIENZA E TECNOLOGIE DELL'INFORMAZIONE “A. FAEDO”
activity diagram – example (accepted) -
SOFTWARE ENGINEERING AND DEPENDABLE COMPUTING LABORATORYISTITUTO DI SCIENZA E TECNOLOGIE DELL'INFORMAZIONE “A. FAEDO”
activity diagram – example (accepted) -
SOFTWARE ENGINEERING AND DEPENDABLE COMPUTING LABORATORYISTITUTO DI SCIENZA E TECNOLOGIE DELL'INFORMAZIONE “A. FAEDO”
activity diagram – example (accepted) -
SOFTWARE ENGINEERING AND DEPENDABLE COMPUTING LABORATORYISTITUTO DI SCIENZA E TECNOLOGIE DELL'INFORMAZIONE “A. FAEDO”
activity diagram – example (accepted) -
SOFTWARE ENGINEERING AND DEPENDABLE COMPUTING LABORATORYISTITUTO DI SCIENZA E TECNOLOGIE DELL'INFORMAZIONE “A. FAEDO”
activity diagram – example (accepted) -
SOFTWARE ENGINEERING AND DEPENDABLE COMPUTING LABORATORYISTITUTO DI SCIENZA E TECNOLOGIE DELL'INFORMAZIONE “A. FAEDO”
activity diagram – example -
SOFTWARE ENGINEERING AND DEPENDABLE COMPUTING LABORATORYISTITUTO DI SCIENZA E TECNOLOGIE DELL'INFORMAZIONE “A. FAEDO”
activity diagram – example -
SOFTWARE ENGINEERING AND DEPENDABLE COMPUTING LABORATORYISTITUTO DI SCIENZA E TECNOLOGIE DELL'INFORMAZIONE “A. FAEDO”
activity diagram - example -
SOFTWARE ENGINEERING AND DEPENDABLE COMPUTING LABORATORYISTITUTO DI SCIENZA E TECNOLOGIE DELL'INFORMAZIONE “A. FAEDO”
considerazioni
» definizione delle guardie
» assunzioni implicite» differenze con tra le varie versioni dello
standard
SOFTWARE ENGINEERING AND DEPENDABLE COMPUTING LABORATORYISTITUTO DI SCIENZA E TECNOLOGIE DELL'INFORMAZIONE “A. FAEDO”
activity diagram ... proviamoci!
modellare tramite un activity diagram i passi essenziali di un processo di stampa:
» un utente può lanciare a stampa un insieme finito di documenti. L'utente controlla il corretto svolgimento delle operazioni per mezzo di una dialog a video.
» la stampa avviene per mezzo di uno spooler.» lo spooler prende in ingresso esclusivamente file
codificati in PS, li processa e li invia sulla stampante fisica.
» il processo di stampa può essere innescato se e solo se c'è sufficiente spazio sul disco che ne consenta l'eventuale codifica nel formato PS.
SOFTWARE ENGINEERING AND DEPENDABLE COMPUTING LABORATORYISTITUTO DI SCIENZA E TECNOLOGIE DELL'INFORMAZIONE “A. FAEDO”
soluzione possibile
Top Related