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.

intra-obiect <strong>si</strong> executia concurenta <strong>de</strong>pen<strong>de</strong>nta <strong>de</strong> stare, neavând <strong>în</strong>sa instrumente<br />

specifice exprimarii executiilor concurente <strong>de</strong>pen<strong>de</strong>nte <strong>de</strong> istoric.<br />

În ceea ce priveste respectarea principiului separarii codului <strong>de</strong> interactiune,<br />

aceasta <strong>de</strong>pin<strong>de</strong> <strong>de</strong> <strong>implementare</strong>a mecanismelor <strong>în</strong> limbajul <strong>de</strong> programare. În cazul<br />

<strong>în</strong> care meta-clasa poate fi utilizata ca <strong>si</strong> o rutina <strong>de</strong> vitalizare generalizata,<br />

neimplementându-se <strong>în</strong> cadrul ei cod care sa afecteze functionalitatea clasei <strong>de</strong> care<br />

este legata dinamic atunci codul <strong>de</strong> interactiune respecta principiul amintit. În caz<br />

contrar este evi<strong>de</strong>nt ca, codul <strong>de</strong> interactiune nu este separabil, <strong>si</strong> <strong>de</strong>ci pentru a<br />

modifica constrângerile <strong>de</strong> interactiune este necesara reprogramarea completa a meta-<br />

clasei.<br />

2.5. Concluzii<br />

Eforturile din ultimele doua <strong>de</strong>cenii <strong>de</strong> unificare a conceptelor orientate-obiect<br />

cu mecanismele <strong>de</strong> initiere <strong>si</strong> coordonare a <strong>concurentei</strong> s-au concretizet <strong>în</strong>tr-un numar<br />

mare <strong>de</strong> limbaje <strong>de</strong> programare <strong>si</strong> mo<strong>de</strong>le <strong>de</strong> concurenta. Cu toate acestea nu s-a<br />

ajuns <strong>de</strong>ocamdata la <strong>de</strong>zvoltarea unui mo<strong>de</strong>l i<strong>de</strong>al, care sa îmbine <strong>în</strong> mod armonios<br />

aceste doua directii diferite ale <strong>de</strong>zvoltarii aplicatiilor. Principiile enuntate <strong>în</strong> cadrul<br />

sectiunii 2.2 <strong>de</strong>scriu un astfel <strong>de</strong> mo<strong>de</strong>l i<strong>de</strong>al, ele fiind <strong>de</strong>terminate pe baza<br />

rezultatelor teoretice <strong>si</strong> a experientei practice <strong>în</strong> fiecare dintre cele doua ramuri ale<br />

programarii.<br />

Nici unul dintre limbajele <strong>de</strong>zvoltate pâna <strong>în</strong> prezent nu respecta <strong>în</strong> totalitate<br />

aceste principii, asa cum s-a aratat <strong>în</strong> sectiunea 2.4. În tabelul 2.1. sunt prezentate<br />

toate mecanismele <strong>de</strong> interactiune concurenta luate <strong>în</strong> con<strong>si</strong><strong>de</strong>rare <strong>în</strong> aceasta sectiune,<br />

pentru fiecare precizându-se principiile care sunt sau nu respectate.<br />

Pe parcursul analizei mecanismelor <strong>de</strong> limbaj au fost semnalate <strong>în</strong> <strong>de</strong>se rânduri<br />

conflicte care apar <strong>în</strong>tre mecanismele <strong>de</strong> coordonare a <strong>concurentei</strong> <strong>si</strong> mecanismul <strong>de</strong><br />

mostenire. Aceste tipuri <strong>de</strong> conflicte, <strong>de</strong>numite <strong>în</strong> literatura anomalii <strong>de</strong> mostenire, au<br />

fost intens studiate <strong>în</strong> ultimii ani. În capitolul 3 se va realiza o <strong>analiza</strong> formala a<br />

acestor anomalii <strong>si</strong> se va <strong>de</strong>monstra faptul ca respectarea celor patru principii<br />

contribuie la ameliorarea lor.<br />

53

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

Saved successfully!

Ooh no, something went wrong!