Sunteți pe pagina 1din 14

Dezvoltarea orientata pe obiecte

a sistemelor de programe
Obiectiv
- Eficienta dezvoltarii sistemelor de programe de
dimensiuni medii, mari si a aplicatiilor complexe

Tendinte
- Raspandirea limbajelor de programare orientate pe
obiecte
- Metodologii orientate pe obiecte pentru dezvoltarea
sistemelor de programe
Notiunile de clasa si obiect

Obiect - entitate discreta si distincta

Clasa - abstractie care cuprinde proprietatile


importante pentru o aplicatie si ignora restul;
descrie o multime posibil infinita de obiecte
individuale, care sunt numite instantieri ale clasei

Creionul meu Creionul Mariei Creionul lui Mihai Creionul Laurei


Programarea structurata

Caracteristici
- Presupune ca functiile sunt mai importante si mai
complexe decat datele
- Separare ferma intre structurile de date si codul
functiilor care le prelucreaza
Dezavantaje
- eforturi deosebite pentru extinderea la o versiune
noua
- cooperare dificila intre echipe
Programarea orientata pe obiecte

Caracteristici
- se includ tipuri de date complexe (clase) care
imbina structurile de date cu algoritmii care le
prelucreaza
Avantaje
- intelegere, depanare si modificare mai usoara a
programelor
- faciliteaza extinderea usoara si reutilizarea codului
- cooperare usoara intre programatori
Limbaje orientate pe obiecte

Primele limbaje OO (1967)


- Simula - 67 (1967)
- Smalltalk (1972) - parintele sistemelor OO moderne
Limbaje hibride (1985)
- adauga trasaturi OO la limbajele conventionale
- Objective-C (1986); C++ (1986)
Limbaje OO pure (1991)
- Eiffel (1991); Java (1995)
Concepte de baza ale programarii
orientate pe obiecte
Incapsularea
- reunirea in cadrul claselor a structurilor de date si a
operatiilor care le prelucreaza
Mostenirea
- construirea unor clase derivate prin utilizarea unor
clase definite anterior; rezulta ierarhii de clase
Polimorfismul
- o operatie poate avea implementari diferite la diferite
niveluri ale unei ierarhii de clase
Exemplu: Ierarhie de clase
Figuri Geometrice Plane
arie
perimetru
Calcul Arie
Calcul Perimetru

Dreptunghi Triunghi
latime latura 1
lungime latura 2
Calcul Arie latura 3
Calcul Calcul Arie
Perimetru
Calcul
Perimetru
Este Isoscel
Etapele dezvoltarii sistemelor de
programe
Analiza
- modelarea pe baza specificatiilor problemei
Proiectare
- tranzitia de la aspectele conceptuale catre cele
legate de implementare
Implementare
Testare
- testarea sistemului si a modulelor independente
Modelul cascada

Analiza

Proiectare

Implementare

Testare
Modelul spirala

caracteristic orientarii pe obiecte

Testare Analiza

Implementare Proiectare
Modelul spirala - cerc
Stabilitate si perfectionare continua

Testare Analiza
forma intermediara 1
start

forma intermediara 2

Implementare Proiectare
Suport pentru dezvoltarea
sistemelor de programe
Metodologii
- producere organizata de software, folosind o
colectie de tehnici predefinite si de conventii de
notatie
- ciclul de viata - cuprinde fazele dezvoltarii
Unelte CASE
- CASE - Computer Aided Software Engineering
- reduc timpul total de dezvoltare
- separa proiectarea de implementare
Evolutia metodologiilor si
uneltelor CASE
Metodologii structurate (1965)
Tehnici de modelare a datelor (1970)
Proiectarea bazelor de date cu limbaje 4GL (1975)
Unelte pentru specificarea proiectarii si analizei
(1980)
Unelte pentru prototiparea interfetei cu utilizatorul
(1985)
Metodologii orientate pe obiecte (1990)
Unelte pentru generare de cod (tendinta actuala)
Metodologii software
Metodologii structurate
- analiza structurata (Yourdon-DeMarco), scheme structurate
Jackson, modelarea datelor
Metodologii orientate pe obiecte
- Rumbaugh (OMT - Object Modeling Technique), Booch, Jacobson,
UM (Unified Method), UML (Unified Modeling Language)
Metodologii hibride
- F-O-O - analiza functionala, proiectarea si implementarea OO
- O-O-F - analiza si proiectarea OO, implementare functionala