Documente Academic
Documente Profesional
Documente Cultură
Partea AIIa
Partea AIIa
Modelul obiect :
descrie obiectele si relatiile lor in sistem;
2.
Modelul dinamic :
descrie interactiunile intre obiecte in cadrul
sistemului;
3.
Modelul functional :
descrie transformarea valorii datelor in sistem.
1. Modelul obiect
Concepte de baza
Obiecte :
Orice lucru din lumea inconjuratoare poate fi considerat un
obiect (ex.: o masina, o persoana, un formular de cerere, un ordin de
plata, o marfa etc. ), iar prin analogie in analiza si proiectarea
orientata pe obiect, un camp dintr-o baza de date (ex. cod produs),
un formular de bilant etc., sunt considerate obiecte;
Un obiect se caracterizeaza prin:
Sintaxa
Numele - clasei
nume-atribut-1:tip-data-1=valoare implicita 1
nume-atribut-2:tip-data-2=valoare implicita 2
nume-atribut-3:tip-data-3=valoare implicita 3
Exemplu
PERSOANA
nume:text = Popescu
salariu:intreg = 3000000
data_nasterii: date = 01-11-1960
..
...
nume-operatie-1:tip rezultat - 1
nume-operatie-2:tip rezultat - 2
..
-procesul crearii unui obiect este numit instantiere. (Un obiect este
instanta unei clase).
-instantierea este procesul prin care orice obiect creat este o
instanta (un exemplar) al clasei parinte. Ex. "Declaratia
TVA pe luna martie 1999" este o instanta a clasei
"Declaratii TVA"
-operatia de instantiere este necesara pentru a putea realiza
procesul de mostenire a proprietatilor, metodelr si valorilor
aferente proprietatilor. Ex. la clasa Marfuri, proprietatea
TVA este declarata 19% dar se poate modifica ulterior.
-Subclasele de obiecte
Sunt definite drept clase derivate dintr-o clasa parinte,
care iau nastere dintr-un grup de clase.
Ex. subclasa profesor face parte din clasa angajat si
clasa cetatean.
clientul (obiect)
adreseaza cereri (mesaje) furnizorului
(obiect), pentru a i se face anumite servicii ( metode) pe care
furnizorul stie si poate sa le realizeze.
Abstractizarea :
-este o forma utila de programare modulara care
incurajeaza programatorul sa gandeasca aplicatiile in
termeni abstracti;
-unui obiect, realizeaza o vedere speciala asupra obiectului
propriu prin insumarea proprietatilor sale;
-datelor prin incapsulare, este una din caracteristicile
esentiale ale BD orientate obiect. Ex. Crearea claselor
elementare care vor face parte din clasa parinte nu mai
pot fi simplificate, iar abstractizarea presupune crearea
acestor clase elementare.
Polimorfismul :
-este un fenomen prin care un mesaj transmis diferitelor
obiecte, poate avea ca rezultat actiuni complet diferite. Ex.
mesajul print pentru afisarea unui grafic va apela metode
diferite de listare, fata de cazul in care acelasi mesaj print
este transmis pentru listarea unei facturi;
-este incurajat de mecanismul de mostenire;
-este utilizat in limbajele orientate pe obiect, cu semnificatia
ca, un nume poate fi folosit pentru mai multe situatii
corelate dar in scopuri diferite. Ex. aceeasi functie (+) poate
face operatii diferite in raport de datele pe care le
prelucreaza aceasta functie. Ea poate sa adune doua
variabile de tip numeric (a+b) sau doua variabile de tip
caracter (nume + prenume).
Persistenta :
-se refera la timpul alocat unui obiect in memoria
calculatorului pentru a putea fi accesat;
-unui obiect in memoria calculatorului are in vedere cand :
-este creat un obiect in functie de un parametru asociat;
-un obiect este conectat la o structura persistenta data;
-exista un obiect radacina persistent, orice obiect pornind de
la aceasta radacina este persistent;
-un obiect este tinta unui mesaj explicit pentru a-l face
persistent.
Capitala
Compartiment
ORAS
Proiect
Persoana
Asociere binara
(2 obiecte)
Asociere ternara
(3 obiecte)
Gestiune
CodProd:Number
DenProd:Text
UM:Text
PretMediu:Number
Nr gestiune:Number
Den gestiune:Text
StocInit:Number
DataStoc:Date
StocCurent:Number
In cazul in care asocierea are atribute proprii si metode ea va deveni clasa de obiecte
Agregarea
Agregarea exprima legaturile care apar n cazul n care un
obiect este compus din alte obiecte. Obiectele componente pot sa
aiba o existenta independenta sau pot exista numai n cadrul
agregarii. De asemenea, aceleasi componente pot aparen mai multe
agregari diferite.
Agregarea este tranzitiva: un obiect este compus din alte
obiecte care, la rndul lor, pot fi compuse.
Notatie grafica:
UNIVERSITATE
FACULTATE
Factura
Asociere
Produse
Produse
Facturate
CantitateFacturata
PretFacturare
CTA
Facturate
Ex:
Ex:
Ex:
copierea documentului nu implica si copierea persoanei
care este proprietarul sau.
Mostenirea
- Mostenirea simpla si multipla
Mostenirea este o abstracizare care permite partajarea
proprietatilor comune dintre clase, pastrnd nealterate diferentele dintre
ele.
Clasa de la care se mosteneste este numita superclasa, iar clasa
care mosteneste este numita subclasa.
Mostenirea este tranzitiva pe un numar orict de mare de nivele.
Instanta unei subclase este simultan instanta a tuturor superclaselor sale.
Mostenirea poate fi exclusiva (obiectele pot apartine unei singure
subclase) sau inclusiva (obiectele pot apartine mai multor subclase din
aceeasi arborescenta).
Notatia grafica:
ANGAJAT
Marca
Nume
Prenume
Data nasterii
...
MUNCITOR
Meserie
Calificare
Mostenirea exclusiva
mostenire exclusiva
mostenire inclusiva
INGINER
Specialitate
VEHICOL
VEHICOL-TERESTRU
AUTOMOBIL
VEHICOL-MARIN
VEHICOL-AMFIBIU
VAPOR
BUN-IMOBILIAR
Adresa
Suprafata
APART-BL
Etaj
Nr camere
Nr etaje bloc
CASA-VILA
DE-VANZARE
DE-INCHIRIAT
Supr curte
Supr gradina
Tip incalzire
Pret solicitat
Stare
Chirie lunara
Avans minimal
Durata minima
- Clase abstracte
O clasa abstracta este o clasa care nu are instantieri directe
dar ale caror clase descendente au instantieri. O clasa concreta (adica
instantiabila) poate avea subclase abstracte, cu conditia ca acestea sa
aiba subclase concrete.
O clasa abstracta nu poate fi clasa terminala n arborele de
mostenire.
subclasa
subclasa
Instanta
superclasa
Clasa
Clasa
concreta
Clasa
terminala
Clasa
abstracta
Clasa
neterminala
superclasa
Ex:
FEREASTRA
marime:dreptunghi
vizibilitate:logic
marime_implicita:dreptunghi
marime_maxima:dreptunghi
afiseaza
creaza_fereastra
activeaza_fereastra
Restrictii de integritate
Tipologia restrictiilor de integritate din cadrul metodelor
sistemice ramne valabila si aici.
Metodele orientate obiect introduc anumite notatii particulare
pentru unele restrictii de integritate (RI).
Cardinalitatile: exprima, n mod implicit, restrictii de
integritate referitoare la participarea obiectelor la asocieri sau
agregari.
cardinalitate 1
cardinalitate 0,n
cardinalitate 0,1
1+
1-5
cardinalitate 1,n
cardinalitate specificata explicit
FURNIZOR
FACTURA
ANGAJAT
conduce
MASINA
MONTAJ
decalaj
PIESA
decalaj
/DECALAJ
{decalaj = decalaj-montaj.masina * decalaj-montaj.piesa}
derivate
un catalog de piese auto poate contine articole aflate ntrun alt catalog. Fiecare articol de catalog poseda un numar
de model caruia i pot corespunde mii de articole produse
individual de fabricanti diferiti. Un articol poate fi compus
din subarticole. Fiecare arbore de descompunere al unui
articol fizic trebuie sa aiba aceeasi forma cu arborele
corespunzator din catalog. Exista, prin urmare, un
homomorfism ntre cele doua agregari contine.
contine
reprezinta
PIESA_CATALOG
nr. model
contine
ARTICOL
corespunde
nr. serie
2. Modelul dinamic
Modelul dinamic prezinta modificarile suportate de obiecte
si corelatiile temporale dintre acestea.
Conceptele de baza:
- evenimente
- stari.
Eveniment:
- un fapt intervenit ntr-un anumit moment;
- conceptual, un eveniment nu are durata.
Ordine de aparitie a evenimentelor poate fi dirijata de
legaturi de cauzalitate. Spre exemplu, plata unei facturi se face
numai dupa receptia marfurilor facturate.
Doua evenimente care nu au nici o in fluneta unul asupra
altuia sunt numite concurente, ordinea lor putnd fi oarecare.
Un eveniment trasporta informatie catre un obiect sau de
la un obiect la altul. Datele transmise sunt atributele evenimentului.
Scenariul:
- secventa de evenimente care se deruleaza ntr-o anumita
executie particulara a sistemului. Aria unui scenariu
varia, poate cuprinde toate evenimentele sau numai
evenimentele corespunzatoare unui anumit obiect sau
situatii.
poate
unei
Starea:
- o abstractizare a valorilor atributelor si a legaturilor unui obiect;
- multimile de valori sunt grupate n stari n functie de proprietatile
care afecteaza comportamentul ansamblului obiectului;
- reprezinta raspunsul obiectului la evenimentele de intrare.
Raspunsul la un eveniment aparut poate varia cantitativ, n functie de
valoarea exacta a atributelor sale dar sub aspect calitativ este identic
pentru toate valorile aceluiasi eveniment si poate varia pentru valori de
stare diferite. Acest raspuns poate cuprinde o actiune sau o schimbare de
de stare.
specifica
- Operatii
Operatiile sunt atasate evenimentelor si/sau starilor si indica ce
face obiectul la aparitia evenimentului sau starii respective.
Exista doua categorii de operatii: activitati si actiuni.
O activitate este o operatie care necesita o anumita durata de
timp (n termenii aplicatiei studiate). O activitate poate acoperi ntreaga
durata a unei stari sau poate fi mai scurta dect aceasta. Este, de
asemenea posibil, ca o activitate sa nceteze naintea executiei sale
complete din cauza aparitiei unui eveniment. n termeni generali, o
activitate poate fi privita ca o operatie de natura secventiala cu durata
indefinita.
O actiune este o operatie instantanee (tot n termenii aplicatiei,
deoarece fizic nu poate fi realmente instantanee). Actiunea este
ntotdeauna atasata unui eveniment.
Actiunile pot reprezenta de asemenea operatii de control intern, cum ar
fi modificarea valorii unor atribute sau generarea altor evenimente.
Notatia grafica
stare initiala
nume_stare
executa: activitate
stare
tranzitie
stare
stare finala
Ex. 1.
Meniu vizibil
Incasare suma
In asteptare
introducere monede(total)/
creste suma
anulare/restituie monezi
selecteaza(articol)
articol vid
rest < 0
rest > 0
O activitate dintr-o stare poate fi extinsa ntr-o diagrama de nivel mai jos
n care fiecare stare sa reprezinte un pas al activitatii initiale. Activitatile
imbricrate sunt diagrame de stare cu executie unica si cutranzitii de
intrare si de iesire. Ex: pentru activitatea distribuie articol din diagrama
de mai sus, se poate trasa o diagrama imbricata de tipul urmator:
brat activat
executa: plaseaza bra
pe randul adecvat
impinge
-Generalizarea starilor
O diagrama imbricata este n fapt o generalizare de stari. Un obiect
aflat ntr-o anumita stare n diagrama de pe nivelul superior trebuie sa fie
obligatoriu si ntr-una din starile din diagrama imbricata. Altfel spus, toate
starile din diagrama imbricata sunt detalieri ale diagramei de pe nivelul mai
nalt.
Starile pot avea substari care mostenesc tranzitiile superstarilor lor,
tot asa cum clasele pot avea subclase care mostenesc atributele si operatiile
superclaselor lor. Fiecare tranzitie sau actiune aplicata unei stari este aplicata
tuturor substarilor sale, cu conditia ca acestea sa nu fi fost eventual redefinite
(suprascrise).
Transmisie automata
schimbaM
Punct mort
Mers inapoi
schimbaS
schimbaA
schimbaS
Mers inainte
stop
marire viteza
Vit I-a
marire viteza
Vit a II-a
reducere viteza
Vit a III-a
reducere viteza
- Generalizarea evenimentelor
Evenimentele pot fi organizate ntr-un ierarahie de mostenire a
atributelor acestora. Construirea unei ierarhii de evenimente permite sa se
utilizeze diverse nivele de abstractizare n diferite sectiuni ale proiectului.
eveniment
timp
intrare utilizator
periferic
buton mouse
tasta
poziie
caracter
buton mouse
apasat
buton mouse
eliberat
control
spatiu
imprimabil
alfanumeric
semne
Ex:
la terminarea unei tranyzactii cu un client, un bancomat
trebuie sa efectueze doua operatii: sa elibereze bancnotele
corespunzatoare sumei cerute si sa returneze card-ul.
Masina nu
poate trece n starea urmatoare pna cnd aceste operatii nu s-au realizat,
indiferent de ordinea n care a
actionat clientul: a preluat mai nti
banii sau card-ul sau pe amndoua simultan.
preluare bancnote
pregatire
reinitializare
executa: elibereaza card
retragere card
Ghiseu
Bancomat
Bancomat
Bancomat
Calculator
banca
Calculator
central
Cont
Cont
Cont
Calculator
banca
Cont
Cont
Tranzactie
manuala
cod
statie
Casier
Banca
denumire
cod
cod
cont card
cod
salariat
sold
limita creditare
tip
suma
tip
Tranzactie
automata
Autorizare
card
parola
limita
nume
Cont
Actualizare
Client
Card bancar
nume
adresa
cod banca
cod card
nr serie
b. operatie eronata
BA cere inserarea card-ului; clientul insereaza card-ul
BA preia card-ul si citeste nr de serie
BA cere parola; clientul tasteaza parola
BA verifica nr de serie si parola prin consultarea bancii si respinge card-ul
BA informeaza clientul ca parola este eronata si cere retastarea sa; clientul
tasteaza parola corecta si card-ul este validat
BA cere clientului sa indice operatia dorita; clientul selecteaza retragere
BA solicita precizarea sumei; clientul apasa tasta Anulare
BA ejecteaza card-ul si cere clientului s-o preia; clientul retrage card-ul
BA afiseaza mesajul de asteptare a unei noi cereri
Bancomat
insereaza card
cere parola
tastare parola
verificare cont
cont bancar corect
Banca
Diagrama
de stare
pentru
bancomat
Asteapta
raspunsul
retelei
raspuns retea
Intrerupere
executa: mesaj
de anulare
insereaza card
Ecran initial
tasteaza parola
executa: afiseaza
executa:
executa:cere
ecran initial
verifica cont
parola
parola
eronata
insereaza card
cont corect
Ilizibil
executa:
anulare
executa: mesaj
cere tip
card ilizibil
anulare
Anulare
retrage
tasteaza tip
executa: mesaj
anulare
card
de anulare
Card ejectat
executa: ejecteaza card
cere preluare card
executa:
cere suma
executa: mesaj
cont invalid
tasteaza suma
anulare
Terminare
executa: imprima
extras operatie
continuare
terminare
anulare
executa: intreaba
daca se continua
executa: efectueaza
tranzactia
tranzactie corecta
executa: elibereaza
asteapta 3
bancnote; cere
secunde
preluarea bancnotelor
tranzactie esuata
preia bancnote
executa: mesaj
de anulare
3. Modelul functional
Modelul functional trateaza o alta fateta a prelucrarilor si
anume cea referitoare la modul n care are loc transformarea
datelor, n marea majoritate a cazurilor, prin calcule.
Modelul functional ofera o imagine a functionarii sistemului
compusa din seturi de date care traverseaza o suita de
prelucrari n cursul carora sufera transformari.
Fiecare suita de asemenea transformari este reprezentata ntro diagrama de flux.
O diagrama de flux se compune din:
-prelucrari;
-fluxuri de date;
-obiecte actor;
-obiecte rezervor.
Obiect
actor
prelucrare
Obiect
actor
fluxuri de date
Obiect
rezervor
TVA
Reprezentarea grafica:
obiect actor
flux de date
prelucrare
obiect rezervor
Exemple:
cod
denumire
pret
cod
Nomenclator
cauta pret
a
pret
Client
actualizare
retragere sold
Cont bancar
b
verifica
disponibil
Client
retragere
Cont bancar
actualizare
sold
Card
parola
tip tranzactie
suma
Client
Bancomat
bancnote
extras operatie
mesaje
Card
cod card, cod banca
citeste
date
sold
efectueaza
tranzactia
parola
genereaza
iesiri
mesaje
tip tranzactie
suma
bancnote
extras operatie
Client
selecteaza
card
parola
parola
verifica
parola
parola incorecta
Cont
bancar
sold
tip tranzactie, suma
actualizeaza
cont
mesaje esec
bancnote
extras operatie