Documente Academic
Documente Profesional
Documente Cultură
2014 - Subiecte Master
2014 - Subiecte Master
Curs 3
March 7, 2019
Descrierea comportamentului – modelul de interacțiuni
- diagrame de secvențe -
Model de interacțiuni:
⚫ sistemul este văzut ca un black box, funcționalitățile sale fiind
implementare
⚫ Exemplu 1
⚫ M.W. Richardson, Designing a Home Alarm using UML
⚫ Exemplu 2
⚫ Controlul unui satelit pe orbită – diagrama de secvențe
Diagrame de Diagrame de
structura comportament
(structure) (behaviour)
Diagrama de
interactiuni
Diagrama de Diagrama de structura (interaction)
obiecte compusa (composite
(object) structure)
Diagrama de
pachete (package)
Diagrama de Diagrama de Diagrama de Diagrama
secvente comunicatie interactivitate de timp
(sequence) (communication) (interaction (timing)
overview)
⚫ mesaj - mecanismul prin care obiectele colaborează (interacționează) intre ele pentru a
realiza comportamentul dorit al sistemului (specificat prin intermediul scenariilor
bazate pe cazuri de utilizare)
⚫ de multe ori, un mesaj poate fi implementat ca o simpla activitate
⚫ e.g un obiect apelează o metodă din alt obiect
⚫ după executarea activității, controlul este returnat apelantului, împreună cu o
valoare return
mesaj
seteazaViteza(valoare)
:ComputerBord :SistemControlViteza
Scenariu 1: Scenariu 2:
Log on to system. Log on to system.
Approve log on. Approve log on.
Enter subject in search. Enter subject in search.
Get course list. Invalid subject.
Display course list. Re-enter subject.
Select courses. Get course list.
Confirm availability. Display course list.
Displaty final schedule. Select courses.
Confirm availability.
Display final schedule.
Sisteme în Timp Real 7 martie 2019 110
Diagrame de secvențe - elemente
sistemului
valoare
linie de
• mesajele modelează viata
interacțiunile dintre participanți mesaj
asincron
distrugerea obiectului
la finalizarea interactiunii
⚫ o linie de viata
⚫ reprezinta un partener de
comunicatie intr-o
interactiune
⚫ descrie numele, tipul si ciclul
de viata al elementului
respectiv :Tip Actor
Obiect1:Clasa1
Nume:Tip Actor
viata
mesaj
asincron
distrugerea obiectului
la finalizarea interactiunii
viață a receptorului
Mesaje sincrone:
⚫ săgeata plina Obiect1:Clasa1
:Tip Actor Nume:Tip Actor
⚫ transmițătorul așteaptă pana când
operator
Mesaje asincrone: interactiune mesaj sicron
⚫ săgeată deschisa
operator
interactiune mesaj sicron
valoare
linie de
Operatorii de interacțiune viata
:Client :OficiuBancar
alt
[x!=0] openAccount()
else
closeAccount()
enterPIN()
pin()
:Client :CoffeeMachine
:Client :CoffeeMachine
theMessage("Insert Coins")
Coin()
ref
InsertCoins
OK()
Coffee()
CupofCoffee()
Ref
ReturnCoins
Marca de timp cu
Message_0() functii de utilitate
Message_1()
Marca simpla {< 2ms} { if t<20ms utility(t) = 10}
de timp {if (t>=20ms and t<= 50ms) utility(t) = 5 }
Message_2() {if (t>50ms) utility(t) = 0}
Message_3()
partition lines are used to divide up scenarios into chunks and add annotations
Message_4()
a Message_5()
Message_6()
Marca b Message_7()
eveniment c
d
d'
{d' – d < 35 ms}
Marca simpla
de timp
home alarm
occupation simulation
«Extends»
detect intrusions
homeowner
code entry
changing code
The home alarm can be armed and disarmed via a simple remote control that has two keys
"arm" and "disarm"
The alarm can also be armed and disarmed by using a simple keypad installed in the house. Once
armed the homeowner has 5 seconds to exit the house. When entering the house, the homeowner
has 5 seconds to disarm the code.
key on
enter old code
key on
enter new code
key on
If the code is successfully changed the green led will flash four times.
redLedOn()
Sistemul de alarma este pornit
si va detecta deschiderea
usilor si orice miscare din
camera
Timp
Exemplu - HomeAlarm
The homeowner can change the code keyOff()
to do so he/she must first press the on key.
This must be done at least 5 seconds after
diagrama de secvente
keyOn()
⚫ any numeric key has been pressed. ( unless
Changing Code – scenariu The homeowner must now enter the correct
code followed by the on key. key(1)
schimbarea codului
key(2)
key(3)
keyOn()
key(n)
key(n)
keyOn()
greenLedOff()
< 500mS >
greenLedOn()
Exemplu - HomeAlarm
Initially the alarm is armed
⚫ diagrama de secvente
asociata cazului de The intruder enters into a room
Immediately the siren is activated detectMovement()
utilizare Detect
Intrusions – scenariu sirenOn()
detectarea unei
miscari < ALARM_TIME >
– numele mesajului reply trebuie sa coincidă cu numele mesajului sincron corespunzător (care
este si numele operației care a fost invocate de către mesajul sincron)
• OBS: este opțională specificarea mesajului reply (cu linia
punctate si săgeată deschisă; înțelesul este implicit)
• block