UML State Diagrams. A. Fantechi 1/4/2010. Macchina a Stati Finiti. (Automa a stati finiti, Finite State Machine, FSM)
|
|
- Annibale Belli
- 4 anni fa
- Visualizzazioni
Transcript
1 UML State Diagrams A. Fantechi 1/4/2010 Macchina a Stati Finiti (Automa a stati finiti, Finite State Machine, FSM) Descrizione grafica del comportamento di una FSM on Lamp On on off Lamp Off off
2 Macchina a Stati Finiti (Automa a stati finiti, Finite State Machine, FSM) Descrizione formale del comportamento di una FSM: Una FSM M è una quadrupla (S, s 0, E, R) dove: S è un insieme finito di stati s 0! S è lo stato iniziale E è un insieme di eventi (trigger) R " S x E xs è la relazione di transizione. (s 1, e, s 2 )! R si scrive anche s 1 e s 2 Nondeterminismo Spesso si usa una funzione di transizione invece di una relazione di transizione: R: S x E # S In questo modo il prossimo stato è sempre determinato univocamente dall evento di input. Caso di nondeterminismo -->
3 Uscite, azioni Uscite generate dall automa: Lamp On on Lamp On print( on ) on on/print( print( on ) on off Lamp Off off off Lamp Off off Macchina di Mealy Macchina di Moore Descrizione formale macchine Mealy e Moore Una Macchina di Mealy è una sestupla (S, s 0, E, R, O, o) dove: S è un insieme finito di stati s 0! S è lo stato iniziale E è un insieme di eventi (trigger) R : S x E # S è la funzione di transizione. O è un insieme di possibili uscite o : S x E # O è la funzione di uscita Una Macchina di Moore è una sestupla (S, s 0, E, R, O, o) dove: S è un insieme finito di stati s 0! S è lo stato iniziale E è un insieme di eventi (trigger) R : S x E # S è la funzione di transizione. O è un insieme di possibili uscite o : S # O è la funzione di uscita (determinismo)
4 Extended Finite State Machines (EFSM) Estensione con variabili ( extended state ) on ctr : Integer Lamp On on/ctr := ctr + 1 off off Lamp Off EFSM Una EFSM (di Mealy) è definita da: Un insieme di segnali di input (input alphabet) Un insieme di segnali di output (output alphabet) Un insieme di stati Un insieme di transizioni segnale di trigger guardia azione Un insieme di variabili (extended state variables) Un indicazione di stato iniziale (stato iniziale + valore iniziale delle variabili) Un insieme di stati finali (vuoto nel caso di macchina non terminante)
5 Harel Statecharts Create da David Harel (I-Logix) alla fine degli anni 80, come ulteriore estensione delle EFSM Formano la base del modello comportamentale di UML Supportano Stati annidati (gerarchie di stati) Azioni su Transizioni Entry (ingresso in uno stato) Exit (uscita da uno stato) Attività eseguite all interno di uno stato (Do) Guardie History Eventi di Broadcast Regioni Ortogonali (AND-States) 9 Basic UML Statechart Diagram Initial pseudostate top state top State Trigger Ready Transition Final state Done stop/ctr := 0 stop Action
6 Che tipo di comportamento? In generale, le EFSM sono adatte per descrivere un comportamento dicreto, event-driven inappropriate per modellare comportamento continuo in UML non ci sono strumenti per modellare un comportamento continuo threshold time Comportamento Event-Driven Evento = un tipo di occorrenza di qualcosa di osservabile interazioni: Invocazione sincrona di un metodo di un oggetto (call event) Ricezione asincorna di un segnale (signal event) Occorrenza di istanti di tempo (time event) Scadenza di un intervallo Tempo di clock o di calendario Aggiornamento del vlore di una variabile (change event) Istanza di un Evento (Event Instance) = un istanza di un tipo di evento che accade in un certo istante di tempo e che non ha durata
7 Comportamento Event-Driven - UML In linea di principio, si può parlare di comportamento eventdriven per un qualsiasi tipo di sistema In UML, il comportamento event-driven è quello manifestato dagli oggetti. Quindi possiamo associare agli oggetti di una classe un comportamento event-driven specificato attraverso uno state diagram. La semantica degli state diagram UML è data principalmente in relazione ad oggetti attivi Comportamento di un oggetto Passivo - Modello Generale Trattamento dello specifico metodo richiesto void:offhook (); {busy = true; obj.reqdialtone(); }; Initialize Object Wait Wait for for Request Handle Request Terminate Object
8 Oggetti Passivi e Macchine a Stati mapping: Initialize Object Wait for Event on Lamp On on/print( on ) Handle Event Terminate Object off Lamp Off stop off Oggetti e flussi di controllo (threads) Oggetti Passivi: flusso di controllo esterno Oggetti Attivi: proprio flusso di controllo Initialize Initialize Object Object Wait Wait for for Request Request Handle Handle Request Request Initialize Initialize Object Object Wait Wait for for Request Request Handle Handle Request Request Terminate Terminate Object Object Terminate Terminate Object Object
9 Flussi concorrenti Initialize Initialize Object Object Wait Wait for for Request Request Handle Handle Request Request Terminate Terminate Object Object Un oggetto passivo può essere attraversato da flussi concorrenti: --> problema di sincronizzazione Un oggetto attivo ha un proprio, unico, flusso: la concorrenza si ottiene con due oggetti attivi, istanze distinte della stessa classe Oggetti Attivi e Macchine a Stati Oggetti Attivi con il proprio flusso di controllo anactiveobject #currentevent : Event poll/defer created start + start ( ) + poll ( ) + stop ( ) start/^master.ready() ready ready stop/ poll/^master.ack() Le variabili di stato esteso sono gli attributi dell oggetto.
10 Semantica degli Oggetti Attivi ActiveObject: Coda di eventi Run-to-completion model Run-to-completion model Il run-to-completion model step definisce come avviene una transzione tra due configurazioni della macchina a stati. Configurazione = stato corrente + valore delle variabili di stato esteso + situazione della coda in ingresso Un evento in coda (received) può essere prelevato (dispatched) dalla coda e trattato solo quando l elaborazione dell evento precedente è terminata (consumed). Durante uno step di run-to-completion può essere eseguita una sequenza di varie attività, che possono includere la modifica di un attributo locale, l invio di un segnale, l invocazione di un metodo di un altro oggetto, la rimozione di un evento dalla coda di ingresso
11 Stati UML Initializing Valve ValveOk: Boolean = FALSE ValveAperture: int = 0 cmdsize: int entry / ValveOK = TestValve( ) do / OpenTo(cmdSize: int) exit / printmessage(valveaperature) Sintassi completa event parameters event name guard action list A T1(int r)[r < 0] / f(r) entry / g(x), h(y) exit / m(a), n(b) do / act(a,y,z) defer / e1, e2 e3 / p(x,y), q(z) entry actions exit actions activities state name B deferred events internal transition state 22
12 Eventi Un evento può essere: Una condizione che diventa vera (guardia) Ricezione di un esplicito segnale da un altro oggetto Ricezione di una chiamata a un metodo da un altro oggetto Timeout (passage of a specified interval) Eventi possono causare transizioni di stato (etichette sulle) Transizioni event-name (parameter list) [guard] / action expression event-name nome dell evento di trigger per la transizione parameter list parametri con tipo (opzionale) guard espressione Booleana sui parametri e sugli attributi dell oggetto (variabili) action-expression lista di operazioni da eseguire quando la transizione viene selezionata: la lista è eseguita atomicamente
13 Esempi di etichette sulle transizioni JustDoIt JustDoIt(x) JustDoIt(x: int) JustDoIt(x) [x>0] JustDoIt [y<10] / print(y) JustDoIt(x,y) [x>y+10] / print (x+y); target->gensignal(nike.makemoney(muchodollaro)) Tipi di Eventi UML definisce 4 tipi di eventi Signal Event Ricezione di un segnale Asinchrono e.g. evflameon Call Event Ricezione di un invocazione di un metodo e.g. op(a,b,c) Change Event Aggiornamento del valore di una variabile (condivisa) Time Event Scadenza di un tempo Relativo (intervallo) Raggiungimento di un tempo Assolute e.g. tm(pulsewidthtime)
14 State Entry and Exit Actions LampOn entry/lamp.on(); exit/lamp.off(); e2 e1 Ordine delle Azioni: un caso semplice Exit actions precedono le transizioni Entry action seguono le transizioni LampOn entry/lamp.on(); exit/printf printf( exiting ); off/printf printf( to to off ); LampOff entry/lamp.off(); exit/printf printf( exiting ); Sequenza di azioni risultante printf( exiting ); printf( to to off ); lamp.off(); off/printf printf( needless ); printf( exiting ); printf( needless ); needless ); lamp.off();
15 Transizioni Interne Self-transitions Non provocano l esecuzione di entry e exit actions transizione interna triggered da un off event LampOff entry/lamp.off(); exit/printf printf( exiting ); off/null; State ( Do ) Activities thread concorrente che esegue fino a che: l attività è completata oppure si esce dallo stato con una transizione uscente Error entry/printf printf( error! error! ) do/while (true) alarm.ring(); do activity
16 Guardie Esecuzione Condizionale di transizioni Le guardie (predicati Booleani) non devono avere side-effect bid [value < 100] /reject Selling bid [value >= 200] /sell Happy bid [(value >= 100) & (value < 200)] /sell Unhappy Static Conditional Branching Abbreviazione grafica per evidenziare una signola transizione uscente Selling Happy bid [value < 100] /reject [value >= 200] /sell [(value >= 100) & (value < 200)] /sell Unhappy
17 Dynamic Conditional Branching Choice pseudostate: le guardie vengono valutate solo quando viene raggiunto lo pseudostato. Selling Happy bid /gain := calculatepotentialgain(value) [gain < 100] /reject [gain >= 200] /sell Dynamic choicepoint Unhappy [(gain >= 100) & (gain < 200)] /sell Macchine a stati gerarchiche stati decomposti ricorsivamente in macchine a stati off/ LampOff entry/lamp.off() on/ LampOn entry/lamp.on() on/ flash/ on/ LampFlashing 1sec/ FlashOn entry/lamp.on() 1sec/ FlashOff entry/lamp.off()
18 OR States Migliorano la scalabilità Migliorano la comprensibilità Permettono la decomposizione gerarchica di un problema (divide-and conquer) Possibilità: Stati annidati sullo stesso diagramma Stati annidati su diagrammi separati aka submachines 35 Sintassi state ev_2 nested state or-states
19 OR States Statechart gerarchica entry/ Print(ErrCode)
20 Group Transitions Transizioni a più alto livello nella gerarchia di stati Default transition to the initial pseudostate off/ LampOff entry/lamp.off() on/ LampOn entry/lamp.on() flash/ on/ LampFlashing 1sec/ FlashOn entry/lamp.on() 1sec/ FlashOff entry/lamp.off() Group transition Completion Transitions Triggered da un evento di completion generato automaticamente quando uno macchina immediatamente annidata termina Committing completion transition (no trigger) Phase1 Phase2 CommitDone
21 Regole di Triggering Due o più transizioni possono avere lo stesso evento trigger La transizione più interna ha la precedenza Un evento in coda è consumato sia che attivi una transizione sia che non attivi alcuna transizione. LampFlashing on/ off/ FlashOn FlashOff on/ Ordine delle azioni annidate Da fuori a dentro le azioni entry Da dentro a fuori le azioni exit U entry: f() exit: g(a,b) first f() then x(c) U1 entry: x(c) exit: y() A first y() then g(a,b) 42
22 Deferred Events Gli eventi in coda che non possono attivare una transizione vengono scartati, fino a che un evento in grado di attivare una transizione non venga trovato nella coda. Deferred events Se però un evento è in una deferred list, non viene scartato e rimane in coda (finchè rimane nella deferred list) Se l oggetto transisce in uno stato dove l evento non è più presente in una deferred list, tale evento viene scartato. Deferred event off/ LampOff entry/lamp.off() off/defer on/ LampOn entry/lamp.on() Ordine delle Azioni: Caso Complesso S1 exit/exs1 S11 exit/exs11 E/actE S2 entry/ens2 inits2 S21 entry/ens21 sequenza di esecuzione delle Azioni, in caso di triggering della transizione exs11! exs1! acte! ens2! inits2! ens21
23 Ortogonalità Viste multiple simultanee sulla stessa entità age financialstatus Child Poor Adult Retiree Person Rich AND-States Gli stati possono essere decomposti in OR-States Uno stato (super-stato) può essere decomposto in un numero qialsiasi di OR-States Quando l oggetto si trova in un super-stato, deve trovarsi in UNO dei suoi OR-substates. oppure AND-State Uno stato (super-stato) può essere decomposto in un numero qialsiasi di AND-States (regioni ortogonali) Quando l oggetto si trova in un super-stato, deve trovarsi in TUTTI i suoi AND-substates attivi. Regioni separate da linee tratteggiate
24 Regioni Ortogonali Combinazione di descrizioni multiple simultanee age financialstatus Child Poor Adult age financialstatus Retiree Child Rich Adult Poor Retiree Rich AND-States
25 AND-States transition state initial pseudostate conditional pseudostate and-states Regioni Ortogonali - Semantica Tutte le regioni ortogonali reagiscono allo stesso evento, (in principo) simultaneamente. legalstatus financialstatus LawAbiding Poor Outlaw robbank/ Rich robbank/
26 AND-States & Concorrenza Gli AND-states non sono necessariamente concorrenti Semantica degli AND-states tipicamente a interleaving UML usa la concorrenza tra oggetti attivi come principale modo di modellare la concorrenza Gli AND-states possono essere implementati come threads concorrenti, ma questa non è l unica strategia di implementazione corretta. Uso concettualmente errato dell ortogonalità Uso di regioni per modellare oggetti attivi independenti Person1 Person2 Person1 Child Person2 Child Adult Adult Retiree Retiree Soluzione: --> due istanze dello stesso oggetto attivo!!!
27 Interazioni tra Regioni Tipicamente, attraverso variabli condivise o riferimenti a cambio di stato delle altre regioni. Catch22 sanitystatus sane : Boolean flying : Boolean flightstatus request Grounding/ Crazy entry/sane := false; Sane (flying)/ entry/sane := true; Flying entry/flying := true; (~sane)/ Grounded entry/flying := false; (sane)/ AND-State Communication Gli AND-states possono communicare via: Broadcast events Ricevuti da tutti gli AND-states attivi Propagated events Una transizione in un AND-state può inviare un evento sentito da un altro AND-state Guardie [IS_IN( state )] usa il substate di un AND-state in una guardia Attributi Siccome gli AND-states fano parte dello stesso oggetto, vedono tutti gli attributi dell oggetto (variabili condivise)
28 Propagazione e Broadcast / 55 Fork e Join Transizioni verso/da regions ortogonali: age Child Adult Retiree Staff Member Manager employee
29 Transizioni Complesse fork S1 S1_1 S e2 S1_2 e5 join A B e1 e5 S2_1 e3 S2_2 S2 e4 C pseudostates initial pseudostate history pseudostate conditional pseudostate terminal pseudostate
30 Pseudostates Symbol Symbol Name Symbol Symbol Name C or Branch Pseudostate (type of junction pseudostate) H (Shallow) History Pseudostate T or Terminal or Final Pseudostate H* (Deep) History Pseudostate * or n Synch Pseudostate Initial or Default Pseudostate Fork Pseudostate Junction Pseudostate Join Pseudostate [g] Merge Junction Pseudostate (type of junction pseudostate) [g] Choice Point Pseudostate label Stub Pseudostate History Ritorno a uno stato gerarchico già visitato deep /shallow history suspend/ Diagnostic1 Diagnosing Diagnostic2 Step11 Step21 resume/ H* Step12 Step22
31 Deep History Shallow History
32 Synch Pseudostate Permette di far scattare una transizione solo quando un insieme di transizioni è avvenuto Memorizza che una o più specifiche transizioni sono avvenute, Simile al posto (piazza, place) di una Rete di Petri Permette di sincronizzare più AND-States Synch Pseudostate Data Processing Waiting for Data Processing Datum Logging Data synch state Waiting to Process Alarms datasignal /active alarm ct = 0 * tm(displaytime) Synch Pseudostate with unbounded multiplicity Applying Alarm Filters done alarmraised User Monitoring Idle [else] C [active alarm ct > 0]/ gensignal(alarmraised) Waiting to accept /active alarm ct = 0 Displaying Alarms accept Alarm Processing 1 synch state
33 Stub Notation Abbreviazione notazionale: nessuna aggiunta semantica LampOff entry/lamp.off() flash/ LampFlashing off/ FlashOn on/ LampOn entry/lamp.on() on/ on/ FlashOff Submachines: Reference stub state reference Self Testing include / BITSubmachine On done(defaultmode) Operating include / OpsSubmachine toon(mode: tmode) defaultmode = mode; device Test RAM Test dotest Normal Failsafe Abort Off doramtest dodevicetest [recoverok] [else] tooff Unrecoverable Error errorfound C submachine indicator errorhandled
34 Submachines: Referenced submachine stub state Testing ROM device Test Testing Components Logging Test Results BITSubmachine entry / iserror = false; done done Testing RAM errorfound/ iserror = true; C Abort [else] RAM Test [iserror == false] Normal OpsSubmachine (m: tmode) C Failsafe [else] Normal Mode [m == normal] Demo Mode [m == failsafe] Failsafe Mode tooff errorfound doramtest subend dotest Normal dodevicetest Uso degli State Diagrams Specifica del comportamento di un sistema (necessita di uno strumento di editing) Simulazione (necessita di uno strumento di simulazione) Verifica (Model checking) (necessita di uno strumento di verifica) Generazione automatica del codice (necessita di un generatore di codice)
35 Credits Bruce Powel Douglass, Real-Time UML, Slides, Ilogix Gunnar Övergaard, Bran Selic, Conrad Bock, Behavioral Modeling, Object Modeling with OMG UML Tutorial Series, UML Revision Task Force, Nov. 2000
UML State Diagrams. Nondeterminismo. Macchina a Stati Finiti (Automa a stati finiti, Finite State Machine, FSM)
Macchina a Stati Finiti (Automa a stati finiti, Finite State Machine, FSM) Descrizione grafica del comportamento di una FSM on UML State Diagrams Lamp On A. Fantechi 1/4/2010 off on Lamp Off off Macchina
DettagliLEZIONE 7 - STATE MACHINE DIAGRAM
Laboratorio di Ingegneria del Software a.a. 2013-2014 LEZIONE 7 - STATE MACHINE DIAGRAM Catia Trubiani Gran Sasso Science Institute (GSSI), L Aquila catia.trubiani@gssi.infn.it Un po di storia su state
DettagliDiagrammi di stato Statechart Diagrams
,6 PRG % &RUVR GL,QJHJQHULD GHO 6RIWZDUH Bibliografia: Diagrammi di stato Statechart Diagrams - Slide UML Tutorial Series tratte dal sito: www.omg.org documento: 01-03-03.ppt - Bozze del corso di Ambriola,
DettagliUniversità di Padova Facoltà di Scienze MM.FF.NN Informatica - anno Corso di Ingegneria del Software - B UML
v. 2.3 Università di Padova Facoltà di Scienze MM.FF.NN Informatica - anno 2008-09 Corso di Ingegneria del Software - B UML Diagramma di macchina a stati (state machine diagram) Renato Cte - UML Diagrammi
DettagliIngegneria del Software 9. Macchine a stati. Dipartimento di Informatica Università di Pisa A.A. 2014/15
Ingegneria del Software 9. Macchine a stati Dipartimento di Informatica Università di Pisa A.A. 2014/15 so far Modello del dominio Modello statico: diagrammi delle classi Modello dinamico : diagrammi di
DettagliLEZIONE 7 STATE MACHINE DIAGRAM
Istituto di Scienza e Tecnologie dell'informazione A. Faedo Software Engineering and Dependable Computing Laboratory LEZIONE 7 STATE MACHINE DIAGRAM Laboratorio di Ingegneria del Software Guglielmo De
DettagliProgrammazione ad Oggetti
Programmazione ad Oggetti Unified Modeling Language (II) Modellazione Dinamica Il comportamento dinamico del sistema viene descritto in UML attraverso i seguenti diagrammi: Statechart diagram Sequence
DettagliUML e i diagrammi di stato
UML e i diagrammi di stato S i n t a s s i e L i n e e G u i d a Dr. Andrea Baruzzo andrea.baruzzo@dimi.uniud.it Page 2 Definizioni Un diagramma di stato rappresenta il ciclo di vita degli oggetti di una
DettagliVincenzo Gervasi, Laura Semini Ingegneria del Software Dipartimento di Informatica Università di Pisa
Vincenzo Gervasi, Laura Semini Ingegneria del Software Dipartimento di Informatica Università di Pisa Lezioni precedente: Descrizione del dominio: modello statico Questa lezione Descrizione del dominio:
DettagliElementi di UML (6): Diagrammi dinamici di flusso
Elementi di UML (6): Diagrammi dinamici di flusso Università degli Studi di Bologna Facoltà di Scienze MM. FF. NN. Corso di Laurea in Scienze di Internet Anno Accademico 2004-2005 Laboratorio di Sistemi
DettagliNote sugli Statechart Diagrams
Note sugli Statechart Diagrams Giacomo Gabrielli Sorgente: [Bolognesi05] 1 Diagrammi di Stato I diagrammi di stato (statechart diagram) permettono di descrivere il comportamento dinamico di un oggetto
DettagliDiagrammi di stato e di attività: esercizi
Diagrammi di stato e di attività: esercizi Angelo Di Iorio (in parte di: Gianpiero Favini) A.A. 2012-2013 Laboratorio Ingegneria del Software () Diagrammi di stato e di attività: esercizi A.A. 2012-2013
DettagliEsempio Modello DFD per ordini. Modelli di comportamento. Diagramma delle attività. Diagramma attività UML per ordini. Attività: Apri file da browser
Modelli di comportamento Esempio Modello DFD per ordini Sono usati per descrivere il comportamento globale del sistema Data processing model (ovvero Data Flow Diagram, DFD) Mostrano i passi per l elaborazione
DettagliCorso di Ingegneria del Software. Activity Diagram
Corso di Ingegneria del Software a.a. 2009/2010 Mario Vacca mario.vacca1@istruzione.it Diagrammi di attività Diagrammi di attività 1. La notazione 2. Uso dei diagrammi di attività 3. TOOL di supporto 4.
DettagliAttività vs. Stato. Elementi di UML (4) Activity diagram. Activity diagram: notazione (1/3) Activity diagram: notazione (2/3)
Elementi di UML (4) Attività vs. Stato UML 1! Attività: Un insieme di azioni che deve essere necessariamente ed interamente completato prima di potersi considerare terminato.! Stato: Un punto ben preciso
DettagliUML Introduzione a UML Linguaggio di Modellazione Unificato. Corso di Ingegneria del Software Anno Accademico 2012/13
UML Introduzione a UML Linguaggio di Modellazione Unificato Corso di Ingegneria del Software Anno Accademico 2012/13 1 Che cosa è UML? UML (Unified Modeling Language) è un linguaggio grafico per: specificare
DettagliUML e i diagrammi di attività
UML e i diagrammi di attività S i n t a s s i e L i n e e G u i d a Dr. Andrea Baruzzo andrea.baruzzo@dimi.uniud.it Page 2 Attività: che cosa sono e a cosa servono Un diagramma di attività mostra il flusso
DettagliModulo 13. Diagrammi degli stati
Modulo 13 Diagrammi degli stati Stato degli oggetti Descrive una macchina a stati specifica i vari stati che un oggetto può assumere durante la sua vita in risposta agli eventi uno stato è una condizione
DettagliProgramma operativo Regione Lombardia/Ministero del Lavoro/Fondo Sociale Europeo, Obiettivo 3 Misura C3
Programma operativo Regione Lombardia/Ministero del Lavoro/Fondo Sociale Europeo, Obiettivo 3 Misura C3 Progetto ID 24063 Moduli e contenuti professionalizzanti inseriti nei corsi di laurea e diplomi universitari
DettagliChiamata di procedura remota
Con gli strumenti gia` visti, si puo` realizzare come segue: lato chiamante: send asincrona immediatamente seguita da una receive lato chiamato: una receive seguita, al termine dell azione richiesta, da
DettagliDiagrammi di attività. Diagrammi di attività. Activity diagrams. Sintassi dei diagrammi di Attività (1) Sintassi dei diagrammi di Attività (2)
Diagrammi di attività,6 PRG % &RUVR GL,QJHJQHULD GHO 6RIWZDUH Diagrammi di attività Activity diagrams I diagrammi di attività, in UML, sono usati per descrivere il comportamento dinamico di un sistema
DettagliSintassi dei diagrammi di Attività
Università di Padova Facoltà di Scienze MM.FF.NN Informatica - anno 2008-09 Corso di Ingegneria del Software UML Diagrammi di attività Activity diagrams Diagrammi di attività I diagrammi di attività, in
DettagliChiamata di procedura remota
Chiamata di procedura remota Meccanismo di comunicazione e sincronizzazione tra processi in cui un processo che richiede un servizio ad un altro processo rimane sospeso fino al completamento del servizio
DettagliLEZIONE 7 - STATE MACHINE DIAGRAM
Laboratorio di Ingegneria del Software a.a. 2013-2014 LEZIONE 7 - STATE MACHINE DIAGRAM Catia Trubiani Gran Sasso Science Institute (GSSI), L Aquila catia.trubiani@gssi.infn.it Riepilogo della lezione
DettagliSimulazione di sistemi non lineari Introduzione a Stateflow
Simulazione di sistemi non lineari Introduzione a Stateflow Gianmaria De Tommasi 1 1 Università degli Studi di Napoli Federico II detommas@unina.it Ottobre 2012 Corsi AnsaldoBreda G. De Tommasi (UNINA)
DettagliIntroduzione al VHDL Lezione 3
Introduzione al VHDL Lezione 3 Cristina Silvano Università degli Studi di Milano Dipartimento di Scienze dell Informazione Via Comelico 39/41, I-20135 Milano (Italy) Tel.: +39-2-5835-6306 e-mail: silvano@elet.polimi.it
DettagliSpecifica parte IIA. Leggere Sez , 5.5.2, Ghezzi et al.
Specifica parte IIA Leggere Sez. 5.5.1, 5.5.2, 5.5.3 Ghezzi et al. Specifiche operazionali l Diagrammi di flusso di dati l Diagrammi UML l Macchine a stati finiti Specifica 2A 2 Diagrammi di flusso di
DettagliArchitetture data-flow
Architetture data-flow Le architetture che abbiamo visto finora sono dette architetture control flow. Ciò sta ad indicare che il flusso dell elaborazione è dettato dall ordine con cui le varie istruzioni
DettagliVerifica Formale in Spin di WF-nets e Diagrammi delle Attività UML
Verifica Formale in Spin di WF-nets e Diagrammi delle Attività UML Seminario per il corso di Metodi Formali nell Ingegneria del Software Professore: Toni Mancini Autore: Stefano Menotti Obiettivi Principali
DettagliComunicazione con sincronizzazione estesa
Comunicazione con sincronizzazione estesa 1 Chiamate di procedura remota e rendez-vous Chiamata di procedura remota Rendez vous Linguaggio ADA 2 Chiamata di operazione remota Meccanismo di comunicazione
DettagliIngegneria del Software
Università degli Studi di Napoli Federico II Ingegneria del Software a.a. 2013/14 Lezione 8: Gli Statecharts Obiettivi della lezione Comprendere il formalismo degli statecharts Ciclo di vita del Software
DettagliStrutture di Controllo
Strutture di Controllo Istruzioni condizionali e cicli http://www.dia.uniroma3.it/~roselli/ roselli@dia.uniroma3.it Credits Materiale a cura del Prof. Franco Milicchio Introduzione Fino ad ora, il nostro
DettagliI Diagrammi di Flusso OO
Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - I Diagrammi di Flusso OO Generalità I diagrammi di attività vengono usati per modellare processi a
DettagliRichiami sui Concetti Fondamentali dei Processi
Processi Processi 1 Richiami sui Concetti Fondamentali dei Processi Processi 2 Definizione Nell ambito dei sistemi operativi esistono diverse definizioni di processo, ad es. un programma in esecuzione
DettagliCast implicito. Il cast è fatto automaticamente quando un tipo più basso viene assegnato ad un tipo più alto. byte short int long float double
Il cast Cast implicito Il cast è fatto automaticamente quando un tipo più basso viene assegnato ad un tipo più alto Per esempio: byte short int long float double int x = 10; float f; f = x; Il valore di
DettagliPresentazione. Sistemi Telelogic e SDL. Telelogic SDL Suite Specification and Description Language (SDL) Specification Language Introduzione
Presentazione Sistemi Telelogic e SDL Telelogic SDL Suite Specification and Description Language (SDL) Specification Language Introduzione Storia Ambito applicativo SDL per descrivere i sistemi Diagramma
DettagliLinguaggi e Ambienti di Programmazione
Linguaggi e Ambienti di Programmazione Principi e tecniche diffuse che si incontrano spesso nelle applicazioni dell informatica. Compilatori Editor di struttura: riceve in input una sequenza di comandi
DettagliLaboratorio di Informatica I
Struttura della lezione Lezione 3: Istruzioni ed operatori booleani. Vittorio Scarano Corso di Laurea in Informatica Università di Salerno Soluzioni agli esercizi Istruzioni (statement) semplici e di controllo
DettagliCapitolo 5 - Funzioni
Capitolo 5 - Funzioni Divide and conquer Introduzione Costruire un programma da pezzi più piccoli o da singole componenti Questi pezzi più piccoli sono chiamati moduli Ogni singolo pezzo è più facilmente
DettagliProgramma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore
Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Architettura del calcolatore Reti di Calcolatori Elementi di Programmazione Algoritmi e programmi Algoritmo Sequenza
DettagliAlgoritmi e Strutture di Dati
Algoritmi e Strutture di Dati Pseudocodifica m.patrignani Nota di copyright queste slides sono protette dalle leggi sul copyright il titolo ed il copyright relativi alle slides (inclusi, ma non limitatamente,
DettagliCostrutti per il controllo del flusso di esecuzione
Costrutti per il controllo del flusso di esecuzione Operatori (1) PRECEDENZA ASSOCIATIVITÀ OPERATORE TIPO/I DEGI OPERANDI OPERAZIONE ESEGUITA 15 (left). object, member object member access [ ] array, int
DettagliCorso di Laurea Specialistica in Ingegneria Informatica. Corso di Ingegneria del Software A. A Introduzione ad UML E.
Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - Introduzione ad UML E. TINELLI UML È un linguaggio (e notazione) universale per rappresentare qualunque
DettagliProva di esame del 19 giugno 2017
Prova di esame del 19 giugno 2017 Esercizio 1) [10 punti] Marcare le affermazioni che si ritengono vere. Ogni manda può avere un qualunque numero naturale di affermazioni vere. Vengono assegnati 0.5 punti
DettagliCorso di Linguaggi di Programmazione
Corso di Linguaggi di Programmazione Lezione 13 Alberto Ceselli ceselli@dti.unimi.it Dipartimento di Tecnologie dell Informazione Università degli Studi di Milano 7 Maggio 2007 Outline Java e C# 1 Java
DettagliJava thread, concorrenza
Java thread, concorrenza laboratorio 1 A.Memo febbraio 2004 il thread principale in Java ogni programma in esecuzione è un thread il metodo main() è associato al main thread per poter accedere alle proprietà
DettagliModel Driven Software Development con Eclipse, StatechartUMC. Aldi Sulova. 21 dicembre 2009
Model Driven Software Development con Eclipse, StatechartUMC Aldi Sulova Istituto di Scienza e Tecnologie dell Informazione A. Faedo - CNR Via G. Moruzzi 1, 56124 Pisa, Italy aldi.sulova@isti.cnr.it 21
DettagliCompito di Fondamenti della Programmazione: Metodi Evoluti - A.A Prova di esame del 24 settembre 2015
Compito di Fondamenti della Programmazione: Metodi Evoluti - A.A. 2014-15 Prova di esame del 24 settembre 2015 Esercizio 1) [10 punti] Marcare le affermazioni che si ritengono vere. Ogni manda può avere
DettagliUNIVERSITÀ DI BERGAMO FACOLTÀ DI INGEGNERIA
Normativa di riferimento Diagrammi funzionali Diagramma delle fasi/spostamenti Circuiti semiautomatici Circuiti automatici Circuiti sequenziali (ciclo quadro) (ciclo quadro) Circuiti sequenziali
DettagliSommario. Modellizzazione Sintassi Classi di Oggetti Tipi di Dati e Operatori Package e Librerie Processi Esempi di codice VHDL VHDL Testbenches
Fondamenti di VHDL Sommario VHDL: premessa e introduzione Modellizzazione Sintassi Classi di Oggetti Tipi di Dati e Operatori Package e Librerie Processi Esempi di codice VHDL VHDL Testbenches Premessa
DettagliUniversità di Bergamo Facoltà di Ingegneria INGEGNERIA DEL SOFTWARE. Paolo Salvaneschi A4_3 V2.1. Progettazione. Metodi e Linguaggi
Università di Bergamo Facoltà di Ingegneria INGEGNERIA DEL SOFTWARE Paolo Salvaneschi A4_3 V2.1 Progettazione Metodi e Linguaggi Il contenuto del documento è liberamente utilizzabile dagli studenti, per
DettagliIntroduzione al Multithreading
Introduzione al Multithreading Claudia Calidonna Istituto di di Cibernetica C.N.R. Argomenti principali Parleremo di : Processi & Threads Operazioni sui threads ed eventuali confronti tra operazioni sui
DettagliCostrutti per il controllo del flusso di esecuzione
Costrutti per il controllo del flusso di esecuzione Fondamenti di informatica L-B Laboratorio Alessandro Falchi afalchi@deis.unibo.it Operatori (1) PRECEDENZA ASSOCIATIVITÀ OPERATORE TIPO/I DEGLI OPERANDI
DettagliMetodo delle Abstract State Machines per l analisi e il design
Metodo delle Abstract State Machines per l analisi e il design Concetto di Abstract State Machine Metodo del modello ground Metodo di raffinamento 1 Concetto di Abstract State Machine Le Abstract State
DettagliClass diagram COMPORTAMENTO associazioni
Class diagram Rappresenta le classi che compongono il sistema, cioè le collezioni di oggetti, ciascuno con il proprio stato e COMPORTAMENTO (attributi ed operazioni) Specifica, mediante associazioni, le
DettagliCorso di Laboratorio di Sistemi Operativi
Corso di Laboratorio di Sistemi Operativi Lezione 4 Alessandro Dal Palù email: alessandro.dalpalu@unipr.it web: www.unipr.it/~dalpalu Approfondimento su make http://http://capone.mtsu.edu/csdept/facilitiesandresources/make.htm
DettagliCorso di Linguaggi di Programmazione
Corso di Linguaggi di Programmazione Lezione 12 Alberto Ceselli ceselli@dti.unimi.it Dipartimento di Tecnologie dell Informazione Università degli Studi di Milano 21 Aprile 2007 Concorrenza a livello di
DettagliSOMMARIO DIAGRAMMI DI ATTIVITÀ INGEGNERIA DEL SOFTWARE. Introduzione. Concetti base. Introduzione. Concetti base
SOMMARIO Introduzione Concetti base INGEGNERIA DEL SOFTWARE Università degli Studi di Padova Dipartimento di Matematica Corso di Laurea in Informatica, A.A. 2013 2014 2 rcardin@math.unipd.it SOMMARIO Introduzione
DettagliModello a scambio di messaggi
Modello a scambio di messaggi Aspetti caratterizzanti il modello Canali di comunicazione Primitive di comunicazione 1 Aspetti caratterizzanti il modello modello architetturale di macchina (virtuale) concorrente
DettagliIstruzioni Condizionali
Istruzioni Condizionali Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Domenico Daniele Bloisi Docenti Metodi Numerici prof. Vittoria Bruni vittoria.bruni@sbai.uniroma1.it Programmazione
DettagliISTRUZIONI A B K A, B, K A<B? SI A<B? SI A<B? SI
SECONDA PARTE 6. LA RIPETIZIONE while ISTRUZIONI A B K A, B, K 0 10 0 While A
DettagliCLASS DIAGRAM PARTE 1
Istituto di Scienza e Tecnologie dell'informazione A. Faedo Software Engineering Laboratory CLASS DIAGRAM PARTE 1 UML The Unified Modeling Language Guglielmo De Angelis guglielmo.deangelis@isti.cnr.it
DettagliFondamenti di Programmazione. Strutture di controllo
Fondamenti di Programmazione Strutture di controllo 1! Controllo del flusso! n Flusso di esecuzione: ordine in cui le istruzioni di un programma sono eseguite! n Salvo contrordini, è in sequenza! n Due
DettagliLab 2: Sincronizzazione diretta/indiretta in Java
Dept. of Computer Science Lab 2: Sincronizzazione diretta/indiretta in Java Matteo Camilli matteo.camilli@unimi.it Laboratorio di Sistemi Operativi a.a. 2015/16 Università degli Studi di Bergamo 1 Esercizi
DettagliLaboratorio di Progettazione di Sistemi Software UML per Design Patterns e Refactoring
TITLE Laboratorio di Progettazione di Sistemi Software UML per Design Patterns e Refactoring Valentina Presutti (A-L) Riccardo Solmi (M-Z) 1 Indice degli argomenti Introduzione alla notazione UML I diagrammi
DettagliDescrivono la collaborazione di un gruppo di oggetti per implementare collettivamente un comportamento
Diagrammi di interazione Diagrammi di sequenza Diagrammi di comunicazione (ex collaborazione) Diagrammi di interazione generale Diagrammi di temporizzazione Descrivono la collaborazione di un gruppo di
DettagliSCD. Correttezza temporale. Correttezza temporale. Premesse 2. Politiche di ordinamento 1. Premesse 1
Premesse 2 Anno accademico 2014/15 Sistemi Concorrenti e Distribuiti Tullio Vardanega, tullio.vardanega@math.unipd.it SCD I sistemi a tempo reale devono assicurare correttezza temporale oltre che funzionale
DettagliAlgoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal
Algoritmi, Strutture Dati e Programmi : Programmazione in Pascal Prof. Alberto Postiglione AA 2007-2008 Università degli Studi di Salerno Il Linguaggio di Programmazione Pascal Esistono molti linguaggi
DettagliLEZIONE 3 USE CASE DIAGRAM && ACTIVITY DIAGRAM
Istituto di Scienza e Tecnologie dell'informazione A. Faedo Software Engineering and Dependable Computing Laboratory LEZIONE 3 USE CASE DIAGRAM && ACTIVITY DIAGRAM Laboratorio di Ingegneria del Software
DettagliStructured Text. Structured Text. Marco Mauri. Politecnico di Milano P.zza Leonardo da Vinci, Maggio
Structured Text Marco Mauri Politecnico di Milano P.zza Leonardo da Vinci, 32 22-23 Maggio 2001 1 Sommario La struttura del linguaggio Come assegnare un valore ad una variabile Come creare espressioni
DettagliProgrammazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo
Programmazione Orientata agli Oggetti Emilio Di Giacomo e Walter Didimo Una metafora dal mondo reale la fabbrica di giocattoli progettisti Un semplice giocattolo Impara i suoni Dall idea al progetto Toy
DettagliProgrammazione in Java (I modulo)
Programmazione in Java (I modulo) Lezione 7 Iterazioni nei programmi:definite e indefinite Tre costrutti: While Do...While For Esempi Istruzioni di iterazione Le istruzioni iterative permettono di ripetere
DettagliSpecifica parte IIID. La specifica nei casi reali. Esempio: DFD. La specifica nei casi reali
La specifica nei casi reali Specifica parte IIID Leggere Sez. 5.7 Ghezzi et al. La complessità dei casi reali impone ulteriori requisiti, oltre all espressività, al rigore e alla formalità E necessario
DettagliSOMMARIO. DIAGRAMMI DI ATTIVITÀ INGEGNERIA DEL SOFTWARE Università degli Studi di Padova. Introduzione. Concetti base.
SOMMARIO Introduzione Concetti base INGEGNERIA DEL SOFTWARE Università degli Studi di Padova Dipartimento di Matematica Corso di Laurea in Informatica, A.A. 2014 2015 rcardin@math.unipd.it 2 SOMMARIO Introduzione
DettagliUniversità di Bergamo Facoltà di Ingegneria INGEGNERIA DEL SOFTWARE. Paolo Salvaneschi B1_2 V2.3 UML
Università di Bergamo Facoltà di Ingegneria INGEGNERIA DEL SOFTWARE Paolo Salvaneschi B1_2 V2.3 UML Il contenuto del documento è liberamente utilizzabile dagli studenti, per studio personale e per supporto
DettagliUnified Modeling Language UML 2.0 -Sequence, Communication and Interaction Overview diagrams -
Unified Modeling Language UML 2.0 -Sequence, Communication and Interaction Overview diagrams - Henry Muccini Università degli Studi dell'aquila muccini@di.univaq.it http://www.henrymuccini.com Engineering
DettagliIl linguaggio PHP. Insegnarvi tutto il PHP? Non esattamente Obiettivo: insegnarvi ad interagire via web con una base dati
Programmazione Web Il linguaggio PHP Il nostro obiettivo Insegnarvi tutto il PHP? Non esattamente Obiettivo: insegnarvi ad interagire via web con una base dati Accedere ai dati inseriti dall utente nei
DettagliLinguaggi e Traduttori: Analisi lessicale
Linguaggi e Traduttori: Analisi lessicale Armando Tacchella Sistemi e Tecnologie per il Ragionamento Automatico (STAR-La) Dipartimento di Informatica Sistemistica e Telematica (DIST) Università di Genova
DettagliLABORATORIO di Reti di Calcolatori
LABORATORIO di Reti di Calcolatori Strumenti di specifica di protocolli e algoritmi di rete 1 of 44 v slide della docente Bibliografia v testo di supporto: D. Maggiorini, Introduzione alla programmazione
DettagliProgramma operativo Regione Lombardia/Ministero del Lavoro/Fondo Sociale Europeo, Obiettivo 3 Misura C3
Programma operativo Regione Lombardia/Ministero del Lavoro/Fondo Sociale Europeo, Obiettivo 3 Misura C3 Progetto ID 24063 Moduli e contenuti professionalizzanti inseriti nei corsi di laurea e diplomi universitari
DettagliModellazione discreta con UML
Modellazione discreta con UML Simulazione & Logistica, I modulo Lezione n. 3 Corso di Laurea in Informatica Applicata Università di Pisa, sede di La Spezia A.a. 2008/09, I semestre Giovanni A. Cignoni
DettagliLaboratorio di Informatica I
Struttura della lezione Lezione 7: Istruzioni ed Operatori Booleani Vittorio Scarano Corso di Laurea in Informatica Soluzioni agli esercizi Istruzioni (statement) semplici e di controllo Operatori relazionali
DettagliSviluppare un programma in FORTRAN
Sviluppare un programma in FORTRAN Scrivere il file sorgente Editor di testo (emacs, vi, notepad, etc) Compilare Compilatore (ifort, gfortran, etc) Eseguire il programma Riga di comando, doppio click,
DettagliLaboratorio di Python
Istruzione di condizione, Input da tastiera, Università di Bologna 6 e 8 marzo 2013 Sommario 1 Tipi di errore e Debugging 2 3 4 Outline Tipi di errore e Debugging 1 Tipi di errore e Debugging 2 3 4 Esercizio
DettagliSISTEMI OPERATIVI. Processi in Linux. Giorgio Giacinto Sistemi Operativi
SISTEMI OPERATIVI Processi in Linux 2 Creazione di processi concorrenti» La creazione di un processo figlio consente di far eseguire alcune funzionalità del programma in modo concorrente» Opzione 1 il
DettagliANALISI E PROGETTO DI CIRCUITI SEQUENZIALI
ANALISI E PROGETTO DI CIRCUITI SEQUENZIALI 1 Classificazione dei circuiti logici Un circuito è detto combinatorio se le sue uscite (O i ) sono determinate univocamente dagli ingressi (I i ) In pratica
DettagliParte 5. L ambiente di sviluppo ARENA
Parte 5 L ambiente di sviluppo ARENA Caratteristiche Arena distributore: applicazioni: Rockwell Software Manufacturing, supply chain, business process, military, warehousing e logistics improvement sistemi
DettagliCorso di Fondamenti di Informatica
Corso di Fondamenti di Informatica Le classi di istruzioni in C++ 1 Le classi di istruzioni in C++ SEQUENZIALI Statement semplice Statement composto CONDIZIONALI if < expr.> else switch case
DettagliScelte. Costrutto condizionale. Il costrutto if. Il costrutto if. Rappresentazione con diagramma a blocchi. Il costrutto if
Scelte Costrutto condizionale Scelte, blocchi Fino ad ora il corpo dei metodi che abbiamo scritto aveva solo un modo di essere eseguito: in sequenza dalla prima istruzione all ultima In applicazioni non
DettagliAutomazione Industriale 5 - Il linguaggio descrittivo UML
Automation Robotics and System CONTROL Università degli Studi di Modena e Reggio Emilia Automazione Industriale 5 - Il linguaggio descrittivo UML Cesare Fantuzzi (cesare.fantuzzi@unimore.it) Ingegneria
DettagliIstruzioni di controllo
Istruzioni di controllo Le istruzioni in C Assegnazione Sequenza I/O Test Cicli Controllo = che cosa è la prossima cosa da fare La prossima cosa da fare è quella che segue La prossima cosa da fare dipende
DettagliSOMMARIO DIAGRAMMI DI ATTIVITÀ INGEGNERIA DEL SOFTWARE. Introduzione. Concetti base. Introduzione. Concetti base
SOMMARIO INGEGNERIA DEL SOFTWARE Università degli Studi di Padova Dipartimento di Matematica Corso di Laurea in Informatica, A.A. 2012 2013 2 rcardin@math.unipd.it SOMMARIO 3 4 Analisi dei Requisiti, Specifica
DettagliCorso di Linguaggi di Programmazione
Corso di Linguaggi di Programmazione Lezione 20 Alberto Ceselli alberto.ceselli@unimi.it Dipartimento di Tecnologie dell Informazione Università degli Studi di Milano 14 Maggio 2013 Programmazione concorrente:
DettagliIngegneria del Software. Simulazione Prova parziale del 24/4/2015
Cognome Nome Matricola Ingegneria del Software Simulazione Prova parziale del 24/4/2015 Durata: 1h 30' Esercizio 1. Descrivere il seguente diagramma UML di attività, rappresentante la procedura di analisi
DettagliIstruzioni Condizionali
Istruzioni Condizionali Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Domenico Daniele Bloisi Docenti Parte I prof. Silvio Salza salza@dis.uniroma1.it
DettagliStatechart Diagrams. Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it
Statechart Diagrams Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it Dipartimento di Ingegneria Informatica e delle Telecomunicazioni Università di Catania Agenda Cosa è uno Statechart Diagram Quando
DettagliUnità Didattica 2 Linguaggio C. Espressioni, Operatori e Strutture linguistiche per il controllo del flusso
Unità Didattica 2 Linguaggio C Espressioni, Operatori e Strutture linguistiche per il controllo del flusso 1 Espressioni e assegnazioni Le espressioni sono definite dalla grammatica: espressione = variabile
Dettagli