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.

mostenire <strong>în</strong> cadrul programarii orientate-obiect concurente. Din pacate, asa cum am<br />

vazut, studiul realizat <strong>în</strong> aceasta lucrare conduce la concluzii nesatisfacatoare. Totu<strong>si</strong>,<br />

anomaliile <strong>de</strong> rescriere fortata care <strong>în</strong>locuiesc conceptul <strong>de</strong> anomalii <strong>de</strong> mostenire <strong>si</strong><br />

care au fost introduse <strong>în</strong> [ZEN97b] are un caracter mult mai general, chiar daca acest<br />

lucru s-a realizat doar la nivel <strong>de</strong> <strong>de</strong>numire (<strong>si</strong>ngurele tipuri <strong>de</strong> anomalii <strong>de</strong> rescriere<br />

date ca exemplu au fost cele trei amintite <strong>în</strong> [MAT93]).<br />

Între clasele care <strong>de</strong>scriu la un moment dat o anumita problema pot exista<br />

patru tipuri <strong>de</strong> relatii. Un prim tip <strong>de</strong> relatie este aceea <strong>de</strong> mostenire, care permite<br />

reutilizarea structurii <strong>si</strong> functionalitatii unei clase <strong>în</strong> <strong>de</strong>finirea altei clase.<br />

Exista limbaje <strong>de</strong> programare (ca, <strong>de</strong> exemplu, SINA) care nu au implementat<br />

un mecanism pentru <strong>de</strong>scrierea unei astfel <strong>de</strong> relatii. În aceste limbaje generalizarea<br />

sau specializarea unei clase se realizeaza prin intermediul mecanismului <strong>de</strong> <strong>de</strong>legare.<br />

Relatia <strong>de</strong> <strong>de</strong>legare dintre doua clase este tot o relatie <strong>de</strong> reutilizare <strong>si</strong> ea presupune<br />

redirectarea potentiala a mesajelor receptionate <strong>de</strong> catre un obiect spre un asa-numit<br />

obiect <strong>de</strong>legat. Obiectul <strong>de</strong>legat trebuie sa faca parte efectiv din constructia primului<br />

obiect. Relatia <strong>de</strong> <strong>de</strong>legare este o relatie mult mai puternica <strong>de</strong>cât mostenirea,<br />

<strong>de</strong>oarece ea poate <strong>si</strong>mula aceasta relatie <strong>si</strong>, <strong>în</strong> plus, poate mo<strong>de</strong>la o evolutie dinamica<br />

a <strong>si</strong>stemelor (lucru pe care mostenirea, ca relatie statica dintre clase, nu îl poate<br />

realiza).<br />

O a treia relatie po<strong>si</strong>bila <strong>în</strong>tre clasele unui <strong>si</strong>stem este relatia <strong>de</strong> agregare. Ea<br />

implica existenta unei relatii <strong>de</strong> tip parte-<strong>în</strong>treg <strong>în</strong>tre instantele claselor aflate <strong>în</strong><br />

aceasta relatie.<br />

Relatia <strong>de</strong> asociere este cea <strong>de</strong>-a patra relatie po<strong>si</strong>bila <strong>în</strong> care se pot afla doua<br />

clase ale unui <strong>si</strong>stem. Aceasta relatie mai poarta numele <strong>si</strong> <strong>de</strong> relatie <strong>de</strong> utilizare<br />

<strong>de</strong>oarece, la un moment dat, un obiect unei clase se foloseste <strong>de</strong> serviciile oferite <strong>de</strong><br />

catre un obiect al clasei asociate.<br />

Cele patru relatii <strong>de</strong>scrise mai sus reprezinta tot atâtea cai <strong>de</strong> reutilizare a<br />

claselor <strong>de</strong>finite <strong>în</strong>tr-o anumita biblioteca. În cele ce urmeaza vom arata ca, <strong>în</strong>tr-un<br />

context concurent, existenta uneia dintre aceste relatii poate <strong>de</strong>termina <strong>în</strong> anumite<br />

conditii re<strong>de</strong>finiri netriviale <strong>de</strong> operatii precum <strong>si</strong> violari grave ale <strong>în</strong>capsularii. Prin<br />

urmare, au loc efectele con<strong>si</strong><strong>de</strong>rate <strong>în</strong> [MAT93] <strong>în</strong> <strong>de</strong>scrierea anomaliilor <strong>de</strong><br />

mostenire.<br />

65

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

Saved successfully!

Ooh no, something went wrong!