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 ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
lucrari <strong>de</strong> specialitate, <strong>în</strong>cepând cu [MAT93], <strong>în</strong> care a fost numit anomalie <strong>de</strong><br />
mostenire.<br />
S-au i<strong>de</strong>ntificat, <strong>de</strong> asemenea, trei cazuri distincte <strong>în</strong> care utilitatea conceptului<br />
<strong>de</strong> mostenire este mult diminuata (<strong>în</strong> unele cazuri particulare chiar anulata):<br />
?? <strong>de</strong>finirea unei noi subclase K' a clasei K nece<strong>si</strong>ta re<strong>de</strong>finirea operatiilor<br />
acesteia (acela<strong>si</strong> lucru este valabil <strong>si</strong> pentru <strong>de</strong>scen<strong>de</strong>ntii clasei K');<br />
?? modificarea unei operatii m a clasei K <strong>în</strong> cadrul ierarhiei <strong>de</strong> mostenire<br />
implica modificarea, fara o motivatie functionala, a anumitor operatii atât<br />
<strong>în</strong> clasa K cât <strong>si</strong> <strong>în</strong> <strong>de</strong>scen<strong>de</strong>ntii sai;<br />
?? <strong>de</strong>finirea unei operatii noi poate forta alte operatii (inclu<strong>si</strong>v cele ce vor fi<br />
<strong>de</strong>finite <strong>în</strong> viitor <strong>în</strong> subclase) sa urmeze un protocol specific care nu era<br />
necesar <strong>în</strong> cazul <strong>în</strong> care respectiva operatie nu ar fi existat. Pastrarearea<br />
<strong>în</strong>capsularii claselor va fi, <strong>în</strong> consecinta, foarte dificila.<br />
Principalele <strong>de</strong>zavantaje induse <strong>de</strong> anomaliile <strong>de</strong> mostenire sunt violarea<br />
<strong>în</strong>capsularii <strong>si</strong> anularea <strong>în</strong>tr-o proportie ridicata a capacitatii mecanismului <strong>de</strong><br />
mostenire. În consecinta cantitatea <strong>de</strong> cod necesara pentru <strong>implementare</strong>a unei<br />
subclase este mult mai mare <strong>de</strong>cât <strong>în</strong> cazul secvential, iar modificarea operatiilor <strong>în</strong><br />
clasele parinte, <strong>în</strong> scopul maririi eficientei, nu are afect <strong>si</strong> asupra <strong>de</strong>cen<strong>de</strong>ntilor<br />
acestora, <strong>de</strong>oarece aceste operatii au fost rescrise. De asemenea, nu se pot realiza<br />
modificari locale, acestea trebuind sa fie realizate la nivelul <strong>în</strong>tregii ierarhii.<br />
O observatie importanta este aceea ca aparitia anomaliilor <strong>de</strong> mostenire<br />
<strong>de</strong>pin<strong>de</strong> <strong>de</strong> primitivele <strong>de</strong> comunicare <strong>si</strong> <strong>si</strong>ncronizare specifice limbajului. Rezulta <strong>de</strong><br />
aici ca problema anomaliilor <strong>de</strong> mostenire este generata <strong>de</strong> conflictele semantice<br />
dintre <strong>de</strong>scrierile <strong>si</strong>ncronizarii <strong>si</strong> ale mostenirii specifice unui limbaj, <strong>si</strong> nu <strong>de</strong> modul<br />
<strong>în</strong> care sunt implementate trasaturile limbajului.<br />
3.2.1. Cla<strong>si</strong>ficarea Matsuoka-Yonezawa<br />
Aceasta cla<strong>si</strong>ficare a fost realizata <strong>si</strong> prezentata <strong>în</strong> [MAT93] <strong>si</strong> ea a stat la baza<br />
<strong>de</strong>monstrarii corectitudinii multor limbaje <strong>de</strong> programare orientate obiect concurente<br />
(corectitudine privita prin prisma implementarii <strong>de</strong> mecanisme <strong>de</strong> initiere <strong>si</strong><br />
interactiune concurenta care sa împiedice aparitia anomaliilor <strong>de</strong> mostenire). Din<br />
pacate, <strong>de</strong><strong>si</strong> cla<strong>si</strong>ficarea Matsuoka-Yonezawa are meritul <strong>de</strong> a fi rodul unei analize<br />
laborioase a conflictelor dintre mostenire <strong>si</strong> concurenta, ea are anumite neajunsuri<br />
58