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.

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

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

Saved successfully!

Ooh no, something went wrong!