Catia Trubiani. Laboratorio di Ingegneria del Software a.a

Documenti analoghi
Use Case Diagram. Catia Trubiani. Laboratorio di Ingegneria del Software a.a

LEZIONE 3 USE CASE DIAGRAM && ACTIVITY DIAGRAM

Catia Trubiani. Laboratorio di Ingegneria del Software a.a

Progettazione del Software Analisi

Progettazione del Software

Alcune info sulle prossime lezioni

Proff. Toni Mancini & Monica Scannapieco Dipartimento di Informatica e Sistemistica Università di Roma La Sapienza

Programma operativo Regione Lombardia/Ministero del Lavoro/Fondo Sociale Europeo, Obiettivo 3 Misura C3

Antinisca Di Marco. Laboratorio di Ingegneria del Software a.a

Corso di Ingegneria del Software. Casi d uso

Avete capito fino in fondo il concetto di nodo fine flusso? Che differenza c e tra fine flusso e fine attività? MODEL DIFFERENCES AND EVOLUTION

3.1. CorsodiElementidiBasididati Il modello Entita Relazione (72) vendita ordine studente. Impiegato. Dipartimento. città. Città.

Corso di Laurea Specialistica in Ingegneria Informatica. Corso di Ingegneria del Software A. A Introduzione ad UML E.

Corso di Basi di Dati

UML come abbozzo. Introduzione all UML. UML come linguaggio x programmi. UML come progetto dettagliato

INTRODUZIONE ALLA PROGETTAZIONE. Patrizio Dazzi a.a

Basi di Dati. Modello Concettuale

SOMMARIO. DIAGRAMMI DEI CASI D USO INGEGNERIA DEL SOFTWARE Università degli Studi di Padova. Cosa sono gli Use Case. Specifica Use Case

Vincoli. In ogni schema E/R sono presenti dei vincoli Alcuni sono impliciti, in quanto dipendono dalla semantica stessa dei costrutti del modello:

LEZIONE 7 - STATE MACHINE DIAGRAM

Sistemi informativi D B M G

LEZIONE 8 - ESERCITAZIONE DI MODELLAZIONE

Basi di dati (Sistemi Informativi)

Casi d uso. Marina Zanella - Ingegneria del Software UML: Casi d uso 1

Modello Entità - Relazione. Basi di dati. Elena Baralis 2007 Politecnico di Torino D B M G D B M G2 D B M G4 D B M G6. Progettazione di basi di dati

UML UNIFIED MODELING LANGUAGE

Class diagram COMPORTAMENTO associazioni

UML2. Concetti base. Andrea Polini. Laboratorio di Ingegneria del Software Corso di Laurea in Informatica L31 Università di Camerino

D B M G D B M G 2. Sistemi informativi. Progettazione di basi di dati

D B M G D B M G 2. Basi di dati. Progettazione di basi di dati. Elena Baralis 2007 Politecnico di Torino 1. Modello Entità-Relazione

Progettazione Concettuale e Modello di Progetto

2 - Metodologie e modelli per la progettazione di BD. Informatica II Basi di Dati (08/09) Parte 1. Introduzione alla progettazione

Progettare una basi di dati vuole dire progettare la struttura dei dati e le applicazioni

Il modello Entità-Relazioni (entity-relationship)

Corso di Informatica

Traccia delle soluzioni. Si consideri il seguente enunciato: Spett Ditta,

Il Project Management nei progetti IT. La fase di Analisi. Ing. Giulio Destri. Università degli Studi di Parma Corso di Laurea in Informatica

La progettazione concettuale

Progettare una base di dati. Progettare una base di dati

SISTEMI INFORMATIVI GEOGRAFICI (GIS)

Informatica Industriale Modello funzionale: Informazione Modello Entità-Relazione

Metodologie e Modelli di Progetto

2. Modellazione dei casi d uso

Riuso di classi. Ereditarietà. Ereditarietà. Spesso si ha bisogno di classi simili

I Diagrammi di Flusso OO

Casi d uso: esercizi

Introduzione ai casi d uso

Corso di Ingegneria del Software. Esempi di casi d uso

UML Introduzione a UML Linguaggio di Modellazione Unificato. Corso di Ingegneria del Software Anno Accademico 2012/13

diagrammi entità-relazioni

Unità A2. Progettazione concettuale. Obiettivi. Astrazione. Astrazione per aggregazione

