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.
problema re<strong>de</strong>finirii, uneori integrale, a codului mostenit, calitatile mostenirii <strong>si</strong><br />
<strong>în</strong>capsularii fiind astfel anulate.<br />
De<strong>si</strong> anomaliile <strong>de</strong> mostenire au beneficiat <strong>de</strong> o atentie <strong>de</strong>osebita <strong>în</strong> ultimii ani,<br />
ele sunt <strong>în</strong>ca vag <strong>de</strong>finite <strong>si</strong> <strong>de</strong>seori interpretate gre<strong>si</strong>t. Dintre cele mai importante<br />
lucrari <strong>în</strong> care au fost propuse solutii <strong>de</strong> evitare <strong>si</strong> ameliorare ale anomaliilor <strong>de</strong><br />
mostenire amintim: [QUI97], [PAP96], [LEC96], [FER95], [AKS94], [MIT94],<br />
[THO94], [MES93]. Rezultatele obtinute <strong>în</strong> aceste lucrari sunt contradictorii <strong>si</strong><br />
incomplete, <strong>de</strong>oarece ele se limiteaza la o abordare informala a anomaliilor, fiind <strong>în</strong><br />
principal <strong>analiza</strong>te pe baza exemplelor particulare introduse <strong>în</strong> [MAT93]. Prin urmare<br />
nu exista o metoda satisfacatoare <strong>de</strong> evaluare a diverselor propuneri (<strong>de</strong> limbaje,<br />
mecanisme sau mo<strong>de</strong>le obiect) existente.<br />
În cadrul urmatoarei sectiuni sunt prezentate doua dintre cele mai importante<br />
cla<strong>si</strong>ficari ale anomaliilor <strong>de</strong> mostenire, realizate <strong>în</strong> [MAT93] <strong>si</strong> [ZEN97b], care au la<br />
baza o <strong>analiza</strong> informala. Vom <strong>de</strong>monstra <strong>în</strong> finalul acestei sectiuni ca aceste<br />
cla<strong>si</strong>ficari sunt incomplete, <strong>si</strong> vom propune o alta abordare care nu va lua <strong>în</strong><br />
con<strong>si</strong><strong>de</strong>rare numai conflictele dintre concurenta <strong>si</strong> mostenire, ci <strong>si</strong> conflinctele dintre<br />
concurenta <strong>si</strong> alte trei relatii importante <strong>în</strong>tre clase, cum sunt relatiile <strong>de</strong> asociere,<br />
agregare <strong>si</strong> <strong>de</strong>legare. Aceste tipuri <strong>de</strong> conflicte au o legatura strânsa cu anomaliile <strong>de</strong><br />
mostenire, <strong>si</strong> <strong>de</strong> aceea am propus abordarea lor unitara. O astfel <strong>de</strong> abordare poate<br />
<strong>de</strong>termina o recon<strong>si</strong><strong>de</strong>rare a conflictelor <strong>de</strong> acest tip dintr-o cu totul alta perspectiva, <strong>si</strong><br />
ar putea conduce la solutii <strong>de</strong> ameliorare a efectelor acestora. De asemenea, vom<br />
propune o noua <strong>de</strong>numire pe care o con<strong>si</strong><strong>de</strong>ram mult mai potrivita pentru a <strong>de</strong>scrie<br />
aceste tipuri <strong>de</strong> conflicte, <strong>si</strong> anume aceea <strong>de</strong> anomalie <strong>de</strong> reutilizare.<br />
În cadrul sectiunii a treia am realizat o exten<strong>si</strong>e a <strong>si</strong>stemului formal utilizat <strong>în</strong><br />
[CRN98] pentru cla<strong>si</strong>ficarea mecanismelor <strong>de</strong> mostenire <strong>în</strong> programarea orientata<br />
obiect concurenta. Exten<strong>si</strong>a se refera la <strong>de</strong>scrierea anomaliilor <strong>de</strong> mostenire pentru<br />
mo<strong>de</strong>lele obiect cu concurenta interna (ca urmare a respectarii principiului<br />
expre<strong>si</strong>bilitatii <strong>concurentei</strong>). De asemenea, <strong>si</strong>stemul formal introdus <strong>în</strong> [CRN98] a<br />
permis mo<strong>de</strong>larea mecanismului <strong>de</strong> mostenire pentru limbajele <strong>de</strong> programare<br />
orientate-obiect concurente care respecta principiile izolarii <strong>si</strong> separarii codului <strong>de</strong><br />
interactiune <strong>în</strong>tre activitati concurente. Pe baza acestui mo<strong>de</strong>l am <strong>de</strong>monstrat una<br />
dintre concluziile <strong>de</strong>sprinse <strong>în</strong> cadrul analizei mecanismelor <strong>de</strong> interactiune <strong>în</strong>tre<br />
activitati concurente <strong>în</strong> cadrul capitolului doi, <strong>si</strong> anume ca respectarea celor doua<br />
56