UML State Diagrams. Nondeterminismo. Macchina a Stati Finiti (Automa a stati finiti, Finite State Machine, FSM)

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "UML State Diagrams. Nondeterminismo. Macchina a Stati Finiti (Automa a stati finiti, Finite State Machine, FSM)"

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

LEZIONE 7 - STATE MACHINE DIAGRAM

LEZIONE 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

Dettagli

Modulo 13. Diagrammi degli stati

Modulo 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

Dettagli

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

Unified 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

Dettagli

Statechart Diagrams. Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it

Statechart 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

Dettagli

Activity Diagrams. Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it

Activity 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

Dettagli

I metodi formali nel processo di sviluppo del software

I 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

Dettagli

Business Process Modeling and Notation e WebML

Business 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

Dettagli

Diagrammi di stato Statechart Diagrams

Diagrammi 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,

Dettagli

Università di Padova Facoltà di Scienze MM.FF.NN Informatica - anno Corso di Ingegneria del Software - B UML

Università 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

Dettagli

Unified Modeling Language

Unified Modeling Language Unified Modeling Language Luciano Baresi Luciano Baresi 1 OMT Booch UML Sono simili in molti aspetti: Prescrivono un approccio passo-passo Consentono il passaggio dall analisi al progetto in modo omogeneo

Dettagli

Modellazione di sistema

Modellazione 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

Dettagli

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

Bibliografia. Studio di caso: Bancomat Automated Teller Machine. uso dei diagrammi: use case, classi, collaborazione, stato ,6 PRG % &RUVR GL,QJHJQHULD GHO 6RIWZDUH 80/ Bibliografia Studio di caso: Bancomat Automated Teller Machine uso dei diagrammi: use case, classi, collaborazione, stato - Hassan Gomaa: Designing concurrent

Dettagli

Sequence Diagram e Collaboration Diagram

Sequence 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

Dettagli

Idee guida. Finite State Machine (1) Un automa a stati finiti è definito da una 5- pla: FSM = , dove: Finite State Machine (2)

Idee 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

Dettagli

[Larman] Applicare UML e i pattern, Capitolo 28, Diagrammi di attività di UML e modellazione

[Larman] Applicare UML e i pattern, Capitolo 28, Diagrammi di attività di UML e modellazione Luca Cabibbo Architetture Software Dispensa T 1 ottobre 2008 1 -Fonti [Larman] Applicare UML e i pattern, Capitolo 28, Diagrammi di attività di UML e modellazione [Larman] Applicare UML e i pattern, Capitolo

Dettagli

Sistemi elettronici per la sicurezza dei veicoli: presente e futuro. Il ruolo della norma ISO 26262 per la Sicurezza Funzionale

Sistemi 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

Dettagli

UML. 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à.. 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

Dettagli

Linguaggi di Programmazione I Lezione 5

Linguaggi di Programmazione I Lezione 5 Linguaggi di Programmazione I Lezione 5 Prof. Marcello Sette mailto://marcello.sette@gmail.com http://sette.dnsalias.org 1 aprile 2008 Diagrammi UML 3 UML: richiami..........................................................

Dettagli

Modello a scambio di messaggi

Modello 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:

Dettagli

Modello Workflow - WIDE

Modello 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

Dettagli

Progettazione del Software. Emiliano Casalicchio. Dipartimento di Informatica e Sistemistica SAPIENZA Università di Roma Sede di Rieti

Progettazione del Software. Emiliano Casalicchio. Dipartimento di Informatica e Sistemistica SAPIENZA Università di Roma Sede di Rieti Progettazione del Software L3.1 Emiliano Casalicchio Dipartimento di Informatica e Sistemistica SAPIENZA Università di Roma Sede di Rieti http://www.ce.uniroma2.it/courses/psw (Basato su materiale didattico

Dettagli

UML. Una introduzione incompleta. UML: Unified Modeling Language

UML. Una introduzione incompleta. UML: Unified Modeling Language UML Una introduzione incompleta 1/23 UML: Unified Modeling Language Lo Unified Modeling Language (UML) è una collezione di notazioni grafiche che aiuta a progettare sistemi software, specialmente quelli

Dettagli

Descrizione di un algoritmo

Descrizione 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

Dettagli

MODELLO AD AMBIENTE GLOBALE

