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

Documenti analoghi
Progettazione del Software Analisi

Progettazione del Software

Progettazione del Software

Catia Trubiani. Laboratorio di Ingegneria del Software a.a

Progettazione del Software

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

Corso di Ingegneria del Software. Casi d uso

Fase di Analisi Class Diagram. Esercizi

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

Progetto PI , passo A.3 versione del 28 marzo 2007

Progettazione del Software A.A.2008/09

Corso di Progettazione del Software

Progetto PC versione del 11 gennaio 2008

LEZIONE 3 USE CASE DIAGRAM && ACTIVITY DIAGRAM

Analisi dei Casi d Uso

LEZIONE 7 - STATE MACHINE DIAGRAM

Progetto PI , passo A.3 versione del 6 febbraio 2007

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

Fase di Analisi Class Diagram. Esercizi

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

Progettazione del Software Anno Accademico 2007/08

Progetto PC versione del 20 settembre 2007

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

Corso di Progettazione del Software

Corso di Ingegneria del Software. Esempi di casi d uso

Basi di Dati. Modello Concettuale

Progetto PI , passo A.1 versione del 6 febbraio 2007

Progetto PC versione del 22 aprile 2008

I Diagrammi di Flusso OO

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

Il modello Entità-Relazioni (entity-relationship)

Progetto PI , passo A.1 versione del 16 marzo 2007

Progettazione del Software

Progettazione del Software

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

AUTOMA A STATI FINITI

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

2. Modellazione dei casi d uso

Vincenzo Gervasi, Laura Semini Ingegneria del Software Dipartimento di Informatica Università di Pisa

U.D. 3 : Il digramma E/R Prof. Di Capua G.

Class diagram COMPORTAMENTO associazioni

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

Corso di Progettazione del Software

Microsoft Visio 2002 UML Sergio Colosio

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

Introduzione. Corso di Tecniche di Simulazione, a.a. 2005/2006. Francesca Mazzia. Dipartimento di Matematica Università di Bari.

Progettazione del Software

Esercitazione 3. Vincoli di integrità. Approccio Procedurale

UML UNIFIED MODELING LANGUAGE

CLASS DIAGRAM PARTE 1

Le basi di dati. Lez. 2: Progettazione di un DB. Laboratorio di informatica gestionale

Prima di iniziare. Diamo qualche definizione :

Macchine sequenziali. Automa a Stati Finiti (ASF)

Progettazione e pianificazione

Ingegneria del Software 4. Introduzione a UML. Dipartimento di Informatica Università di Pisa A.A. 2014/15

Progettazione del Software. Emiliano Casalicchio. Dipartimento di Informatica e Sistemistica SAPIENZA Università di Roma Sede di Rieti

Corso di Progettazione del Software

SOMMARIO. DIAGRAMMI DI SEQUENZA INGEGNERIA DEL SOFTWARE Università degli Studi di Padova. Introduzione. Partecipanti e messaggi.

SAPIENZA Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Ingegneria del Software 8. Diagrammi di attività. Dipartimento di Informatica Università di Pisa A.A. 2014/15

1 Catena di officine, versione 2

Catia Trubiani. Laboratorio di Ingegneria del Software a.a

Unified Modeling Language (UML)

Progettazione del Software, Laurea in Ingegneria Gestionale Progettazione del Software Laurea in Ing. Gestionale

Laboratorio di Progettazione di Sistemi Software UML per Design Patterns e Refactoring

Note sugli Statechart Diagrams

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

Modello Entità-Relazione (E-R)

diagrammi entità-relazioni

Casi d uso: esercizi

Somma 3-bit. somma 3-bit con I/O sequenziale. somma 3-bit con I/O sequenziale. Osservazione

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

Chiarimenti sugli schemi di progettazione in relazione ai compiti scritti di Basi di Dati

S.I.T. PER LA VALUTAZIONE E GESTIONE DEL TERRITORIO Corso di Laurea Magistrale in Scienze Ambientali. Alessandra Raffaetà

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

Progettazione Logica e Modello Realizzativo

Informatica Industriale Modello funzionale: Informazione Modello Entità-Relazione

Progettazione concettuale di una base di dati

Progetto PC versione del 2 aprile 2008

Corso di Basi di Dati

Modello Entità-Relazione

Automa a Stati Finiti (ASF)

Ingegneria del Software 16. Progettazione dettaglio. Dipartimento di Informatica Università di Pisa A.A. 2014/15

Raccolta e analisi dei requisiti

Programmi e Oggetti Software

Basi di dati (Sistemi Informativi)

Modello Entità-Relazione

