Documente Academic
Documente Profesional
Documente Cultură
122
123
124
125
AUTOMOBIL
ROI
MOTOR
PISTOANE
CILINDRII
ASIU
BUJII
126
127
are
1,
1.1
apartine de
SALARIAT
DEPARTAMENT:
Denumire: STRING;
Cod - dep: INTEGER;
ef - dep: SALARIAT;
Nr. telefoane: SET [STRING];
Angajai: LIST [SALARIAT]
SALARIAT:
Marca: INTEGER;
Nume: STRING;
Prenume: STRING;
Profesia: STRING;
Data-naterii: DATE;
Funcia: STRING;
Loc-munc: DEPARTAMENT
Fig. 7.2. Exemple de atribute
Atributele simple pot fi un tip de date atomic, care include tipurile de date clasice
prezente n limbaje de programare, cum ar fi: ntreg real, boolean iruri de caractere. n
exemplul din fig. ., denumire, cod-dep, marca, funcia pot fi considerate ca atribute
simple.
Atributele refereniale sau de asociere, sunt folosite pentru a defini relaii
refereniale ntre obiecte. Ele sunt echivalente pointerilor din limbajele de programare sau
cheilor externe n cazul sistemelor relaionale, ns prezint i diferene importante, astfel:
- Contrar pointerilor, atributele refereniale sunt incoruptibile sau nealterabile, n
sensul c dac obiectul referit a fost ters din baza de date atunci atributul
referenial n mod automat va fi invalidat;
- Contrar cheilor externe, atributele refereniale nu sunt asocieri de valori vizibile
utilizatorilor. n exemplul nostru din figura 7.2., atributele Sef-dep: SALARIAT
i Loc-munc: DEPARTAMENT sunt atribute refereniale.
Atributele colecii fcnd parte din categoria atributelor complexe pot fi la rndul
lor grupate n seturi, liste i tablouri de valori.
Atributele colecii vor conine fie valori ale atributelor simple fie referine.
n exemplul din figura 7.2. Nr.-telefoane este un atribut de tip SET i va conine
multitudinea numerelor de telefon pe care le are un Departament, iar Angajai este un
atribut de tip LIST i va conine ca valori multitudinea identificatorilor OID ale
Salariailor ce lucreaz ntr-un anumit Departament.
128
altele care folosesc ca termen de baz conceptul de tip, dintre care amintim:
Versant, Ontos, Simula, O2 etc.
O astfel de situaie o ntlnim i la nivelul limbajelor de programare. De exemplu,
limbajul C++ folosete conceptul de clas, pe cnd SQL3 recurge la utilizarea
conceptului de tip. n acest fel definirea tipului n SQL3 este similar cu definirea
simplificat a clasei n C++.
Susintorii i realizatorii lui SQL3 folosesc conceptul de tip preferabil celui de
clas pe considerentul c cel din urm a fost suprancrcat pentru a se referi la un tip
sau la o colecie de instane de un anumit tip.
Din cele constatate se pare c exist o mare majoritate de autori care consider c
tipurile i clasele de obiecte sunt nrudite (legate) ns concepte distincte. Din aceast
categorie amintim civa [Michael Kifer, Pool Alzeni ]
ntr-o baz de date orientat obiect tipurile permit definirea proprietilor
obiectelor, att cele statice (descrierea structurii obiectelor) ct i dinamice (descrierea
comportamentului obiectelor ca metode aplicabile obiectelor). Referitor la partea static a
tipurilor, aceasta este construit utiliznd constructorii de tip i un set larg de tipuri de
date atomice, care includ tipurile de date clasice prezente n limbajele de programare,
cum ar fi: ntreg, real, boolean i iruri. Tipurile de date atomice includ i identificatorii
de obiecte (OID).
Constructorii de tipuri permit definirea tipurilor numii tipuri de date complexe,
care dicteaz structura instanelor (numite obiecte complexe) a unei baze de date obiect.
Reprezentarea unui tip se face conform unei expresii de forma:
[CNP: integer, Nume: String, Nr. telefon: string, copii: PERSOANA]
Aceast definire de tip precizeaz faptul c atributele: CNP accept valori de tip
integer, Nume accept valori din domeniul primitiv string (ir de caractere), Nr.
telefon trebuie s ia valori ce sunt set de iruri de caractere, iar valorile atributului
copii sunt seturi de obiecte ce aparine clasei PERSOANA. Totodat, se poate observa
c expresia anterioar descrie un tip (model) n care structuri complexe pot fi incluse n
interiorul altor structuri. De exemplu, valorile pentru Nr. telefon sunt seturi de valori
primitive, n timp ce valorile pentru copii sunt seturi de obiecte provenite din clasa
PERSOANA.
n mod intuitiv se poate deduce faptul c, tipul unui obiect este tocmai colecia
tipurilor componentelor acestuia. Constructorii tip permit definirea de tipuri numite tipuri
de date complexe, care dicteaz structura instanelor numite obiecte complexe a unei baze
de date obiect. Mai precis, o definire recursiv a tipurilor de date complexe
corespunztoare structurii obiectelor complexe, bazat pe constructori de tip, apare astfel:
- tipuri de baz (valori primitive): ntreg, ir, real i boolean; exemplu: B10XYZ
ar putea fi valoarea asociat atributului numrului de nmatriculare n circulaie a
autovehiculului descris astfel Nr. MAINA: STRING;
- tipuri referin: Numele claselor definite de utilizator, cum ar fi SALARIAI i
ECONIMITI, unde ECONOMITII refer SALARIAII, sau un alt exemplu ar
pute fi de forma unui OID al unui obiect.
- tipuri set i liste: Constructorii de tip SET i LISTE permit definirea de tipuri ale
cror instane sunt colecii de valori (posibil complexe) de acelai tip. Seturile
130
131
Faculti;
Secii:
Biblioteci:
string,
string,
record of (
Ora: string,
Strada: string,
Nr,: string)
set of (
record of (
Denumire: string
Nume decan: string
Ora: string))
set of (
record of (
Denumire: string
Nr - studeni: string))
set of (
record of (
Corp - cldire: string
Profil: string
Bibliotecari: set of (
record of (
Nume: string
Studii: string))]
132
133
CARTE
1,2
urmat de
urmeaz
mprumutat d
1,
gestioneaz
100,
gestionat de
ofer
BIBLIOTECAR
1,
are
1,*
se afl n
are
1,
frecventat de
angajat la
1,
aparine de
1,1
UNIVERSITATE
PROFESOR
este la 1,1
134
1,1
BIBLIOTECA
dispune de
1, are
1,
1,
dispune aparine de
de
1,1 apa
dispu
coordonate de
1,1
CATEDRA
FACULTATE
coordoneaz
1, orientate obiect
Baze de date
Universitate: record of
(Denumire: string,
Nume-rector: string,
Adresa: record of (
Ora: string,
Strada: string,
are 10,
Numr: integer),
set of1,*
( Faculti),
predatla
set of (Biblioteci))
Faculti:
Biblioteci:
Faculti: record of
specializeaz
1, frecve
CURS
(Denumire: string,
Nume-decan: string,
Ora: string
Secii: set of ( Secii))
(Denumire: string,
Nr - studeni: integer),
(corp cldire: string,
Profil: string,
Biblioteci: set of ( Bibliotecari))
(nume: string,
studii: string)
Secii: record of
Biblioteci: record of
Bibliotecari: record of
<OID1,
<OID2,
<OID3,
<OID4,
<OID5,
<OID6,
<OID7,
<OID8,
<OID9,
<OID10,
<OID11,
<OID12,
<OID13,
135
Curs
- Nume
- Data Natere
- Adres
- Telefon
+ schimb-adresa ( )
+ nregistrare la curs ( )
- Cod
- Denumire
- Sala
- Ora
+ nscrierecurs ( )
Ion: Student
-
Curs
Nume = Ion
Data Natere = 23-03-1981
Adres = Bd. Magheru nr.5
Telefon =4646306
Cod = 22
Denumire = Multimedia
Sala = 2314
Ora = 12.00
136
137
descriere / atribute
138
7.6.5. Metode
7.6.5.1. Conceptul de metod i aspecte de ordin general
Aa dup cum s-a mai precizat, multitudinea operaiilor pe care le poate efectua
un obiect sau se efectueaz asupra acelui obiect implementate ntr-un limbaj de
programare poart denumirea de metode.
O metod are o semntur, care descrie parametrii metodei i include toate
informaiile ce permit invocarea acesteia i o implementare, care conine codul metodei
(programul corespunztor metodei), elaborat ntr-un limbaj de programare. Semntura
metodei este o component a definirii clasei de obiecte.
n general, fiecare metod este asociat unei clase specifice de obiecte. n acest
caz, metoda are ca inut (target) o anume clas de obiecte. Exist i sisteme ce permit
definirea de metode multi-int (multi-target), care se aplic la un numr arbitrar de
obiecte fr a favoriza vreunul ntr-un anumit mod. n acest caz, definirea acestora este
dat n mod separat de definirea clasei. Totodat, precizm faptul c fiecare metod are
un numr arbitrar de parametrii de intrare i un singur parametru de ieire.
Metodele corespunztoare operaiilor pe care le implementeaz pot fi grupate
astfel:
- metode constructor (operaii de tip constructor), destinate a crea o nou instan,
un nou obiect al clasei. De exemplu, n cla sa Student putem avea metoda
(operaia) CREAZ-STUDENT care creeaz un nou obiect de tip student i i
iniiaz starea. De remarcat faptul c toate clasele trebuie s aib o metod
constructor;
- metode destructor, folosite pentru tergerea / abandonarea obiectelor i posibil
altor obiecte legate de acestea;
- metode de regsire / accesare folosite numai pentru preluarea valorilor asociate
atributelor obiectului. Exemplu: pentru clasa STUDENT, metoda
CALCULEAZ-VRSTA studentului plecnd de la data naterii sale. O astfel de
metod nu afecteaz starea obiectului;
- metode de actualizare, folosite pentru actualizarea strii obiectului. Exemplu,
metoda posibil schimb adresa din clasa student are menirea de a actualiza /
modifica valoarea atributului adresa.
Metodele mai pot fi clasificate i n funcie de specificul cerinelor de aplicaii,
astfel:
139
CO2
140
141
142
143
mesaj
proprieti
metode
7.6.7. Polimorfismul
Polimorfismul presupune faptul c un acelai mesaj poate fi adresat uneia sau mai
multor clase de obiecte primind rspunsuri diferite, cu semnificaii diferite. Exemplu,
presupunem drept mesaj comanda PRINT, din meniul de sistem. Ea va avea ca efect
imprimarea unei figuri geometrice dac se adreseaz unui fiier (prin analogie clase) de
figuri; va imprima un text preselectat dintr-un fiier de tip text etc.
144
Numeclasa
nume asociere
Numeclas
145
B
B
B
B
B
B
B
B
B
B
B
Exemple de asociere
salcurs
- corpcldire
elev
- clas / sal
sal
- orar
pagin web - pagin web Hotel
articol
- comand
juctor
- echip
atelier
- secie
angajat
- manager
ofer
- main
profesor
- student
pasager
- bilet
rezervare
- anulare
autoturism
- proprietar
O instan1,1
din clasa A are ntotdeauna n coresponden o instan din clasa B
B
O instan din clasa A poate avea 0 sau 1 instane n corespondena din clasa B (un
0,1
A
B
146
1,1
are
1,1
PRIMAR
Sugereaz faptul c o localitate poate avea unul i numai un singur primar, iar n
sens invers o persoan poate fi primar la una i numai o localitate.
Legtura de tipul unu la zero sau unu. Specificul acestui tip de legtur const
n faptul c o instan din clasa A poate sau nu corespunde unei instane din clasa B.
PERSOANA
1,
este nscris
0,1
PARTID
0,
are nscrii
0,
STUDENT
1,
sunt furnizate de
1,
FURNIZORI
Legtura de tipul muli la muli de mai sus exprim faptul c un material poate
fi livrat de unul sau mai multefurnizori iar un furnizor poate livra unul sau mai multe
materiale.
O multiplicitate de forma (2,5) semnific faptul c la realizarea legturii pot
participa minim 2 i maxim 5 instane dintr-o clas de obiecte. Cnd limita superioar a
intervalului este ,, nseamn c avem de-a face cu o limit superioar infinit.
147
O instan din clasa A poate avea 0 sau 1 instane n corespondena din clasa B (un
A
B
O instan din clasa A poate s aib 0 sau N corespondene de instane din B (unu la
A
B
O instan din clasa A poate avea 1 sau N corespondene de instane din B (unu la u
A
B
PERSOANE
0,1
0,1
so
soie
CSTORIE
Fig. 7.12. Exemplu de asociere unar
Asocierea binar, presupune existena a dou clase de obiecte de forma (figura
7.13):
148
SALARIAT
ANGAJAT IN
1,1
DEPARTAMENT
Nume clas 1
Nume
asociere
Nume clas 3
Banc
Client
Investiie
149
Firm
Mijloc de
producie
Proprietar
Utilaj
deine
1,n
Garanie
1,n
Banc
1,
1,
Banc
mprumut
Sum mprumut
Data mprumut
Data rambursare
Dobnda
Rambursare ( )
150
$ Nr.TotalFacturi
Ghieu
deservete
1,n
ordered
Persoan
COMPANIE
1,n
lucreazpentru
numeangajat
lucreazpentru
ANGAJAT
ANGAJAT
7.6.9. Motenirea
Motenirea este un mecanism ce d posibilitatea partajrii atributelor i operaiilor
utiliznd relaia de generalizare.Motenirea poate fi redat astfel: (figura 7.22.):
A
cu semnificaia c o clas B motenete de la o alt clas A proprietile i comportamentul
B
152
153
CLASA 1
Atribute comune
Operaii comune
Subclas
Subclas
generalizare
specializa
CLASA 2
CLASA 3
Atribute specifice
Atribute specifice
Operaii specifice
Operaii specifice
STUDENI
REI
STUDENI
CSIE
INFORMATIC
...
STUDENI
MANAGEMENT
CIBERNETIC
STATISTIC
154
1,
Uniti
administrative
Secii
Cldire
Departamente
Camere
Explozie
TRACTOR
ROI
MOTOR
...
CARBURATOR
CABINA
CILINDRII
...
Implozie
PISTOANE
Descompunere
155
157
D i a g r a m a c a z u r i l o r d e u til iz a r e
M O D E L A R E A S T R U C T U R II S T A T IC E
D ia g ra m a c la s e lo r
D i a g r a m a o b i e c te l o r
M O D E L A R E A D IN A M IC II
D ia g ra m a d e s e c v e n
D ia gra m a d e c o la b o ra re
D i a g r a m a d e s ta r e
D i a g r a m a d e a c ti v i ta te
IM P L E M E N T A R E A
D i a g r a m a c o m p o n e n te l o r
D ia g ra m a d e d e sf u ra re
D i a g r a m a p a c h e te l o r
158
Un model grafic nu poate descrie dect o anumit parte din comportament, dup
care alte detalii trebuie specificate n cuvinte. De multe ori ns, utilizarea cuvintelor
induce ambiguitate. Object Constraint Language (OCL) este standardul UML pentru
specificarea detaliilor suplimentare sau precizarea constrngerilor modelului. Dezvoltat n
cadrul diviziei de asigurri a IBM ca un limbaj de modelare a proceselor de afaceri, OCL
este un limbaj formal uor de utilizat. OCL este mai formal ca un limbaj natural, dar nu la
fel de precis ca un limbaj de programare, ceea ce nseamn c nu poate fi utilizat pentru a
descrie logica programului sau pentru controlul fluxurilor. Cum acesta este un limbaj
destinat expresiilor, frazele sale nu au efecte secundare, ele furnizeaz pur i simplu o
valoare fr a schimba starea sistemului.
O tehnic extrem de utilizat pentru a deslui funcionarea modelului orientat
obiect este analiza orientat pe responsabiliti cu fie CRC (CRC cards - Class
Responsibility and Collaborator cards). Cu ajutorul acestei tehnici clasele identificate n
cursul etapei de analiz sunt analizate i selectate pentru a obine doar clasele cu adevrat
necesare pentru modelarea sistemului.
Dei bazele de date orientate obiect devin din ce n ce mai populare, bazele de
date relaionale rmn modalitatea curent de stocare a datelor. Diagrama claselor poate fi
utilizat pentru a modela baza de date relaional pe care se bazeaz sistemul, cu toate
astea tehnicile tradiionale de proiectare a bazelor de date relaionale cuprind mai mult
informaie i sunt mult mai nimerite pentru astfel de sarcini. Aceast lucrare propune
modelul entitate asociere (Entity Relationship - ER) ca extensie a UML-ului pentru
proiectarea bazelor de date relaionale.
159
160
CONSULTARE
MERSUL TRENURILOR
Client
CONSULTARE
CONDIII
DE TARIFARE
PRELUARE
NUMERAR
Casier
161
162
163
164
Cele mai multe instane modelate cu UML sunt instane ale claselor (i se numesc
obiecte), dei exist i instane de componente, noduri, cazuri de utilizare, asocieri.
Instanele modelate se plaseaz n diagrame obiectuale.
Operaiile care se fac asupra unui obiect sunt definite n abstractizarea obiectului.
n funcie de motenire operaiile pot sau nu fi polimorfe.
Un obiect are o stare care reprezint proprietile obiectului (cele statice de
obicei) i valorile curente (dinamice) ale acestor proprieti. Aceste proprieti includ
atributele obiectului i prile lui agregate. Deci, starea unui obiect este dinamic.
UML definete dou stereotipuri standard care se aplic relaiilor de dependen
ntre obiecte i ntre clase:
- instanceOf - obiectul client este o instan a clasificatorului furnizor;
- instantiate - clasa client creeaz o instan a clasei furnizor.
Exist dou stereotipuri relativ la obiectele care se aplic mesaje i tranziii:
- become - clientul este acelai obiect cu furnizorul, dar la un moment ulterior i cu
valori, stri sau roluri diferite;
- copy - obiectul client este o carie exacta, dar independenta a obiectului furnizor.
UML definete restricii standard care se aplic obiectelor:
tranzient - o instan a unui rol este creat n timpul execuiei, dar e distrus naintea
terminrii execuiei.
Diagramele obiectuale conin obiecte i legturi. Ca i celelalte diagrame, poate
conine note i restricii. Mai pot conine anumite pachete sau subsisteme, fiecare fiind
folosite pentru a grupa elementele modelului.
Aceste diagrame se folosesc pentru modelarea static a unui sistem, ca diagramele
de clase, dar din perspectiva unor instane reale sau prototip.
166
167
168
169
170
Starea aciunii reprezint starea unei activiti n cadrul unei operaii. Descrie
descompunerea strii de aciune i tranziiile n cadrul unei anumite stri a obiectului, mai
mult dect de la o stare la alta. Descompunerea strii nu nseamn c obiectul i modific
starea. O aciune a strii reprezint mai degrab, prelucrarea intern care intervine n
timpul aciunii sau activitii surs. Procesarea intern, mai mult dect un eveniment
extern, declaneaz tranziia de la o stare a aciunii la alta. Diagrama de activitate este
utilizat pentru a arata aceast prelucrare intern.
S lum, drept exemplu, un automat. Cnd consumatorul introduce banii ntr-un
automat, activitatea de a da consumatorului un produs poate traversa mai multe aciuni de
stare. De exemplu, oferirea restului, lsarea produsului s cad n tav, avansarea liniei de
produse. Totui, nici una dintre aceste stri ale aciunii nu reprezint stare a obiectului
automatului (ateptarea seleciei, livrarea produsului).
Starea aciunii poate fi declanat de :
- Completarea unei operaii,
- Completarea unei stri, a unei aciuni anterioare sau
- Disponibilitatea unui obiect (starea necesar unei aciuni pentru a ncepe).
Activitatea const n etape procedurale sau operaii declanate mai degrab de
prelucrarea intern dect de evenimente externe. O stare specific unui obiect sau
completarea uneia din operaiile sale declaneaz o operaie, o aciune n cadrul unei stri
a aciunii este deseori ea nsi o operaie. Cnd se termin o aciune, poate face un obiect
disponibil pentru o aciune urmtoare. Cnd se ntmpl acest lucru, activitatea s-a mutat
ctre starea sa de aciune urmtoare.
171
172
173
174
175
176
proiectarea GUI
Interfata
grafica
Cerinte
Diagrama
claselor
M
d
Inginerie inversa
Posibila generare de cod
Diagrame de interactiune
Cazuri de
utilizare
Modele de
date relationale
Codificarea
Diagrama de
secventa
Diagrame de implementare
Diagrama de
stare
Diagrama de
colaborare
Diagrama de
stare
Diagrama de
stare
Posibila translatare d
Carduri CRC
Diagrama de
activitate
Test
Fig. 7.41: Interaciunea dintre diagramele UML, tehnica fielor CRC i modelul enti
177
Comand
1..*
descriere
foto
cost
data comenzii
adresa livrare
1..*
Produs
pltit
Factur
suma
data facturii
termen plat
cumparator
1
vnztor
1
Cont
balan
proprietar
Utilizator
Administrator
Comand articole
Administrare
<< extends >>
<< extends >>
Actualizare baz de
date
Diagrama cazurilor de utilizare arat care sunt toate cazurile de utilizare din sistem dar
nu indic modul n care acestea sunt realizate de ctre actori. Modelul cazurilor de utilizare
este completat de o descriere textual a fiecrui caz de utilizare, accentul punndu-se pe
interaciunea cu ali actori i mai puin pe modul n care este executat n cadrul sistemului.
Descrierea cazului de utilizare nregistrare la curs sub forma unei succesiuni de pai se face
ca n figura 7.45:
Metalimbaj unde substantivul face parte din modul de definire a cerinelor. Vom
utiliza substantive ca cerine sau sistem ca parte a limbajului de modelare i nu
pentru a reprezenta obiecte din domeniul problemei.
Extern sistemului atunci cnd substantivul este relevant pentru a descrie funcionarea
sistemului, dar nu se refer la ceva din interiorul su.
Atribut atunci cnd este clar c substantivul desemneaz o realitate simpl, fr un
comportament interesant, care este de fapt un atribut al altei clase. Numele unui
client ar putea fi un astfel de exemplu.
REPERE
ACHIZIIONATE
NECESAR DE
MATERII PRIME
PLAN APROVIZIONARE
DE MATERII PRIME
PROSPECTARE
PIAA
PROSPECTARE
PIAA
CONTRACTARE
CONTRACTARE
DERULARE
CONTRACTARE
DERULARE
CONTRACTARE
STOCURI
PLANUL DE
PRODUSE
ELABORAREA PL. I GRAFICULUI DE DESFACERE
DESF.
CONTRACTE
COMENZI
NOM. PROD.
CAP. DE
PROD.
ELABOR. PLAN
PROD.
PLANUL DE
PROD..
GRAF.DE APROV.
NECESAR
REPERE
APROV.
DETER.
NECES. DE MAT. PRIME PTR. REPERE DIN PROD.PLAN
PROPRIE
FIA PROD.
SIST. NECESARULUI DE MATERII PRIME
FIA TEHNOLOG.
PL. PROD.
SIST. STOC
EXIST.
SIST. FRNIZORILOR
POTENIALI
FURNIZORI
LANSAREA CERERILOR DE OFERTE
--------
CERERI DE OFERTE
--------
OFERTE
SIST. COMPARATIV
A OFERTELOR
AVIZ DE EXPED.
CONTRACTAREA
I PERFECTAREA CONTRACT
CONTRACTE FERME
DERULAREA CONTRACTELOR
/ LANSARE COMENZI
COMENZI
NIR
STOCURI
FACTURA
RULAJE INTRRI
FIA LIMITA
STOCURI
DAREA N CONSUM
BON DE CONSUM
RULAJE IEIRI
furnizori poteniali i crora le vom lansa cereri de ofert cu att vom avea anse
sporite de a realiza o tranzacie comercial mai fericit (mai avantajoas).
Alegerea ofertei optime fcnd apel la un model de alegere bazat pe teoria deciziilor
multicriteriale, cum ar fi metoda Von Neumann-Morgenstern, sau o alta dintre cele
cca. 20.
Se va obine Situaia comparativ a ofertelor (Matricea decizional), care nu nseamn
altceva dect un clasament al ofertelor realizat pe baza punctajului global (criteriu
global) acordat fiecrei oferte, lund n considerare o serie de criterii cu ponderi de
importan difereniate. Procedura poate fi extins cu simularea tratativelor
comerciale, modificnd valorile anumitor parametrii din cadrul Materiei decizionale
ca urmare a unor faciliti scontate a fi dobndite pe parcursul desfurrii tratativelor
comerciale. Cu modificrile astfel efectuate se ntocmete noul clasament al ofertelor.
Vor fi reinute primele dou sau trei oferte mai bine clasate, pentru care se vor purta
tratative comerciale cu furnizorii. n funcie de rezultatele obinute n urma
negocierilor se va alege oferta optim.
Contractarea i perfectarea contractului. Pentru oferta optim se va elabora contractul
care apoi va fi perfectat de ctre factorii de decizie ai unitilor beneficiare i
furnizoare.
Derularea contractelor/lansarea comenzilor de aprovizionare n concordan cu
Planul de producie i Graficul de aprovizionare.
Recepia materiilor prime pe baza Facturii Avizului de expediie i ntocmirea NIR.
NIR-ul va constitui documentul justificativ pe baza cruia se va opera, pe de o parte
asupra stocurilor de materii prime iar, pe de alt parte, se va consemna intrarea de
materii prime n contabilitate Rulaje intrri.
Darea n consum a materiilor prime pe baza Fiei limit de consum sau Bonurilor de
consum. Totodat se va opera n Rulajul ieirilor i asupra Stocurilor cu diminuarea
acestora corespunztor cantitilor eliberate.
Observaie. n mod asemntor se va proceda i pentru achiziionarea reperelor.
Contractare
manag.
benef.
manag.
furnizor
dir. ec.
benef.
jurist
benef.
Funcionar financiar
Funcionar aprovizionare
Funcionar contabilitate
dir. ec.
furnizor
jurist.
furnizor
1+
1+
1+
Fig. 7.54. Diagrama claselor de obiecte Modelul static
FURNIZOR
- Den-furnizor:
string
- Adresa-furnizor:
string
- cod-fiscal:
integer
- Den-banc:
string
- cont-banc:
string
- telefon:
integer
- fax:
integer
MATERIAL
- cod-mat:
number
- den-mat:
string
- UM:
string
- pret mediu
integer
+ creeaz ( )
+ actualizeaz ( )
+ calc. pre. mediu ( )
+ tergere ( )
+ vizualizare ( )
+ creeaz ( )
+ actualizeaz ( )
+ tergere ( )
+ vizualizare ( )
STOC
- cod mat:
- cod gest:
- stoc iniial:
- rata-stoc-iniial:
- stoc-normat:
- stoc-siguran:
- stoc-exist:
GESTIUNE
- den-gestiune:
string
- cod-gestiune:
integer
- nume-gestionar: string
- garan-gest:
number
integer
integer
integer
integer
integer
integer
integer
+ creare gest ( )
+ actualizare ( )
+ vizualizare ( )
+ creeaz ( )
+ calc. stoc. ex. ( )
+ calc. imobilizri ( )
+ calc-necesar-aproviz. ( )
+ actualizare
NIR
- nr. NIR:
- data NIR:
- cant. recep.:
BON CONSUM
- Nr. bon:
number
- data bon:
date
- cant. eliberat: integer
number
date
integer
+ creeaz ( )
+ vizualizeaz ( )
+ creare ( )
+ adugare ( )
+ vizualizare ( )
197
FACTURA
- Nr. fact.:
number
- Data fact.:
Date
- Explicaie:
text
- Suma facturat: number
SECIE PROD.
- den. secie:
string
- ef secie:
string
+ creare ( )
+ adugare ( )
+ tergere ( )
+ modificare ( )
+ valoare TVA ( )
+ valoare Factur
COMAND
nr. comand:
number
data:
date
den-furnizor:
string
cod-fiscal:
number
adresa:
string
den-banc:
string
cont-banc:
string
telefon:
number
termen-livrare:
date
destinaia-livr.:
string
COMANDA - MATERIAL
cod mat.:
number
nr. comand:
number
cant. comand:
integer
cant.-livrat:
integer
ternem-livrare:
integer
+ creare ( )
+ modificare ( )
+ adugare ( )
+ creare ( )
+ modificare ( )
+ adugare ( )
FACTURA MAT.
nr. factur:
number
cod-mat:
number
cant.-fact.:
integer
pre-aprov.:
integer
cota-tva:
integer
+ creare ( )
Fig. 7.55. Clasele de obiecte modelarea claselor de obiecte
198
199