MODELLO AD AMBIENTE GLOBALE MODELLI DI INTERAZIONE TRA PROCESSI Modello ad ambiente globale ( global environment ) Modello a scambio di messaggi ( message passing ) MODELLO AD AMBIENTE GLOBALE Il sistema è visto come un insieme di

Dettagli

Algebra Booleana ed Espressioni Booleane

Algebra 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

Dettagli

Corso di Linguaggi di Programmazione

Corso 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

Dettagli

Implementazione di sistemi real time

Implementazione 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

Dettagli

Sistemi Informativi. Introduzione. Processi fisici. Tipologie di processi. Processi informativi. Processi aziendali

Sistemi 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

Dettagli

Modellazione di processi

Modellazione di processi Luca Cabibbo Architetture Software Dispensa ASW 910 ottobre 2014 La modellazione è un mestiere e a volte è un arte. William C. Burkett 1 -Fonti [Papazoglou] Papazoglou, Web Services Principles and Technology,

Dettagli

Elementi di Informatica

Elementi di Informatica Università degli Studi di Udine Facoltà di Ingegneria CORSO DI LAUREA IN SCIENZE dell ARCHITETTURA Elementi di Informatica Algoritmi, e Programmi D. Gubiani 29 marzo 2010 D. Gubiani Algoritmi, e Programmi

Dettagli

Processi BPEL. Obiettivi

Processi BPEL. Obiettivi Università degli studi di Roma Tor Vergata Facoltà di Ingegneria Processi BPEL Corso di Sistemi Distribuiti Stefano Iannucci Anno accademico 2009/10 Email: sd@chmod.it Obiettivi Esercitazione pratica su:

Dettagli

Processi e thread. Dipartimento di Informatica Università di Verona, Italy. Sommario

Processi e thread. Dipartimento di Informatica Università di Verona, Italy. Sommario Processi e thread Dipartimento di Informatica Università di Verona, Italy Sommario Concetto di processo Stati di un processo Operazioni e relazioni tra processi Concetto di thread Gestione dei processi

Dettagli

Requisiti normativi, standard, template

Requisiti 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.

Dettagli

Laboratorio di Sistemi per la Progettazione Automatica a.a. 2008/09

Laboratorio di Sistemi per la Progettazione Automatica a.a. 2008/09 Laboratorio di Sistemi per la Progettazione Automatica a.a. 2008/09 Giuseppe Di Guglielmo Università degli Studi Di Verona Dipartimento di Informatica Lezione 3: HDL Designer Revisione: mercoledì 18 marzo

Dettagli

Capitolo 2 -- Silberschatz

Capitolo 2 -- Silberschatz Struttura dei Sistemi Operativi Capitolo 2 -- Silberschatz Struttura di un sistema operativo Servizi di un sistema operativo Interfaccia Utente Chiamate di sistema Tipi di chiamate Programma di sistema

Dettagli

Struttura di un sistema operativo. Struttura dei Sistemi Operativi. Servizi per l utente generico. Servizi per l utente generico

Struttura di un sistema operativo. Struttura dei Sistemi Operativi. Servizi per l utente generico. Servizi per l utente generico Impossibile visualizzare l'immagine. Struttura di un sistema operativo Struttura dei Sistemi Operativi Servizi di un sistema operativo Interfaccia Utente Capitolo 2 -- Silberschatz Chiamate di sistema

Dettagli

Cosa 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 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

Dettagli

Comandi filtro: sed. Se non si specificano azioni, sed stampa sullo standard output le linee in input, lasciandole inalterate.

Comandi filtro: sed. Se non si specificano azioni, sed stampa sullo standard output le linee in input, lasciandole inalterate. Comandi filtro: sed Il nome del comando sed sta per Stream EDitor e la sua funzione è quella di permettere di editare il testo passato da un comando ad un altro in una pipeline. Ciò è molto utile perché

Dettagli

Tipi 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. 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

Dettagli

Verifica del codice con Interpretazione Astratta

Verifica del codice con Interpretazione Astratta Verifica del codice con Interpretazione Astratta Daniele Grasso grasso@dsi.unifi.it grasso.dan@gmail.com Università di Firenze, D.S.I., Firenze, Italy December 15, 2009 D.Grasso (Università di Firenze)

Dettagli

Artifact Centric Business Processes (I)

