Tehnici de implementare a concurentei în analiza si proiectarea ...
Tehnici de implementare a concurentei în analiza si proiectarea ...
Tehnici de implementare a concurentei în analiza si proiectarea ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
parte acestea. Acest i<strong>de</strong>ntificator unic va fi utilizat <strong>în</strong> special <strong>în</strong> generarea <strong>de</strong> cod <strong>si</strong> <strong>în</strong><br />
procesul <strong>de</strong> <strong>si</strong>mulare.<br />
Autotranzitia <strong>de</strong> la nivelul clasei FSMTran<strong>si</strong>tion ataseaza fiecarei tranzitii câte<br />
o dublura, utila <strong>în</strong> cazul scalarii (minimizarii sau maximizarii) starilor compuse.<br />
Astfel, <strong>în</strong> figura 5.4. este dat un exemplu <strong>în</strong> care o astfel <strong>de</strong> dublura este necesara.<br />
Tranzitiile etichetate cu m1, respectiv m3 fac legatura <strong>în</strong>tre stari aflate la nivele<br />
diferite <strong>de</strong> <strong>în</strong>cuibarire. În momentul <strong>în</strong> care se doreste ignorarea continutului starii<br />
State2 <strong>de</strong> exemplu, substarile acesteia vor fi "ascunse", fapt care implica automat <strong>si</strong><br />
"ascun<strong>de</strong>rea" celor doua tranzitii amintite. Aceasta operatie <strong>de</strong> "ascun<strong>de</strong>re" conduce<br />
<strong>în</strong>sa la modificarea comportamentului obiectului mo<strong>de</strong>lat: obiectul nu va putea<br />
accepta un mesaj m1 <strong>în</strong> cazul <strong>în</strong> care se afla <strong>în</strong> starea State1, sau un eveniment m2<br />
atunci când se afla <strong>în</strong> starea State2. Aceasta este <strong>în</strong>sa un efect nedorit, <strong>de</strong>oarece<br />
scalarea starilor are doar rolul <strong>de</strong> a reduce complexitatea unei harti <strong>de</strong> stari din punct<br />
<strong>de</strong> ve<strong>de</strong>re al proiectantului <strong>si</strong> nu <strong>de</strong> a modifica comportamentul mo<strong>de</strong>lat.<br />
Prin urmare este necesara introducerea unor tranzitii suplimentare care sa<br />
conserve acest comportament. Aceste tranzitii sunt <strong>de</strong> fapt dublurile tranzitiilor<br />
originale, <strong>si</strong> ele fac legatura <strong>în</strong>tre starile State1 <strong>si</strong> State2. Aceste tranzitii vor avea<br />
acela<strong>si</strong> i<strong>de</strong>ntificator ca <strong>si</strong> tranzitiile originale pentru a nu perturba procesul <strong>de</strong><br />
<strong>si</strong>mulare, iar ele nu vor influenta generarea <strong>de</strong> cod sursa. Tot <strong>în</strong> scopul conservarii<br />
comportamentului, clonele tranzitiilor care au ca stare sursa o stare "ascunsa" vor avea<br />
conditia <strong>de</strong> <strong>de</strong>clansare ca o conjunctie <strong>în</strong>tre conditia originala <strong>si</strong> invariantul starii sursa<br />
(cazul tranzitiei etichetate cu m3, care va avea acum conditia <strong>de</strong> <strong>de</strong>clansare c3 && c4,<br />
un<strong>de</strong> && reprezinta operatorul <strong>si</strong>-logic din limbajul <strong>de</strong> programare C++).<br />
5.3. Descrierea aplicatiei ActiveCASE<br />
Instrumentele CASE <strong>de</strong> <strong>analiza</strong> <strong>si</strong> proiectare orientata-obiect a aplicatiilor<br />
ofera sprijin pentru cele mai importante etape ale ciclului <strong>de</strong> viata a unei aplicatii.<br />
Acestea sunt:<br />
- Analiza - <strong>în</strong> cadrul careia se realizeaza i<strong>de</strong>ntificarea caracteristicilor<br />
esentiale tuturor solutiilor corecte po<strong>si</strong>bile,<br />
- Proiectarea - care adauga mo<strong>de</strong>lelor <strong>de</strong> <strong>analiza</strong> noi elemente care <strong>de</strong>finesc<br />
o solutie particulara, pe baza optimizarii anumitor criterii,<br />
139