UML. Diagrammi di interazione. Interaction diagrams. Modellazione dinamica. Interazioni tra oggetti che partecipano in ciascun use case



Documenti analoghi
Università di Padova Facoltà di Scienze MM.FF.NN Informatica - anno Corso di Ingegneria del Software UML. Diagrammi di interazione

Bibliografia. Studio di caso: Bancomat Automated Teller Machine. uso dei diagrammi: use case, classi, collaborazione, stato

Sequence Diagram e Collaboration Diagram

Diagrammi di Interazione

UniRoma2 - Ingegneria del Software 1 1

UML - Unified Modeling Language

Portale Materiali Grafiche Tamburini. Grafiche Tamburini Materials Portal

Sequence Diagram. Catia Trubiani. Laboratorio di Ingegneria del Software a.a

PROGETTAZIONE DEL SOFTWARE

MODELLAZIONE DEI PROCESSI AZIENDALI. workflow 1

MODELLAZIONE DEI PROCESSI AZIENDALI. workflow 1

SOMMARIO DIAGRAMMI DI SEQUENZA

Unified Modeling Language UML 2.0 -Sequence, Communication and Interaction Overview diagrams -

Paradigma object-oriented

LEZIONE 5 SEQUENCE DIAGRAM

LEZIONE 7 - STATE MACHINE DIAGRAM

Gestione del workflow

Unified Modeling Language

Sistemi Informativi I Caso di studio con applicazione di UML

Activity Diagrams. Ing. Orazio Tomarchio

Descrivono la collaborazione di un gruppo di oggetti per implementare collettivamente un comportamento

Organizzazione aziendale Lezione 16 BPMN. Ing. Marco Greco Tel Stanza 1S-28

Posta elettronica per gli studenti for the students

Modulo 11. Interazioni Diagrammi di sequenza Diagrammi di collaborazione. Descrivere il comportamento di un sistema software

API e socket per lo sviluppo di applicazioni Web Based

Introduzione a UML. Adriano Comai. versione 19 marzo Adriano Comai. Introduzione a UML Pag.

UML. Una introduzione incompleta. UML: Unified Modeling Language

-Fig.1-

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

Soluzione dell esercizio del 2 Febbraio 2004

Activity Diagram. UniRoma2 - Ingegneria del Software 1 75

Progettazione orientata agli oggetti Introduzione a UML

Studio di caso: Bancomat Automated Teller Machine

Modello a scambio di messaggi

ISTRUZIONI COMPILAZIONE ON LINE Progetti di Alternanza Scuola Lavoro

CONFIGURATION MANUAL

FONDAMENTI di INFORMATICA L. Mezzalira

REGISTRATION GUIDE TO RESHELL SOFTWARE

Guida alla configurazione Configuration Guide

Linguaggi di Programmazione I Lezione 5

Obiettivo della lezione. Casi d uso. Casi d uso (use cases) Scenari d interazione

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

Ingegneria del Software UML - Unified Modeling Language

Do-Dots Protocollo di comunicazione

Il linguaggio SQL. è di fatto lo standard tra i linguaggi per la gestione di data base relazionali.

Elementi di UML (7): Diagrammi dei componenti e di deployment

ING SW. Progetto di Ingegneria del Software. e-travel. Requisiti Utente. Specifiche Funzionali del Sistema

Account SIP Multi User Manuale di Configurazione (Versione Company)

Informatica Industriale Modello funzionale Casi d uso

I casi d uso corrispondono ai compiti che l attore (che può essere una persona fisica e non) può svolgere.

Ingegneria del Software 5. Esercizi sui casi d uso. Dipartimento di Informatica Università di Pisa A.A. 2014/15

Esempio ordini 08UMLEX1.1

I SERVIZI DI INTERNET: . Prof. Luca Salvini L.S. Prof. Luca Salvini 1 6L97

Use Case Driven Object Modeling: ICONIX

CAPITOLO 7 - SCAMBIO DI MESSAGGI

MODELLO AD AMBIENTE GLOBALE

Strumenti di modellazione. Gabriella Trucco

Corso di Linguaggi di Programmazione

La prima applicazione Java. Creazione di oggetti - 1. La prima applicazione Java: schema di esecuzione. Gianpaolo Cugola - Sistemi Informativi in Rete