LEZIONE 5 SEQUENCE DIAGRAM

Fondamenti di Informatica II 21. Standard UML

Modello Entità-Relazione

CLASS DIAGRAM PARTE 1

Modello Entità-Relazione

Relazioni. Andrea Polini. Laboratorio di Ingegneria del Software Corso di Laurea in Informatica L-31 Università di Camerino

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

UML GML- Classi di Oggetti

Programmi e Oggetti Software

Redazione e Presentazione di Progetti Informatici

Programmi e Oggetti Software

Un linguaggio per la rappresentazione formale di vincoli su scenari d'uso

Progettazione del Software

Corso di Basi di Dati

Perché preoccuparci?

Basi di Dati. Definizione del Modello Concettuale dei Dati: Concetti Fondamentali

Programmazione a Oggetti Modulo B

Tecniche di sviluppo di progetti. Lezione 4: Diagrammi UML

UML I diagrammi implementativi

Unified Modeling Language (UML)

Progetto concettuale delle basi di dati

La progettazione concettuale

Programma operativo Regione Lombardia/Ministero del Lavoro/Fondo Sociale Europeo, Obiettivo 3 Misura C3

Unità Due. Modello E/R

Ingegneria del Software

Corso di Ingegneria del Software. Modelli di produzione del software

Concetti Generali. Requisiti Software. Definizione di Requisiti

Fondamenti d Informatica: linguaggi formali. Barbara Re, Phd

Corso di Ingegneria del Software. Modelli di produzione del software

Corso di Laurea in Informatica Basi di Dati a.a

La progettazione logica Traduzione dal modello Entità-Associazione al modello relazionale Anno accademico 2008/2009

Progettazione di Basi di Dati

Introduzione alle basi di dati: Il modello concettuale

Fase di Analisi Class Diagram. Esercizi

Progettazione e pianificazione

Activity Diagrams (lezione 3)

Esercitazione di Basi di Dati

Ma: progettazione dei dati progettazione delle applicazioni. Progettazione di basi di dati

Laboratorio di Basi di Dati

Fondamenti di Informatica

LEZIONE 2 I LINGUAGGI DI MODELLAZIONE && UML

Progettazione Concettuale/1

SOMMARIO DIAGRAMMI DEI CASI D USO

Modellazione di sistemi software

Entità. Relazioni. Cardinalità delle relazioni. Ogni entità ha un nome che la identifica

Laboratorio di Basi di Dati

Transcript:

Università degli Studi dell Aquila Laboratorio di Ingegneria del Software a.a. 2013-2014 Catia Trubiani Dipartimento di Ingegneria e Scienze dell'informazione e Matematica (DISIM) - Università degli Studi dell Aquila catia.trubiani@univaq.it

Use Case Diagram Gli use case diagrams servono per modellare le funzionalità e i modi d uso del sistema - come le funzionalità sono percepite dall utente - quali sono gli scenari tipici Un caso d'uso modella l'intero processo di esecuzione di una funzionalità del sistema: - dal momento in cui viene espressa l'intenzione di utilizzo da parte dell'utente del sistema - al momento in cui il sistema processa la richiesta e torna un valore (o un ack) all'utente 2

Obiettivi degli use cases 1- Per decidere e descrivere i requisiti funzionali del sistema, risultante in un accordo tra le parti interessate e gli sviluppatori che lo implementano 2- Per dare una descrizione chiara e coerente di ciò che il sistema dovrebbe fare in modo che il modello può essere utilizzato in tutto il processo di sviluppo per comunicare a tutti gli sviluppatori tali requisiti 3- Per fornire una base per l'esecuzione di test di sistema che verificano che il sistema funzioni in modo appropriato e convalidarlo. Il sistema finale esegue effettivamente le funzionalità inizialmente richieste? 4- Per fornire la capacità di rintracciare i requisiti funzionali nelle effettive classi ed operazioni del sistema. Per semplificare le modifiche ed estensioni al sistema modificando il caso d'uso e quindi l'analisi del casi d'uso interessati nella progettazione e implementazione del sistema. 3

Use case L'approccio alla modellazione a casi d'uso è black box: viene specificato quali sono le funzionalità ma non sono forniti i dettagli implementativi. Non è importante: - come i casi d'uso sono implementati nel sistema - come il sistema lavora internamente 4