Artifact 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

Dettagli

PROGETTAZIONE DEL SOFTWARE

PROGETTAZIONE 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!

Dettagli

Descrizioni VHDL Behavioral

Descrizioni VHDL Behavioral 1 Descrizioni VHDL Behavioral In questo capitolo vedremo come la struttura di un sistema digitale è descritto in VHDL utilizzando descrizioni di tipo comportamentale. Outline: process wait statements,

Dettagli

Corso Base. Liceo Norberto Rosa Bussoleno Prof. Angelo GIORGIO

Corso Base. Liceo Norberto Rosa Bussoleno Prof. Angelo GIORGIO Corso Base Liceo Norberto Rosa Bussoleno Prof. Angelo GIORGIO Java Java è un Linguaggio di Programmazione orientato agli oggetti. Un Linguaggio di Programmazione è un linguaggio ad alto livello, dotato

Dettagli

Vincoli di Integrità Approccio dichiarativo alla loro implementazione

Vincoli di Integrità Approccio dichiarativo alla loro implementazione Vincoli di Integrità Approccio dichiarativo alla loro implementazione Antonella Poggi Dipartimento di informatica e Sistemistica SAPIENZA Università di Roma Progetto di Applicazioni Software Anno accademico

Dettagli

DAL DIAGRAMMA AL CODICE

DAL DIAGRAMMA AL CODICE DAL DIAGRAMMA AL CODICE Un diagramma di flusso Appare, come un insieme di blocchi di forme diverse che contengono le istruzioni da eseguire, collegati fra loro da linee orientate che specificano la sequenza

Dettagli

BPEL: Business Process Execution Language

BPEL: Business Process Execution Language Ingegneria dei processi aziendali BPEL: Business Process Execution Language Ghilardi Dario 753708 Manenti Andrea 755454 Docente: Prof. Ernesto Damiani BPEL - definizione Business Process Execution Language

Dettagli

1 introdurre le monete per l importo necessario. 2 selezionare la quantità di zucchero. 3 selezionare la bevanda desiderata

1 introdurre le monete per l importo necessario. 2 selezionare la quantità di zucchero. 3 selezionare la bevanda desiderata Esempi di Problema: Prendere un Caffè al Distributore Università degli Studi di Udine Facoltà di Ingegneria CORSO DI LAUREA IN SCIENZE dell ARCHITETTURA Elementi di Informatica, e Programmi D. Gubiani

Dettagli

Processi. Laboratorio Software 2008-2009 C. Brandolese

Processi. Laboratorio Software 2008-2009 C. Brandolese Processi Laboratorio Software 2008-2009 Introduzione I calcolatori svolgono operazioni simultaneamente Esempio Compilazione di un programma Invio di un file ad una stampante Visualizzazione di una pagina

Dettagli

UniRoma2 - Ingegneria del Software 1 1