Progettazione concettuale usando il modello Entità-Relazione (ER)

Università degli Studi di Roma La Sapienza, Facoltà di Ingegneria. Corso di INGEGNERIA DEL SOFTWARE (Ing. Informatica, Nuovo Ordinamento)

Tecniche di sviluppo di progetti. Lezione 4: Diagrammi UML

PROGETTAZIONE CONCETTUALE

Modularizzazione del software

Il modello Entità/Relazioni (ER)

Fondamenti di Informatica

Introduzione alle basi di dati: Il modello concettuale

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Transcript:

Università di Roma La Sapienza Facoltà di Ingegneria - Laurea in Ing. Gestionale Progettazione del Software Proff. Toni Mancini & Monica Scannapieco Dipartimento di Informatica e Sistemistica Università di Roma La Sapienza S.A.2 - Diagrammi UML degli use-case e degli stati e transitioni Versione del January 26, 2007 1

Il diagramma degli use case Ricordiamo che lo schema concettuale è costituito da: Diagramma delle classi e degli oggetti Diagramma degli use case Diagramma degli stati e delle transizioni Il diagramma degli use-case descrive le funzionalità fondamentali che il sistema deve realizzare, in termini di scenari di utilizzo del sistema 2

Use case Uno use case rappresenta una tipica interazione tra un utente ed il sistema software da realizzare. Uno use case cattura una qualche funzione visibile dall utente, e la sua descrizione si ottiene attraverso l interazione tra analista ed utente in fase di raccolta di requisiti. In altre parole, uno use case definisce un particolare modo di utilizzare il sistema, il quale offre servizi e funzionalità in risposta a eventi prodotti da attori esterni. 3

Use case Uno use case modella un processo (o un insieme di processi) che è trasversale rispetto alle classi, cioè coinvolge più classi allo stesso livello, e sarebbe una forzatura modellarlo come una operazione di una singola classe. Uno use case è in genere composto da diverse operazioni, che non vengono definite in modo dettagliato nel diagramma. Vedremo, quando parleremo di specifica di uno use case, come queste operazioni vengono definite. 4

Use Case: Attori Uno use case è formulato sulla base delle funzionalità offerte dal sistema così come sono percepite dagli utenti. Oltre agli use case, un altro componente fondamentale del diagramma degli use case è l attore. Un attore è un ruolo che un utente (una persona o un sistema esterno) gioca interagendo con il sistema. Lo stesso utente può essere rappresentato da più di un attore (può giocare più ruoli). Più utenti possono essere rappresentati dallo stesso attore. 5

Use case: diagramma Un diagramma degli use case è un grafo i cui nodi possono essere Attori Use Case mentre gli archi rappresentano la comunicazione tra gli attori e gli use case, i legami d uso tra use case l estensione di uno use case da parte di un altro la generalizzazione di uno use case da parte di un altro 6

Componenti di un diagramma degli use case associazione inclusione include Use Case Attore estensione generalizzazione extend Relazioni nel diagramma degli use case 7

Associazione La partecipazione di un attore ad uno use case è rappresentata da un arco di associazione (con un nome) tra il simbolo dell attore e il simbolo di use case. In generale, questo significa che l attore comunica con lo use case. esegue Analisi di mercato Pianificatore Finanziario 8

Esempio di diagramma degli use case Studente chiede-iscrizione Questo use case descrive la funzione mediante la quale uno studente si iscrive ad un corso professionale fattura Sistema di Fatturazione Iscrizione ad un corso Sistema esterno responsabile della fatturazione per l iscrizione ai corsi 9

Inclusione Una relazione d inclusione tra use case è rappresentata da una freccia tra lo use case che include e quello che è incluso. La freccia è etichettata con include. Una relazione d inclusione da uno use case A ad uno use case B, indica che ogni istanza dello use case A includerà anche il comportamento specificato per lo use case B. In altre parole, qualche funzionalità di A richiede di servirsi di qualche funzionalità di B. Analisi di mercato include Stampa rapporti 10

Estensione La relazione estende tra use case è rappresentata da una freccia etichettata con extend dallo use case che definisce l estensione allo use case base. La relazione extend tra uno use case A ed uno use case B indica che ogni istanza di B, in condizioni particolari, viene esteso con le funzionalità di una istanza di A. Per uno stesso use case, i comportamenti definiti attraverso diverse estensioni possono occorrere all interno di ogni singola sua istanza. 11

Esempi di extend e include Studente chiede-iscrizione include Verifica pagamento include Controllo utente fattura Sistema di Fatturazione Iscrizione ad un corso extend Calcola sconto 12