Elementi di UML (2) Università degli Studi di Bologna Facoltà di Scienze MM. FF. NN. Corso di Laurea in Scienze di Internet Anno Accademico

IBM Software Demos Tivoli Identity Manager e Tivoli Directory Integrator

UNIVERSITÀ DEGLI STUDI DI FIRENZE FACOLTA DI INGEGNERIA DIPARTIMENTO DI SISTEMI E INFORMATICA. Elaborato di Tecnologie del Software per Internet

Object Oriented Software Design

Organizzazione aziendale Lezione 22 BPMN. Ing. Marco Greco Tel Stanza 1S-28

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

Introduzione. Modellazione visuale. Perché UML. cont.) Perché UML (cont( Contributi principali

Esercitazione su UML Ingegneria del Software - San Pietro

UML Component and Deployment diagram

Esercitazioni di Progettazione del Software. Esercitazione (Prova al calcolatore del 17 settembre 2010)

Guida utente User Manual made in Italy Rev0

Telematica II 17. Esercitazione/Laboratorio 6

Esempio 1: CarMatch. Direzione centrale Sedi centrali per ogni paese Concessionarie locali di franchising UML 2

Fashion Control System

INSTALLARE PALLADIO USB DATA CABLE IN WINDOWS XP/ME/2000/98

Studio di fattibilità (2) Identificazione ed analisi dei requisiti

Argo Netbook. Off-line

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

SIEMENS GIGASET S450 IP GUIDA ALLA CONFIGURAZIONE EUTELIAVOIP

Indice. Prefazione alla seconda edizione italiana XVII. Introduzione. Parte 1 Introduzione all UML e all UP 1

Ingegneria del Software

MANUALE BREVE PER IL DOCENTE TUTOR

Vincoli di Integrità Approccio dichiarativo alla loro implementazione

object oriented analysis

CAMBIO DATI PERSONALI - Italy

Utilizzo della APP IrriframeVoice. Versione 1.0 maggio 2015

Studio di fattibilità e Analisi dei requisiti

Object Oriented Programming

ESAME SCRITTO DI ELEMENTI DI INFORMATICA E PROGRAMMAZIONE. 13 Settembre COGNOME E NOME: MATRICOLA: Civile Ambiente e Territorio

ISSA EUROPE PTSOFTWARE 2.0

Software di gestione della stampante

GERARCHIE RICORSIVE - SQL SERVER 2008

Sistemi Operativi. Lez. 13: primitive per la concorrenza monitor e messaggi

Soluzione dell esercizio del 12 Febbraio 2004

INFORMATICA 1 L. Mezzalira

Ela Execute. Procedura di installazione. in ambiente Windows Vista. Prodotto: Ela Execute Oggetto : Installazione Sw in Windows Vista XZAC6405

Scuola Superiore Sant Anna. Progetto parte Unix. AA : Distributed File Repository

Procedure memorizzate SQL-2003/PSM. Forma base di PSM. Parametri in PSM

Corso di Laurea Triennale in Ingegneria Informatica. Corso di Ingegneria del software A. A Marina Mongiello

Il problema. ! Si chiede di sviluppare un applicazione per la

Transcript:

Università di Padova Facoltà di Scienze MM.FF.NN Informatica - anno 2008-09 Corso di Ingegneria del Software UML Diagrammi di interazione Interaction diagrams lazione dinamica Dynamic ing Interazioni tra oggetti che partecipano in ciascun use case Sequenza di messaggi intra-oggetti Diagrammi di sequenza e/o di comunicazione (ex. collaborazione) di stato ver. 3.0 Renato Conte - UML: interazione - 1/40 - Renato Conte - UML: interazione - 2/40 - Fasi, modelli e diagrammi Use Case Fasi e relazioni tra diagrammi Requirements Analysis Use Case Analysis Class Component Object Analisi requisiti DiagrammiUse Case Diagrammidelle Classi Design Deployment Design Implementation Test Deployment Implem. Test Sequence Communication Statechart Activity Interaction diagrams Collaboration UML 1.x Diagrammidiinterazione (com unic.) e/o sequenza :Customer :Credit :Account Renato Conte - UML: interazione - 3/40 - Renato Conte - UML: interazione - 4/40 -

Per creare diagrammi di interazione Si deve sviluppare il diagramma Use Case ed il diagramma delle classi prima di creare un diagramma di interazione. Un diagramma di interazione Un diagramma di interazione mostra un insieme di oggetti e le loro relazioni, inclusi i messaggi che essi si scambiano Ci sono due tipi di diagrammi di interazione: Diagrammi di sequenza (Sequence diagrams) Diagrammi di comunicazione (Communication diagrams) Renato Conte - UML: interazione - 5/40 - Nel diagramma di sequenza viene enfatizzata la sequenza ordinata dei messaggi tra gli oggetti. Nel diagramma di comunicazione (ex. collaborazione) l enfasi viene posta sulla organizzazione strutturale degli oggetti che partecipano alla soluzione del problema, sulla loro interazione diretta. Renato Conte - UML: interazione - 6/40 - Diagrammi di sequenza e di comunicazione esempio di diagramma di sequenza oggetti Sequence Diagram x y z a b c Communication (collaboration) Diagram 1.1: a 1.2: c x y z 1.1.1: b Tempo c: Client p : ODBCProxy {transient} «create» : Transaction lifeline setactions(a,d,o) setvalues(d, 3.4) setvalues(a, CO ) Ritorno opzionale committed «destroy» messaggio Focus of control Renato Conte - UML: interazione - 7/40 - Distruzione dell oggetto Renato Conte - UML: interazione - 8/40 -

esempio di diagramma di comunicazione corrispondente Dal diagramma delle classi al diagramma di sequenza (1) c: Client oggetti Fattura * Acquisto quantity * Articolo price 1:«create» 2:setActions(a,d,o) 3:«destroy» :Fattura :Acquisto :Articolo «local» «global» : Transaction p : ODBCProxy {transient} 2.1:setValues(d, 3.4) 2.2:setValues(a, CO ) messaggi *[for all Purchase] getsubtotal() computetotal getunitprice() Renato Conte - UML: interazione - 9/40 - Renato Conte - UML: interazione - 10/40 - Diagramma di sequenza: dettagli 1 Diagramma di sequenza: dettagli 2 :Object :Thing :Object :Thing :Object *[i:=1..n]dostuff() iterazione Guards [i=0]dostuff() Selection ricorsione sync. message [i=1]dostuff() async. message Renato Conte - UML: interazione - 11/40 - Renato Conte - UML: interazione - 12/40 -

Diagramma di sequenza: dettagli 3 Dal diagramma delle classi al diagramma di sequenza Actor n := getname() :Customer :Account :Credit Course getprerequisite * CourseSection * Registration * requesttoregister addtoregistrationlist Student addtoschedule haspassedcourse Tempo new Account(n) ritardo :CourseSection :Student parametri creditcheck() requesttoregister :Registration <<create>> addtoschedule addtoregistrationlist Renato Conte - UML: interazione - 13/40 - Renato Conte - UML: interazione - 14/40 - Un maggior dettaglio nel progetto Esempio: cancellazione di una prenotazione GUI :CourseSection astudent: Student :Course requesttoregister requesttoregister (astudent) hasprerequisite := haspassedcourse(prereq) [hasprerequisite] <<create>> :Registration addtoregistrationlist addtoschedule prereq := getprerequisite :SpecificFlight :Booking :PassengerRole cancelbooking cancel deletefromitinerary deletefrompassengerlist Renato Conte - UML: interazione - 15/40 - Renato Conte - UML: interazione - 16/40 -

Access System: Sequence with Interaction frames sd GivePIN :User :ACSystem msg("give your PIN!") Digit() Digit() Digit() Digit() reference loop alternative sd EstablishAccess(String txt) ref :User loop(0,3) alt ref :ACSystem ref AC_EstablishAccess(txt) Idle Cardid GivePIN msg("try again!") GivePIN msg(txt) PIN NOK PIN OK alt opt par Loop region neg ref sd Common Operators for Interaction Frames Alternative multiple fragments; only the one whose condition is true will execute. Optional; the fragment executes only if the supplied condition is true. Equivalent to an alt with only one trace. Parallel; each fragment is run in parallel. Loop; the fragment may execute multiple times, and the guard indicates the basis of iteration. Critical region; the fragment can have only one thread executing it at once. Negative; the fragment shows an invalid interaction. Reference; refers to an interaction defined on another diagram. The frame is drawn to cover the lifelines involved in the interaction. You can define parameters and a return value. Sequence diagram; used to surround an entire sequence diagram, if you wish. Renato Conte - UML: interazione - 17/40 - Renato Conte - UML: interazione - 18/40 - Interaction summary diagram Communication Diagram for GivePIN GivePin 1: msg( Give PIN ) :User :ACSystem 2 *[i:=1 4: digit() ] Renato Conte - UML: interazione - 19/40 - Renato Conte - UML: interazione - 20/40 -

Dal diagramma delle classi al diagramma di comunicazione maggiori dettagli Course getprerequisite * CourseSection * Registration * requesttoregister addtoregistrationlist Student addtoschedule haspassedcourse GUI 1: requesttoregister(astudent) :CourseSection 2: prereq := getprerequisite :Course :CourseSection 1: <<create>> 3: addtoregistrationlist :Registration 2: addtoschedule :Student 3: hasprerequisite := haspassedcourse(prereq) astudent: Student 4: [hasprerequisite] <<create>> 5: addtoschedule 5: addtoregistrationlist :Registration Renato Conte - UML: interazione - 21/40 - Renato Conte - UML: interazione - 22/40 - stimulus Altro esempio di diagramma di comunicazione (v.più avanti) redisplay () 1: displaypositions (window) 1.1 *[i := 1..n]: drawsegment (i) standard stereotype «self» object symbol wire left : Bead window : Controller : Window wire :Wire 1.1.1a: r0 := position () 1.1.1b: r1 := position () Concurrent threads right : Bead link symbol Standard stereotype «local» line Standard constraint 1.1.2: create (r0, r1) 1.1.3: display (window) {new} : Line standard stereotype window «parameter» 1.1.3.1 add (self) contents {new} Oggetto creato durante le operazioni arrow label Renato Conte - UML: interazione - 23/40 - I link di comunicazione nei diagrammi di collaborazione objectx :ClassA sync. Message on objectx async. Message on objecty objecty :ClassB Un link di comunicazione può esistere tra due oggetti ogniqualvolta sia possibile per un oggetto mandare un messaggio ad un altro oggetto Situazioni: 1. Le classi, a cui appartengono i due oggett, possiedono una associazione che le lega. Questo è il caso più comune. Se tutti i messaggi sono inviati nella stessa direzione, probabilmente la relazione può essere resa unidirezionale 2. L oggetto che riceve è memorizzato in una variabile locale del sending method. Questo succede spesso quando l oggetto è creato in modo automatico (anche da un return). Lo stereotipo da utilizzare è «local» o [L]. Renato Conte - UML: interazione - 24/40 -

Link e messaggi Messaggi nei diagrammi di comunicazione: dettagli oggettor:= messaggio( oggettok: tipo ) Predecessor / sequence-expression: return-value := message-name (argument-list) objectx :ClassA objecty :ClassB 3. Un riferimento all oggetto ricevente è stato ricevuto come un parametro del sending method. Lo stereotipo da utilizzare è «parameter» or [P]. 4. L oggetto che riceve è globale. Questo è il caso quando una referenza di un oggetto può essere ottenuta usando un metodo statico. Lo stereotipo da utilizzare è «global», o un simbolo [G]. 5. Gli oggetti comunicano attraverso una rete. Suggeriamo di scrivere «network». 2.1 a, 2.2 b / 3.1 a : res := getlocation ( fig ) Progressione dei messaggi (livello di annidamento della procedura) Sequenza di interi separati dal punto: numerazione decimale di Dewey Lettere dell'alfabeto: nome thread. 3.7.4: move (5, 7) Lista di numeri di sequenze di altri messaggi Clausola opzionale. Indica che il messaggio non sarà attivato fino a che tutti i messaggi indicati nella lista non avranno terminato le loro azioni (sincronizzazioni). Renato Conte - UML: interazione - 25/40 - Renato Conte - UML: interazione - 26/40 - Numerazione decimale di Dewey Messaggi nei diagrammi di comunicazione: clausola condizionale Pred. / seq.exp: retval := mess( arg.-list ) 1 2 3.1.2 [ Z >0 ] : res := sadf ( 1,2,3 ) 1.1 1.2 1.3 1.3.1 Opzionale. La clausola condizionale è normalmente espressa in pseudo codice ed esprime quali condizioni devono verificarsi per la attivazione del messaggio. 1.2.1 1.2.2 Visita in preordine 1.2.5 [ free memory ] : createcopy ( ) Renato Conte - UML: interazione - 27/40 - Renato Conte - UML: interazione - 28/40 -

Messaggi nei diagrammi di cumunicazione (collaborazione): clausola iterativa Regole di sviluppo dei diagrammi di interazione Fissare il contesto dell interazione Includere solo quelle caratterizzazioni degli oggetti che risultano essere rilevanti al problema analizzato 3.1.2 *[ i:= 1..N ] : drawsegment ( i ) Esprimere il flusso dei messaggi da sinistra a destra e dall alto in basso Inserire preferibilmente le istanze attive a sinistra e/o in alto Opzionale. La clausola iterativa è normalmente espressa in pseudo codice ed esprime una esecuzione ripetuta Usare i diagrammi di sequenza: per mostrare esplicitamente l ordine degli stimoli (e /o messaggi) quando il problema riguarda il real-time Usare i diagrammi di comunicazione (collaborazione): quando la struttura della soluzione è importante per concentrarci sul comportamento degli oggetti per validare il relativo diagramma delle classi (test) Renato Conte - UML: interazione - 29/40 - Renato Conte - UML: interazione - 30/40 - Un programma server comunica con due programmi client :Server c1 :Client c2 :Client Esempi di diagrammi di interazione listen for connections connect send message connect send reply disconnect send message disconnect stop listening Renato Conte - UML: interazione - 31/40 - Renato Conte - UML: interazione - 32/40 -

Chiamata telefonica (msg. asincroni, ogg. attivi, vincoli temp.) {b.receivetime - a.sendtime < 1 sec.} {c.receivetime - b.sendtime < 10 sec.} The call is routed through the network. {d.receivetime - d.sendtime < 5 sec.} At this point the parties can talk. chiamante stazione di commut. a: solleva ricevitore b: dial tone c: dial digit... d: route ringing tone stop tone phone rings answer phone stop ringing ricevente {< 1 sec.} redisplay () 1.1*[i:=1..n]: drawsegment(i) «self» left : Bead Redisplay 1: displaypositions (window) window «parameter» : Controller window : Window wire wire :Wire i - 1 1.1.1a: r0 := position ( ) 1.1.1b: r1 := position () i right : Bead «local» line 1.1.2: create (r0, r1) 1.1.3: display (window) 1.1.3.1 add (self) contents {new} {new} : Line Renato Conte - UML: interazione - 33/40 - Renato Conte - UML: interazione - 34/40 - Cambia l itinerario di un volo: use case narrativo Actors: traveler, client account db, airline reservation system Preconditions: Traveler has logged in Basic course: Traveler selects change flight itinerary option System retrieves traveler s account and flight itinerary from client account database System asks traveler to select itinerary segment she wants to change; traveler selects itinerary segment. System asks traveler for new departure and destination information; traveler provides information. If flights are available then System displays transaction summary. Alternative course: If no flights are available then Renato Conte - UML: interazione - 35/40 - Cambia l itinerario di un volo: diag. di sequenza Traveler : Booking System Client Account DBMS Airline Reservation System change flight itinerary get customer account get itinerary present itinerary select segment present detailed info update information available flight Renato Conte - UML: interazione - 36/40 -

Cambia l itinerario di un volo: diag. di comunicazione Diagramma di sequenza con ruoli Traveler 1: change flight itinerary 5: select segment 7: update information 4: present itinerary 6: present detailed info : Booking System 2: get customer account 3: get itinerary Client Account DBMS 8: available flight Airline Reservation System Renato Conte - UML: interazione - 37/40 - Renato Conte - UML: interazione - 38/40 - Bibliografia Grady Booch, James Rumbaugh, Ivar Jacobson. The Unified ing Language User Guide, Addison Wesley, (1999). Grady Booch, James Rumbaugh, Ivar Jacobson The Unified ing Language Reference Manual, Addison Wesley, (1999). Ivar Jacobson, Grady Booch, James Rumbaugh The Unified Software Development Process, Addison Wesley, (1999). Riferimenti nel Web OMG UML - www.omg.org/uml/ - Reference manual UML 1.5 - UML 2.1 Superstructure Specifications UML: tool, demo, doc www.rational.com UML: Tutorial e link: www.kobryn.com Renato Conte - UML: interazione - 39/40 - Renato Conte - UML: interazione - 40/40 -