UniRoma2 - Ingegneria del Software 1 1 Object Oriented Analysis - OOA La fase di OOA definisce, secondo un approccio ad oggetti, COSA un prodotto software deve fare (mentre la fase di OOD definisce, sempre secondo un approccio ad oggetti, COME

Dettagli

LABORATORIO. 2 Lezioni su Basi di Dati Contatti:

LABORATORIO. 2 Lezioni su Basi di Dati Contatti: PRINCIPI DI INFORMATICA CORSO DI LAUREA IN SCIENZE BIOLOGICHE Gennaro Cordasco e Rosario De Chiara {cordasco,dechiara}@dia.unisa.it Dipartimento di Informatica ed Applicazioni R.M. Capocelli Laboratorio

Dettagli

Model Driven Software Development con Eclipse, StatechartUMC

Model Driven Software Development con Eclipse, StatechartUMC 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 Abstract.

Dettagli

Activity Diagram. UniRoma2 - Ingegneria del Software 1 75

Activity Diagram. UniRoma2 - Ingegneria del Software 1 75 Activity Diagram Rappresenta a vari livelli di astrazione il flusso di esecuzione, sia sequenziale che concorrente, in una applicazione object-oriented E una variante degli state diagram, in cui gli stati

Dettagli

Programmazione concorrente in Java. Dr. Paolo Casoto, Ph.D. - 2012 1

Programmazione concorrente in Java. Dr. Paolo Casoto, Ph.D. - 2012 1 + Programmazione concorrente in Java 1 + Introduzione al multithreading 2 La scomposizione in oggetti consente di separare un programma in sottosezioni indipendenti. Oggetto = metodi + attributi finalizzati

Dettagli

Semantica 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 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

Dettagli

Ingegneria 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 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

Dettagli

Organizzazione 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 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

Dettagli

SOMMARIO INTRODUZIONE...XV CAPITOLO 1: PRESENTAZIONE...1 CAPITOLO 2: FONDAMENTI DI JAVA...39

SOMMARIO INTRODUZIONE...XV CAPITOLO 1: PRESENTAZIONE...1 CAPITOLO 2: FONDAMENTI DI JAVA...39 sommario 24-06-2004 10:18 Pagina V SOMMARIO INTRODUZIONE.......................................XV CAPITOLO 1: PRESENTAZIONE.......................................1 1.1 Introduzione...2 1.2 L organizzazione

Dettagli

INFORMATICA 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 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

Dettagli

Progettazione del Software A.A.2008/09

Progettazione del Software A.A.2008/09 Laurea in Ing. Informatica ed Ing. dell Informazione Sede di latina Progettazione del Software A.A.2008/09 Domenico Lembo* Dipartimento di Informatica e Sistemistica A. Ruberti SAPIENZA Università di Roma

Dettagli

Testo Esercizio. Un modello è ragionevole quando contiene queste tre caratteristiche.

Testo 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

Dettagli

Vincoli di Integrità

Vincoli di Integrità Vincoli di Integrità Antonella Poggi Dipartimento di informatica e Sistemistica Sapienza Università di Roma Progetto di Applicazioni Software Anno accademico 2010-2011 Questi lucidi sono stati prodotti

Dettagli

I diagrammi di attività e stato

I diagrammi di attività e stato I diagrammi di attività e stato Laboratorio di Ingegneria del Software Prof. Paolo Ciancarini Dott. Sara Zuppiroli A.A. 2010-2011 Lab. di Ingegneria del Software () I diagrammi di attività e stato A.A.

Dettagli

Ingegneria del Software

Ingegneria del Software Ingegneria del Software Testing - Tecniche di Collaudo del Software Collaudabilità Un attributo di qualità del software E il grado di semplicità con cui il software può essere collaudato Si compone di

Dettagli

Ingegneria del Software UML - Unified Modeling Language

Ingegneria del Software UML - Unified Modeling Language Ingegneria del Software UML - Unified Modeling Language Obiettivi. Presentare un approccio visuale alla progettazione. Illustrare i vantaggi dell utilizzo di diagrammi nella fase di progettazione. Rispondere

Dettagli

Modello dei processi. Riedizione delle slide della Prof. Di Stefano

Modello 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

Paradigma object-oriented

Paradigma object-oriented Paradigma object-oriented Dati & Comportamento Implementazione trasparente dei servizi Facile mantenimento Omogeneità nella gerarchia dati-funzioni Procedural approach OO approach Data hierarchy Replaced

Dettagli

Organizzazione aziendale Lezione 22 BPMN. Ing. Marco Greco m.greco@unicas.it Tel.0776.299.3641 Stanza 1S-28

Organizzazione aziendale Lezione 22 BPMN. Ing. Marco Greco m.greco@unicas.it Tel.0776.299.3641 Stanza 1S-28 Organizzazione aziendale Lezione 22 BPMN Ing. Marco Greco m.greco@unicas.it Tel.0776.299.3641 Stanza 1S-28 Prima di cominciare: Erasmus! Scadenza: 5 luglio 2012 Durata: min 3 max 12 mesi Dal 1 giugno 2012

Dettagli

Sistemi Web Tolleranti ai Guasti

Sistemi Web Tolleranti ai Guasti Sistemi Web Tolleranti ai Guasti Candidato: Paolo Romano Relatore: Prof. Salvatore Tucci Correlatore: Prof. Bruno Ciciani Sommario Il problema: garantire semantica exactly once alle transazioni Web. Sistema

Dettagli

13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti

13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti 13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/

Dettagli

SOFTWARE MAINTENANCE DESIGN

SOFTWARE MAINTENANCE DESIGN SOFTWARE MAINTENANCE DESIGN INTRODUZIONE... 1 1.1 Identificazione della richiesta di modifica... 2 1.2 Assegnazione di un numero di identificazione alla Change Request... 2 1.3 Classificazione del tipo

Dettagli

SAPIENZA Università di Roma Facoltà di Ingegneria

SAPIENZA Università di Roma Facoltà di Ingegneria SAPIENZA Università di Roma Facoltà di Ingegneria Tesina di Metodi formali nell ingegneria del software Autori: Piacentini Vanda - Rocco Germano Anno accademico 2006/2007 MODELLAZIONE DEL SISTEMA DI COMUNICAZIONE

Dettagli

SISTEMI OPERATIVI 14 settembre 2015 corso A nuovo ordinamento e parte di teoria del vecchio ordinamento indirizzo SR

SISTEMI OPERATIVI 14 settembre 2015 corso A nuovo ordinamento e parte di teoria del vecchio ordinamento indirizzo SR SISTEMI OPERATIVI 14 settembre 2015 corso A nuovo ordinamento e parte di teoria del vecchio ordinamento indirizzo SR Cognome: Nome: Matricola: 1. Ricordate che non potete usare calcolatrici o materiale

Dettagli

Esempio - Controllo di un ascensore

Esempio - 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

Dettagli

Arduino: Programmazione

Arduino: 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

Dettagli

Gestione Automatizzata di una Lista Nozze

Gestione 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

Dettagli

Sistemi Operativi. Processi GESTIONE DEI PROCESSI. Concetto di Processo. Scheduling di Processi. Operazioni su Processi. Processi Cooperanti

Sistemi Operativi. Processi GESTIONE DEI PROCESSI. Concetto di Processo. Scheduling di Processi. Operazioni su Processi. Processi Cooperanti GESTIONE DEI PROCESSI 4.1 Processi Concetto di Processo Scheduling di Processi Operazioni su Processi Processi Cooperanti Concetto di Thread Modelli Multithread I thread in diversi S.O. 4.2 Concetto di

Dettagli

Gestione di progetto: pianificazione. Introduzione: dove siamo? Introduzione: pianificazione. Simona Bernardi

Gestione di progetto: pianificazione. Introduzione: dove siamo? Introduzione: pianificazione. Simona Bernardi Gestione di progetto: pianificazione Simona Bernardi Corso di Ingegneria del Software 04/ 05 Prof.Susanna Donatelli Introduzione: dove siamo? Gestione di progetto: Pianificazione Monitoraggio e controllo

Dettagli

Università degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso

Università degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso Obiettivi formativi Introdurre i principi del funzionamento di un elaboratore e della programmazione. Presentare gli approcci elementari alla soluzione di problemi (algoritmi)e al progetto di strutture

Dettagli

Introduzione a Stateflow

Introduzione a Stateflow Scuola universitaria professionale della Svizzera italiana Dipartimento Tecnologie Innovative Introduzione a Stateflow Prof. Roberto Bucher 19 giugno 2013 Introduzione a Stateflow 2 Copyright 2013 Roberto

Dettagli

Sintesi di Reti Sequenziali Sincrone

Sintesi di Reti Sequenziali Sincrone LABORATORIO DI ARCHITETTURA DEI CALCOLATORI lezione n 9 Prof. Rosario Cerbone rosario.cerbone@uniparthenope.it a.a. 2007-2008 http://digilander.libero.it/rosario.cerbone Sintesi di Reti Sequenziali Sincrone

Dettagli

Struttura logica di un programma

Struttura logica di un programma Struttura logica di un programma Tutti i programmi per computer prevedono tre operazioni principali: l input di dati (cioè l inserimento delle informazioni da elaborare) il calcolo dei risultati cercati

Dettagli

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

Il 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

Dettagli

Il costrutto monitor [Hoare 74]

Il costrutto monitor [Hoare 74] Il monitor 1 Il costrutto monitor [Hoare 74] Definizione: Costrutto sintattico che associa un insieme di operazioni (entry, o public) ad una struttura dati comune a più processi, tale che: Le operazioni

Dettagli

Gli algoritmi: definizioni e proprietà

Gli algoritmi: definizioni e proprietà Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Gli algoritmi: definizioni e proprietà La presente dispensa e da

Dettagli

Esercitazioni di PROGETTAZIONE DEL SOFTWARE A.A. 2011-2012

Esercitazioni di PROGETTAZIONE DEL SOFTWARE A.A. 2011-2012 Sapienza Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica Corso di Laurea in Ingegneria Informatica ed Automatica Corso di Laurea in Ingegneria dei Sistemi Informatici

Dettagli

Terza Esercitazione. Unix - Esercizio 1. Unix System Call Exec Java Introduzione Thread

Terza Esercitazione. Unix - Esercizio 1. Unix System Call Exec Java Introduzione Thread Terza Esercitazione Unix System Call Exec Java Introduzione Thread Stefano Monti smonti@deis.unibo.it Unix - Esercizio 1 Scrivere un programma C con la seguente interfaccia:./compilaedesegui

Dettagli

Il diagramma dei casi d uso

Il diagramma dei casi d uso Il diagramma dei casi d uso Laboratorio di Ingegneria del Software Prof. Paolo Ciancarini Dott. Sara Zuppiroli A.A. 2010/2011 Lab di Ingegneria del Software () Il diagramma dei casi d uso A.A. 2010/2011

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2

Corso 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

Dettagli

Introduzione ai tipi di dato astratti: applicazione alle liste

Introduzione 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

Dettagli

Per creare il modello si scriva simulin nella finestra di comando MATLAB. Apparirà il Browser della Libreria Simulink.

Per creare il modello si scriva simulin nella finestra di comando MATLAB. Apparirà il Browser della Libreria Simulink. SIMULINK Version 3 Costruzione di un semplice esempio Consideriamo un segnale sinosoidale. Esso venga integrato. Inoltre si vuole visualizzare il segnale sinusoidale assieme al segnale integrato. Il diagramma

Dettagli

Pronto Esecuzione Attesa Terminazione

Pronto 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

Dettagli

Introduzione a Visual Basic Lezione 1 Concetti base e istruzioni condizionali

Introduzione 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:

Dettagli

Progetto di Ingegneria del Software matricola 640926 MODELLAZIONE UML DI UN TERMINALE ATM. di Cavenaghi Mattia 03/04/2008 1/24

Progetto di Ingegneria del Software matricola 640926 MODELLAZIONE UML DI UN TERMINALE ATM. di Cavenaghi Mattia 03/04/2008 1/24 MODELLAZIONE UML DI UN TERMINALE ATM di Cavenaghi Mattia 03/04/2008 1/24 INDICE: Descrizione del problema pag. 3 Analisi dei requisiti pag. 3 Requisiti funzionali Requisiti non funzionali Requisiti tecnologici

Dettagli

Object Oriented Programming

Object 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

Dettagli

Esempio. chan request = [0] of { byte }; active proctype Server() { byte client; end: do :: request? client -> printf("client %d\n", client); od }

Esempio. chan request = [0] of { byte }; active proctype Server() { byte client; end: do :: request? client -> printf(client %d\n, client); od } Canali in Promela Sistemi distribuiti un sistema distribuito è costituito da un insieme di processi e un insieme di canali di comunicazione ogni processo rappresenta un nodo di computazione del sistema

Dettagli

Testo Esercizio Sommario Note relative alla modellazione UML. Note relative al testo dell esercizio.

Testo Esercizio Sommario Note relative alla modellazione UML. Note relative al testo dell esercizio. Testo Esercizio Si consideri un sistema per la gestione di un magazzino di un negozio scelto a piacere dal candidato Il sistema è in grado di gestire le seguenti operazioni: Arrivo di nuovi prodotti; Controllo

Dettagli

Unix e GNU/Linux Eugenio Magistretti emagistretti@deis.unibo.it Prima Esercitazione Fork Stefano Monti smonti@deis.unibo.it Unix: sviluppato negli anni '60-'70 presso Bell Labs di AT&T, attualmente sotto

Dettagli

STRUTTURE DEI SISTEMI DI CALCOLO

STRUTTURE DEI SISTEMI DI CALCOLO STRUTTURE DEI SISTEMI DI CALCOLO 2.1 Strutture dei sistemi di calcolo Funzionamento Struttura dell I/O Struttura della memoria Gerarchia delle memorie Protezione Hardware Architettura di un generico sistema

Dettagli

Tecniche di Simulazione: Introduzione. N. Del Buono:

Tecniche 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

Dettagli