Ingegneria del Software (Ing.Informatica Nuovo Ord.) Canale M-Z / A.A. 2005-06 Marco Cadoli Università di Roma La Sapienza Dipartimento di Informatica e Sistemistica TERZA PARTE Analisi dei requisiti e definizione delle specifiche Sezione II: Complementi di UML Versione definitiva Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 1
TERZA PARTE Analisi e specifica dei requisiti I. Concetti fondamentali dell analisi e specifica dei requisiti II. Complementi di UML Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 2
II. Complementi di UML II.1. Ripasso di UML II.2. Diagramma delle attività II.3. Altri diagrammi Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 3
II.1. Ripasso di UML Come si è arrivati alla convergenza dei metodi Rassegna dei principali diagrammi di UML Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 4
La convergenza dei metodi anni 80 compaiono le prime metodologie OO 1989-1994 vengono presentati oltre 50 linguaggi di modellazione OO 1994 Grady Booch e Jim Rumbaugh iniziano il loro lavoro di unificazione: Booch+OMT 1995 viene presentato Unified Method 0.8, nello stesso anno si unisce Ivar Jacobson portando il suo OOSE 1995 inizia l unificazione degli approcci Booch, OMT e OOSE Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 5
La convergenza dei metodi (2) 1996 vengono rilasciate le versioni UML (Unified Modeling Language) 0.9 e 0.91. Durante lo stesso anno molti altri partner si uniscono a supportare UML 1997 viene rilasciata la versione UML 1.0 e OMG lo adotta come standard giugno 1999 - : 1.1, 1.2, 1.3, Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 6
La convergenza dei metodi (3) Publication of UML 1.3 June 99 UML 1.3 Industrialization Publication of UML 1.1 September 97 UML 1.1 Standardization Publication of UML 1.0, Jan 97 UML 1.0 public feedback June 96 & Oct 96 OOPSLA 95 UML 0.9 & 0.91 Unified Method 0.8 UML Partners Expertise Unification Booch 93 OMT - 2 Other methods Booch 91 OMT - 1 OOSE Fragmentation Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 7
Alcuni strumenti che usano UML Tool Composer ObjectTeam Paradigm Plus Rose Select System Architect Visio 2000 ArgoUML Azienda Texas Instruments Cayenne Platinum Rational Select Popkin Microsoft Open source Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 8
I principali diagrammi di UML Progettazione del SW 1 1,7,8: Diagrammi statici 2..6: Diagrammi comportamentali 1. Class Diagram 2. Use Case Diagram 3. State&Transition Diag. 4. Activity Diagram 5. Sequence Diagram 6. Collaboration Diagram 7. Component Diagram 8. Deployment Diagram Struttura statica Interazione con l utente Ciclo di vita di un oggetto Attività e sincronizzazione Interazione fra gruppi di oggetti Realizzazione di classi Risorse HW Design model Implementation/ Architectural model Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 9
Diagrammi di UML: class Illustra gli elementi statici di un modello assieme alle loro proprietà caratteristiche e alle relazioni tra di loro intercorrenti Studente Nome: stringa Cognome: stringa Matricola: int Età: int Esame Corso Nome: stringa Disciplina: stringa {complete} corso di laurea Professore Codice: stringa Età: int Voto: 18..30 Base Crediti: intero Specialistico Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 10
Diagrammi di UML: use case Uno Use Case: rappresenta una tipica interazione tra un attore (persona o sistema esterno) ed il sistema software da realizzare cattura una qualche funzione visibile dall utente la sua descrizione si ottiene attraverso l interazione tra analista e cliente in fase di analisi Studente chiede-iscrizione fattura Sistema di Fatturazione Iscrizione ad un corso Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 11
Diagrammi di UML: state & transition Illustra il comportamento dettagliato di un singolo oggetto come macchina a stati Esempio: diagramma degli stati e delle transizioni relativo ad una classe UML Caldaia. off spento on [acqua non gelata] inizio fine-accensione in-funzione off off temperatura desiderata temperatura inferiore caldo temperatura desiderata Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 12
II.2. Diagramma delle attività Differenze rispetto al diagramma degli stati e delle transizioni Esempi Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 13
Diagrammi di UML: state & activity State (o statechart o state and transition) diagram Illustra il comportamento dettagliato di un singolo oggetto come macchina a stati Prende spunto (con significative modifiche) dal modello classico di automa a stati finiti Activity Diagram Descrive processi paralleli Coinvolge più oggetti Prende spunto dal modello delle reti di Petri Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 14
Diagramma delle attività Un diagramma delle attività (activity diagram) può essere visto come un caso particolare di diagramma degli stati e delle transizioni per il quale tutti (o la maggior parte) degli stati sono activity state (stati in cui viene svolta un attività) Un diagramma delle attività è tipicamente associato ad una o più classi UML. In alcuni casi può essere associato ad un metodo Permette di concentrarsi sul flusso di controllo definito dalle elaborazioni interne (complementare a quello definito dagli eventi esterni) I diagrammi delle attività permettono di rappresentare processi paralleli e la loro sincronizzazione Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 15
Diagramma delle attività (2) Questi diagrammi sono utili per rappresentare comportamenti sequenziali, non determinismo, concorrenza, sistemi distribuiti, business workflow. Il diagramma delle attività deve essere utilizzato quando la maggioranza degli eventi da rappresentare sono la terminazione delle azioni. Viceversa, il diagramma degli stati e delle transizioni deve essere usato nei casi in cui accadono eventi asincroni. Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 16
Esempio Questo diagramma mostra le varie attività che devono essere svolte per bere una bevanda (che può essere caffè o cola) Se la bevanda è caffè devono essere svolte varie attività (di durata non nulla) che hanno bisogno di sincronizzazione e che in alcuni casi possono essere svolte in parallelo. Si noti la presenza di eventi (ad es. light goes out ), condizioni (ad es. [no coffee] ), azioni (ad es. coffeepot.turnon ) Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 17
Commenti sui diagrammi delle attività Dal punto di vista concettuale questi diagrammi sono simili ai diagrammi PERT. In meno, hanno l assenza delle durate per ciascuna attività In più, hanno la possibilità di specificare alcuni aspetti del controllo. Ad esempio, si possono inserire dei nodi di scelta (rombi), simili a quelli nei diagrammi di flusso della programmazione. In particolare, sono ammessi cicli. Per il resto, la sintassi degli elementi grafici (stato iniziale e finale, transizioni, condizioni, azioni) è identica a quella dei diagrammi degli stati e delle transizioni Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 18
Esercizio 1 Tracciare il diagramma delle attività a partire da questi requisiti. La costruzione e commercializzazione di un edificio per uffici inizia con la scelta del sito e prosegue con la commessa ad uno studio di ingegneria che presenta un progetto. Il progetto deve essere sottoposto alle autorità, che lo possono accettare o rifiutare. In quest ultimo caso, il progetto può essere ripresentato. Quando il progetto viene accettato, iniziano sia l opera sul sito sia la ricerca di un ente acquirente. L ente acquirente propone ulteriori (limitati) interventi, che vengono realizzati. Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 19
Responsabilità Oggetto responsabile per un azione L oggetto responsabile per l esecuzione di un azione può essere rappresentato visualizzando la sua linea del tempo di vita e posizionando le azioni di cui è responsabile lungo questa linea. Possono esserci differenti linee per differenti oggetti della stessa classe o di classi diverse. Queste linee prendono il nome di swimlanes (corsie di una vasca per il nuoto). Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 20
Esempio Questo esempio mostra tre swimlanes (cliente, ufficio vendite e magazzino) per i tre oggetti coinvolti nella vendita di un certo prodotto Questo tipo di modellazione viene spesso usato per la modellazione dei cosiddetti business workflow Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 21
Object Flow Flusso degli oggetti Per aumentare la chiarezza delle informazioni scambiate in un diagramma delle attività possono essere rappresentati gli oggetti che sono in ingresso o in uscita ad una azione Stato dell oggetto Quando uno stesso oggetto viene manipolato da più attività successive è possibile rappresentare tutti i collegamenti da e verso l oggetto Per maggiore chiarezza si visualizza lo stesso oggetto più volte in un diagramma, dove ogni immagine rappresenta l oggetto in un differente stato Lo stato dell oggetto può essere descritto in forma testuale Possono essere associati diagrammi degli stati e delle transizioni per gli oggetti evidenziati Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 22
Esempio Vengono evidenziati due oggetti: 1. o, di tipo Order, che può essere in tre stati: aperto evaso chiuso 2. f, di tipo Fattura, che può essere in due stati: non pagata pagata Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 23
II.3. Altri diagrammi Component diagram Deployment diagram Sequence diagram Collaboration diagram Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 24
Diagrammi di UML: component Un componente è una parte di un sistema che realizza un insieme di classi UML. A differenza di una classe UML, il componente è una parte: fisica: costituita da uno o più file (eseguibili, sorgenti, dati), e rimpiazzabile: è possibile sostituirla con un altra che abbia la stessa interfaccia. Il component diagram rappresenta un insieme di componenti del sistema e le loro mutue relazioni. cercafrodi.class Realizza: Frode, Direttiva, Ricerca Nome del componente Descrizione del componente Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 25
Diagrammi di UML: deployment Nodo: elemento fisico che esiste a tempo di esecuzione e rappresenta una risorsa computazionale, dotata di memoria e capacità di processamento dati. Un nodo rappresenta un dispositivo HW su cui può essere allocato (e fatto eseguire) uno o più componenti. Un diagramma di deployment (allocazione, dislocazione, spiegamento) contiene nodi e connessioni fra essi. Nome server <<Ethernet>> chiosco Componenti gestcatasto.exe guicatasto.exe Allocazione <<RS-232>> console Connessione Nodo Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 26
Implementation model L implementation model è la struttura delle parti usate per assemblare e realizzare il sistema fisico. Comprende, tipicamente, I diagrammi: Component, Deployment, Package (non considerato nel corso). Il deployment diagram può mostrare l allocazione effettiva dei componenti ai nodi. Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 27
Interaction Diagrams L interazione tra oggetti può essere presentata in due forme, ciascuna basata sulle stesse informazioni ma in grado di enfatizzare un particolare aspetto: ilsequence diagram, e ilcollaboration diagram. I sequence diagram e i collaboration diagram esprimono le stesse informazioni, ma le rappresentano in modo differente. I sequence diagram illustrano la sequenza esplicita di messaggi e sono più indicati per specifiche real-time e per scenari complessi. I collaboration diagram rappresentano le relazioni tra gli oggetti e sono più indicati per evidenziare tutti gli effetti su un dato oggetto e per la progettazione procedurale. Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 28
Diagrammi di UML: sequence & collaboration Sequence Diagram Rappresenta le interazioni tra gli oggetti disponendole in sequenza Mostra gli oggetti che partecipano all interazione e la sequenza dei messaggi scambiati Collaboration Diagram Illustra le interazioni nel sistema organizzandole attorno agli oggetti e ai legami tra questi oggetti 1: 2: 3: Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 29
Sequence Diagram Un sequence diagram rappresenta un interazione visualizzata rispetto a una sequenza temporale. Esso: mostra gli oggetti che partecipano all interazione in termini del loro tempo di vita e dei messaggi che essi si scambiano, non mostra le relazioni esistenti tra gli oggetti. Sono definiti alcuni formati (leggermente differenti tra loro) da usarsi per enfatizzare differenti aspetti (concorrenza, controllo, creazione e distruzione di oggetti, ricorsione, esecuzione condizionale). Vedremo due esempi, uno relativo ad una conversazione telefonica, ed un altro relativo all evasione di un ordine bibliotecario. Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 30
tempo Esempio 1 oggetti (l ordine è ininfluente) Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 31
Commenti sul sequence diagram L asse orizzontale è quello degli oggetti L asse verticale è quello del tempo Di conseguenza, la vita di un oggetto viene evidenziata dalla sua linea verticale Un oggetto può inviare o ricevere messaggi da altri oggetti È possibile dare un nome all oggetto nei suoi vari stati È possibile annotare il diagramma con vincoli temporali (ad esempio sui tempi di trasmissione e ricezione dei messaggi) Un oggetto può esistere per tutta la durata dell interazione, oppure può essere creato in qualche istante intermedio (quando riceve il messaggio <<create>>) Un oggetto può anche essere distrutto (quando riceve il messaggio <<destroy>>). La distruzione viene evidenziata graficamente con una grande X Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 32
Esempio 2 Cittadino Bibliotecario Catalogo Vita dell oggetto Tessera + Richiesta libro Tessera valida Richiesta libro Tempo Libro in prestito Libro disponibile Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 33
Collaboration diagram Un collaboration diagram rappresenta gli oggetti partecipanti a un interazione ed i loro collegamenti. Diversamente da un sequence diagram, un collaboration diagram rappresenta le relazioni tra gli oggetti. D altra parte, un collaboration diagram non tratta il tempo come una dimensione separata, di conseguenza la sequenza dei messaggi deve essere determinata utilizzando i numeri di sequenza. Un collaboration diagram può essere utilizzato per specificare l implementazione dei costrutti di progetto, ma a questo scopo sono tipicamente necessarie ulteriori informazioni Vedremo l esempio precedente (relativo all evasione di un ordine bibliotecario) nel formato del collaboration diagram Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 34
Collaboration diagram 1: tessera + richiesta libro 2: tessera valida Cittadino Bibliotecario Catalogo 5: libro in prestito 3: richiesta libro 4: libro disponibile Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 35
Soluzioni degli esercizi Terza parte, sezione II Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 36
Soluzione esercizio 1 Scelta sito Commessa Progettazione Valutazione [non accettato] [else] Continua... Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 37
Soluzione esercizio 1 (2) Valutazione [non accettato] [else] Opera su sito Ricerca acquirente Finalizzazione Ing. del SW: Terza parte Sez II Marco Cadoli, Università La Sapienza, nov 2005 38