... ma perché e/o per chi? Quali sono le funzionalità del sistema? Possono essere specificate da più utenti: - committenti (stakeholders) - project managers - progettisti Quali sono i requisiti del sistema? Bisogna definire tecniche di modellazione adeguate: - progettisti - sviluppatori Dare indicazioni per il test di sistema - testers - project managers 5

Use case diagram Il sistema rappresenta l oggetto della modellazione Cosa serve per definire un use case diagram: - attori: ruolo o utente della funzionalità (spesso è una persona fisica) - caso d'uso: descrive un'intera unità funzionale - relazioni tra le entità: specificata attraverso un segmento che collega due o più entità associazione, generalizzazione, estensione, inclusione Ogni relazione ha una sua notazione specifica (sintassi) Ogni relazione ha una sua specifica astratta (semantica) 6

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. In generale un attore può essere una qualsiasi entità esterna al sistema considerato 7

Use case diagram -use case- (1/3) Uno use case è - (normalmente) incluso in un sistema - correlato con attori tramite relazioni (di uso, associazioni, generalizzazioni, etc.) - ogni relazione sottintendente ad una specifica semantica - un unità funzionale autonoma quindi non è associabile ad altri casi di uso ma solo ad attori 8

Use case diagram -use case- (2/3) 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 ulteriori input/azioni per completare la funzionalità che esso rappresenta 9

Use case diagram -use case- (3/3) La parte più difficile è decidere il livello di specifica delle funzionalità del sistema Errori 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 10

Relazione di -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 E graficamente rappresentata con una linea Attori associati a use case con cardinalità maggiore di 1 - un attore è coinvolto in più use cases di quel tipo - non è specificato se l'interazione è concorrente o mutuamente esclusiva rispetto al tempo E la relazione più usata 11

Un esempio di -associazione- l attore inventory manager è in relazione di associazione con il caso d uso manage media associazione 12

Relazione di -generalizzazione- E associata ad un concetto molto importante e che viene riusato in molti diagrammi E una relazioni tra due entità : padre e figlio, vale a dire che specifica come un figlio estende (specializza) le caratteristiche del padre Le caratteristiche ed i vincoli specificate nel padre sono implicitamente applicati al figlio 13

Un esempio di -generalizzazione- (1/2) generalizzazione di attori Quando diversi attori, come parte dei loro ruoli, svolgono anche un ruolo più generale, allora si usa la relazione di generalizzazione. Il comportamento del ruolo generale è descritto in una superclasse attore. Gli attori specializzati ereditano il comportamento della superclasse ed estendono tale comportamento in qualche modo. 14

Relazione di -generalizzazione- Vincolo di relazione tra due use cases - 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 di use case fratelli è esclusiva 15

Un esempio di -generalizzazione- (2/2) I casi d uso «figli» non si limitano a riutilizzare le stesse procedure del padre (nel qual caso si avrebbe la relazione di -inclusione-), ma modificano il comportamento in qualche modo generalizzazione di casi d uso 16

Relazione di -estensione- L'estensione può avvenire in uno o più punti: - specifica come il comportamento dei casi d uso che estendono è inserito nel comportamento base - comportamenti vincolati a particolari condizionali o casi d uso del sistema 17

Relazione di -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 sottofunzionalità che possono essere non completamente specificate - il caso d'uso base è definito indipendentemente dai casi d uso che lo estendono - 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, mentre lo use case base no 18

Un esempio di -estensione- Il caso d'uso base descrive il comportamento essenziale e non è a conoscenza di alcun caso d'uso specifico che lo estende, tuttavia c è la possibilità di essere esteso. estensione 19

Relazione di -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 20

Un esempio di -inclusione- L'idea della relazione di -inclusione- è quella di modellare il comportamento comune, come ad esempio informazioni di login, che molti casi d uso dipendono o comprendono altri casi d uso. Questa relazione incoraggia il riutilizzo e il progettista dovrebbe tenere questo in mente quando utilizza questa relazione. inclusione 21

22 Un esempio di Use case diagram

23 Un esempio di Use case diagram

24 Un esempio di Use case diagram

25 Un esempio di Use case diagram

26 Un esempio di Use case diagram

27 Un esempio di Use case diagram

28 Un esempio di Use case diagram

29 Un esempio di Use case diagram

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. 30

31 Una possibile soluzione

Questions? catia.trubiani@univaq.it 32