Programare orientată pe obiect

Previzualizare curs:

Extras din curs:

Modalitatile (tehnici, paradigme) de programare au evoluat de-a lungul anilor, reflectând trecerea de la programe de dimensiuni reduse la programe si aplicatii de dimensiuni foarte mari, pentru coordonarea carora sunt necesare tehnici evoluate.

Software-ul de dimensiuni mari, care nu poate fi realizat de o singura persoana, intra în categoria sistemelor complexe, alaturi de alte sisteme complexe din cele mai variate domenii, cum sunt organizarea materiei sau organizarile sociale.

Situatiile reale si experiente ale psihologilor au relevat limitele capacitatii umane în perceptia sistemelor complexe, adica imposibilitatea unei persoane de percepe si controla un numar mare de entitati de informatie simultan. De aceea, descompunerea si organizarea sistemelor complexe, în scopul de putea fi percepute, proiectate sau conduse este esentiala. Ordinea în sistemele complexe este introdusa în general printr-o organizare ierarhica, pe mai multe tipuri si nivele de ierarhie. În reprezentarea ierarhica a sistemelor complexe se evidentiaza doua tipuri de ierarhii: ierarhia structurala sau de compozitie si ierarhia de tip.

Ierarhia structurala este o ierarhie în care se poate afirma despre un obiect ca este o parte a altui obiect, mai complex. Exemple de astfel de descompuneri se pot da oricâte, din orice domeniu. De exemplu, un calculator poate fi studiat prin descompunerea lui în subansamble componente: placa de baza, placa video, monitor, etc; la rândul ei, placa de baza este compusa din placheta de circuit imprimat, procesor, memorie, etc. Aceasta este o ierarhie de tipul “este o parte din…”.

Pe de alta parte, fiecare obiect poate fi încadrat într-o categorie (clasa, tip) mai larga, care contine mai multe obiecte care au proprietati comune. De exemplu, procesorul este de o componenta electronica; monitorul este un dispozitiv de afisare, etc. Aceasta ierarhie se refera la apartenenta obiectelor la o anumita clasa (sau tip - “este de tipul…”).

Este esential de a privi sistemele complexe din ambele perspective, studiindu-le atât din perspectiva ierarhiei structurale, deci a obiectelor care le compun, cât si a ierarhiei de tip, deci a claselor carora le apartin. La rândul lor, clasele din care fac parte obiectele pot fi organizate sau studiate ca elemente componente ale unei ierarhii, prin care o clasa este considerata ca primitiva (parinte) a unei alte clase. Cele doua tipuri de ierarhii, ierarhia de clase si ierarhia de obiecte nu sunt independente, si, împreuna, pot sa reprezinte un sistem complex.

La fel ca oricare sistem complex, software-ul poate fi controlat prin descompunerea lui. Rolul descompunerii unui sistem în general (si al programelor în special) este de a permite întelegerea si manevrarea acestuia: sistemul este descompus în parti din ce în ce mai mici, fiecare dintre ele putând fi rafinata si dezvoltata independent. Principiul “divide-et-impera”, care se aplica în multe situatii, este util si în programare.

Se pot identifica doua tipuri de descompunere a programelor: descompunerea algoritmica si descompunerea orientata pe obiecte.

Descompunerea algoritmica permite abordarea structurata a programarii. Programul este împartit în module, în functie de actiunile pe care trebuie sa le efectueze, fiecare modul se împarte în elemente functionale (blocuri, proceduri, functii), într-o structurare de sus în jos (top-down), care urmareste diagrma de trecere a datelor în cursul executiei.

Descompunerea orientata pe obiecte este o alternativa de descompunere prin care programul se descompune dupa obiectele care pot fi identificate, fiecare obiect având asociate o multime de operatii care sunt apelate în cursul desfasurarii programului.

O problema nu poate fi abordata simultan prin ambele metode; se alege fie una, fie cealalta metoda. Care dintre ele este cea mai buna? Nu exista un raspuns absolut si universal valabil, dar experienta a dovedit ca pentru sisteme de dimensiuni mari, descompunerea orientata pe obiecte este mai eficienta, mai sigura si mai flexibila.

1.1 Tehnici de programare

Modul în care este abordata programarea din punct de vedere al descompunerii programelor defineste mai multe tehnici de programare (paradigme), care s-au dezvoltat si au evoluat odata cu evolutia sistemelor de calcul.

Programarea procedurala este prima modalitate de programare care a fost si este înca frecvent folosita. În programarea procedurala accentul se pune pe descompunerea programului în proceduri (functii) care sunt apelate în ordinea de desfasurare a algoritmului. Limbajele care suporta aceasta tehnica de programare prevad posibilitati de transfer a argumentelor catre functii si de returnare a valorilor rezultate. Limbajul Fortran a fost primul limbaj de programare procedurala. Au urmat Algol60, Algol68, Pascal, iar C este unul din ultimile inventii în acest domeniu.

Programarea modulara. În cursul evolutiei programarii procedurale accentul în proiectarea programelor s-a deplasat de la proiectarea procedurilor catre organizarea datelor, aceasta deplasare reflectând cresterea dimensiunilor programelor. O multime de proceduri corelate, împreuna cu datele pe care le manevreaza sunt organizate ca un modul. Tehnica de programare modulara decide descompunerea unui program în module, care încorporeaza o parte din datele programului si functiile care le manevreaza. Aceasta tehnica este cunoscuta ca tehnica de ascundere a datelor (data-hiding). În programarea modulara stilul de programare este în continuare procedural si nu exista o asociere stricta între date si procedurile care opereaza asupra acestora, ci doar gruparea în module cu posibilitatea de a ascunde anumite informatii (date, nume de variabile, functii) definite într-un modul, fata de celelate module.

Modularitatea si ascunderea informatiilor sunt caracteristici implicite în programarea orientata pe obiecte.

Download gratuit

Documentul este oferit gratuit,
trebuie doar să te autentifici in contul tău.

Structură de fișiere:
  • Partea1.doc
  • Partea2.doc
  • Partea3.doc
  • Partea4.doc
  • Partea5.doc
  • Partea6.doc
  • Partea7.doc
  • Partea8.doc
  • Prefata.doc
  • solutii2.doc
  • solutii3.doc
  • Solutii4.doc
  • Solutii5.doc
  • Solutii7.doc
Alte informații:
Tipuri fișiere:
doc
Nota:
9/10 (9 voturi)
Nr fișiere:
14 fisiere
Pagini (total):
203 pagini
Imagini extrase:
191 imagini
Nr cuvinte:
65 202 cuvinte
Nr caractere:
351 332 caractere
Marime:
1.35MB (arhivat)
Publicat de:
NNT 1 P.
Nivel studiu:
Facultate
Tip document:
Curs
Domeniu:
Limbaje de Programare
Predat:
la facultate
Materie:
Limbaje de Programare
Profesorului:
Felicia Ionescu
Sus!