18.04.2013 Views

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

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

În alte mo<strong>de</strong>le realizate pâna <strong>în</strong> prezent o clasa putea sau nu sa aiba asociata o<br />

diagrama <strong>de</strong> stari care sa-i mo<strong>de</strong>leze comportamentul. Con<strong>si</strong><strong>de</strong>ram ca este util sa<br />

impunem ca o clasa sa aiba <strong>în</strong>tot<strong>de</strong>auna sa aiba atasata o stare. În cazul unei clase<br />

oarecare al carui comportament dinamic nu este semnificativ, atunci aceasta stare va<br />

fi una <strong>si</strong>mpla (nu va contine nici o substare). Invariantul acestei stari va <strong>de</strong>fini<br />

conditia <strong>de</strong> con<strong>si</strong>stenta a obiectelor clasei respective. În cazul unei clase cu un<br />

comportament complex, starea atasata va contine practic diagrama <strong>de</strong> stari a clasei. În<br />

momentul <strong>în</strong> care va fi creata o instanta a unei clase, obiectul sau va intra <strong>în</strong> starea<br />

asociata acesteia, stare care se va comporta ca o stare compusa obisnuita activând una<br />

dintre starile initiale ale acesteia.<br />

Aceasta abordare uniforma este mult mai naturala <strong>si</strong> mai comoda din punct <strong>de</strong><br />

ve<strong>de</strong>re al unui proiectant <strong>de</strong> aplicatii. Practic notiunea <strong>de</strong> diagrama <strong>de</strong> stari a disparut,<br />

comportamentul claselor fiind <strong>de</strong>scris prin intermediul unei ierarhii <strong>de</strong> stari <strong>în</strong>tre care<br />

exista diverse tranzitii.<br />

138<br />

invariantul<br />

starii State4<br />

este inclus <strong>în</strong><br />

conditia tranzitiei<br />

Figura 5.4. Exemplu <strong>de</strong> clonare a tranzitiilor<br />

În scopul reducerii complexitatii meta-mo<strong>de</strong>lului static, <strong>în</strong> figura 5.2. am<br />

prezentat toate clasele fara structura (proprietati <strong>si</strong> operatii). Este important <strong>de</strong><br />

precizat faptul ca <strong>în</strong> cadrul claselor FSMTran<strong>si</strong>tion <strong>si</strong> FSMAbstractState a fost<br />

introdus un atribut <strong>de</strong> tip <strong>în</strong>treg, numit InternalID care are rolul <strong>de</strong> a atribui atât<br />

tranzitiilor cât <strong>si</strong> starilor un i<strong>de</strong>ntificator unic la nivelul hartii <strong>de</strong> stari din care fac

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!