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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

vom avea ca impT(R) = impT(Q). Însa, prin constructie, clasa R nu re<strong>de</strong>fineste cod<br />

functional din P. Prin urmare anomalia <strong>de</strong> mostenire are loc doar la nivelul codului<br />

<strong>de</strong> <strong>de</strong>scriere a constrângerilor <strong>de</strong> <strong>si</strong>ncronizare. ?<br />

Propozitia 9 <strong>de</strong>monstreaza faptul ca specificarea <strong>si</strong> mostenirea separata a<br />

codului <strong>de</strong> <strong>implementare</strong> a constrângerilor <strong>de</strong> <strong>si</strong>ncronizare conduce la ameliorarea<br />

anomaliilor <strong>de</strong> mostenire prin directionarea efectului acesteia doar asupra operatiilor<br />

care implementeaza acest cod. Prin urmare codul <strong>de</strong> <strong>de</strong>scriere a functionalitatii<br />

obiectelor active nu nece<strong>si</strong>ta rescriere. Limbajele <strong>de</strong> programare care implementeaza<br />

o notiune <strong>de</strong> tip TypesT <strong>si</strong> respecta <strong>în</strong>tocmai conditiile <strong>de</strong>finitiei 12 sunt limbajele cu<br />

mecanisme <strong>de</strong> <strong>si</strong>ncronizare cu control reflectiv. Limbajele cu mecanisme <strong>de</strong><br />

<strong>si</strong>ncronizare cu control mixt ofera <strong>în</strong> general suport pentru respectarea <strong>de</strong>finitie 12,<br />

<strong>în</strong>sa ele nu garanteaza respectarea acesteia (<strong>de</strong>finitia 12 poate fi respectata doar<br />

urmând o anumita disciplina <strong>de</strong> programare).<br />

3.5. Concluzii<br />

Rezultatele formalizarii anomaliilor <strong>de</strong> mostenire din sectiunea 3.3.<br />

<strong>de</strong>mostreaza faptul ca nu exista un mo<strong>de</strong>l obiect i<strong>de</strong>al, <strong>în</strong> care sa nu fie prezente<br />

anomalii <strong>de</strong> reutilizare. Efectul acestor anomalii poate fii <strong>în</strong>sa ameliorat.<br />

Respectarea principiile enuntate <strong>în</strong> cadrul capitolului doi <strong>si</strong> mo<strong>de</strong>late formal <strong>în</strong><br />

cadrul acestui capitol conduc la o astfel <strong>de</strong> ameliorare. Din acest punct <strong>de</strong> ve<strong>de</strong>re<br />

principiul separarii codului <strong>de</strong> interactiune concurenta este cel mai important. Astfel<br />

partea care tine exclu<strong>si</strong>v <strong>de</strong> concurenta va putea fi reutilizata separat <strong>de</strong> partea care<br />

<strong>de</strong>scrie functionalitatea. Deoarece separarea acestor notiuni duce la cresterea<br />

po<strong>si</strong>bilitatii <strong>de</strong> reutilizare, am <strong>analiza</strong>t modul <strong>în</strong> care aceasta conduce la reducerea<br />

efectelor anomaliilor <strong>de</strong> mostenire. Trebuie specificat faptul ca nimic nu constrânge<br />

programatorul <strong>în</strong> a nu amesteca codul corespunzator functionalitatii cu cel pentru<br />

<strong>de</strong>scrierea constrângerilor <strong>de</strong> <strong>si</strong>ncronizare. De exemplu, <strong>în</strong> cazul utilizarii<br />

mecanismului <strong>de</strong> meto<strong>de</strong> cu garzi, datorita faptului ca garzile au acces la proprietatile<br />

obiectelor ele <strong>de</strong>pind <strong>în</strong> general <strong>de</strong> <strong>de</strong>taliile <strong>de</strong> <strong>implementare</strong> ale operatiilor. Prin<br />

urmare, re<strong>implementare</strong>a unei operatii poate conduce <strong>si</strong> la re<strong>implementare</strong>a codului<br />

<strong>de</strong> <strong>si</strong>ncronizare. Reciproca este <strong>de</strong> asemenea a<strong>de</strong>varata.<br />

86

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

Saved successfully!

Ooh no, something went wrong!