UML State Diagrams. Nondeterminismo. Macchina a Stati Finiti (Automa a stati finiti, Finite State Machine, FSM)
|
|
- Roberto Marchi
- 8 anni fa
- Visualizzazioni
Transcript
1 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 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. 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 --> (s 1, e, s 2 ) R si scrive anche s 1 e s 2 1
2 Uscite, azioni Uscite generate dall automa: off Lamp On Lamp Off on print( print( on ) off Macchina di Mealy Lamp On print( on ) off Lamp Off on on off 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) Extended Finite State Machines (EFSM) Estensione con variabili ( extended state ) ctr : Integer off Lamp On Lamp Off on ctr := ctr + 1 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) 2
3 Harel Statecharts Basic UML Statechart Diagram 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) Initial pseudostate Transition Final state top state top Ready Done stop /ctr := 0 stop State Trigger Action 9 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 3
4 Comportamento Event-Driven - UML Comportamento di un oggetto Passivo - Modello Generale 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 Trattamento dello specifico metodo richiesto void:offhook (); {busy = true; obj.reqdialtone(); }; Initialize Wait Wait for for Handle Terminate Oggetti Passivi e Macchine a Stati Oggetti e flussi di controllo (threads) mapping: Initialize Wait for Event Handle Event Terminate on Lamp On print( on ) off off Lamp Off stop Oggetti Passivi: flusso di controllo esterno Oggetti Attivi: proprio flusso di controllo Initialize Initialize Wait Wait for for Handle Handle Terminate Terminate Initialize Initialize Wait Wait for for Handle Handle Terminate Terminate 4
5 Flussi concorrenti Initialize Initialize Wait Wait for for Handle Handle Terminate Terminate Oggetti Attivi e Macchine a Stati Oggetti Attivi con il proprio flusso di controllo anactive #currentevent : Event poll/defer created start + start ( ) + poll ( ) + stop ( ) start/^master.ready() ready ready stop/ 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 poll/^master.ack() Le variabili di stato esteso sono gli attributi dell oggetto. Semantica degli Oggetti Attivi Run-to-completion model Coda di eventi Run-to-completion model Active: 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 5
6 Stati UML Sintassi completa Initializing Valve ValveOk: Boolean = FALSE ValveAperture: int = 0 cmdsize: int entry / ValveOK = TestValve( ) do / OpenTo(cmdSize: int) exit / printmessage(valveaperature) A event parameters event name entry / g(x), h(y) exit / m(a), n(b) do / act(a,y,z) defer / e1, e2 e3 / p(x,y), q(z) T1(int r)[r < 0] / f(r) entry actions exit actions activities deferred events internal transition state name state guard action list B 22 Un evento può essere: Eventi 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 6
7 Esempi di etichette sulle transizioni Tipi di Eventi 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)) 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) State Entry and Exit Actions Ordine delle Azioni: un caso semplice Exit actions precedono le transizioni Entry action seguono le transizioni LampOn entry/lamp.on(); exit/lamp.off(); e1 e2 LampOn entry/lamp.on(); exit/printf printf( exiting ); off/printf printf( to to off ); Sequenza di azioni risultante printf( exiting ); printf( to to off ); lamp.off(); LampOff entry/lamp.off(); exit/printf printf( exiting ); off/printf printf( needless ); printf( exiting ); printf( needless ); needless ); lamp.off(); 7
8 Transizioni Interne State ( Do ) Activities 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; 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 Guardie Esecuzione Condizionale di transizioni Le guardie (predicati Booleani) non devono avere side-effect bid [value < 100] /reject Selling bid [value >= 200] /sell Happy Static Conditional Branching Abbreviazione grafica per evidenziare una signola transizione uscente Selling Happy bid bid [(value >= 100) & (value < 200)] /sell [value < 100] /reject [value >= 200] /sell [(value >= 100) & (value < 200)] /sell Unhappy Unhappy 8
9 Dynamic Conditional Branching Choice pseudostate: le guardie vengono valutate solo quando viene raggiunto lo pseudostato. Macchine a stati gerarchiche stati decomposti ricorsivamente in macchine a stati [gain < 100] /reject Dynamic choicepoint Selling Unhappy bid /gain := calculatepotentialgain(value) [gain >= 200] /sell [(gain >= 100) & (gain < 200)] /sell Happy LampOff entry/lamp.off() off/ LampOn entry/lamp.on() flash/ LampFlashing 1sec/ FlashOn entry/lamp.on() 1sec/ FlashOff entry/lamp.off() OR States Sintassi state 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 or-states ev_2 nested state 35 9
10 OR States Statechart gerarchica entry/ Print(ErrCode) Group Transitions Transizioni a più alto livello nella gerarchia di stati Default transition to the initial pseudostate Completion Transitions Triggered da un evento di completion generato automaticamente quando uno macchina immediatamente annidata termina LampOff entry/lamp.off() off/ flash/ LampFlashing FlashOn entry/lamp.on() Committing Phase1 completion transition (no trigger) LampOn entry/lamp.on() 1sec/ 1sec/ FlashOff entry/lamp.off() Phase2 CommitDone Group transition 10
11 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 off/ FlashOn FlashOff Ordine delle azioni annidate Da fuori a dentro le azioni entry Da dentro a fuori le azioni exit U U1 entry: x(c) exit: y() entry: f() exit: g(a,b) first f() then x(c) A first y() then g(a,b) 42 Deferred Events Ordine delle Azioni: Caso Complesso 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 LampOn entry/lamp.on() 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 11
12 Ortogonalità Viste multiple simultanee sulla stessa entità age Child Adult Retiree Person financialstatus Poor 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 Regioni Ortogonali AND-States Combinazione di descrizioni multiple simultanee age financialstatus Child Poor Adult age financialstatus Retiree Child Rich Adult Poor Retiree Rich 12
13 AND-States Regioni Ortogonali - Semantica transition Tutte le regioni ortogonali reagiscono allo stesso evento, (in principo) simultaneamente. state legalstatus financialstatus initial pseudostate LawAbiding Poor robbank/ robbank/ conditional pseudostate and-states Outlaw Rich AND-States & Concorrenza Gli AND-states non sono necessariamente concorrenti Semantica degli AND-states tipicamente a interleaving Uso concettualmente errato dell ortogonalità Uso di regioni per modellare oggetti attivi independenti Person1 Person2 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. Person1 Child Adult Retiree Person2 Child Adult Retiree Soluzione: --> due istanze dello stesso oggetto attivo!!! 13
14 Catch22 sanitystatus Interazioni tra Regioni Tipicamente, attraverso variabli condivise o riferimenti a cambio di stato delle altre regioni. request Grounding/ Crazy entry/sane := false; (flying)/ Sane entry/sane := true; sane : Boolean flying : Boolean flightstatus 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) Propagazione e Broadcast Fork e Join Transizioni verso/da regions ortogonali: age / Child Adult Retiree Staff Member Manager employee 55 14
15 Transizioni Complesse pseudostates fork S1 S S1_1 e2 S1_2 e5 join initial pseudostate history pseudostate A B e1 e5 S2_1 e3 S2_2 S2 conditional pseudostate e4 C terminal pseudostate Pseudostates History C Symbol or Symbol Name Branch Pseudostate (type of junction pseudostate) Symbol H Symbol Name (Shallow) History Pseudostate Ritorno a uno stato gerarchico già visitato deep /shallow history T * or or n Terminal or Final Pseudostate Synch Pseudostate H* (Deep) History Pseudostate Initial or Default Pseudostate suspend/ Diagnostic1 Diagnosing Diagnostic2 [g] Fork Pseudostate Join Pseudostate Junction Pseudostate Merge Junction Pseudostate (type of junction pseudostate) resume/ H* Step11 Step12 Step21 Step22 [g] Choice Point Pseudostate label Stub Pseudostate 15
16 Deep History Shallow History Synch Pseudostate Synch Pseudostate Data Processing 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 Waiting for Processing Logging Data Datum Data datasignal Synch Pseudostate with unbounded multiplicity synch state * User Monitoring Applying /active alarm ct = 0 Alarm Filters Idle Waiting to Process done tm(displaytime) Alarms alarmraised C [active alarm ct > 0]/ gensignal(alarmraised) Waiting to [else] accept /active alarm ct = 0 Displaying Alarms accept Alarm Processing 1 synch state 16
17 Stub Notation Abbreviazione notazionale: nessuna aggiunta semantica LampOff entry/lamp.off() flash/ LampFlashing stub state reference toon(mode: tmode) defaultmode = mode; Submachines: Reference Self Testing include / BITSubmachine device Test RAM Test On done(defaultmode) Operating include / OpsSubmachine dotest Normal Failsafe off/ FlashOn Off Abort doramtest dodevicetest [else] [recoverok] LampOn entry/lamp.on() FlashOff tooff Unrecoverable Error submachine indicator C errorfound errorhandled Submachines: Referenced Uso degli State Diagrams 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 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) 17
18 Formal Verification Development Cycle - 1 Natural Language Formalized Modelization Phase Architectural Design Detailed Design Software Requirements Document (Finite State) Model Architectural Design Document Detailed Design Document Coding Source code Formalization Phase Formal Verification Integration Test Unit Test Properties (formal expr. of Requirements) Test Case Generation Test Suite Functional test Formal Verification Development Cycle - 2 Model Driven Development Natural Language Formalized Modelization Phase Software Requirements Document (Finite State) Model Code Generation Source code Formalization Phase Formal Verification Properties (formal expr. of Requirements) Test Suite Test Case Generation Functional test Model Checking (Clarke/Emerson, Queille/Sifakis) ACTL Formula in logica temporale p Modello a stati finiti AG([p] EF<q> true) q MC si algoritmo no p q q q Contro-esempio Il modello deve rappresentare tutti i comportamenti Specifica: relazioni tra Class Diagrams, Sequence Diagrams e State Diagrams Il diagramma delle classi definisce le relazioni tra le classi del sistema: alcune delle classi definissono oggetti passivi, altre oggetti attivi Il comportamento di ogni oggetto attivo viene specificato attraverso uno state diagram, associato alla relativa classe Un sequence diagram definisce un possibile schema di interazione (scenario) tra oggetti attivi o passivi, istanze di classi definite nel class diagram. 18
19 PBX Main Class Diagram PBX Connection Statechart PBX Line Statechart PBX Telephone Statechart 19
20 PBX Main? Call Connect Scenario (1 of 4) User? Credits Bruce Powel Douglass, Real-Time UML, Slides, Ilogix Gunnar Övergaard, Bran Selic, Conrad Bock, Behavioral Modeling, Modeling with OMG UML Tutorial Series, UML Revision Task Force, Nov
UML State Diagrams. A. Fantechi 1/4/2010. Macchina a Stati Finiti. (Automa a stati finiti, Finite State Machine, FSM)
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 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 Riepilogo della lezione
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
DettagliActivity Diagrams. Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it
Activity Diagrams Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it Dipartimento di Ingegneria Informatica e delle Telecomunicazioni Università di Catania Agenda Cosa è un Activity Diagram Quando si
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
DettagliI metodi formali nel processo di sviluppo del software
I metodi formali nel processo di sviluppo del software I metodi formali consentono di creare una specifica più completa, uniforme e non ambigua di quelle prodotte usando i metodi convenzionali ed orientati
DettagliSequence Diagram e Collaboration Diagram
Sequence Diagram e Collaboration Diagram Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it Dipartimento di Ingegneria Informatica e delle Telecomunicazioni Università di Catania Sommario Interaction
DettagliA intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.
Algoritmi di routing dinamici (pag.89) UdA2_L5 Nelle moderne reti si usano algoritmi dinamici, che si adattano automaticamente ai cambiamenti della rete. Questi algoritmi non sono eseguiti solo all'avvio
DettagliUML. Analisi Modellazione e altro. Macchine a stati, Diagrammi di attività.. UML aa 2006/7 G.Bucci 1
UML Analisi Modellazione e altro Macchine a stati, Diagrammi di attività.. PROVVISORIO UML aa 2006/7 G.Bucci 1 Macchine a stati in UML Sono una versione estesa (derivante dalle StateChart [Harel]) delle
DettagliDescrizione di un algoritmo
Descrizione di un algoritmo Un algoritmo descrive due tipi fondamentali di oper: calcoli ottenibili tramite le oper primitive su tipi di dato (valutazione di espressioni) che consistono nella modifica
DettagliSistemi elettronici per la sicurezza dei veicoli: presente e futuro. Il ruolo della norma ISO 26262 per la Sicurezza Funzionale
La Sicurezza Funzionale del Software Prof. Riccardo Sisto Ordinario di Sistemi di Elaborazione delle Informazioni Dipartimento di Automatica e Informatica Sicurezza Funzionale del Vari Aspetti Sicurezza
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
DettagliBusiness Process Modeling and Notation e WebML
Business Process Modeling and Notation e WebML 24 Introduzione I Web Service e BPMN sono standard de facto per l interoperabilità in rete a servizio delle imprese moderne I Web Service sono utilizzati
DettagliModellazione di sistema
Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - Modellazione di sistema E. TINELLI Contenuti Approcci di analisi Linguaggi di specifica Modelli di
DettagliTipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:
Tipi primitivi Il linguaggio Java offre alcuni tipi di dato primitivi Una variabile di tipo primitivo può essere utilizzata direttamente. Non è un riferimento e non ha senso tentare di istanziarla mediante
DettagliArtifact Centric Business Processes (I)
Introduzione Autore: Docente: Prof. Giuseppe De Giacomo Dipartimento di Informatica e Sistemistica SAPIENZA - Universitá di Roma 16 Novembre 2008 Una visione assiomatica La modellazione dei processi di
DettagliSistemi Informativi. Introduzione. Processi fisici. Tipologie di processi. Processi informativi. Processi aziendali
Introduzione Sistemi Informativi Linguaggi per la modellazione dei processi aziendali Paolo Maggi Per progettare un sistema informativo è necessario identificare tutti i suoi elementi
DettagliCorso di Linguaggi di Programmazione
Corso di Linguaggi di Programmazione Lezione 19 Alberto Ceselli alberto.ceselli@unimi.it Dipartimento di Tecnologie dell Informazione Università degli Studi di Milano 18 Maggio 2010 idea: sfruttare i
DettagliRequisiti normativi, standard, template
Schemi di rappresentazione delle procedure Costituiscono al tempo stesso modalità di analisi (o descrizione) e di progettazione. Sono schemi di rappresentazione utilizzati anche per descrivere i workflow.
DettagliOrganizzazione degli archivi
COSA E UN DATA-BASE (DB)? è l insieme di dati relativo ad un sistema informativo COSA CARATTERIZZA UN DB? la struttura dei dati le relazioni fra i dati I REQUISITI DI UN DB SONO: la ridondanza minima i
DettagliArduino: Programmazione
Programmazione formalmente ispirata al linguaggio C da cui deriva. I programmi in ARDUINO sono chiamati Sketch. Un programma è una serie di istruzioni che vengono lette dall alto verso il basso e convertite
DettagliSemantica dei programmi. La semantica dei programmi è la caratterizzazione matematica dei possibili comportamenti di un programma.
Semantica dei programmi La semantica dei programmi è la caratterizzazione matematica dei possibili comportamenti di un programma. Semantica operazionale: associa ad ogni programma la sequenza delle sue
DettagliFSM: Macchine a Stati Finiti
FSM: Macchine a Stati Finiti Sommario Introduzione Automi di Mealy Automi di Moore Esempi Introduzione Metodo per descrivere macchine di tipo sequenziale Molto utile per la descrizione di Unità di controllo
DettagliMacchine a stati finiti. Sommario. Sommario. M. Favalli. 5th June 2007
Sommario Macchine a stati finiti M. Favalli 5th June 27 4 Sommario () 5th June 27 / 35 () 5th June 27 2 / 35 4 Le macchine a stati si utilizzano per modellare di sistemi fisici caratterizzabili mediante:
DettagliLezione 8. La macchina universale
Lezione 8 Algoritmi La macchina universale Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni su i dati digitale= l informazione
DettagliGestione Automatizzata di una Lista Nozze
Gestione Automatizzata di una Lista Nozze Si deve progettare un sistema per la gestione di liste nozze on line. Il sistema rende possibile la consultazione di un catalogo on line, la creazione di una lista
DettagliScheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux
Scheduling della CPU Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Sistemi multiprocessori Fin qui si sono trattati i problemi di scheduling su singola
DettagliMacchine a stati finiti. Sommario. Sommario. M. Favalli. Le macchine a stati si utilizzano per modellare di sistemi fisici caratterizzabili mediante:
Sommario Macchine a stati finiti M. Favalli Engineering Department in Ferrara 4 Sommario (ENDIF) Analisiesintesideicircuitidigitali / 35 (ENDIF) Analisiesintesideicircuitidigitali 2 / 35 4 Le macchine
DettagliRegistratori di Cassa
modulo Registratori di Cassa Interfacciamento con Registratore di Cassa RCH Nucleo@light GDO BREVE GUIDA ( su logiche di funzionamento e modalità d uso ) www.impresa24.ilsole24ore.com 1 Sommario Introduzione...
DettagliDall Algoritmo al Programma. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni
Dall Algoritmo al Programma Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni IL PROGRAMMA Gli algoritmi sono modelli di descrizione astratti e per controllarne il funzionamento devono essere
DettagliSistemi Informativi I Caso di studio con applicazione di UML
9 CASO DI STUDIO CON APPLICAZIONE DI UML...2 9.1 IL CASO DI STUDIO...2 9.1.1 Il sistema attuale...2 9.2 IL PROBLEM STATEMENT...3 9.2.1 Formulazione del Problem statement per il caso proposto...3 9.3 USE
DettagliEsempio - Controllo di un ascensore
Costruiamo un modello ground a partire dai requisiti. Dimostriamo le proprietà di correttezza desiderate n ascensori m piani che soddisfano i seguenti requisiti: 1. Ogni ascensore ha per ogni piano un
DettagliIntroduzione ai tipi di dato astratti: applicazione alle liste
Universitàdegli Studi di L Aquila Facoltàdi Scienze M.F.N. Corso di Laurea in Informatica Corso di Laboratorio di Algoritmi e Strutture Dati A.A. 2005/2006 Introduzione ai tipi di dato astratti: applicazione
DettagliRealizzazione di Politiche di Gestione delle Risorse: i Semafori Privati
Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati Condizione di sincronizzazione Qualora si voglia realizzare una determinata politica di gestione delle risorse,la decisione se ad
DettagliCosa significa che il SW è non lineare? Piccoli cambiamenti nel codice portano a grandi cambiamenti di comportamento
Cosa significa che il SW è non lineare? Piccoli cambiamenti nel codice portano a grandi cambiamenti di comportamento Cosa s'intende per Information Hiding? Impedire l'accesso a dettagli implementativi
DettagliAutomazione Industriale (scheduling+mms) scheduling+mms. adacher@dia.uniroma3.it
Automazione Industriale (scheduling+mms) scheduling+mms adacher@dia.uniroma3.it Introduzione Sistemi e Modelli Lo studio e l analisi di sistemi tramite una rappresentazione astratta o una sua formalizzazione
DettagliSiti web centrati sui dati Architettura MVC-2: i JavaBeans
Siti web centrati sui dati Architettura MVC-2: i JavaBeans 1 ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010 Limiti dell approccio SEVLET UNICA La servlet svolge tre tipi di funzioni distinte: Interazione con
Dettagli2. Simulazione discreta: approcci alla simulazione
Anno accademico 2007/08 Elementi di un programma di simulazione Controllore Tempo di simulazione Generatore dei dati di input Entità Eventi Attività Stati Processi Simulazione per eventi: le classi L approccio
DettagliModello dei processi. Riedizione delle slide della Prof. Di Stefano
Modello dei processi Riedizione delle slide della Prof. Di Stefano 1 Processi Modello di Processi asincroni comunicanti Process Scheduling Operazioni sui Processi Cooperazione tra Processi Interprocess
Dettagli(anno accademico 2008-09)
Calcolo relazionale Prof Alberto Belussi Prof. Alberto Belussi (anno accademico 2008-09) Calcolo relazionale E un linguaggio di interrogazione o e dichiarativo: at specifica le proprietà del risultato
DettagliIdee guida. Finite State Machine (1) Un automa a stati finiti è definito da una 5- pla: FSM = <Q,,, q0, F>, dove: Finite State Machine (2)
Idee guida ASM = FSM con stati generalizzati Le ASM rappresentano la forma matematica di Macchine Astratte che estendono la nozione di Finite State Machine Ground Model (descrizioni formali) Raffinamenti
DettagliModello a scambio di messaggi
PRIMITIVE PER LO SCAMBIO DI MESSAGGI Un messaggio si può considerare costituito da: origine, destinazione e contenuto Modello a scambio di messaggi type messaggio = record origine: ; destinazione: ; contenuto:
DettagliIl Sistema Operativo
Il Sistema Operativo Il Sistema Operativo Il Sistema Operativo (S.O.) è un insieme di programmi interagenti che consente agli utenti e ai programmi applicativi di utilizzare al meglio le risorse del Sistema
DettagliIngegneria del Software T
Home Finance 1 Requisiti del cliente 1 Si richiede di realizzare un sistema per la gestione della contabilità familiare. Il sistema consente la classificazione dei movimenti di denaro e la loro memorizzazione.
DettagliUML Component and Deployment diagram
UML Component and Deployment diagram Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it Dipartimento di Ingegneria Informatica e delle Telecomunicazioni Università di Catania I diagrammi UML Classificazione
DettagliClaudia Raibulet raibulet@disco.unimib.it
Classi e stati Claudia Raibulet raibulet@disco.unimib.it la classe Cane modella le proprietà comuni di un insieme di oggetti quali attributi ha un cane peso colore come si comporta abbaia morde quali comandi
DettagliReti sequenziali sincrone
Reti sequenziali sincrone Un approccio strutturato (7.1-7.3, 7.5-7.6) Modelli di reti sincrone Analisi di reti sincrone Descrizioni e sintesi di reti sequenziali sincrone Sintesi con flip-flop D, DE, T
DettagliJava Virtual Machine
Java Virtual Machine programmi sorgente: files.java compilatore files.class bytecode linker/loader bytecode bytecode Java API files.class interprete macchina ospite Indipendenza di java dalla macchina
DettagliArchitettura MVC-2: i JavaBeans
Siti web centrati sui dati Architettura MVC-2: i JavaBeans Alberto Belussi anno accademico 2008/2009 Limiti dell approccio SEVLET UNICA La servlet svolge tre tipi di funzioni distinte: Interazione con
DettagliGestione del workflow
Gestione del workflow Stefania Marrara Corso di Tecnologie dei Sistemi Informativi 2004/2005 Progettazione di un Sistema Informativo Analisi dei processi Per progettare un sistema informativo è necessario
DettagliUniversità di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof.
Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 009-10 prof. Viviana Bono Blocco 9 Metodi statici: passaggio parametri, variabili locali, record
DettagliLaurea Specialistica in Informatica
Corso di Laurea in FISICA Laurea Specialistica in Informatica Fisica dell informazione 1 Elementi di Architettura degli elaboratori Prof. Luca Gammaitoni Informazioni sul corso: www.fisica.unipg unipg.it/gammaitoni/fisinfoit/gammaitoni/fisinfo
DettagliStruttura del calcolatore
Struttura del calcolatore Proprietà: Flessibilità: la stessa macchina può essere utilizzata per compiti differenti, nessuno dei quali è predefinito al momento della costruzione Velocità di elaborazione
DettagliOrganizzazione aziendale Lezione 16 BPMN. Ing. Marco Greco m.greco@unicas.it Tel.0776.299.3641 Stanza 1S-28
Organizzazione aziendale Lezione 16 BPMN Ing. Marco Greco m.greco@unicas.it Tel.0776.299.3641 Stanza 1S-28 Nozioni di base Un sistema è una collezione di entità (es. persone o macchine) che interagiscono
DettagliGESTIONE INFORMATICA DEI DATI AZIENDALI
GESTIONE INFORMATICA DEI DATI AZIENDALI Alberto ZANONI Centro Vito Volterra Università Tor Vergata Via Columbia 2, 00133 Roma, Italy zanoni@volterra.uniroma2.it Rudimenti di programmazione Programming
DettagliProgettaz. e sviluppo Data Base
Progettaz. e sviluppo Data Base! Progettazione Basi Dati: Metodologie e modelli!modello Entita -Relazione Progettazione Base Dati Introduzione alla Progettazione: Il ciclo di vita di un Sist. Informativo
DettagliCiclo di Istruzione. Ciclo di Istruzione. Controllo. Ciclo di Istruzione (diagramma di flusso) Lezione 5 e 6
Ciclo di Istruzione Può essere suddiviso in 4 tipi di sequenze di microoperazioni (cioè attività di calcolo aritmetico/logico, trasferimento e memorizzazione dei dati), non tutte necessariamente da realizzare
DettagliSistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo
Sistema Operativo Fondamenti di Informatica 1 Il Sistema Operativo Il Sistema Operativo (S.O.) è un insieme di programmi interagenti che consente agli utenti e ai programmi applicativi di utilizzare al
DettagliL API socket ed i daemon
L API socket ed i daemon Massimo Bernaschi Istituto per le Applicazioni del Calcolo Mauro Picone Consiglio Nazionale delle Ricerche Viale del Policlinico, 137-00161 Rome - Italy http://www.iac.cnr.it/
DettagliTesto Esercizio. Un modello è ragionevole quando contiene queste tre caratteristiche.
Testo Esercizio Un negozio di musica vende anche libri e riviste musicali. Si intende automatizzare l intero processo, dall approvvigionamento alla vendita. Si analizzino i requisiti e se ne rappresentino
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,
DettagliMitho PL KNX Pannello combinato KNX/videocitofonia. Mitho HA KNX Pannello di comando e visualizzazione KNX. Manuale Tecnico
Mitho PL KNX Pannello combinato KNX/videocitofonia Mitho HA KNX Pannello di comando e visualizzazione KNX Mitho PL KNX Mitho HA KNX Manuale Tecnico 1 Sommario 1 2 3 4 5 6 7 Introduzione... 3 Applicazione...
DettagliCorso di Laurea Ingegneria Informatica Fondamenti di Informatica 2
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Dispensa E08 Soluzione Esercizi F. Gasparetti, C. Limongelli Marzo 2008 http://www.dia.uniroma3.it/~java/fondinf1/ Soluzione Esercizi
DettagliTesti di Esercizi e Quesiti 1
Architettura degli Elaboratori, 2009-2010 Testi di Esercizi e Quesiti 1 1. Una rete logica ha quattro variabili booleane di ingresso a 0, a 1, b 0, b 1 e due variabili booleane di uscita z 0, z 1. La specifica
DettagliMacchine a Stati finiti
Macchine a Stati finiti Prof. Alberto Borghese Dipartimento di Scienze dell nformazione borghese@di.unimi.it Università degli Studi di Milano Riferimento al Patterson: Sezione B.0 /3 Sommario Macchine
DettagliCenni su algoritmi, diagrammi di flusso, strutture di controllo
Cenni su algoritmi, diagrammi di flusso, strutture di controllo Algoritmo Spesso, nel nostro vivere quotidiano, ci troviamo nella necessità di risolvere problemi. La descrizione della successione di operazioni
DettagliSviluppo di processi per l automatizzazione del testing per applicazioni Android
tesi di laurea Sviluppo di processi per l automatizzazione del testing per applicazioni Anno Accademico 2011/2012 relatori Ch.mo prof. Porfirio Tramontana candidato Enrico Solimeo Matr. 534002361 Contesto:
DettagliModellazione dei dati in UML
Corso di Basi di Dati e Sistemi Informativi Modellazione dei dati in UML Angelo Montanari Dipartimento di Matematica e Informatica Università degli Studi di Udine Introduzione UML (Unified Modeling Language):
DettagliAppunti del corso di Informatica 1 (IN110 Fondamenti) 2 Algoritmi e diagrammi di flusso
Università Roma Tre Facoltà di Scienze M.F.N. Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 2 Algoritmi e diagrammi di flusso Marco Liverani (liverani@mat.uniroma3.it)
DettagliSommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.
Algoritmi 1 Sommario Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. 2 Informatica Nome Informatica=informazione+automatica. Definizione Scienza che si occupa dell
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
DettagliAlgebra Booleana ed Espressioni Booleane
Algebra Booleana ed Espressioni Booleane Che cosa è un Algebra? Dato un insieme E di elementi (qualsiasi, non necessariamente numerico) ed una o più operazioni definite sugli elementi appartenenti a tale
DettagliIl problema. ! Si chiede di sviluppare un applicazione per la
Il problema! Si chiede di sviluppare un applicazione per la gestione del sistema bibliotecario universitario. La soluzione deve implementare le operazioni basilari per la gestione della biblioteca ed inoltre
DettagliAnalizzatore lessicale o scanner
Analizzatore lessicale o scanner Lo scanner rappresenta un'interfaccia fra il programma sorgente e l'analizzatore sintattico o parser. Lo scanner, attraverso un esame carattere per carattere dell'ingresso,
DettagliUniversità di Pisa Polo Sistemi Logistici Economia e Legislazione dei Sistemi Logistici. Informatica per la Logistica. Lezioni
Università di Pisa Polo Sistemi Logistici Economia e Legislazione dei Sistemi Logistici Le grandi e complesse organizzazioni aziendali sono la manifestazione tangibile della tecnologia avanzata, più delle
DettagliSoluzione dell esercizio del 12 Febbraio 2004
Soluzione dell esercizio del 12/2/2004 1 Soluzione dell esercizio del 12 Febbraio 2004 1. Casi d uso I casi d uso sono riportati in Figura 1. Figura 1: Diagramma dei casi d uso. 2. Modello concettuale
DettagliINFORMATICA GENERALE Prof. Alberto Postiglione Dipartimento Scienze della Comunicazione Università degli Studi di Salerno
INFORMATICA GENERALE Prof. Alberto Postiglione Dipartimento Scienze della Comunicazione Università degli Studi di Salerno UD 3.1b: Costrutti di un Algoritmo Dispense 1.2 I Costrutti di base 13 apr 2010
DettagliScheduling. Sistemi Operativi e Distribuiti A.A. 2004-2005 Bellettini - Maggiorini. Concetti di base
Scheduling Sistemi Operativi e Distribuiti A.A. 2-25 Bellettini - Maggiorini Concetti di base Il massimo utilizzo della CPU si ottiene mediante la multiprogrammazione Ogni processo si alterna su due fasi
DettagliImplementazione di sistemi real time
Implementazione di sistemi real time Automazione 28/10/2015 Vincenzo Suraci STRUTTURA DEL NUCLEO TEMATICO HARDWARE ABSTRACTION LAYER IMPLEMENTAZIONE EVENT-DRIVEN IMPLEMENTAZIONE TIME-DRIVEN SISTEMI DI
DettagliObject Oriented Programming
OOP Object Oriented Programming Programmazione orientata agli oggetti La programmazione orientata agli oggetti (Object Oriented Programming) è un paradigma di programmazione Permette di raggruppare in
DettagliTricks & Tips. [Access] Tutorial - ActiveX - Controllo Tree View. - Michele de Nittis - Versione: 1 Data Versione: venerdì 30 agosto 2002
Tricks & Tips [Access] - Michele de Nittis - Tutorial - ActiveX - Controllo Tree View Versione: 1 Data Versione: venerdì 30 agosto 2002 1 SOMMARIO PREMESSA...3 INSERIMENTO DEL CONTROLLO...3 AGGIUNTA DELLE
DettagliLezione 4. Modello EER
Lezione 4 Modello EER 1 Concetti del modello EER Include tutti i concetti di modellazione del modello ER Concetti addizionali: sottoclassi/superclassi, specializzazione, categorie, propagazione (inheritance)
DettagliI file di dati. Unità didattica D1 1
I file di dati Unità didattica D1 1 1) I file sequenziali Utili per la memorizzazione di informazioni testuali Si tratta di strutture organizzate per righe e non per record Non sono adatte per grandi quantità
DettagliConcetti di base di ingegneria del software
Concetti di base di ingegneria del software [Dalle dispense del corso «Ingegneria del software» del prof. A. Furfaro (UNICAL)] Principali qualità del software Correttezza Affidabilità Robustezza Efficienza
Dettagli19. LA PROGRAMMAZIONE LATO SERVER
19. LA PROGRAMMAZIONE LATO SERVER Introduciamo uno pseudocodice lato server che chiameremo Pserv che utilizzeremo come al solito per introdurre le problematiche da affrontare, indipendentemente dagli specifici
DettagliPronto Esecuzione Attesa Terminazione
Definizione Con il termine processo si indica una sequenza di azioni che il processore esegue Il programma invece, è una sequenza di azioni che il processore dovrà eseguire Il processo è quindi un programma
DettagliStrumenti di modellazione. Gabriella Trucco
Strumenti di modellazione Gabriella Trucco Linguaggio di modellazione Linguaggio formale che può essere utilizzato per descrivere (modellare) un sistema Il concetto trova applicazione soprattutto nell
DettagliMODELLAZIONE DEI PROCESSI AZIENDALI. workflow 1
MODELLAZIONE DEI PROCESSI AZIENDALI workflow 1 I Processi Definizione: Un Processo è un insieme di attività elementari svolte per raggiungere un certo obiettivo Tipologie di processi: Processi Fisici es.
DettagliESERCIZIO 1 (b) Dove è memorizzato il numero del primo blocco del file? Insieme agli altri attributi del file, nella cartella che contiene il file.
ESERCIZIO 1 Si consideri un hard disk formattato la cui memoria è suddivisa in 16 blocchi (numerati da 0 a 15). Si supponga che sull hard disk sia memorizzato un unico file, contenuto, nell ordine, nei
DettagliModello Workflow - WIDE
Modello Workflow - WIDE Prof.ssa Gentile a.a. 2011-2012 Modello Wide Workflow on an Intelligent and Distributed database Environment Descrive processi come insiemi di attività tra loro collegate da vincoli
DettagliIntroduzione a Visual Basic Lezione 1 Concetti base e istruzioni condizionali
a Visual Basic Lezione 1 Concetti base e istruzioni condizionali Mario Alviano Introduzione all informatica Università della Calabria http://alviano.net/introinfo A.A. 2008/09 Introduzione Un esempio:
DettagliFONDAMENTI di INFORMATICA L. Mezzalira
FONDAMENTI di INFORMATICA L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software
DettagliIntroduzione ai Metodi Formali
Intruzione ai Meti Formali Sistemi software anche molto complessi regolano la vita quotidiana, anche in situazioni life-critical (e.g. avionica) e business-critical (e.g. operazioni bancarie). Esempi di
DettagliTecniche di Simulazione: Introduzione. N. Del Buono:
Tecniche di Simulazione: Introduzione N. Del Buono: 2 Che cosa è la simulazione La SIMULAZIONE dovrebbe essere considerata una forma di COGNIZIONE (COGNIZIONE qualunque azione o processo per acquisire
DettagliTest di unità con JUnit4
Test di unità con JUnit4 Richiamo sul test di unità Il test d unità è una metodologia che permette di verificare il corretto funzionamento di singole unità di codice in determinate condizioni. Nel caso
DettagliNozione di algoritmo. Gabriella Trucco
Nozione di algoritmo Gabriella Trucco Programmazione Attività con cui si predispone l'elaboratore ad eseguire un particolare insieme di azioni su particolari informazioni (dati), allo scopo di risolvere
DettagliMacchine a stati finiti G. MARSELLA UNIVERSITÀ DEL SALENTO
Macchine a stati finiti 1 G. MARSELLA UNIVERSITÀ DEL SALENTO Introduzione Al più alto livello di astrazione il progetto logico impiega un modello, la cosiddetta macchina a stati finiti, per descrivere
DettagliPROGETTAZIONE DEL SOFTWARE
PROGETTAZIONE DEL SOFTWARE EMILIANO CASALICCHIO DIPARTIMENTO DI INFORMATICA E SISTEMISTICA SAPIENZA UNIVERSITÀ DI ROMA SEDE DI RIETI HTTP://WWW.CE.UNIROMA2.IT/COURSES/PSW! Cos è UML UNIFIED MODELING LANGUAGE!
DettagliSocket & RMI Ingegneria del Software - San Pietro
Socket & RMI Ingegneria del Software - San Pietro Socket È possibile trattare la comunicazione di rete allo stesso modo con cui è possibile trattare la lettura da file. La classe Socket rappresenta la
DettagliMODELLAZIONE DEI PROCESSI AZIENDALI. workflow 1
MODELLAZIONE DEI PROCESSI AZIENDALI workflow 1 I Processi Definizione: Un Processo è un insieme di attività elementari svolte per raggiungere un certo obiettivo Tipologie di processi: Processi Fisici es.
Dettagli