statechart diagrams
Transcript
statechart diagrams
Unified Modeling Language (3) Statechart diagram A cura di Luciano Baresi UML: Unified Modeling Language 1 State Diagram 2 UML: Unified Modeling Language Elementi grafici µ Rappresentano il comportamento dei singoli oggetti di una classe in termini di Eventi a cui gli oggetti (la classe) sono sensibili Azioni prodotte Transizioni di stato Stato Stato Identificazione degli stati interni degli oggetti Stato iniziale µ Possibilità di descrivere evoluzioni parallele µ Sintassi mutuata da StateChart (D. Harel) UML: Unified Modeling Language Evento/azione Stato finale 3 UML: Unified Modeling Language 4 Esempio Inizio e Fine (Telefonata) Chiamante.Aggancia Chiamante.Aggancia Inattivo Chiamante.Sgancia T Tono Pronto Compone(n) T Mossa Bianca Compone(n) Compos. Numero NumNonValido Bianco Muovere Inizio Tono TimeOut Messaggio Vocale Occupato Mossa Nera Nero Muovere NumValido Tono Occupato Matto o Abbandono ProntoA Connettere Vince Nero Stallo o Accordo Stallo o Accordo Matto o Abbandono Patta Vince Bianco Instradato Connesso Ricevente.Sgancia Tono Libero FineMessaggio 5 UML: Unified Modeling Language Condizioni UML: Unified Modeling Language Operazioni µ Funzioni booleane sui valori degli oggetti µ Azioni Operazioni che hanno durata istantanea µ Utili quando non basta l'evento, ma si vuole Tipicamente produzione di eventi aggiungere un predicato Evento Pronto 6 Condizione Verde [incrocio.stato=libero] Sono associate alle transizioni di stato oppure all'ingresso o all'uscita da uno stato µ Attività Sono operazioni con durata significativa Sono associate ad uno stato InCorsa Continue o sequenziali UML: Unified Modeling Language 7 UML: Unified Modeling Language 8 Esempio Stato Completo (Prenotazione voli) cancel()[ reservedSeats>1 ] cancel()[ reservedSeats=1 ] No reservations reserve() attributo1: tipo1 = val.iniziale attributo2: tipo2 = val.iniziale do / attività1 entry / azione1 exit / azione2 event1 / azione3 event2 / azione4 Partially booked entry/ reset() Nome reserve[ freeSeats>1 ] openFlight() cancelFlight() event3 [condizione1] / azione5 close() reserve()[ freeSeats=1 ] Closed cancel() event4 [condizione2] / azione6 close() Fully booked 9 UML: Unified Modeling Language Eventi Esempio (Generati da Azioni) (TV, Video Registratore e Telecomando) VR µ Spesso le azioni consistono nell'inviare un toggle power Off evento ad un altro oggetto 10 UML: Unified Modeling Language On toggle power evento(arg evento(arg)) [cond [cond]] / azione ^target.azione(arg ^target.azione(arg)) power button/ ^VR.togglePower VCR 0 Oggetti selezionati right-mouse-down(location) [location in window] / object:=pick-object(location) ^object.highlight() Controlling TV 1 Oggetto selezionato Controlling VCR TV power button/ ^TV.togglePower TV toggle power Off On toggle power UML: Unified Modeling Language 11 UML: Unified Modeling Language 12 Stub Decomposizione OR (Sottostati nascosti) B Un macro stato equivale ad una scomposizione OR degli stati µ I sottostati ereditano le transizioni dei loro superstati µ W E A C F D levaR Folle W A levaN Cambio Automatico levaF C B levaN D MarciaAvanti accelera Prima 13 UML: Unified Modeling Language Oggetti Compositi carica Serbatoio Fornello Chiuso Serbatoio [gas > 0] 14 [gas = 0] Pieno Pieno Terza Vuoto Fornello [gas = 0] decelera Interazione fra Componenti Accendino carica decelera accelera Seconda UML: Unified Modeling Language Serbatoio Vuoto RetroMarcia apri Aperto [gas > 0] Fornello Chiuso chiudi scintilla chiudi apri Acceso scintilla Aperto Acceso [Serbatoio.stato == Pieno] UML: Unified Modeling Language 15 UML: Unified Modeling Language 16 Decomposizione AND History µ Quando l’esecuzione lascia uno stato S con history Finestre Muri Si salva l’ultimo stato visitato S1 in S µ Quando l’esecuzione ritorna in S Si riparte da S1 Imp.elettrico A B1 B2 17 UML: Unified Modeling Language UML: Unified Modeling Language C H 18 Example (Selezione corsi) corsi < 4 Creazione sospendi Selezione corsi = 4 Activity Diagram Sospendi continua H Selezione extra corsiE = 2 Salva quit corsiE < 2 UML: Unified Modeling Language Sottometti 19 UML: Unified Modeling Language 20 Activity Diagram Activity Diagram (cont.) µ Forniscono la sequenza di operazioni che µ Derivano da event diagrams e reti di Petri definiscono un’attività più complessa µ Possono essere considerati State Diagram particolari µ Utili per modellare comportamenti sequenziali non determinismo concorrenza sistemi distribuiti business workflow operazioni Ogni stato contiene (è) un’azione µ Un Activity Diagram può essere associato A una classe All’implementazione di un’operazione Ad uno Use Case 21 UML: Unified Modeling Language 22 UML: Unified Modeling Language Esempio Elementi grafici (Gestione ordine) Receive Order Concorrenza dinamica * start attività Attività composta Check Payment end fork [condition] [condition] branch Wait for Paymentnot OK join not OK OK OK Wait for Payment * Check Availability Assign to Order merge [if necessary] Ship Order [else] Order Goods Le attività possono essere gerarchiche UML: Unified Modeling Language 23 UML: Unified Modeling Language 24 Swimlane (Corsie) Cliente Ufficio acquisti Attività e flussi degli oggetti Magazzino Customer µ Identificano le responsabilità relative alle diverse operazioni µ Parti di un oggetto Oggetti diversi Sales Request product Order [in progress] ricevi ordine ricerca prodotto pagamento In un Business Model identificano le unità organizzative Warehouse Order [forwarded] richiesta prodotto Pay bill Process order Find product Bill [unpaid] Order [completed] spedisci prodotto Ship product Receive order ricevi prodotto Order [delivered] UML: Unified Modeling Language 25 Statechart diagram UML: Unified Modeling Language 26 Implementation Diagram µ Component Diagram Definiscono i componenti “fisici” che realizzano l’applicazione (eseguibili, librerie, ecc..) Implementation Diagram µ Deployment Diagram Definiscono il partizionamento (la struttura) dell’applicazione: processi e/o processori UML: Unified Modeling Language 27 UML: Unified Modeling Language 28 Component diagram Component diagram (cont.) µ Definiscono le relazioni fra i componenti µ Rappresentano l’implementazione del sistema software che realizzano l’applicazione µ Parte della specifica architetturale sorgenti, binari, eseguibili µ Serve per Organizzare il codice Vincolare (definire) una versione particolare Definire una base di dati µ I diversi componenti offrono e usano interfacce specifiche µ Primo passo verso Component Programming 29 UML: Unified Modeling Language Esempio Componenti mailer (Scheduler) SendMail ReceiveMail <<reside>> mailer mailer Realizes +Mailbox +RoutingList -MailQueue 30 UML: Unified Modeling Language scheduler +RoutingList <<reside>> -MailQueue <<reside>> planner update +Mailbox mailer +Mailbox reservations GUI +RoutingList Model View Controller Design pattern -MailQueue UML: Unified Modeling Language 31 UML: Unified Modeling Language 32 Usando icone carine Deployment Diagram (HelloWorld) µ Definiscono la configurazione a run-time dei hello.class <<reside>> componenti identificati al passo precedente µ Identificano processi e processori (nodi) dell’applicazione <<implement>> hello.java hello.html µ Executable <<implement>> µ Library µ Table hello.jpg µ File µ Document µ ... 33 UML: Unified Modeling Language Nodi e componenti Associazioni µ 34 UML: Unified Modeling Language (I soluzione) server Rappresentano le connessione fisiche tra i nodi R << >> 32 S -2 <<database>> meetings scheduler Client1 reservations Server >> 32 -2 RS << UML: Unified Modeling Language myPC Client2 planner 35 UML: Unified Modeling Language 36 Il 10mo modello (Collaboration) Nodi e componenti (II soluzione) server <<become>> scheduler µ mirror reservations scheduler <<tcp/ip>> Collaboration sono gruppi di classi, oggetti e altri elementi che lavorano insieme per risolvere un problema Possiamo dire che i collaboration definiscono pattern Comprendono Una parte strutturale (statica) che definisce gli elementi della <<tcp/ip>> soluzione myPC Una parte di comportamento (dinamica) per definire le interazioni <<tcp/ip>> µ planner use case Relazione <<become>> 37 UML: Unified Modeling Language Si può dire che i collaboration implementano gli use case Collaboration collaboration 38 UML: Unified Modeling Language Collaboration-Static view TransportAgent sender receiver Internode Messaging sendMessage() Communication TransportAgent UML: Unified Modeling Language Store Queue Queue data Message addMessage() removeMessage() count() 39 UML: Unified Modeling Language Message header body 40 Collaboration-Dynamic view create :Queue Gestione del modello µ Package Servono per organizzare specifiche complesse :TransportAgent :Message Visibilità, import, access addMessage µ Subsystem Servono per strutturare sistemi complessi removeMessage Specifica e realizzazione µ Model Servono per mostrare aspetti diversi Tracciabilità 41 UML: Unified Modeling Language Subsystem µ 42 UML: Unified Modeling Language Interfacce Si usano per decomporre il sistema Porta Bagagli Check-in Utente Porta Bagagli Check-in Utente 4:receive 1:transmit 2:send 3:ack Collaboration UML: Unified Modeling Language Gerarchia 43 UML: Unified Modeling Language 44 Due aspetti Specifica e implementazione µ Un sottosistema ha due aspetti Visione esterna: servizi forniti all’esterno Possibili approcci: use case, statecharts, statecharts, classi logiche, … Specifica Implementazione Visione interna: come si realizzano i servizi Possibili approcci: classi con le loro relazioni, gerarchia di sottosistemi e classi (come foglie), … µ C’è una corrispondenza tra i due aspetti 45 UML: Unified Modeling Language Corrispondenza Modello µ Può essere espressa direttamente: Relazioni di “implementazione” Collaboration Specifica 46 UML: Unified Modeling Language µ Un modello è un’astrazione del sistema Implementazione Sistema Use Case Initiate Call Network Interface Receive Digit and Connect Coordinator Design Analysis Database <<trace>> Hook Signal and Disconnect UML: Unified Modeling Language 47 UML: Unified Modeling Language 48 Modelli e sottosistemi µ Possono essere combinati in gerarchie Riassumendo UML: Unified Modeling Language 49 Elementi µ µ µ µ Associazioni µ Generalizazioni interaction, automi a stati µ Realizzazioni Raggruppamenti µ µ Dipendenze classi, interfacce, collaboration, collaboration, use case, classi attive, componenti, nodi Elementi “dinamici” (behavioral (behavioral)) 50 Relazioni Elementi strutturali UML: Unified Modeling Language package, sottosistemi Altri elementi note UML: Unified Modeling Language 51 UML: Unified Modeling Language 52 Estendibilità Use case diagram µ Stereotipi µ Catturano le funzionalità del sistema (vista utente) µ Restrizioni (tagged value) µ Vincoli (constraint) UML: Unified Modeling Language 53 Class diagram 54 Object diagram µ Catturano il µ Le istanze e i legami vocabolario del sistema UML: Unified Modeling Language UML: Unified Modeling Language fra le istanze 55 UML: Unified Modeling Language 56 Sequence diagram Collaboration diagram µ Catturano il comportamento dinamico µ Catturano il comportamento dinamico (rispetto al tempo) UML: Unified Modeling Language (rispetto ai messaggi) 57 Statechart diagram 58 Activity diagram µ Catturano il comportamento dinamico µ Catturano il (rispetto agli eventi) UML: Unified Modeling Language UML: Unified Modeling Language comportamento dinamico (rispetto alle attività) 59 UML: Unified Modeling Language 60 Component diagram Deployment diagram µ Catturano la struttura fisica µ Catturano la topologia del sistema dell’implementazione UML: Unified Modeling Language 61 UML: Unified Modeling Language 62