Generalizzazione La generalizzazione si applica sia ad attori sia a use case. Un attore A è generalizzazione di un attore B quando B è visto come un caso particolare di A. Analogamente, uno use case A è generalizzazione di uno use case B quando B è visto come un caso particolare di A. Il concetto di generalizzazione è simile a quello usato nel diagramma delle classi. 13

Esempi di extend, include e generalizzazione Studente chiede-iscrizione include Verifica pagamento include Controllo utente Studente convenzionato fattura Sistema di Fatturazione Iscrizione ad un corso extend Calcola sconto Controllo password Controlli documenti presentati 14

Aspetti metodologici nella costruzione del diagramma degli use case Un metodo comunemente usato per costruire il diagramma degli Use Case prevede i seguenti passi Individua gli use case generali di interesse Individua gli attori Individua le associazioni tra attori e use case Individua altri use case, più specifici, se ce ne sono Determina le relazioni include tra use case Individua le generalizzazioni tra attori e tra use case, Individua le relazioni extend tra use case Controllo di qualità Correggi, modifica, estendi 15

Controllo di qualità del diagramma degli use case Sono stati colti tutti gli aspetti insiti nei requisiti? Sono state individuate tutte le associazioni e tutte le generalizzazioni? Ci sono ridondanze nel diagramma? È alta la coesione dei singoli use case? È basso l accoppiamento tra diversi use case? 16

Esercizio 7 Tracciare il diagramma degli use case corrispondenti alle seguenti specifiche: 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 l effettuazione di un esame, il professore comunica l avvenuta verbalizzazione dell esame con i dati relativi (studente, corso, voto). La segreteria vuole periodicamente calcolare la media dei voti di uno studente, il numero di studenti di un corso di laurea, e la media del numero di esami sostenuti per gli studenti di un corso di laurea. 17

Esercizio 7: soluzione Studente iscrizione Iscrizione a corso di laurea include Media voti effettua Controlli include Numero studenti Segreteria include Numero esami Professore verbalizza Verbalizzazione 18

Il diagramma degli stati e delle transizioni Il diagramma degli stati e delle transizioni viene definito per una classe, ed intende descrivere le leggi che governano l evoluzione degli oggetti di quella classe. Uno stato rappresenta una situazione in cui un oggetto ha un insieme di proprietà considerate stabili Una transizione modella un cambiamento di stato ed è denotata da: Evento [Condizione] / Azione 19

Il diagramma degli stati e delle transizioni S1 E [C] A S2 Il significato di una transizione del tipo di quella qui mostrata è: Se l oggetto si trova nello stato S 1, e Se si verifica l evento E, e Se la condizione C è verificata Allora viene eseguita l azione A e l oggetto passa nello stato S 2. 20

Gli stati Lo stato di un oggetto racchiude le proprietà (di solito statiche) dell oggetto, più i valori correnti (di solito dinamici) di tali proprietà Una freccia non etichettata che parte dal vuoto ed entra in uno stato indica che lo stato è iniziale Una freccia non etichettata che esce da uno stato e finisce nel vuoto indica che lo stato è finale Stato iniziale e finale possono anche essere denotati da appositi simboli stato iniziale stato finale 21

Transizione Ogni transizione connette due stati Il diagramma corrisponde ad un automa deterministico (transizioni dallo stesso stato hanno eventi diversi), in cui un evento è un input, mentre un azione è un output La condizione è detta anche guardia (guard) L evento è (quasi) sempre presente (condizione e azione sono opzionali) A E[C]/a SI B A e1/a1 e1/a1 B e/a NO C A 22

Nota sugli esempi I diagrammi degli stati e transizioni possono essere usati con successo anche per modellare le leggi che regolano l evoluzione di un oggetto fisico (oltre che degli oggetti di una classe di un sistema SW). Per facilitare la comprensione della semantica di tali diagrammi, saranno mostrati alcuni esempi che modellano l evoluzione di sistemi che difficilmente possono essere considerati istanze di classi presenti in un diagramma delle classi UML. In seguito e nei progetti invece, sarà mostrato l uso dei diagrammi degli stati e transizioni nel contesto della Progettazione del SW. 23

Esempio di diagramma degli stati e delle transizioni Descriviamo il diagramma degli stati e delle transizioni relativa ad una caldaia. In questo diagramma ogni transizione è caratterizzata solamente da eventi e condizioni (i cambiamenti di stato non hanno bisogno di azioni perché sono automatici) off on [acqua non gelata] fine-accensione spento inizio scalda_acqua off off temperatura desiderata temperatura inferiore caldo temperatura desiderata 24

