Upload
others
View
12
Download
0
Embed Size (px)
Citation preview
Corso di Embedded Real Time Systems
Prof. Davide Brugali
Università degli Studi di Bergamo
Unified Modeling Language
UML
Unified Modeling Language
•It is a Specification Language for Complex systems
•The goals of UML are to:
•Provide a common, expressive visual modeling for capturing
object model semantics
•Provide a model with a formal and rigorous semantic basis that
doesn’t require too much formalism by the user
•Provide a metamodel which may be tailored and extended by
the user
•Be independent of PL and development process
2Corso di Sistemi Real Time AA 2010-2011 Prof. Brugali
Basic Building Blocks Of UML
•Use Cases and Use Case Diagrams
•Class Diagrams
•Sequence Diagrams
•Component Diagrams
•Deployment Diagrams
•State Chart Diagrams
•Collaboration Diagrams
3Corso di Sistemi Real Time AA 2010-2011 Prof. Brugali
Use Cases and Use Case Diagrams
Class Diagram
Sequence Diagram
Component Diagrams
Deployment Diagrams
State chart Diagrams
Collaboration Diagrams
State Charts
State chart Diagrams
Specifiche del problema
13
Si progetti il sistema di regolazione automatica della velocità di un’autovettura. Il conducente interagisce con il sistema usando tre dispositivi:
leva di regolazione,
freno,
acceleratore.
Il sistema interagisce con il motore attraverso due dispositivi:
encoder che rileva la velocità dell’albero motore
Iniettore di benzina che varia la velocità del motore
Le condizioni iniziali di funzionamento del sistema di regolazione prevedono che:
il conducente abbia acceso il motore
il conducente stia usando l’auto manualmente
Specifiche del problema
14
Successivamente il conducente interagisce con il sistema di controllo secondo le seguenti modalità:M1: il conducente sposta la leva su ACCEL mantenendola in quella posizione. Il
sistema inizia l’accelerazione automatica e l’auto acceleraM2: il conducente rilascia la leva per mantenere la velocità raggiunta. Il sistema
smette di accelerare e mantiene la velocità raggiunta dell’auto, che viene memorizzata per riferimenti futuri.
M3: il conducente usa il freno per disabilitare il sistema di guida automatico. L’auto è sotto il controllo manuale
M4: il conducente sposta la leva sulla posizione di RESUME per ripristinare il sistema di guida. Il sistema inizia una accelerazione (o decelerazione) per raggiungere la velocità precedentemente memorizzata
M5: quando la velocità memorizzata viene raggiunta questa viene mantenuta dal sistema
M6: il conducente sposta la leva sulla posizione OFF. Il sistema disabilita il controllo automatico e l’auto è sotto il controllo manuale
M7: il conducente ferma l’auto e spegne il motore
Eventi scambiati con l’ambiente esterno
15
Input del conducente e reazioni del sistema
Leva
evento Accel causa accelerazione automatica se non viene premuto il freno
evento Cruise attiva il sistema di controllo e può solo seguire evento Accel
evento Resume deve essere preceduto da disabilitazione del sistema di controllo e
memorizzazione della velocità raggiunta
evento Off disabilita sempre il sistema di controllo
Freno
evento Brake Pressed disabilita il sistema di guida automatico. Il controllo automatico del
veicolo non è possibile mentre il freno è premuto. Dopo aver rilasciato il freno il controllo
automatico può essere ripristinato
Motore
evento Engine On azzera la velocità desiderata
evento Engine Off disabilita ogni attività del sistema
Cruise Control statechart
Idle
Cruising OffInitial
Accelerating
Do/Increase SpeedExit/Select Desired Speed
Resuming
Do/Resume Cruising
Cruising
Do/Maintain Speed
Engine On
Engine Off
Engine Running
Accel [Brake Off]
Automated Control
Accel
AccelCruise Reached Cruising
Off
Brake Pressed
Off
Resume [Brake Off]
Accel [Brake Off]
Statechart
16
Condizioni
definiscono un aspetto del sistema che puo` essere vero o falso in un certo momento
sono associate agli events
Notazione
➢ event [condition]
17
Evento ̀ `Timer``
evento speciale che specifica un evento dopo un certo intervallo di tempo
Notazione
➢ after (elapsed time)
➢ after (10 seconds)
18
Esempio di Condizioni
ATM partial statechart
19
Azioni
Computazione eseguita come risultato di una
transizione
Eseguita istantaneamente durante la transizione
Notazione
➢ event/action
20
Esempio di Azioni
ATM partial statechart
21
Azioni Entry
Azione eseguita tutte le volte che si entra in uno stato
Eseguita prima di qualsiasi attività interna
Si usa se c`è più di una transizione che va in uno stato
Notazione
➢ entry/action
22
Esempio di azioni entry
ATM partial statechart
23
Azione Exit
Azione eseguita tutte le volte che si esce da uno stato
Eseguita solo dopo il completamento di tutte le attivita`interne
Si usa se c`è più di una transizione che lascia uno stato
Notazione
➢ exit/action
24
Esempio di azione exit
Cruise Control partial statechart
25
Attività
Sono computazioni eseguite per tutta la
durata di uno stato
Sono abilitate all`entrata in uno stato e
disabilitate all`uscita di uno stato
Notazioni
➢ event/enable activity
➢ event/disable activity
➢ do/activity
26
Cruise Control statechart
27
Off Light Brightpress? press?
press?
press?
WANT: if press is issued twice quickly
then the light will get brighter; otherwise the light is
turned off.
Timed Automata
Intelligent Light Control
Off Light Brightpress? press?
press?
press?
WANT: if press is issued twice quickly
then the light will get brighter; otherwise the light is
turned off.
Timed Automata
Intelligent Light Control
X:=0 X<=3
X>3
Linee guida per sviluppo di statecharts
Nome dello stato deve riflettere un intervallo di
tempo reale
Nome dello stato unico
Deve essere possibile uscire da ogni stato
STATI
30
Linee guida per sviluppo di statecharts
Non confondere evento (causa) con azione
(effetto)
Nomi di eventi e azioni non ambigui
Condizioni sugli eventi hanno valore booleano
Azioni e condizioni sono opzionali: da usare solo
se necessario
AZIONI EVENTI
31
Confezionamento cioccolatini
Confezionamento cioccolatini
Il sistema di confezionamento cioccolatini è composto da un nastro
trasportatore azionato da un motore, una telecamera posta
verticalmente sopra il nastro, un pistone per rimuovere i cioccolatini
dal nastro e depositarli nella confezione aperta e un pistone per
sostituire la confezione piena con una vuota.
Sul nastro trasportatore vengono depositati (a sinistra nell’immagine)
due tipi di cioccolatini (uno alla volta):
FR : Ferrero Rocher
PC : Pocket Coffee
I cioccolatini arrivano in ordine casuale.
Ogni confezione deve contenere due cioccolatini di tipo FR e un
cioccolatino di tipo PC. Viene riempita una confezione alla volta.
Confezionamento cioccolatini
Il nastro trasportatore è un sottosistema regolato che mantiene la
velocità costante. Quando un cioccolatino entra nel campo visivo
della telecamera posta sopra il nastro, il sistema di confezionamento
riconosce di che tipo è il cioccolatino. Se il cioccolatino rispetta una
delle sequenze possibili (es. FR FR PC) viene azionato il pistone
che lo deposita nella confezione aperta. Se invece il cioccolatino non
rispetta una delle sequenze possibili (es. FR PC PC) viene lasciato sul
nastro trasportatore.
Quando una confezione è completa, viene rimossa e sostituita con
una vuota.
Nello stato iniziale il nastro trasportatore è in movimento ma non ci
sono cioccolatini; la confezione aperta non contiene cioccolatini.