Sunteți pe pagina 1din 28

Sisteme in Timp Real

Semestrul I 2013 2014 Curs 8

Cuprinsul cursului 8

cum reprezentam comportamentul unui sistem?

diagrama de stari in UML

22.11.2013

Curs 8 STR

Diagrama de stari

se utilizeaza pentru a

ela ora speci!icatii pe aza cazurilor de utilizare pentru a speci!ica comportamentul de ni"el inalt al sistemului in timpul etapei de analiza pentru a captura e"enimentele semni!icati"e care pot actiona asupra unui o iect #iagrama de stari e$prima comportamentul dinamic al unui element in maniera reacti"a% diri&ata de evenimente speci!ica un numar !init de stari ale unui element si modul in care se e$ecuta tranzitiile intra stari ca raspuns la evenimente

22.11.2013

Curs 8 STR

Comportament

simplu' nu depinde de istoria din spatele o iectului e$emple'


cos( $ ) get*emperature( ) set+oltage( " ) Ma$(a% )

poate !i reprezentat cu diagrame de acti"itati% de e$emplu

22.11.2013

Curs 8 STR

Comportament

continuu' depinde de istoria o iectului% in maniera continua e$emple'

ucla de conducere cu ,I#

!iltre digitale

logica !uzz-

UML este greu de utilizat pentru a descrie comportament continuu

22.11.2013

Curs 8 STR

Comportament

dirijat de stare (engl. state driven)' comportamentul o iectului poate !i impartit in seturi dis&uncte util atunci cand un o iect (sistem)'

are moduri discontinue de comportament asteapta si raspunde la e"enimente (din e$terior)

e$emplu' un ec poate !i

aprins stins !las/ing

22.11.2013

Curs 8 STR

De ce utilizam masini de stare

o masina de stare reprezinta o a stractizare a comportamentului dorit al unui sistem% cu actiuni% activitati si constrangeri operatiile unui o iect de!inesc in mod elementar posi ilitatile de comportament ale o iectului o masina de stare constrange utilizarea acestor operatii intr0o anumita sec"enta ast!el constrans% comportamentul o iectului este mai usor de inteles si poate !i testat

Masinile de stare reprezinta o perspecti"a mai a stracta de comportament% "izualizata din punctul de "edere al o iectului% nu al implementarii

22.11.2013

Curs 8 STR

Masini de stare - elemente

stare tranzitie actiune

22.11.2013

Curs 8 STR

Diagrame de stari - elemente

stare 1 o conditie distincti"a% dis&uncta% a unui o iect% care persista o anumita perioada de timp

22.11.2013

Curs 8 STR

Diagrame de stari - elemente

tranzitie 1 un raspuns la un e"eniment% care muta o iectul dintr0o stare in alta

22.11.2013

Curs 8 STR

10

Diagrame de stari - elemente

actiune 1 este un comportament care se e$ecuta pana la !inalizare. 2 iectul nu accepta si nu proceseaza nici un alt e"eniment pana cand nu se !inalizeaza actiunile asociate e"enimentului curent

22.11.2013

Curs 8 STR

11

Nume stare

Stari UML 2 !

intrare / lista_actiuni nume_eveniment:lista_actiuni do/lista_actiuni ... exit/lista_actiuni

o stare reprezinta o multime de com inatii de "alori corespunzatoare unui element. 3re un nume si comportament intern care "a !i e$ecutat pe aza e"enimentelor de!inite o stare este reprezentata su !orma unui dreptung/i cu colturi rotun&ite numele starii este scris in interiorul dreptung/iului o stare poate a"ea trei comportamente speciale% triggerate pe aza unor e"enimente prede!inite' comportament intrare (engl. entry behaviour). 4ste e$ecutat imediat la intrarea in starea respecti"a5 comportament iesire (engl. exit behaviour). 4ste e$ecutat imediat inainte de a iesi din starea respecti"a5 comportament e$ecutie (engl. do behaviour). 4ste e$ecutat atata timp cat starea este acti"a.

22.11.2013

Curs 8 STR

12

Stari ortogonale UML 2 !

intr0un sistem pot e$ista mai multe stari concurente 0 terminologia UML 1 stari ortogonale o stare ortogonala se imparte intr0un numar ar itrar de regiuni independente% separate de linii punctate
Stare "inala 1 stare care descrie !inalizarea unei stari compuse sau a unei masini de stare
(stare initiala) (stare finala) iese din stare

Stare initiala 1 o pseudostare cu o tranzitie din e$terior Indreptata catre starea initiala
intra in stare (tranzitie default)

Nume_superstare evenim a Stare x evenim x evenim b


linie stari AND Stari AND care se executa independent, dar nu neaparat in mod concurent

Stare a

terminare

Stare y

ievenim y

Stare b

terminare

22.11.2013

Curs 8 STR

13

Tranzitii UML 2 !

este o relatie directa intre doua stari si de!ineste un trigger si o conditie care% impreuna% conduc la o tranzitie de stare si la e$ecutia unui anumit comportament in timpul tranzitiei reprezentare' linie cu sageata% descrisa de urmatoarea sinta$a
numele evenimentului care triggereaza tranzitia lista de actiuni care trebuie executate cand se executa tranzitia

nume_eveniment '["guard-condition"]' '/' lista_actiuni

conditia booleana trebuie evaluata la TRU pentru ca tranzitia sa poata fi executata

trigger1% trigger2% ... 6condition78comportament

22.11.2013

Curs 8 STR

14

Trigger si eveniment UML 2 !

trigger 1 re!era un singur e"eniment si sta ileste o legatura cu un comportament eveniment 1 speci!ica o aparitie care poate !i masurata in spatiu si timp

Un trigger !ace legatura intre e"eniment si comportament. *ranzitia este acti"ata imediat ce apare e"enimentul

22.11.2013

Curs 8 STR

15

Trigger si eveniment UML 2 !#


4 tipuri de e"enimente care pot triggera o tranzitie' eveniment de tip apel (engl. call event). 3pare la in"ocarea unei operatii5
c all event

off

switchON()

on

eveniment de tip modi"icare (engl. change event). 3pare cand e$presia ooleana este e"aluata *9U4% atunci cand "aloarea asociata in sistem se modi!ica5 eveniment de tip semnal (engl. signal event). 3pare la receptionarea unui e"eniment5 eveniment de tip timp (engl. time event). Un e"eniment de timp relativ apare atunci cand starea din care este initiata tranzitia este acti"a de&a de un anumit timp (cu"ant c/eie after (<time>)). Un e"eniment de timp absolut apare atunci cand timpul este speci!icat in mod a solut (cu"ant c/eie at(<time>))

c !ange event

temperatura

temp ! "#$%

deconectat

signal event

trece

Semafor(rosu)

oprit

time event (relativ)

verde

dupa(& minute)

rosu

time event (absolut)

'i

la(apus)/sleep()

noapte

22.11.2013

Curs 8 STR

16

Diagrame de stari in $%M Rational R&apsod'#

o diagrama de stare modeleaza di!eritele stari in care se poate a!la o clasa% tranzitiile intre stari% precum si punctul de inceput si punctul de s!arsit al unei sec"ente de modi!icari de stare e$emplu' modelarea functionarii unei masini de spalat vase

diagrama OMD

3cme #is/;as/er ,roduct Line


S ingleton

AbstractFactory

#is/;as/er

1 3cme:actor!an" #et

1 $eater

3cme*an<

3cme>et

3cme=eater

22.11.2013

Curs 8 STR

17

Diagrame de stari in $%M Rational R&apsod'#

e$emplu' modelarea functionarii unei masini de spalat vase

diagrama de stare asociata clasei Dishwasher


acti"e doorClosed e"2pen o!! #2?4 e"Start8setup()5 !illing 6isIn?eed2!Ser"ice()7 maintenance9e@uired e"Close door2pened maintenance2< e"Ser"ice e"Ser"ice

e":ull rinsing

tm(rinse*ime) ;as/ing normalMode tm(;as/*ime) draining e"Auic< e"Auic< @uic<Mode e"Intensi"e e"?ormal e"Intensi"e intensi"eMode e"?ormal

e"4mptdr-ing tm(dr-*ime) #2?4

22.11.2013

Curs 8 STR

18

Diagrame de stari in $%M Rational R&apsod'#

diagramele de stari de!inesc comportamentul o iectelor speci!icand modul in care acestea reactioneaza la e"enimente sau operatii reactia se concretizeaza intr0o tranzitie intre stari sau e$ecutia unor actiuni diagramele de stari de!inesc comportamentul instantelor unei clase la run0time. tranzitiile intre stari sunt pro"ocate de mesaje un mesaj poate !i !ie un eveniment% !ie o operatie trigger un o iect poate primi am ele tipuri de mesa&e trimise de alte o iecte un o iect "a putea primi intotdeauna un e"eniment pe care si l0a trimis el insusi
Curs 8 STR

In mod animatie% IBM 9ational 9/apsod- pune in e"identa tranzitiile intre stari.

22.11.2013

19

Diagrame de stari in $%M Rational R&apsod'- tipuri de stari#

stare de (aza (engl. basic %leaf & state) 0 este o stare care nu are su stari

stare )R o stare poate !i !ormata din doua su stari e$clusi"e. 2 iectul se poate a!la doar in una dintre su stari la un moment dat

stare *+D 0 un o iect se poate a!la in oricare din su stari in mod concurent. :iecare dintre starile concurente poarta denumirea de componenta ortogonala
Curs 8 STR 20

22.11.2013

Diagrame de stari in $%M Rational R&apsod'#

Modi!icarea caracteristicilor unei stari

*ction on entr' C speci!ies t/e action t/at s/ould e e$ecuted ;/ene"er t/e s-stem enters t/is state% regardless o! /o; t/e s-stem arri"ed /ere *ction on e,it - speci!ies t/e action t/at s/ould e e$ecuted ;/ene"er t/e s-stem e$its t/is state% regardless o! /o; t/e s-stem e$its Reactions $n State 0 speci!ies t/e trigger% guard% and actions identi!ied in a transition la el. $" t&e trigger occurs and t&e guard is true- t&e action is e,ecuted

22.11.2013

Curs 8 STR

21

Diagrame de stari in $%M Rational R&apsod'#

o ser"atie'

i! -ou speci!- action on entr- or e$it e/a"ior !or a state% t/e icon s/o;n in t/e !ollo;ing e$ample is added to t/e state displa-'

optiuni de a!isare pentru stari' states are displa-ed ;it/ a name or la el stereot-pes are displa-ed ;it/ a name% la el% or icon t/e e$it and entr- actions are displa-ed

22.11.2013

Curs 8 STR

22

.,emplu entr'/e,it actions#

4ntr- actions

4$it actions ?ota' a se observa ordinea de executie a actiunilor 3tentie' se verifica conditia guard inainte de executarea oricarei actiuni
22.11.2013 Curs 8 STR 23

Tipuri de evenimente

UML de!ineste 4 tipuri de e"enimente'

Signal .vent

3s-nc/ronous signal recei"ed e.g. e"2n% e"2!! 2peration call recei"ed% !or e$ample% opCall(a% %c) */is is <no;n as a !riggered Operation in 9/apsodC/ange in "alue occurred 3 solute time arri"ed 9elati"e time elapsed% !or e$ample% tm(,ulseDidt/*ime)

Call .vent

C&ange .vent

Time .vent

22.11.2013

Curs 8 STR

24

Diagrame de stari in $%M Rational R&apsod' eveniment de tip timp#

Cand un o iect intra intr0o anumita stare% se porneste Timeout0ul asociat starii. Cand Timeout0ul e$pira% masina de stare este noti!icata (primeste) printr0un e"eniment Cand o iectul iese dintr0o anumita stare% Timeout0ul care a !ost pornit la intrarea in starea respecti"a "a !i anulat ,entru !iecare stare se poate de!ini un singur Timeout5 daca sunt necesare mai multe timeouts% se "or !olosi stari nested
*ime e"ent

4ntr- action

z
4$it action

22.11.2013

Curs 8 STR

25

tm0dela'Time1

tm0dela'Time1 este speci!ic pentru 9/apsod-5 se genereaza in mod automat cod pentru a porni sau pentru a opri un timeout

!igura de sus poate !i reprezentata in mod ec/i"alent ca in !igura de &os5 aici se porneste un timer la intrarea in starea dela-% si "a !i oprit la iesirea din starea dela-5 Cand timer0ul e$pira% se "a trimite un e"eniment% de e$emplu% e"#elaUML de!ineste cu"an0 tul c/eie a!ter(#ela-)5 tm(#ela-) este notatia din 9/apsod-.
22.11.2013 Curs 8 STR 26

Cum gestionam tranzitiile2

#aca un o iect se a!la in starea S% care raspunde e"enimentului cu numele e"E% se "a e$ecuta masina de stare ca raspuns la acest e"eniment

Se tranziteaza in starea speci!icata% daca e"enimentul triggereaza o tranzitie cu nume si daca guard0ul (daca e$ista un guard) pe aceasta tranzitie este e"aluat la *9U4. Se e$ecuta toate actiunile asociate acestei tranzitii

22.11.2013

Curs 8 STR

27

.,emplu animatie

9ational 9/apsod- and t/e Mat/;or<s Simulin< integration

/ttp'88;;;.i m.com8de"eloper;or<s8o!!ers8lp8demos8summar-8r0r/apsod-sim./tmlFdo;nload

Learn /o; to import a Mat/;or<s Simulin< model into IBMG 9ationalG 9/apsod- and t/en simulate t/e t;o models toget/er. Man- em edded and real0time s-stems /a"e to interact ;it/ a p/-sical s-stem t/at contains comple$ d-namic e/a"ior. */e Mat/Dor<s Simulin< is t/e leading tool !or d-namic control s-stems design% and 9ational 9/apsod- is a leading tool !or em edded and real0 time s-stems de"elopment. Integrating Simulin< models into 9ational 9/apsod- lets -ou include control algorit/ms and plant models de"eloped in Simulin< into a 9ational 9/apsod- design% t/ere ena ling a true /- rid modeling% e$ecution% and code generation en"ironment.

22.11.2013

Curs 8 STR

28