ANALIZA SI PROIECTAREA ORIENTATA OBIECT A SISTEMELOR INFORMATICE - APOO
1. Aspecte de ordin general
Conceptul de abordare obiectuala a aparut in jurul anului 1965 cand au fost elaborate primele limbaje de programare obiect dintre care amintim : SIMULA, SMALLTALK ( si limbaj si SGBD ), ADA, EIFEL, C++, COBOL_OB, SQL_OB, etc.
Limbajele de programare orientate obiect astfel elaborate nu si-au gasit o larga aplicabilitate in domeniu economic, intrucat nu existau modele de organizare a datelor corespunzatoare, acestea au aparut abia in jurul anilor 1980-primele sisteme de gestiune a bazelor de date orientate obiect.
Chiar si in astfel de conditii, limbajele de programare si SGBD orientate obiect nu au fost folosite pe scara larga in domeniu economic intrucat nu existau metodologii sau tehnici de realizare/ dezvoltare a S.I. in conceptia obiectuala.
Primele metodologii orientate obiect au aparut in jurul anilor 1990 cand s-au conturat 3 mari grupuri de realizatori de astfel de metododologii.
Fiecare metodologie prezenta anumite particularitati, folosea anumite simboluri, diagrame de reprezentare sau tipuri de modelare. Aceste diferentieri ridicau o serie de dificultati pentru utilizarea unor astfel de metodologii.
In ideea de a veni in sprijinul utilizatorilor s-au conturat preocupari (1993) de standardizare a metodologiilor de realizare a S.I. in conceptia de abordare obiectuala. Insa standardizarea s-a realizat in 1997 cand a fost elaborat primul standard UML care definea conceptele, simbolurile utilizate, tipurile de modele elaborate si tipurile de diagrame utilizate.
Ulterior au fost elaborate sub forma de User-Quide si specificatiile de utilizare a UML-ului, specificatii definite prin RUP (Rational Unified Process).
Concepte utilizate in APOO a sistemelor informatice
1.Conceptul de obiect - obiectul reprezinta o entitate concreta sau abstracta din mediul inconjurator. Prin abstractizare se spune ca tot ceea ce ne inconjoara ar constitui obiecte.
Intr-o astfel de formulare si mai mult in conceptia de analiza si proiectarea orientata obiect, poate fi redata mai bine realitatea inconjuratoare.
Orice obiect comporta o anumita descriere prin care se definesc proprietatile obiectului , precum si un anumit comportament.
Comportamentul nu reprezinta nimic altceva decat operatiile pe care le poate efectua acel obiect sau operatiile ce sunt efectuate asupra acelui obiect .
Multitudinea operatiilor grupate si implementate intr-un limbaj oarecum de programare poarta denumirea de metoda.
EX. de obiecte : masa, student, profesor, factura,contract, masina, etc.
2.Conceptul de clasa de obiecte - multitudinea obiectelor ce prezinta aceleasi proprietati si comportament.
3.Conceptul de incapsulare -presupune faptul ca datele precum si metodele apartinand unei clase de obiecte sunt stocate impreuna si incapsulate. Incapsularea sugereaza faptul ca datele si metodele sunt primite ca o cutie neagra (blak box), ascunse.
Utilizatorii nu au acces direct la date decat prin interfete care apeleaza metodele din cadrul clasei. Metodele la randul lor apeleaza datele.
4. Conceptul de interfata -interfata presupune un mesaj prin care se apeleaza ( citeaza ) o metoda din cadrul clasei de obiecte.
FACTURA
denumirea
cls.de ob.
NR.FACTURA DATA
FACTURII SERIA
FACTURII. COD
FISCAL. DEN.UNIT.EMITENTE..
definesc
proprietatile cls.
EMISA() INCASATA() REFUZATA()
de obiecte
interfata/mesaj
definesc
metodele/comportamentul
Eexemplu de incapsulare: - datele si metodele sunt incapsulate
OBS : Mesajul ar reprezenta citarea unei metode care la randul ei poate apare ca un program sau subprogram de tip procedura sau functie.
5.Conceptul de polimorfism- presupune faptul ca un acelasi mesaj poate fi adresat uneia sau mai multor clase de obiecte, primind raspunsuri diferite si cu semnificatiile diferite.
Ex : comanda PRINT ( WINDOWS ) - macroinstructiune
PRINT - F1-text
- F2-prg
- F3-figuri CURSUL 6 18.12.2005
A
cu semnificatia : subclasa de obiecte B mosteneste proprietatile si comportamentul superclasei A.
Mostenirea poate fi :
simpla - situatie in care o subclasa B mosteneste proprietatile si comportamentul de la o singura superclasa de obiecte A
multipla- situatie in care o subclasa de obiecte mosteneste proprietatile si comportamentul de la doua sau mai multe supercalase de obiecte.
Exemplu:
Unde:
- superclasa de obiecte E mosteneste proprietatile si comportamentul de la 2 clase de obiecte A si B.
Proprietatea de mostenire ofera o serie de avantaje dintre care amintim :
ofera posibilitatea reutilizarii codului, programului - in acest mod
sporeste productivitatea muncii in activitatea de programare
- proprietatea de mostenire ofera facilitati in definirea ierarhiilor de clase de obiecte (specializarea sau generalizarea ).
ofera facilitati de definire de noi clase de obiecte sau de redefinire a unor clase de obiecte deja existente.
Exemplu :
- REDEFINIRE danseaza
sau
DETELE danseaza
Plecand de la superclasa de obiecte cu precizarea proprietatilor si metodelor comune persoanele au fost regrupate in doua subclase de obiecte : femei si barbati.
Pentru deosebirea celor doua subclase de obiecte, clasei femei i se mai adauga inca o metoda (comportament) cu denumirea croseteaza.
In continuare presupunem ca din anumite considerente de ordin practic ar prezenta interes gruparea barbatilor in doua categorii tineri si batrani ( deci au fost adaugate prin specializare doua subclase de obiecte).
Daca s-ar ramane la acest nivel, structura claselor de obiecte nu ar fi corecta intrucat nu ar reflecta in mod corect comportamentul celor doua subclase tineri si batrani.
Aceasta tinand seama de faptul ca cei batrani nu mai danseaa. Pentru redarea corecta a ierarhiilor de clase de obiecte din exemplul de referinta se va recurge la redefinirea metodei danseaza pentru subclasa batrani sau anularea metodei danseaza.
In acest mod sub aspectul comportamentului se ajunge ca tinerii sa rada, sa cante si sa danseze, iar pentru batrani ar ramane doar doua metode : a rade si a canta. In concluzie se poate deduce flexibilitatea definirii modelului static pentru sistemul sau aplicatia de referinta.
7.Conceptul de ierarhii de clase de obiecte- pe baza proprietatii de mostenire pot fi definite ierarhiile de clase de obiecte.
O astfel de ierarhie apare ca un model de structuri de date de tip arborescent.
EX la nivelul unei universitati poate fi definita o structura ierarhica de forma :
La nivelul superclasei stud-UGB se definesc proprietatile si comportamentul comun tuturor studentilor cum ar fi CNP, nume, adresa.
La nivelul subclaselor de obiecte se mai adauga anumite caracteristici/ atribute precum si nume prin care se diferentiaza fiecare subclasa sau subclasa de obiecte.
Definirea ierarhiilor pe clase de obiecte ofera anumite avantae cum ar fi :
ofera facilitati sub aspectul specializarii sau generalizarii claselor de obiecte
reducerea timpului necesar actualizarii datelor sau simplificarii procedurilor de actualizare a datelor.
EX: este suficient a se actualia valoarea unui atribut ( ex: adresa studentului) la nivelul superclasei de obiecte, ca implicit actualizarea adresei studentului sa se propage la nivelul tuturor subclaselor de obiecte din cadrul ierarhiei.
8.Conceptul de specializare si generalizare
a)Specializarea -presupune o superclasa de obiecte asupra careia se aplica anumite criterii de regrupare a obiectelor clasei de reerinta ( deci se pleaca din start de la existenta unei superclase de obiecte )-ex : studenti-UGB.
b)Generalizarea -pentru generalizare utilizand proprietatea de mostenire se pleaca la doua sau mai multe clase de obiecte.
Clasele de obiecte deja existente se analizeaza in urma careia pot fi desprinse anumite proprietati sau metode comune celor doua sau mai multe clase de obiecte. Cu proprietatile si metodele comune se va recurge la redefinirea unei superclase de obiecte.
EX presupune o structura de date ce ar include urmatoarele clase de obiecte la nivelul universitatii UGB
PERSONAL TESA
Cele trei clase de obiecte analizate ne ofera posibilitatea sa desprindem o concluzie de forma : cele trei clase de obiecte se refera la persoane si toate aceste persoane au anumite caracteristici comune cum ar fi CNP,nume si adresa.
Cu cele trei proprietati comune poate fi definita o superclasa de obiecte cu denumirea sugestiva de PERSOANA.
In urma generalizarii se ajunge la o structura de date de forma :
9.Conceptul de asociere- asocierea are semnificatia de corespondenta din limbajul curent intre clase de obiecte.
Asocierea reflecta o corespondenta sau relatie abstracta intre clase de obiecte. Prin asociere se precizeaza relatii virtuale posibile intre clase de obiecte.
Corespondenta dintre un obiect al clasei de obiecte A cu multitudinea obiectelor dintr-o clasa B poarta denumirea de legatura.
Deci prin legatura se precizeaza la modul concret care obiect dintr-o clasa intra in corespondenta cu obiecte din alta clasa. In general asocierea se exprima printr-un verb.
EX fie clasele de obiecte profesori si studenti. Intre cele doua clase de ob. Pot fi definite mai multe asocieri cu semnificatiile corespunzatoare, cum ar fi :
- profesorii INDRUMA studenti in vederea elaborarii lucrarii de licenta.
- un profesor poate sa nu INDRUME nici un student sau poate sa INDRUME mai multi studenti
- un student poate fi INDRUMAT de cel putin un cadru didactic si cel mult doua cadre didactice.
In acest context asocierea intre doua clase de obiecte poate fi de forma :
0,n 1,2
Reprezentarea asocierii redata mai sus indica o corespondenta virtuala intre cele doua clase fara a preciza un anumit profesor ce studenti indruma (corespondenta concreta).
Corespondenta concreta ce poarta numele de legatura este redata astfel :
- exemplu de legatura
ADAM
PROF.IONESCU INDRUMA STUDENTI CORNEA
POPESCU
Caracteristicile generale ale asocierii
denumirea asocierii - in general exprimata printr-un verb ( indruma, scrie, citeste)
rolul clasei in cadrul asocierii - sugereaza semnificatia clasei in cadrul asocierii
cardinalitatea asocierii
atribute ale asocierii
tipul asocierii
EX cardinalitatea/multiplicitatea asoc.
CLIENTI BANCA
X,n den.asoc. 0,n
CREDITOR DEBITOR
Rolul clasei
Cardinalitatea sau multiplicitatea asocierii:
- se reda prin doi parametri de forma , unde x defineste minimalitatea asocierii, iar y defineste maximalitatea asocierii.
Cardinalitatea precieaza modul in care un obiect oarecare ( instanta) din cadrul unei clase de obiecte A poate intra in asociere cu alte instante dintr-o alta clasa B sau di aceiasi clasa.
In redarea cardinalitatii sunt folosite o serie de notatii dintre care :
VARIANTA 1:
B
- cu semnificatia ca o instanta din A intra in corespondenta cu cel putin o instanta si cel mult o instanta din B .
Intr-o astfel de situatie fiecare instanta din A are o corespondenta cu o instanta din B.
Ex 1,1
este
Un primar este primar la cel putin o primarie si cel mult o primarie.
b) 0,1
O instanta din clasa A poate sa nu aiba relatie ( corespondenta ) cu nici o instanta din B sau sa aiba corespondenta cu cel mult o instanta din B.
PERSOANA
EX
PARTID POLITIC
face
parte 0,1
O persoana din clasa Persoane poate sa nu faca parte din nici un partid sau sa faca parte din cel mult un partid.O astfel de asociere reflecta o stare binara ( a fi sau a nu fi ).
A
O instanta din clasa A poate sa nu aiba corespondenta cu nici o instanta din B sau sa aiba corespondenta mai multe instante din B.
COMANDA/CONTRACT PRODUS
este 0,n
EX comandat
Un produs poate sa nu fie solicitat ( contractat ) de nimeni sau nu poate fi contract de mai multi.
B
A d) 1,n
O instanta din A intra in asociere cu una sau mai multe instante din B. OBS : constatam ca si de aceasta data o instanta din A obligatoriu isi regaseste o corespondenta de instanta in B.
COMANDA PRODUS
EX 1,n
contine
VARIANTA 2 :
A
a) 1 1 , 1 1 la 1 si cel mult 1
A
B 1 la 0 si adica 0 la 1 de la varianta 1b) 1 0, 1
B
A1 0,n
c)
A B
1 - 1,N + 1 1 , n
d)
Alta notatie :
A
|
Minimalitatea si maximalitatea este redata de interval de valori : 1,3 sau 4,7 cazuri particulare ale celor de mai sus.
Atributele asocierii:
In anumite situatii asocierea poate fi insotita de o serie de atribute.
Intr-o astfel de situatie atributele definite la nivel de asociere nu apartin in totalitate nici unei clase A , nici altei clase B si apartin ambelor clase.( ca factor comun).
VALOARE
IMP.. DATA IMP.. DOB.IMP.. SCADENTA..
EX : 1,n 0,n
CLIENT
Intr-o astfel de situatie cu atributele asocierii se defineste o subclasa intermediara de obiecte.
Tipul asocierii -precizeaza numarul de clase de obiecte ce participa la definirea asocierii.
Exista urmatoarele tipuri de asocieri :
-umane - situatie in care o clasa intra in asociere cu ea insasi, mai concret se poate spune ca instantele din cadrul unei clase de obiecte intra in asociere cu ele insasi.
O astfel de asociere mai poarta denumirea de asociere recursiva.
SALARIAT
EX
Sot 0,1
Sotie
- un salariat poate sa aiba sau nu sotia in societate
- un salariat poate sa nu aiba nici o sotie sau cel mult 1
O astfel de asociere da raspuns la o intrebare de forma : care sunt salariatii ( angajatii ) sot-sotie ce lucreaza in aceiasi companie.
- binare - presupune faptul ca asociere are loc intre doua clase de obiecte
AUTOR CARTI
EX
1,n ,1,n
- ternare - presupune faptul ca asocierea implica trei clase de obiecte
EX 1.
- un interpret poate canta una sau mai multe melodii.
- O melodie poate fi cantata de unu sau mai multi interpreti .
- un interpret poate sa nu mai aiba nici un CD sau poate sa aiba mai multe CD
- Pe un CD pot fi inregistrate una sau mai multe melodii.
EX. 2 :
z - asocieri - n -nare
Politica de confidentialitate |
.com | Copyright ©
2024 - Toate drepturile rezervate. Toate documentele au caracter informativ cu scop educational. |
Personaje din literatura |
Baltagul – caracterizarea personajelor |
Caracterizare Alexandru Lapusneanul |
Caracterizarea lui Gavilescu |
Caracterizarea personajelor negative din basmul |
Tehnica si mecanica |
Cuplaje - definitii. notatii. exemple. repere istorice. |
Actionare macara |
Reprezentarea si cotarea filetelor |
Geografie |
Turismul pe terra |
Vulcanii Și mediul |
Padurile pe terra si industrializarea lemnului |
Termeni si conditii |
Contact |
Creeaza si tu |