Esempio di diagr. degli stati e delle transizioni per un motore (1) Tracciare il diagramma degli stati e delle transizioni a partire da questi requisiti che modellano il funzionamento di un motore per automobili. Il motore può essere spento o acceso, ma può essere avviato o spento solo se la marcia è in folle. 25

Esempio di diagramma degli stati e delle transizioni per un motore (2) Motore spento avvia [marcia in folle] spegni [marcia in folle] Motore acceso 26

Il diagramma degli stati e delle transizioni Alcune volte vogliamo rappresentare dei processi che l oggetto esegue senza cambiare stato. Questi processi si chiamano attività, e si mostrano negli stati con la notazione: Esempio: spento do / attività on / accende-spia off / accende-spia acceso do/scalda-acqua 27

Stato composto Uno stato composto (o macro-stato) è uno stato che ha un nome, e che contiene a sua volta un diagramma Esiste uno stato iniziale del macro-stato I sottostati ereditano le transizioni in uscita del macro-stato Dal folle posso andare solo in prima MarciaAvanti LevaD Folle Prima LevaR LevaN accelera LevaN decelera Seconda RetroMarcia accelera decelera Terza Posso andare in folle dalla prima, dalla seconda o dalla terza 28

Esercizio 8 Le entità di interesse nel sistema da progettare sono bambini di un asilo e le loro maestre. In particolare, al momento dell iscrizione, ad ogni bambino (di cui interessa il nome) gli viene assegnato un codice scolastico (una stringa); l iscrizione viene completata dal successivo assegnamento del bambino ad una maestra. In seguito, ad ogni bambino viene assegnata e periodicamente aggiornata una valutazione (da 1 a 8) sul suo livello di esuberanza. Quando tale livello supera 6 il bambino viene considerato problematico. Il responsabile dell asilo vuole poter conoscere se una maestra è a rischio esaurimento nervoso, ovvero ha, nella sua classe, almeno il 50% dei bambini problematici. 29

Soluzione esercizio 8 (1) Diagramma delle classi concettuale: Bambino nome : stringa codice : stringa valutazione : 1..8 0..* assegnato 1..1 Si veda il diagr. stati/trans. Maestra nome: stringa Diagramma gli stati e transizioni per la classe Bambino: assegna_codice HaCodice valut > 6 valut <= 6 Iscritto valut <= 6 HaValutaz assegna_maestra Problematico NonProblem valut > 6 30

Soluzione esercizio 8 (2) Diagramma dello use-case: Reponsabile asilo effettua Controlli maestre 31

Osservazione: sottoclassi che rappresentano stati In alcuni casi, sottoclassi di una classe C possono rappresentare particolari stati nei quali possono trovarsi le istanze di C. Ad esempio, si consideri il seguente frammento di specifica dei requisiti: Si vuole modellare una catena di officine che riparano veicoli... Per quanto riguarda le riparazioni, sono dati di interesse il codice, il veicolo (modello, tipo, targa, anno di immatricolazione e proprietario), la data ed ora di accettazione e quella di riconsegna (per le riparazioni terminate). 32

...sottoclassi che rappresentano stati In realtà, quello che vorremmo modellare è che: 1. Le istanze di classe Riparazione, durante il loro ciclo di vita, cambiano la loro natura, passando da riparazioni in corso a riparazioni terminate 2. Delle istanze che rappresentano riparazioni terminate, interessa conoscere ulteriori informazioni (data ed ora di riconsegna), rispetto alle altre. Creando la sottoclasse RiparazTerm abbiamo tenuto conto solo del punto 2. Per modellare le regole che governano il ciclo di vita degli oggetti di classe Riparazione (punto 1) dobbiamo prevedere per questa classe anche un diagramma degli stati e transizioni. A fronte dell evento registrariparazione, la classe più specifica alla quale l istanza appartiene cambia! 33

Aspetti metodologici nella costruzione del diagramma degli stati e delle transizioni Un metodo comunemente usato per costruire il diagramma degli stati e delle transizioni prevede i seguenti passi Individua gli stati di interesse Individua le transizioni Individua le attività Determina gli stati iniziali e finali Controllo di qualità Correggi, modifica, estendi 34

Controllo di qualità del diagramma degli stati e delle transizioni Sono stati colti tutti gli aspetti insiti nei requisiti? Ci sono ridondanze nel diagramma? Ogni stato può essere caratterizzato da proprietà dell oggetto? Ogni azione e ogni attività può corrispondere ad una operazione della classe? Ogni evento e ogni condizione può corrispondere ad un evento o condizione verificabile per l oggetto? 35