Documente Academic
Documente Profesional
Documente Cultură
MANUAL PENTRU ID
OBIECTIVE:
CONŢINUT:
1. SISTEMUL INFORMATIC AL ORGANIZAŢIEI
1.1 Sistem informaţional
1.2 Sistem informatic
1.3 Proiectarea sistemelor informatice
1.4 Ciclul de viaţă al unui sistem informatic
1.5 Metode de proiectare a sistemelor informatice
2
Dificultăţile cognitive apărute în studiul obiectelor complexe din sfera cunoaşterii
ştiinţifice moderne, au determinat în timp constituirea teoriei generale a sistemelor,
disciplină ştiinţifică care elaborează principiile metodologice de investigare a sistemelor,
care asigură o bază formal metodologică unitară de cercetare.
1.1 Sistem informaţional
În cadrul teoriei sistemelor, un loc important îl ocupă sistemele deschise, sisteme
ce pot realiza o stare de echilibru dinamic cu mediul exterior. Principalele caracteristici
structurale rămân constante, în timp ce sistemul realizează un schimb continuu de
informaţii cu mediul. Sistemele economice sunt considerate cazuri particulare ale
sistemelor deschise.
Privită ca sistem, o firmă poate fi structurată la rândul ei în trei mari subsisteme:
subsistemul operaţional (condus), subsistemul decizional (de conducere) şi subsistemul
informaţional (de legătură). Fiecare din aceste subsisteme poate fi considerat ca un sistem
de sine stătător ( fig. 1.1.a).
SISTEM DECIZIONAL
Informaţii Decizii
SISTEM INFORMAŢIONAL MEDIUL
EXTERIOR
Date Decizii
SISTEM OPERAŢIONAL
Sistemul informaţional este fig. reprezentat
1.1a de totalitatea metodelor, procedurilor şi
mijloacelor folosite în procesul informaţional. El poate fi definit ca un ansamblu
organizat şi integrat de operaţii00 de culegere, transmitere, prelucrare, sistematizare,
analiză şi păstrare, difuzare şi valorificare a informaţiilor.
Permiţând actualizarea datelor de intrare şi legarea informaţiilor din toate
domeniile de activitate, sistemul informaţional trebuie să fie capabil să furnizeze rapoarte
periodice privind desfăşurarea activităţii, dar şi rapoarte la cerere, determinate de
semnalarea unor situaţii neobişnuite. Ele fundamentează activitatea de analiză şi
prognoză, permit luarea rapidă şi eficientă a măsurilor ce se impun.
Rolul determinant al informaţiilor în procesul conducerii a impus definirea unei
noi noţiuni, decizia, ca fiind o informaţie de comandă pentru sistemul operaţional.
Eficienţa deciziilor luate depinde de calitatea informaţiilor furnizate. Împreună cu datele
ce exprimă înregistrarea fenomenelor şi proceselor la momentul producerii lor,
informaţiile şi deciziile realizează legătura între sistemul operaţional şi cel de conducere.
Scopul principal al sistemului informaţional este de a furniza fiecărui utilizator
toate informaţiile necesare. Preluând datele de la sistemul operaţional, sistemul
informaţional asigură pe de o parte informaţiile necesare fundamentării deciziilor,
3
primeşte şi transmite deciziile formulate de sistemul de conducere, iar pe de altă parte
asigură legătura dintre mediul intern al firmei şi cel exterior ei.
Noua economie, specifică societăţii informaţionale, transformă informaţia digitală
în valoare economică şi socială, creează noi industrii modificându-le pe cele existente,
afectând profund viaţa cetăţenilor. Informaţiile traduse într-un limbaj universal
(computerizat) sunt privite ca o materie primă strategică, fundamentală dezvoltării
economice şi sociale. Cuplată cu reţelele de calculatoare, informaţia digitizată circulă în
timp real. Schimbă procesele de producţie, metodele de cercetare, organizarea muncii şi
obiceiurile consumatorilor.
În aceste condiţii, locul sistemul informaţional tradiţional este preluat de reţelele
Intranet. Intranet-ul este o reţea locală cu arhitectură bazată pe tehnologia Internet,
care permite comunicarea într-un grup închis de utilizatori care se raportează şi
construiesc o bază comună de informaţii. Schimbul de informaţii cu mediul exterior este
preluat de Extranet, o aplicaţie specială care permite altor organizaţii şi persoane
accesul la informaţia difuzată pe Intranet. Cu aceste consideraţii, subsistemele dintr-o
firmă pot fi reprezentate ca în figura 1.b.
SISTEM DECIZIONAL
Informaţii Decizii
INTRANET EXTRANET
Date Decizii
SISTEM OPERAŢIONAL
fig. 1.1b
4
ca sferă de cuprindere. Mai mult, dacă se include în sfera sistemul informatic activitatea
de conducere a proceselor tehnologice cu ajutorul calculatoarelor de proces, sfera
sistemelor informatice depăşeşte sfera sistemelor informaţionale.
În activitatea economică, sistemele informatice privesc obţinerea informaţiilor pe
baza unor date de intrare şi a unor normative, procedeele de prelucrare fiind considerate
elemente intercondiţionate şi inseparabile ale procesului de conducere. Sunt sisteme
informatice integrate, caracterizate prin aplicarea principiului introducerii unice a
datelor şi prelucrării multiple a acestora în concordanţă cu cerinţele informaţionale
specifice fiecărui utilizator.
Utilizate în managementul firmei, sistemele informatice integrate (fig. 1.2) au la
bază sistemele tranzacţionale, concepute să eficientizeze şi să automatizeze prelucrarea,
să păstreze înregistrările şi să raporteze tranzacţiile. Acestea sunt în permanentă
interdependenţă cu sistemele de birotică şi comunicaţii, utilizate pentru automatizarea
muncii de birou. Împreună contribuie la definirea depozitelor de date, structuri pe care se
bazează sistemele informatice de analiză.
IN
SISTEME DE ANALIZĂ TE
R
DEPOZITE DE N
DATE ET
SISTEME
IN
TR
DE A
N
SISTEME TRANZACŢIONALE ET
BIROTICĂ
BAZE DE DATE BAZE DE DATE E
X
ŞI TR
A
fig. 1.2 N
1.2.1 Structura generală a unui sistem informatic COMUNICAŢI ET
I
Evidenţierea structurii generale a unui sistem informatic se obţine pornind de la
funcţia acestuia de a prelucra datele în vederea obţinerii informaţiilor necesare unei
desfăşurări normale a activităţilor într-o firmă. Principalele componente sunt: intrări,
prelucrări, ieşiri.
Intrările sunt reprezentate de mulţimea datelor încărcate, gestionate şi prelucrate
în cadrul sistemului.
Prelucrările reprezintă un ansamblu omogen de proceduri automate cu funcţie
de:
5
• creare şi actualizare a bazei de date;
• consultare a bazei de date;
• reorganizare a bazei de date;
• salvare/restaurare a bazei de date.
Ieşirile sistemului informatic sunt reprezentate de rezultatele prelucrărilor
desfăşurate. Ieşirile pot fi obţinute în urma unor operaţii de transfer a datelor, sau pot fi
obţinute în urma operaţiilor de calcul ce au la bază algoritmi prestabiliţi.
În funcţie de conţinutul şi forma lor de reprezentare, ieşirile pot fi clasificate
astfel:
• indicatori sintetici, regăsiţi în tablourile de bord oferite managerilor (cifra de
afaceri, profitul brut, profitul net).
• rapoarte, situaţii ce regrupează diferiţi indicatori sintetici sau analitici (balanţa
de verificare, bilanţul contabil, statul de plată).
• grafice, ce permit reprezentarea într-o formă sugestivă a dinamicii indicatorilor
sintetici şi analitici, a modificărilor de structură.
• foi de calcul electronice, generate cu ajutorul procesoarelor de tabele (Excel).
Rezultatul obţinut poate fi furnizat direct utilizatorilor, sau poate fi obiectul
importului/exportului către sisteme de gestiune a bazelor de date.
• ieşiri destinate altor sisteme, reprezentate de fişiere transmise on-line sau off-
line în vederea prelucrărilor ulterioare în cadrul altor sisteme informatice.
6
1.3.1 Principiile proiectării şi realizării sistemelor informaţionale
Principiile ce trebuie respectate în activitatea de proiectare şi realizare a
sistemelor informatice sunt [SV03]:
1• Abordarea globală a problemei de rezolvat.
2• Utilizarea unei metodologii unitare în proiectarea şi realizarea sistemului
informatic
3• Aplicarea celor mai moderne soluţii şi tehnici de proiectare şi realizare a
sistemului informatic
4• Structurarea sistemului informatic independent de structura organizatorică a
firmei.
5• Participarea nemijlocită a viitorului beneficiar la activităţile de analiză, proiectare
şi implementare a sistemului informatic.
6• Respectarea cadrului legislativ.
7• Realizarea unor sisteme informatice în concordanţă cu resursele disponibile la
utilizator.
8• Anticiparea şi controlarea permanentă a schimbărilor survenite.
9• Explicitarea şi documentarea compromisurilor inerente în dezvoltarea de
software.
Conform acestor principii, se defineşte întâi o soluţie globală de informatizare, se
stabileşte structura flexibilă a sistemului şi se precizează priorităţile în realizarea
componentelor sale. Asigurând implicarea benefi-ciarului pe tot parcursul realizării
sistemului informatic, se iau în calcul particularităţile privitoare la modul de organizare a
activităţii, cadrul legislativ general şi reglementările interne aflate în vigoare.
7
Practic, strategia descendentă constă în:
• identificarea entităţilor, componente relevante, interesante prin structura şi
comportarea lor; entităţile trebuie să aibă cel puţin o realizare şi cel puţin un atribut;
• identificarea asocierilor dintre entităţi;
• identificarea asocierilor de tipul generalizare/specializare şi parte/întreg. După
realizarea generalizărilor/specializărilor se reactualizează lista entităţilor care urmează să
fie incluse în modelul datelor. Specializarea este necesară când o serie de asocieri între
entităţi au sens doar la nivelul unei specializări şi când nu toate atributele sunt valabile
pentru toate realizările de entitate. Generalizarea se impune când entităţi diferite prezintă
atribute similare sau asocieri analoage cu alte entităţi.
• identificarea proprietăţilor de entitate şi stabilirea cheilor;
• identificarea proprietăţilor de asociere;
• construirea modelului;
• verificarea modelului.
Strategia ascendente (bottom-up) presupune proiectarea şi realizarea
componentelor viitorului sistem informatic, fără a avea o imagine de ansamblu asupra
întregului sistem informaţional. Se tratează separat fiecare componentă a sistemului,
stabilirea corelaţiilor între componente şi integrarea lor în sistemul privit ca un tot
unitar urmând a se face ulterior. Lipsa unei strategii unitare aduce după sine riscul unui
grad redus de integrare a componentelor în sistem.
Practic, strategia ascendentă constă în:
• identificarea proprietăţilor ;
• c0onstruirea grafului dependenţelor funcţionale; În cadrul dependen-ţelor
funcţionale, arcele terminale obţinute plecând de la proprietăţile elementare definesc
entităţile. Originile arcelor constituie identificatorii de entitate. Arcele care rămân pun în
evidenţă asocierile. Proprietăţile nerezolvate ce rămân sunt atribuite asocierilor.
Proprietăţile izolate vor defini entităţile izolate.
• determinarea structurilor teoretice de acces la date;
• construirea modelului;
• verificarea modelului.
Strategia mixtă reprezintă o combinare a strategiei descendente cu strategia
ascendentă, împrumutând de la fiecare avantajele. Practic se foloseşte strategia
descendentă pentru definirea sistemului ca un tot unitar şi a componentelor lui, urmându-
se strategia ascendentă în proiectarea şi realizarea fiecărei componente.
8
1.4 Ciclul de viaţă al unui sistem informatic
1.4.1 Caracteristici
Definirea unui sistem informatic este o decizie determinată de avan-tajele
tehnologiilor informaţionale aduse mediului de afaceri. Împărţirea în subsisteme,
specificarea unor priorităţi sau schimbarea condiţiilor concrete de lucru, se regăsesc atât
în cerinţele legate de funcţiile sistemului (fundamentarea deciziilor imediate, urmărirea
producţiei) cât şi în cele nefuncţionale, ce referă proprietăţile calitative ale
sistemului( flexibilitate, portabilitate). Gruparea activităţilor pe etape, faze şi activităţi
specifice se face în funcţie de complexitatea modelului real, de cerinţele utilizatorului sau
de abilităţile echipei de realizare a sistemului informatic.
În „Proiectarea obiectuală a sistemelor informatice” ([ZR02]) autorii definesc ciclul de
viaţă al unui sistem informatic ca fiind perioada de timp cuprinsă între momentul
iniţierii acestuia şi momentul scoaterii din funcţiune. Această perioadă este împărţită în
două etape fundamentale: dezvoltarea şi exploatarea.
1. Dezvoltarea include perioada de timp necesară obţinerii sistemului, trecerea la
realizarea planului însemnând începutul perioadei de dezvoltare.
În timp ce proiectarea informaţională vizează modul de funcţionare a sistemului
din punctul de vedere al utilizatorilor, modul în care se va derula activitatea la intrarea în
funcţiune a sistemului, proiectarea informatică vizează arhitectura logică şi fizică,
mediul de dezvoltare sau de programare, programe, baze de date.
2. Exploatarea cuprinde perioada de timp în care sistemul este folosit în mod
curent.
În „ Sisteme informatice de gestiune”([SV03]), autoarea afirmă că ciclul de viaţă al
unui sistem informatic este perioada de timp cuprinsă între decizia de realizare a unui
nou sistem informatic mai performant şi decizia de înlocuire a sistemului existent cu unul
nou. Pentru a asigura conceperea, realizarea, implementarea, exploatarea şi întreţinerea
sistemului sunt parcurse mai multe etape descompuse la rândul lor în faze. Acestea sunt:
1. Definirea cerinţelor utilizatorilor, când se precizează obiectivele noului sistem,
criteriile de eficienţă, securitatea, performanţele.
2. Specificaţia cerinţelor sistemului, prezentarea detaliată a rezultatelor pe care
sistemul informatic le va asigura.
3. Specificaţia cerinţelor software, luând în calcul restricţiile sub care
funcţionalitatea sistemului urmează să fie asigurată.
4. Proiectarea generală, când se defineşte soluţia cadru, conceptuală.
5. Proiectarea de detaliu, fază în care se rafinează soluţia cadru şi se defineşte
soluţia finală.
6. Realizarea componentelor sistemului informatic rezultate din elaborarea
arhitecturii.
9
7. Testarea componentelor, când se verifică modul de funcţionare, modul de
îndeplinire a cerinţelor şi fiabilitatea în functionare.
8. Integrarea componentelor şi testarea finală a sistemului, fază ce presupune
realizarea produsului final şi verificarea funcţionalităţii lui.
9. Implementarea şi testarea produsului la beneficiar.
10. Exploatarea şi întreţinerea sistemului.
11. Dezvoltarea sistemului, ce implică realizarea şi integrarea de noi componente.
Etapele ciclului de viaţă se pot derula strict secvenţial, sau pot determina reveniri
la etapa anterioară (chiar la prima etapă), în funcţie de rezultatul validărilor intermediare.
În funcţie de complexitatea sistemelor reale, schimbările din domeniul tehnologiei
informaţiilor se reflectă fie în schimbarea etapelor, fie în modificarea opticii de
parcurgere a lor.
Ordinea şi felul în care se parcurg etapele se regăseşte în literatura de specialitate
sub numele de modele ale ciclului de viaţă al dezvoltării sistemelor.
10
Modelul spirală a fost elaborat de B. W. Boehm, în 1988. Dezvoltarea sistemului
se face în spirală. Pentru fiecare nivel se face analiza riscului şi se construiesc
prototipuri succesive. La fiecare iteraţie sunt reluate fazele de dezvoltare, ce includ
simularea şi testarea prototipului, determinarea şi validarea cerinţelor rezultate din
testare, planificarea ciclului următor, regăsindu-se modelul cascadă. După efectuarea
studiilor de fezabilitate, sistemul se realizează, se integrează şi se instalează în varianta
modelului cascadă.
Condiţionat de profesionalismul echipei de dezvoltare, avantajul acestui model
constă în faptul că oferă posibilitatea evaluării riscurilor în diferite momente.
1.5.1 Clasificări
Într-o primă clasificare, metodele de proiectare pot fi grupate în metode hard şi
metode soft.
Metodele hard pun accentul pe abordarea ştiinţifică şi consideră că realitatea,
independentă de oameni, poate fi modelată, înţeleasă şi transformată în funcţie de
dorinţele acestora. Consideră că toate problemele pot fi formalizate pe baze matematico-
logice şi acordă proiritate datelor, funcţiilor şi proceselor.
Metodele soft, dintre care cea mai cunoscută este metoda SSM (Soft System
Methodology) introdusă de P Checkland în 1981, încearcă să rezolve probleme legate de
aspectele sociale ale dezvoltării sistemelor, de cerinţele utilizatorilor. Din punctul lor de
vedere, analistul se confruntă cu situaţii problemă şi nu cu probleme clar definite şi gata
de rezolvare. Măsurile luate într-o situaţie sunt rezultatul schimbării organizaţionale,
analistul de sistem fiind văzut nu ca un expert în domeniu ci ca un agent al schimbării,
capabil să-i stimuleze pe ceilalţi în obţinerea unor noi percepţii asupra contextului
problemei.
O altă clasificare, recunoscută mai ales în literatura franceză, împarte metodele în
funcţie de modalitatea în care este perceput sistemul. Există astfel metode de analiză şi
descompunere ierarhice (funcţionale), metode de analiză şi reprezentare orientate-
sistemic şi metode de analiză şi proiectare orientate-obiect.
11
Metodele ierarhice iau în calcul fiecare funcţie şi subfuncţie a sistemului. Se defineşte o
ierarhie până se ajunge la componente suficient de mici astfel încât să fie programate cu
uşurinţă (fig.2.2).
F1
fig. 2.2
12
Cele mai utilizate metode sunt: Object Modeling Technologie (OMT), Object
Oriented Design (OOD). Succesul utilizării metodelor orientate obiect a determinat
definirea unui limbaj standard de modelare, Unified Modeling Language.
Probleme şi soluţii
1 Care din afirmaţiile următoare este adevărată ?
a) Sistemul informaţional este reprezentat de totalitatea metodelor, procedurilor şi
mijloacelor folosite în procesul informaţional.
b) Sistemul informatic se defineşte ca un ansamblu organizat şi integrat de operaţii de
culegere, transmitere, prelucrare, sistematizare, analiză şi păstrare,difuzare şi valorificare
a informaţiilor.
c) Decizia este o informaţie de comandă pentru sistemul de conducere.
13
5 Care din afirmaţiile următoare nu este adevărată ?
a) Strategia ascendentă presupune proiectarea şi realizarea componentelor viitorului
sistem informaţional, fără a avea o imagine de ansamblu asupra întregului sistem
informaţional.
b) În cadrul strategiilor ascendente se tratează separat fiecare componentă a sistemului,
stabilirea corelaţiilor între componente şi integrarea lor în sistemul privit ca un tot unitar
urmând a se face ulterior.
c) Strategia descendentă presupune proiectarea şi realizarea componentelor viitorului
sistem informaţional, fără a avea o imagine de ansamblu asupra întregului sistem
informaţional.
14
c) Dezavantajele metodelor orientate-obiect rezultă din existenţa deficienţelor în
modelarea prelucrărilor.
Rezolvare
1-a 2-b 3-c 4-b 5-c 6-c 7-a 8-a 9-b 10-c
15
UNITATEA DE ÎNVĂŢARE 2
METODE SISTEMICE
OBIECTIVE:
CONŢINUT:
2. METODE SISTEMICE
2.1 Nivele de descriere
2.2 Modele pentru date şi prelucrări
2.3 Modelarea conceptuală şi organizaţională a datelor
2.4 Modelarea logică şi fizică a datelor
2.5 Modelarea Conceptuală a Prelucrărilor
2.6 Modelul Organizaţional al Prelucrărilor
2.7 Descrierea logică şi operaţională a prelucrărilor
2. METODE SISTEMICE
Dintre metodele sistemice, cea mai reprezentativă este metoda Merise, aplicată
pentru prima dată în 1979 în Franţa. Perfecţionată continuu, este utilizată şi astăzi cu
prioritate în informatica de gestiune. Este motivul pentru care, în lucrarea de faţă,
principalele particularităţi ale metodelor sistemice sunt prezentate prin prisma acestei
metode.
16
Nivelul conceptual urmăreşte obţinerea unei reprezentări fidele a realităţii, făcând
abstracţie de restricţiile informatice sau organizatorice. Surprinde cu ajutorul unor
abstracţii aspectul static şi dinamica în timp a activităţii desfăşurate.
Nivelul organizaţional leagă funcţionalitatea sistemului de organizarea firmei şi
de postul de lucru. Executate în timp real sau nu, procedurile manipulează date din
diferite compartimente funcţionale. La acest nivel, procedurile sunt descompuse în faze
executate pe posturi de lucru.
Nivelul logic vizează alegerea soluţiei informatice pentru culegerea datelor şi
furnizarea informaţiei. Procedurile sunt detaliate la nivel de module, a căror descriere
logică implică şi datele incluse într-un sistem relaţional.
Nivelul fizic este nivelul concret la care sunt definite mijloacele tehnice de
realizare efectivă a sistemului.
Cele patru nivele presupun construirea unor modele separate pentru date şi
prelucrări, constituind împreună ciclul de abstractizare al sistemului informatic.
17
funcţionale. Prezintă procedurile descompuse în faze şi sarcini corespunzătoare posturilor
de lucru.
Modelele logice fixează o soluţie direct implementabilă, stabilesc realizarea
efectivă a sistemului informatic cu o bază de date relatională şi un sistem de gestiune a
bazelor de date corespunzător, sau cu ajutorul fişierelor de date exploatate cu limbaje
procedurale. În cazul informaticii de gestiune, demersul metodologic conduce la
implementare cu ajutorul bazelor de date relaţionale, datele fiind înmagazinate în
structuri stabile (tabele) şi manipulate cu un Sistem de Gestiune a Bazelor de Date
performant.
Modelul Logic al Datelor (MLD) se obţine conform standardelor Modelului
Relaţional al Datelor.
În cazul prelucrărilor, pentru că nu există o normalizare a descrierii logice a
prelucrărilor, nu există un Modelul Logic al Prelucrărilor ci o Descriere Logică a
Prelucrărilor (DLP).
La nivel fizic sunt specificate efectiv modalităţile de realizare a soluţiei
informatice alese. Ne existând un standard pentru definirea modelelor fizice de date şi
prelucrări, acest nivel este reflectat în Descrierea Fizică a Datelor (DFD) şi respectiv în
Descrierea Fizică a Prelucrărilor (DFP).
Descrierea fizică a datelor este legată de sistemul de gestiune al bazelor de date
ales pentru crearea bazei de date. Evidenţiază modul în care datele vor fi stocate şi
accesate la nivelul memoriei externe, sistemele care asigură securitatea păstrării şi
regăsirii datelor.
Descrierea fizică a prelucrărilor presupune realizarea soluţiei stabilite în cadrul
modelului logic al prelucrărilor, apelând la un anumit sistem de gestiune a bazelor de
date.
18
detaliază conform structurii organizatorice. Se obţine astfel Modelul Organizaţional al
Datelor.
La ora actuală, când majoritate firmelor beneficiază de tehnică de calcul
performantă, de reţele Intranet, construirea modelului organizaţional al datelor
presupune:
repartizarea datelor pe compartimente funcţionale;
asigurarea vizibilităţii datelor pe diferite nivele organizatorice;
stabilirea drepturilor de acces la date conform unui protocol determinat de arhitectura
sau de topologia reţelei existente;
stabilirea volumului de date active, a volumului şi a condiţiilor de arhivare pentru datele
pasive.
2.3.1.2 Caracteristici
entitate
ENTITATEA (E) este o reprezentare conceptuală a unui obiect sau
fenomen din sistemul real. Are existenţă proprie şi este conformă cu regulile
de gestiune ale firmei.
În activitatea de modelare nu interesează obiectele individuale, ci clasele în care
ele pot fi grupate în funcţie de caracteristici comune. Existenţa unei entităţi este
subordonată apartenenţei la o clasă, numele clasei fiind folosit pentru a referi elementele
unei clase. Componentele individuale sunt numite instanţe (realizări) ale claselor. Între
instanţă şi clasa sa se stabileşte astfel, prin grupul verbal ,,este membru în”, o relaţie.
Exemple:
FURNIZORI, este o clasă ce defineşte mulţimea persoanelor fizice/juridice de la
care s-a cumpărat sau s-a comandat cel puţin un articol.
“4011-Remex” este membru în clasa ,, FURNIZOR”
CLIENŢI, este o clasă ce defineşte mulţimea persoanelor fizice/juridice care au
comandat sau au cumpărat cel puţin un produs.
19
“4112-Amis” este membru în clasa “CLIENŢI ”
PRODUSE, este o clasă ce defineşte mulţimea bunurilor materiale cuprinse în
catalogul de vânzări al firmei.
“ calculator” este membru în clasa “PRODUSE”
Prin abuz de limbaj, în multe din lucrările ce vizează modelarea conceptuală se
foloseşte termenul de entitate în locul celui de clasă de entităţi. Convenim ca şi în
lucrarea de faţă să acceptăm că o entitate este o clasă generică de obiecte având
aceleaşi caracteristici pentru un modelator plasat într-un context dat. În toate aceste
situaţii, entitatea este reprezentată cu ajutorul unui dreptunghi în care este scris numele
entităţii şi proprietăţile ei.
asociere
ASOCIEREA (A) între entităţi exprimă o legătură existentă sau posibilă între obiecte
individuale. Clasele de asocieri sunt asocieri între clasele de obiecte individuale.
Respectând convenţia stabilită la definirea entităţii, vom spune că o asociere
este o clasă generică de legături recunoscute sau posibile între obiecte aparţinând
entităţilor din sistem.
În cadrul modelului conceptual al datelor, asocierea este reprezentată printr-o
elipsă care face legătura între entităţile participante la asociere.
Exemple:
atribut
ATRIBUTUL defineşte o proprietate distinctă a unei entităţi sau a unei
asocieri. Un atribut este considerat o mulţime de valori posibile.
Identitatea unei entităţi este exprimată printr-un atribut sau un grup
minimal de atribute care permit identificarea unică a realizărilor ei. Altfel
spus, fiecare entitate posedă un identificator, sau o cheie a entităţii. Pentru
o entitate pot exista mai multe atribute care să servească drept cheie. Acestea
se numesc chei candidate. Selectarea se face în funcţie de necesităţile
impuse de context, cheia principală putând fi formată din unul sau mai multe
atribute. Atributele cheie se marchează prin subliniere sau printr-o săgeată
spre entitatea căreia îi aparţin şi ale căror instanţe le identifică.
Celelalte atribute, care exprimă caracteristicile entităţii sunt şi ele
specificate în cadrul entităţii. Fiecare realizare a unei entităţi posedă valori
proprii pentru atribute.
Exemplu:
20
Pentru entitatea Furnizor, codul fiscal sau denumirea pot fi considerate
chei candidate. De cele mai multe ori, codul fiscal este ales cheie primară.
Entitatea FURNIZORI are ca atribute: CodFurnizor, Nume, Localitate; se reprezintă
astfel:
FURNIZORI
CodFurnizor
Nume
Localitate
O asociere poate avea atribute proprii. Atributele asocierii se specifică în elipsa ce
cuprinde numele asocierii (CantitateCumpărată).
21
PLĂŢI). Acestea din urmă, pe lângă atributele ce le identifică unic, posedă un atribut
care specifică data producerii lor (DataComenzii, DataFacturii, DataPlăţii.).
cardinalitate
Cardinalitatea dă informaţii despre numărul minim şi numărul maxim de apariţii ale
unei asocieri A între o entitate E1 şi o alta E2. Referind entitatea, (mulţimea legată prin
aplicaţie), şi asocierea, (aplicaţia mulţimii în altă mulţime), se vorbeşte de cardinalitatea
cuplului Entitate-Asociere (EA). Se defineşte ca un cuplu de întregi (x,y), unde:
x reprezintă numărul minim de legături ce pot exista pentru o realizare dată a
entităţii.
y reprezintă numărul maxim de legături ce pot exista pentru o realizare dată a
entităţii .
Pentru cardinalităţi, valorile semnificative utilizate în activitatea de modelare sunt
fie 0 şi 1 pentru cardinalitatea minimală, fie 1 şi n pentru cardinalitatea maximală. Se
evită astfel schimbarea modelului pe măsura ce se dezvoltă relaţia între două entităţi:
Dacă la momentul modelării potenţial există o legătură între realizările a două
entităţi, aceasta este reprezentată prin valoarea 0 a cardinalităţii minimale. Situaţiile în
care pot exista mai multe legături pentru o realizare dată a unei entităţi sunt reprezentate
de la început prin valoarea n a cardinalităţii maximale. Se evită astfel schimbarea
modelului pe măsura ce se dezvoltă relaţia între două entităţi.
Cardinalitatea minimală 0 precizează realizări de entităţi care nu participă efectiv
la asociere.
Exemplu:
Produsele obţinute în activitatea de producţie pot fi stocate în depozit sau pot face
obiectul vânzării, fiind înscrise pe dispoziţii de livrare. Altfel spus, un produs se poate
afla sau nu pe o dispoziţie de livrare (cardinalitatea minimală 0).
Exemplu:
În activitatea de aprovizionare cu mărfuri, factura care însoţeşte marfa conţine
datele furnizorului. Nu există factură care să nu aibă un emitent (cardinalitate minimală
22
1). În acelaşi timp, pentru o factura nu pot exista mai mulţi furnizori cardinalitatea
maximală 1).
1,1
FACTURĂ FURNIZOR
corespunde
FACTURĂ FURNIZOR
corespunde 1,n
tip de asociere
O asociere poate lega între ele două sau mai multe entităţi. Tipul de asociere este
cuplul determinat de numărul de instanţe de entităţi care pot fi asociate de o parte şi de
cealaltă a asocierii.
Pentru asocierile binare, tipurile de asociere se stabilesc pornind de la
cardinalităţi, pe baza următoarei reguli.
Fie A o asociere binară legând două entităţi E1 şi E2. Fie (x1,y1) şi respectiv (x2,y2)
cardinalităţile cuplului (E1,A) şi (E2,A).
dacă y1=y2=1, atunci A este de tip 1:1
dacă y1>1 şi y2=1
sau
y1=1 şi y2>1 atunci A este de tip 1:n
dacă y1>1 şi y2>1 atunci A este de tip n:m
Există trei tipuri de asocieri.
Asocierea de tip ,,unu la unu” este asocierea în care unei realizări a entităţii E1
poate să-i corespundă prin asocierea A cel mult o realizare a entităţii E2, şi reciproc, unei
realizări din E2 nu poate să-i corespundă decât cel mult o realizare din entitatea E1.
Asocierea de tip ,,unu la mulţi” este asocierea în care unei realizări a entităţii E1
pot să-i corespundă prin asocierea A mai multe realizări ale entităţii E2, dar unei realizări
din E2 îi corespunde cel mult o realizare din E1. Acest tip de asociere se mai numeşte şi
asociere de ierarhizare, subordonarea prin ierarhie putînd fi reprezentată grafic printr-o
arborescentă.
23
Asocierea de tip ,,mulţi la mulţi” este asocierea în care unei realizări a entităţii E1
pot să-i corespundă prin asocierea A mai multe realizări din E2, şi reciproc. În practică,
această asociere se descompune în asocieri de tipul ,,unu la multi”, prin introducerea unei
entităţi intermediare.
dimensiune
Asocierile pot fi unare (fig. 2.1.a), binare (fig. 2.1.b) şi ternare (fig. 2.1.c)
PRODUS
CodProdus
0,1 DenProdus 0,1
Gabarit
DataOmologării
este_format
NrComponente
fig. 2.1. a
fig. 2.1.b
CONTRIBUABIL DOCPLATĂ
CodCntribuabil plăteşte NrDoc
Nume DataDocument
TAXE
TipTaxă
sumă
fig. 2.1.c
24
2.3.1.2 Construirea modelului conceptual al datelor
FURNIZORI
1 se structurează sub forma simplă a unor reguli de gestiune rezultatele fazei de
proiectare generală.
Exemplu:
25
pentru a obţine un credit, o firmă trebuie să depună la bancă o informare privind
situaţia ei financiară. Această situaţie conţine, printre altele, valoarea capitalului
social şi profitul ultimului an.
decizia de acordare a creditului este urmată de întocmirea unui dosar de credit, care
conţine informaţii privind suma acordată, termenul şi dobânda corespunzătoare
creditului. O firmă, devenită client al bancii, are pentru fiecare credit acordat un
dosar de credit.
pentru creditul acordat, se deschide şi se actualizează la fiecare rată plătită de client,
o fişă de credit.
ratele sunt plătite cu documente care, pe lângă propriile date de identificare, conţin
suma plătită
2 se alcătuieşte un tabel al atributelor conţinute în documentele primare .
Exemplu:
DOSAR CEDIT : Număr dosar, Data întocmirii dosarului, Termenul final al creditului,
Suma acordată, Dobânda calculată
FIŞA CREDIT : Număr fişă, Suma totală încasată, Dobânda, Penalităţi
DOCUMENT PLATĂ : Tip document, Număr document, Data document, Suma plătită
3 se construieşte dicţionarul atributelor, prin eliminarea atributelor calculate şi a
atributelor sinonime. Se adaugă atribute necesare codificării interne a firmei.
Exemplu:
Nr.Crt ATRIBUT Nr.Crt ATRIBUT
1 CodClient 10 NumarDosar
2 DenumireClient 11 DataDosar
3 AdresaClient 12 TermenFinal
4 CapitalSocial 13 SumaCredit
5 ProfitUltimulAn 14 DobindaCredit
6 TipDocument 15 NumărFişă
7 NumărDocument 16 SumaÎncasată
8 DataDocument 17 Dobânda
9 SumaDocument 18 Penalităţi
4 se stabilesc dependenţele funcţionale între atribute şi se construieşte matricea
simplificată a dependenţelor funcţionale în care:
. liniile sunt reprezentate de determinanţii dependenţelor funcţionale
. în coloane se înscriu atributele determinate (celelalte atribute din dicţionarul atributelor)
. în matrice se înscrie cifra 0 la intersecţia determinantului (linie) cu atributul determinat
(coloană)
Exemplu:
1 2 13 14 15 6+7 8 6+7 9
26
10 11 10 12 10 13 1014 15 16
1517 15 18
Matricea simplificată a dependentelor funcţionale este:
2 3 4 5 8 9 11 12 13 14 16 17 18
1 0 0 0 0
6+7 0 0
10 0 0 0 0
15 0 0 0
5 se creează entităţi distincte ce conţin câte un determinant şi atributele determinate de
el. În entităţi nu se includ atributele care au doi determinanţi (atributele cu două cifre 0
pe coloană). Atributele determinant constituie cheile entităţilor construite.
6 se stabilesc asocierile şi cardinalităţile pe baza regulilor de gestiune şi a dicţionarului
atributelor. Atributele care au doi determinanţi, sunt atribute ale asocierii dintre
entităţile ale căror identificatori sunt detrminanţii respectivi.
Entităţile, asocierile şi cardinalităţile sunt cele din figura 2.2.
27
2 Entitatea FISA CREDIT conţine câmpuri calculate: Suma Incasată, Dobânda,
Penalităţi, ceea ce contravine cerinţei conform căreia în Modelul Conceptual de Date nu
sunt incluse câmpuri calculate. S-a optat totuşi pentru această soluţie, deoarece fişa
creditului deschisă imediat după aprobarea creditului se utilizează permanent în urmărirea
rambursării creditului, şi e preferabil să consultăm un tebel cu datele actualizate la zi în
locul execuţiei repetate a procedurilor ce calculează valoarea acestor câmpuri.
În baza de date se crează un tabel corespunzător entităţii FISA CREDIT, cu
valoarea 0 în aceste câmpuri. Valorile corespunzătoare sumelor încasate, dobânzii şi
penalităţilor nu se încarcă de către operatori, ci se actualizează pin proceduri scrise
special.
28
Normalizarea impune definirea unei noi entităţi, MARFA, şi a unei asocieri aduce
, cu atributul cantAprov (canitate aprovizionată)
Exemplu:
În cazul:
29
TAXE
TipTaxă
Sumă
descompunerea este:
CONTRIBUABIL DOC PLATĂ
CodContribuabil 1,n 1,1 NrDoc
Nume plăteşte DataDocument
Adresă
1,1
TAXE
TipTaxă 1,n corespund
Sumă
2.3.1.4 Restricţii
Pe lângă definirea entităţilor şi asocierilor, în modelul Entitate-Asociere trebuie
luate în calcul cerinţe ce asigură corectitudine şi coerenţă în raport de realitatea pe care
modelul o reflectă. În general sunt restricţii ce privesc domeniul de definiţie al atributelor
sau evoluţia lor în timp.
Restricţiile de integritate sunt reguli suplimentare, nereprezentate direct în
modelul conceptual al datelor, dar care trebuie respectate permanent de date.
Într-o primă clasificare, restricţiile de integritate se împart în două mari grupe:
restrictii statice (se verifică permanent), şi restricţii dinamice (privesc evoluţia în timp
a datelor).
Exemple :
restricţii statice:
. DataOmologării unui produs obţinut în secţiile de producţie proprii este
întotdeauna anterioară datei documentului cu care produsul este vândut (DataDoc)
. cota_tva=19% .
restricţii dinamice:
. o persoană poate să-şi completeze studiile şi implicit să-şi schimbe ocupaţia.
Dacă în entitatea PERSOANE se specifică atributul Ocupaţie, acesta poate lua în timp
diferite valori
30
. pentru entitatea CITITOR, dacă specificăm atributul CategorieCititor, acesta
poate lua valorile: student, cadru didactic, doctorand.
Intr-o altă clasificare, restricţiile pot fi grupate în restrictii structurale şi restricţii
semantice.
Restricţiile de integritate structurale se referă la:
integritatea entităţilor, vizând faptul că fiecare entitate trebuie identificată
în mod unic;
integritatea referenţială, vizând faptul că pentru orice realizare a unei
asocieri este obligatoriu să existe realizări pentru entităţile participante;
cardinalităţi, vizând respectarea condiţiilor în cazul cardinalităţilor
minimale şi maximale.
Restricţiile de integritate semantice sunt introduse de utilizator pentru a reflecta
corect realitatea. Sunt expresia regulilor de gestiune aplicate în firmă, consecinţă a
reglementărilor legislative şi normative în vigoare, a regulamentelor şi normelor interne.
Aceste restricţii nu apar explicit în modelul conceptual al datelor, fiind implementate în
procesul creării relaţiilor aparţinând bazei de date.
31
• corelaţii cu valori obţinute pe baza unor operaţii de sintetizare (însumare,medie)
a unui ansamblu de entităţi
Exemplu(fig.2.3) :
suma cantităţii livrate pentru un produs nu poate depăşi stocul de la o anumită
dată.
DISPLIVRARE PRODUS
NrDoc priveşte CodProdus
DataDoc 1,n cant_livrată 0,n DenProdus
NrContr DataOmologarii
CotaTva
1,n 1,1
modifică stabilesc
1,n data_stoc
STOC 1,1
CodGestiune
Stoc
fig. 2.3
Incluziunea relaţiilor
Exemplu:
Pentru a fi livrată, orice marfă trebuie să fie facturată. Acest fapt determină o
relaţie de incluziune între asocierile facturare şi livrare.
livrare
MARFĂ dataL CLIENT
CodMarfă 1,1 0,n CodClient
I
32
0,1 facturare 1,1
d ataF
Excluziunea relaţiilor
Exemplu:
Având în vedere că un acelaşi produs nu poate fi vândut şi donat în acelaşi timp,
între asocierile vânzare şi donare există o relaţie de excluziune.
Egalitatea relaţiilor
Exemplu:
Admitând că depozitarea în gestiune se face concomitent cu înscrierea în fişa de
magazie, între asocierile depozitare şi înscriereFm există o relaţie de egalitate.
depozitare
MATERIAL 1,n 1,n GESTIUNE
CodMat = CodGest
Nume Nume
1,n înscriereFm 1,n
33
2. realizarea unui model al datelor care răspunde cerinţelor impuse de formularele şi
documentele prin care se preiau datele de la utilizator (perspectiva sistemului prin prisma
utilizatorului).
3. obţinerea unui model logic al datelor din care să se poată realiza proiectul bazei de date
fizice.
În cazul sistemelor informatice ce vizează activitatea economică, volumul mare
de date cu care se vehiculează este caraterizat printr-o organizare uniformă, constituită
din tipuri de înregistrări cu caracteristici asemănătoare, determinate de structura
documentelor primare. Operaţiile de prelucrare automată au un caracter repetitiv şi o
frecvenţă mare de executare. Operatorii sunt simplii şi execută în majoritatea cazurilor
prelucrări succesive asupra caracteristicilor de acelaşi tip. Aceste observaţii au condus la
alegerea sistemelor relaţionale drept soluţie direct implementabilă .
Faţă de metodele tradiţionale care utilizau fişiere strict dependente de aplicaţii,
bazele de date relaţionale şi sistemele de gestiune corespunzătoare prezintă câteva
avantaje care le-au impus în aplicaţiile de gestiune. Dintre acestea amintim:
• redundanţă minimă şi controlată a datelor;
• integritate şi accesibilitate deosebită la ele;
• posibilitatea introducerii standardelor la nivelul bazelor de date;
• posibilitatea partajării între diverşi utilizatori.
Modelarea fizică a datelor presupune trecerea de la descrierea logică a datelor
la una tehnică, de stocare a datelor. Rezultatele modelării fizice se concretizează într-un
set de specificaţii tehnice folosite ulterior de programatorii bazelor de date pentru
definirea formatului şi structurii datelor stocate în memoria secundară. Studiul tehnic
conţine formatele sub care vor fi reprezentate atributele, modul de gruparea al acestora
din una sau mai multe relaţii, în una sau mai multe înregistrări fizice, precum şi
metodele de accesare a datelor.
Selectarea tehnologiilor folosite pentru stocarea datelor se face ţinând cont că
fiecare tehnologie este specifică unei anumite arhitecturi a sistemului.
Descrierea fizică a datelor este legată de sistemul de gestiune al bazelor de date
ales pentru crearea bazei de date. Vizează modul în care datele vor fi stocate şi accesate
la nivelul memoriei externe, sistemele care asigură securitatea păstrării şi regăsirii
datelor.
După cum am mai afirmat, la nivel logic există un standard pentru descrierea
datelor: Modelul Relaţional al Datelor. Mai mult există reguli stricte de obţinere a
Modelului Relaţional al Datelor pornind de la modelul Entitate-Asociere. Respectând
aceste standarde, din punctul de vedere al datelor, proiectarea sistemelor informatice se
34
reduce la parcurgerea unor etape clar definite, cu respectarea unor formalisme unanim
recunoscute. Este un pas important spre automatizarea trecerii de la concepţie la realizare.
35
Nume Cantitate
Localitate Pret
Modelul Conceptual al Prelucrărilor permite descrierea activităţilor din sistemul real prin
descompunerea unui proces în operaţii. Permite reprezentarea înlănţuirii operaţiilor şi
precizarea condiţiilor declanşării acestora. Conceptele de bază sunt: proces, operaţie şi
evenimet.
2.5.1 Caracteristici
proces
Procesul este constituit dintr-o submulţime de activităţii independente de
structura organizatorică a firmei, care au puncte de intrare şi de ieşire stabile.
Exemple:
Cerere de credit Comanda acceptată
Acordarea Gestiunea
unui credit facturilor
36
Cerere respinsă Factură emisă
Credit acordat Factură încasată
eveniment
Evenimentul indică faptul că “ceva” anume s-a întâmplat şi în consecinţă
sistemul trebuie să reacţioneze. Este o circumstanţă, un semnal adus la cunoştinţa
sistemului şi la care acesta trebuie să răspundă.
Pentru a fi considerat eveniment, semnalul trebuie să fie perceput de sistem,
trebuie să fie declanşatorul posibil al unei activităţi.
Exemplu:
Într-un sistem de evidenţă a personalului, faptul că pentru un angajat se
completează foaie de pontaj constituie un eveniment, deaorece el declanşează
activitatea de evidenţă a salariaţilor, dar acest fapt nu constituie un eveniment pentru
sistemul informatic de gestiune a clienţilor.
În funcţie de poziţia faţă de sistemul informatic, în cadrul modelului
conceptual al prelucrărilor se identifică evenimente interne şi evenimente externe.
Evenimentele externe provin din exteriorul sistemului studiat şi declanşează
în interiorul lui executarea unor activităţi. Evenimentele externe nu pot fi controlate,
asupra lor neputându-se interveni.
Exemplu: modificarea cursului leului, modificarea procentului de TVA,
modificarea procentului în cazul impozitului pe salarii.
Evenimentele interne survin la încheierea unei operaţii din cadrul sistemului
studiat şi se grupează în evenimente rezultat şi evenimente intermediare.
Evenimentele rezultat, reprezentate de ieşiri ale prelucrării în cadrul
sistemului informatic proiectat, sunt destinate mediului extern al sistemului.
Exemple:
Evenimentele reprezentate de: factura întocmită remisă clientului, ordinul de
plată întocmit şi depus la bancă, declaraţia de TVA întocmită şi depusă la organul
fiscal.
Evenimentele intermediare sunt pe de o parte rezultate din executarea unor
operaţii şi pe de altă parte declanşează alte operaţii în cadrul sistemului.
Exemple:
Întocmirea Notei de Receptie şi Constatare de Diferenţe în urma recepţionării
mărfurilor, întocmirea Bonului de Consum, a Bonului de Predare-Primire.
Reprezentarea grafică a evenimentelor utilizează următoarele simboluri:
37
Ee Ei E
operaţia
Operaţia reprezintă o secvenţă continuă de activităţi producătoare de
evenimente. Operaţia constituie “un bloc de prelucrare”, o succesiune de activităţi
elementare care se execută neîntrerupt din momentul declanşării.
Operaţiile sunt declanşate de evenimente externe sau de evenimente
intermediare şi conduc la producerea de evenimente intermediare sau rezultat, în
funcţie de respectarea unor anumite condiţii, numite reguli de emisie. Condiţiile sunt
expresia unor situaţii determinate de contextul în care are loc derularea operaţiei,
cunoscute în momentul derulării operaţiei.
sincronizare
O operaţie nu se poate declanşa decât dacă se realizează anumite condiţii, deci
se produc anumite evenimente, numite evenimente contributive. Ansamblul
condiţiilor care determină declanşarea unei operaţii este cunoscut sub denumirea de
sincronizare. Într-o manieră generală, sincronizarea se exprimă sub forma unei
propoziţii logice care trebuie să respecte următoarele reguli:
• condiţiile trebuie să privească evenimentele declanşatoare (contributive)
• condiţiile nu trebuie să se refere la informaţia din baza de date;
• trebuie să existe cel puţin o situaţie care permit declanşarea operaţiilor.
E1 E2 Evenimente
declanşatoare
Propoziţia logică
numele sincro-
nizării Sincronizare
38
Nr. Operaţia
Descrierea operaţiei Operaţia
Reguli de emisie
Ei3 Ei4
39
.înlănţuirea operaţiilor şi a evenimentelor declanşatoare în cazul procesului de avizare a
dosarului de credit este prezentată în figura 2.5
E1 si
E2
01 Preluare documente
Cerere inregistrată
DA
Suma < 100.000.000 NU
40
01 Avizare conducere
Semnarea dosarului de către
conducere
DA NU
02 Avizare client
Semnarea dosarului de către client
DA NU
03 Deschidere fişăcredit
Deschiderea fişei de evidenţă
operativă a creditului
DA NU
41
Fişă credit deschisă
fig.2.5
Fişă de
Document Termen
credit
de plată scadent
deschisă
Fişă de credit
actualizata Credit restant
^
42
Fişă credit
actualizată
2 Calcul penalităţi
Penalităţi, intarzieri
Calcul dobanda
Da Nu
Penalităţi
calculate
fig.2.6
2.6.1 Caracteristici
43
Faza este o succesiune neîntreruptă de prelucrări, cu aceeaşi periodicitate,
executate într-un post de lucru. O succesiune de faze aparţinând aceluiaşi proces
alcătuiesc o procedură.
sarcina
Sarcina este reprezentată de o mulţime de prelucrări elementare, executate în
interiorul unei faze.
2.6.2 Construirea Modelului Organizaţional al Prelucrărilor
Modelului Organizaţional al Prelucrărilor se obţine din Modelul Conceptual al
Prelucrărilor, luând în calcul structura organizatorică a firmei. Fiecărui proces din
Modelul Conceptual al Prelucrărilor îi corespund una sau mai multe proceduri în Modelul
Organizaţional al Prelucrărilor. Pentru fiecare operaţie din Modelul Conceptual al
Prelucrărilor, în Modelul Organizaţional al Prelucrărilor corespund una sau mai multe
faze.Client Conducere Creditare Calculaţie
contabilitatepentru un sistem
Cu aceste consideraţii, Modelul Organizaţional al Prelucrărilor
informatic este rezultatul reprezentărilor corespunzătoare tuturor proceselor din Modelul
Conceptual al Prelucrărilor 01 Preluare
Exemplu
Cerere D document
In cazul sistemului informaticTimp
credit 02
de acordare a creditelor, seCalcul
construieşte câte un
real Timp coeficienti
Model Organizaţional de Prelucrări pentru fiecare proces delimitat în Modelul
real
Conceptual al Prelucrărilor:
.. înDocume
figura 2.7 este reprezentat Modelul Organizaţional al Prelucrărilor pentru procesul de
n
întocmiretaţiea dosarului de credit
Cerere
inregistrata
.. în figura 2.8 este reprezentat Modelul Organizaţional al Prelucrărilor pentru procesul de
avizare a creditului Coeficienti
calculati
.. în figura 2.9 este reprezentat Modelul Organizaţional al Prelucrărilor pentru procesul
de urmărire a creditului acordat
03 Cuantificare
risc
Timp
real
NU DA
Cerere Cerere
respinsa admisa
04
Analiza
manual nivel
r NU DA
respon-
44
Dosar Dosar
respins sabilitate
intocmit
Client Conducere Creditare Calculatie
contabilitate
Dosar
intocmit
1 fig. 2.7
Avizare
Man
Dosar ual
neavizat condu-
NU DA
cere
Dosar
avizat
Dosar
aprobat
2
Semnarea
dosarului
manu 3
alNU de Deschidere
DA Timp
catre fisa
real
credit
c
Dosarclient
nesemna
t
Fisa
credit
deschisa
45
Fig.4.6
fig.2.8
01 Verificare termen
Timp scadent
Docum
ent de real Da Nu
plata
Credit
restant
Document
de plata la 03 Calcul
termen Timp penalitati
real Da Nu
02 Inregistrarea
Timp documentelor de
Penalitati plata
real
calculate
Da Nu
E2
Documen
t de plata
E1
46
04 Calcul dobanda
Timp
E1 sau real Da Nu
(E2 şi
E3)
Doband
05 Actualizare fisa a
Timp credit calculată
real Da Nu E3
Fisa de
credit
actualizata
Fig. 2.9
47
funcţie de care se definesc proceduri standard de consultare, actualizare, de citire sau
scriere în baza de date.
În primul caz un loc important îl ocupă definirea interfeţei cu utilizatorul,
inserarea unor obiecte vizuale predefinite care să faciliteze afişarea informaţiilor
conform unor criterii de selecţie stabilite la momentul interogării.
În cazul al doilea, formulele de calcul, expresie a regulilor de gestiune, sunt
aplicate împreună cu proceduri de control privind respectarea restricţiilor de integritate.
Consultarea sau actualizarea bazei de date este precedată de execuţia unor proceduri ce
vizează drepturile de acces, care sunt determinate de restricţiile impuse de mediul de
programare. Există proceduri pentru gestionarea drepturilor de acces şi proceduri pentru
soluţionarea eventualelor incidente sau erori apărute la execuţie.
Pentru toate aceste proceduri, modul concret de implementare depinde de soluţia
informatică aleasă, de performanţele tehnicii de calcul existente şi de capacitatea
proiectanţilor de a alege cele mai bune soluţii. În cazul sistemele informatice de
gestiune, corespunzător sistemul relaţional de reprezentare a datelor, pentru
manipularea lor se utilizează un SGBD relaţional. Se poate apela şi la un limbaj de
programare ce oferă facilităţi în definirea interfeţei cu utilizatorul, în codificarea
regulilor de validare sau în efectuarea unor calcule laborioase.
Probleme şi soluţii
48
a) Modelul Conceptual al Datelor surprinde cu ajutorul unor abstracţii aspectul static
şi dinamica în timp a activităţii desfăşurate.
b) Modelul Conceptual al Datelor defineşte structura globală de organizare a datelor,
asigurând independenţă totală faţă de orice sistem de gestiune a bazelor de date.
c) Modelul Conceptual de Date foloseşte un formalism precis, normalizat pe plan
internaţional de ISO sub numele de model “Entitate–Asociere”.
49
b) Normalizarea este un proces care asigură eliminarea redundanţelor fără pierdere
de informaţie;
c) Normalizarea este un proces care asigură eliminarea anomaliilor în procesul de
actualizare.
12
Se considera urmatorul fragment de model conceptual al datelor:
facturare
cantitate
PRODUS 1,n 1,1 FACTURA
CodProdus NrFactura
Denumire 1,n livrare 1,1 Data
cantitate
50
b) o restrictie de integritate de incluziune intre asocieri ;
c) o restrictie de integritate de excluziune intre asocieri ;
e) o restrictie de integritate de domeniu.
13
Se consideră următorul fragment de Model Conceptual de Date:
14
Se consideră următorul fragment de Model Conceptual de Date:
51
Factura = (Nrfactura, DataFactura, CodClient) ;
Client = (CodClient, DenClient, AdresaClient) ;
DocIncas = ( NrDocIncas, FelDocIncas, DataDocIncas, SumaIncas, CodClient,
NrFactura) ;
ProdusFacturat = ( CodProdus, NrFactura, cantitate, pret_vinzare).
c) Produs = (CodProdus, DenProdus, pret_vinzare) ;
Factura = (Nrfactura, DataFactura, CodClient, NrDocIncas, FelDocIncas) ;
Client = (CodClient, DenClient, AdresaClient) ;
DocIncas = ( NrDocIncas, FelDocIncas, DataDocIncas, SumaIncas, NrFactura) ;
a)
PRODUS FACTURA
CodProdus
1,n produs_facturat 0,n NrFactura 1,1
DataFactura
Cantitate
Pret_vânzare
1,1
1,n
Clienţi 1,n
CodClient
destinata
DenClient
Adresã
52
b)
Produs Factura
CodProdus 1,n produs_facturat 1,n 1,1
NrFactura
Preţ_vânzare cantitate DataFactura
1,1
Clienţi
1,n
destinata
CodClient
DenClient
Adresã
c)
PRODUS produs_facturat Factura
CodProdus 1,n cantitate 1,n NrFactura
pret_vinzare DataFactura
1,1
Clienţi
1,n
destinata
CodClient
DenClient
Adresã
16 Care din afirmaţiile următoare nu este adevărată ?
a) Prelucrările surprind parte dinamică, modificările în timp ale unui sistem
informatic.
b) Prelucrările traduc regulile de gestiune ale firmei.
c) Prelucrările sunt constituite dintr-o submulţime de activităţii independente de
structura organizatorică a firmei, care au puncte de intrare şi de ieşire stabile.
17 Care din afirmaţiile următoare nu este adevărată ?
a) Modelul Organizaţional al Prelucrărilor permite descrierea activităţilor din
sistemul real prin descompunerea unui proces în operaţii.
b) Modelul Conceptual al Prelucrărilor permite descrierea activităţilor din sistemul
real prin descompunerea unui proces în operaţii.
c) Modelul Conceptual al Prelucrărilor permite reprezentarea înlănţuirii operaţiilor şi
precizarea condiţiilor declanşării acestora.
18 Care din afirmaţiile următoare este adevărată ?
53
a) Evenimentul este o circumstanţă, un semnal adus la cunoştinţa sistemului şi la
care acesta trebuie să răspundă.
b) Un semnal că ceva s-a întâmplat în sistem este considrat eveniment chiar dacă el
nu este declanşatorul posibil al unei activităţi.
c) Evenimentele externe provin din interiorul sistemului studiat şi declanşează în
exteriorul lui executarea unor activităţi.
19 Care din afirmaţiile următoare este adevărată ?
a) Evenimentele externe pot fi controlate, asupra lor putându-se interveni din
sistem.
b) Exemple de evenimente externe: modificarea cursului leului, modificarea
procentului de TVA, modificarea procentului în cazul impozitului pe salarii.
c) Exemple de evenimente externe: modificarea cursului leului, ordinul de plată
completat, modificarea procentului în cazul impozitului pe salarii.
20 Care din afirmaţiile următoare este adevărată ?
a) Evenimentele intermediare survin la încheierea unei operaţii din cadrul
sistemului studiat şi se grupează în evenimente rezultat şi evenimente externe.
b) Evenimentele externe sunt rezultate din executarea unor operaţii şi sunt
destinate mediului extern.
c) Evenimentele externe declanşează operaţii în cadrul sistemului.
21 Care din afirmaţiile următoare este adevărată ?
a) Exemplu de evenimente intermediare: întocmirea Notei de Receptie şi
Constatare de Diferenţe în urma recepţionării mărfurilor, factura întocmită remisă
clientului.
b) Evenimentele rezultat, reprezentate de ieşiri ale prelucrării în cadrul sistemului
informatic proiectat, sunt destinate mediului extern al sistemului.
c) Exemple de evenimente interne: ordinul de plată întocmit şi depus la bancă,
declaraţia de TVA întocmită şi depusă la organul fiscal, modificarea procentului de
TVA.
22 Care din afirmaţiile următoare nu este adevărată ?
a) Operaţia reprezintă o secvenţă continuă de activităţi producătoare de
evenimente.
b) Operaţia constituie “un bloc de prelucrare”, o succesiune de activităţi
elementare care se execută neîntrerupt din momentul declanşării.
c) Operaţiile sunt declanşate în funcţie de respectarea unor anumite condiţii, numite
reguli de emisie.
23 Care din afirmaţiile următoare este adevărată ?
a) Operaţiile conduc la producerea de evenimente intermediare sau externe, în
funcţie de respectarea unor anumite condiţii, numite reguli de emisie.
54
b) Operaţiile sunt declanşate de evenimente externe sau de evenimente intermediare
c) O operaţie declanşează în anumite condiţii evenimente numite evenimente
contributive.
24 Care din afirmaţiile următoare este adevărată ?
a) Modelul Organizaţional al Prelucrărilor prezintă mulţimea operaţiilor luînd în
calcul structura organizatorică a firmei.
b) Postul de lucru este reprezentat de echipamentele de prelucrare automată a datelor
dintr-un compartiment funcţional.
c) În cadrul Modelului Organizaţional al Prelucrărilor descompunerea procedurilor
în faze se face luînd în consideraţi o anume soluţie informatică de implementare.
25 Care din afirmaţiile următoare este adevărată ?
a) La ora actuală există un formalism unanim recunoscut pentru descrierea
prelucrărilor la nivel logic şi operaţional: Modelul Relaţional.
b) Fiecărei proceduri din Modelul Conceptual al Prelucrărilor îi corespund una sau
mai multe procese producătoare de rezultat în Modelul Organizaţional al Prelucrărilor.
c) Pentru fiecare operaţie din Modelul Conceptual al Prelucrărilor, în Modelul
Organizaţional al Prelucrărilor corespund una sau mai multe faze.
26 Se consideră următorul fragment din sistemul informatic pentru acordarea unui
credit.
Cerere credit
admisă
S3
O2
3 Deschid fişă credit
Deschiderea fişei de evidenţă operativă a creditului
DA NU
S4
55
NU DA
Credit Fişa
restant actualizată
56
b) Cerere
credit
S1
c) Cerere
Documentaţie înregistrată
S1
Rezolvare teste
1-b 2-a 3-a 4-c 5-c 6-b 7-c 8-a 9-a 10-b 11-b
12—b 13-a 14-b 15-c 16-c 17-a 18-a 19-b 20-c 21-b 22-c
23-b 24-a 25-c 26-b 27-c
57
UNITATEA DE ÎNVĂŢARE 3
OBIECTIVE:
Cuvinte cheie: clase şi obiecte, UML, diagrame UML, model orientat obiect
CONŢINUT:
3. METODE ORIENTATE OBIECT
3.1 Metodologia orientată obiect
3.2 Modelul obiect
3.3 UML – limbaj standard de modelare
3.4 Diagrame UML
3.5 Modelul sistemului real şi diagramele UML
58
din domeniul aplicaţiei, şi nu din domeniul programării. Atenţia este îndreptată asupra
conceptelor care vor forma nucleul unei soluţii ce utilizează tehnici orientate obiect.
Analiza este selectivă, neacordându-se aceeaşi importanţă tuturor componentelor
şi însuşirilor. Lumea reală se descompune în entităţi distincte, se stabilesc legăturile
dintre ele şi funcţiile îndeplinite. Sunt examinate cerinţele, analizate implicaţiile, reţinute
doar aspectele esenţiale. Rezultatul este un model cu clase şi asocieri eficient prezentate,
folosirea acestora făcându-se în partea de proiectare şi implementare.
proiectarea
Scopul principal al proiectării orientate obiect este să maximizeze posibilitatea
reutilizării claselor în proiecte ulterioare, să identifice în relaţiile de moştenire
superclasele care facilitează reutilizarea în cadrul aceluiaşi proiect.
În “Object-Oriented Modeling and Design” ([R*96]), autorii consideră că
proiectarea se efectuează în două etape: proiectarea sistemului şi proiectarea obiectelor.
Proiectarea sistemului implică împărţirea sa în subsisteme, şi alocarea resurselor
hardware şi software.
Proiectarea obiectelor continuă strategia aleasă în etapa de proiectare a sistemului
şi rafinează detaliile.
Se păstrează structura claselor stabilită în partea de analiză, luând în consideraţie
minimizarea timpului de execuţie şi folosirea raţională a memoriei.
Operaţiile identificate în etapa de analiză sunt exprimate algoritmic, cele
complexe sunt descompuse în operaţii interne simple. Atributele şi asocierile sunt
prezentate într-o formă ce permite ulterior implementare ca structuri de date specifice.
Clasele sunt rearanjate prin evidenţierea unor relaţii de agregare sau de
generalizare, sunt completate cu noi operaţii şi noi atribute, rezultate din abstractizarea
comportamentului comun.
Modelul claselor poate fi rafinat prin introducerea de noi clase, care păstrează
rezultate intermediare de calcul.
Considerând clasele ca nişte ,,cutii negre” a căror interfaţă externă este publică,
dar ale căror detalii interne sunt ascunse, proiectantul decide atributele care sunt vizibile
din exterior. Ascunderea informaţiei interne permite ca implementarea unei clase să fie
modificată, fără a cere clienţilor clasei să-şi modifice codul. Este necesară o nouă
documentare a claselor, pe baza celei din partea de analiză, care să conţină şi modificările
care au apărut în faza de proiectare.
Într-o ultimă fază a proiectării, clasele şi asocierile se regrupează în module.
59
implementarea
În timp ce primele două etape sunt independente de mediul de programare, în
această etapă trebuie aleasă soluţia informatică pentru realizarea efectivă a sistemului.
Clasele şi relaţiile sunt translatate într-un limbaj de programare, de regulă orientat obiect.
În cele mai multe cazuri, scrierea secvenţelor de cod într-un limbaj orientat obiect se face
aproape automat, pe baza deciziilor luate în fazele anterioare.
Spre deosebire de limbajele procedurale pentru care un program cuprindea o serie
de proceduri care se apelau reciproc, procedura reprezentând unitatea de calcul ce
transmite valori pentru date sau actualizează parametrii de intrare, pentru limbajele
orintate obiect există obiecte capabile să trimită mesaje de la unul la celălalt, să proceseze
cereri recunoscute ca mesaje, să răspundă unei colecţii predefinite de mesaje care
formează interfaţa obiectului. Noţiunea de mesaj este o abstracţie, care poate fi
implementată ca apel de procedură, eveniment discret, întrerupere.
Caracteristicile esenţiale ale limbajelor de programare orientate obiect au fost
definite în anii ‘70-’80 de şcoala Smalltalk şi apoi de limbajul C ++. În acelaşi timp,
noţiunea de entitate din modelele semantice a fost preluată în modelele orientate obiect,
punând însă accentul pe comportamentul datelor, încapsulând în conceptul de obiect atât
datele, cât şi operaţiile posibile asupra lor.
Primele limbaje orientate obiect au fost limbajele folosite pentru rezolvarea
problemelor de simulare şi au definit noţiunea de clasă, ce regrupează o structură de date
şi procedurile necesare pentru manipularea ei. Rând pe rând au fost reluate şi amplificate
tendinţele de uniformizare ale mediului de programare, unde totul se reduce la obiect, au
apărut limbaje care oferă funcţionalităţi ale programării orientate obiect, conservând
structurile de control clasice ale limbajelor imperative.
Obţinând o însumare a avantajelor sistemelor de gestiune a bazelor de date, care
interoghează eficient datele, şi a limbajelor procedurale care permit calcule complexe,
programarea orientată obiect permite abordarea naturală a lumii reale, folosind
componente modularizate şi eliminând restricţiile impuse de mediul de programare.
60
3.2.1 Obiecte
Exemple:
▪ pentru persoana IONESCU, operaţia afişează permite calcularea şi afişarea pe ecran
valorii atributului vechime în muncă. Prin operaţia valoare, se pot calcula reţinerile din
salariu sau sporurile.
61
▪ pentru factura AS-1234 din 12/03/04, cu ajutorul operaţiilor definite se pot afişa datele
de identificare ale furnizorului sau se poate calcula valoarea totală în funcţie de articolele
facturate şi de cota tva.
Comportamentul este cel care alterează starea unui obiect, determină schimbarea stării
sale. Corespunzătoare comportamentului global al obiectului, mulţimea valorilor grupate
într-o stare, specifică răspunsul obiectului la evenimentul primit.
3.2.2.1 Abstractizare
62
• atributele, expresie a valorilor diferitelor stări ale instanţelor de clasă
• operaţiile pentru manipularea instanţelor de clase, numite metode. Specificarea
metodei poartă numele de semnătură, iar codul care implementează operaţiile constituie
corpul metodei.
Noţiunea de clasă este mai mult utilizată de faza de execuţie, presupunând două
aspecte: generarea de obiecte şi stocarea setului de obiecte care reprezintă instanţele
claselor. Cu ajutorul clasei se descriu obiectele. Obiectul posedă propriile lui valori, lista
atributelor şi metodele fiind gestionate de clasă.
3.2.2.2 Încapsulare
63
unui obiect de implementarea sa. Abstractizarea pune bariere explicite între diferite
abstracţii, încapsularea ascunde toate detaliile unui obiect care nu participă la stabilirea
legăturilor cu alte obiecte.
3.2.2.3 Ierarhizare
moştenire
Partajarea atributelor şi operaţiilor de-a lungul unei ierarhii între clase şi subclase
este evidenţiată cu ajutorul conceptului de moştenire.
Moştenirea permite constituirea de noi tipuri de obiecte şi clase, evitând
rescrierea şi recodificarea. Noua clasă poate moşteni atât operaţii (metode), cât şi
64
variabile de instanţă (atribute). În primul caz se poate vorbi de partajarea codului între
metode (code sharing), iar în al doilea caz, de partajarea structurii între atribute
(structure sharing). Împreună furnizează o puternică strategie de modelare, un mecanism
natural de organizare a informaţiei, care prezintă clasele într-un graf de moştenire ce
permite vizualizarea legăturilor dintre ele.
Conceperea unei aplicaţii constă în a grupa informaţiile generale în clase care sunt
apoi specializate din aproape în aproape în subclase cu comportament particular. În faza
de implementare, subclasa este autorizată să redefinească implementarea.
Exemplu:
în sistemul informatic privind contractarea şi vânzarea produselor, documentele pe cere
se consemnează activităţile desfăşurate sunt contractul şi factura de vânzare. Prin
generalizare se poate defini o clasă DOCUMENT, care are drept atribute
NumărDocument şi DatăDocument. Operaţiile sunt: CautăDată(NrDoc) şi
StergeDocument(NrDoc). Clasele CONTRACT şi FACTURĂ moştenesc atributele şi
operaţiile clasei DOCUMENT. În plus, clasa CONTRACT are atributele TermenContract
şi ValoareContract, iar clasa FACTURĂ are în plus atributul StareFactură.
DOCUMENT
NumărDocument
DatăDocument
CautăDată(NrDoc)
ŞtergeDocument(NrDoc)
CONTRACT FACTURĂ
TermenContract StareFactură
Valoarecontract
65
Metodele sunt operaţii care pot regăsi sau actualiza starea unui obiect. Sunt parte a
interfeţei ce manipulează instanţele clasei.
Similar cu aspectul structural, în cazul existenţei mai multor superclase, colecţia
de metode aplicabile instanţelor unei clase este reuniunea metodelor definite în
superclase, plus cele specifice ei.
Moştenirea poate fi implementată static sau dinamic. Moştenirea statică
presupune adăugarea câmpurilor moştenite. În timp ce execuţia este rapidă neimplicând
parcurgerea legăturilor de moştenire, redefinirea unei clase este dificilă, implicând
actualizarea tuturor subclaselor. Moştenirea dinamică se realizează fără copierea
câmpurilor moştenite, şi presupune parcurgerea legăturilor de moştenire. Actualizarea
este mai uşoară, dar execuţia este mai puţin eficientă.
Generalizarea şi moştenirea sunt abstracţii puternice folosite pentru transmiterea
similarităţilor de la o clasă la alta, păstrând totuşi diferenţele dintre acestea. Sunt
tranzitive, traversând un număr arbitrar de nivele. Subclasele moştenesc trăsăturile
superclasei, dar pot avea propriile lor atribute şi operaţii.
În timp ce generalizarea se referă la relaţia dintre aceeaşi clasă şi subclasele
sale, moştenirea se referă la mecanismul de a transmite atribute şi operaţii de-a lungul
unei relaţii de generalizare. În implementare, moştenirea este sinonimă cu noţiunea de
reutilizare a codului. Trăsăturile reutilizabile sunt grupate în superclase. Fiecare
programator încearcă gruparea claselor cu trăsături comune şi folosirea secvenţelor de
cod comune, implementând subclase proprii specifice aplicaţiei.
polimorfism
În strânsă legătură cu moştenirea, polimorfismul defineşte caracteristica unei
operaţii de a se comporta în mod diferit în funcţie de clasa de obiecte căreia îi aparţine.
Polimorfismul permite invocarea pentru obiecte de diferite tipuri a operaţiilor cu acelaşi
nume (semnătură), dar semantică şi implementare diferită. La primirea mesajului,
stabilirea metodei care se aplică se face în mod dinamic, în funcţie de clasa obiectului în
cauză. Instanţe ale unor clase diferite pot fi adresate uniform, primind aceleaşi mesaje,
dar manifestă comportamente diferite.
Unified Modeling Language (UML) este succesorul unui val de metode de analiză
şi proiectare orientate obiect, apărute la sfârşitul anilor 80 şi începutul anilor 90. Este un
limbaj unificat de modelare, rezultatul unui proces de introducere a standardizării în
66
analiza şi proiectarea orientate obiect. Este punctul de pornire în dezvoltarea viitoarelor
limbaje grafice.
Contribuţii esenţiale în definirea limbajului unificat de modelare au avut Grady
Booch, Jim Rumbaugh şi Ivar Jacobson.
Grady Booch, cercetător ştiintific la Rational Software Corporation a construit
numeroase exemple pentru dezvoltarea sistemului Ada. A definit o metodă de analiză şi
proiectare a sistemelor orientate obiect Object Oriented Design (OOD).
Jim Rumbaugh a condus o echipă de cercetare în laboratorul General Electric,
punând bazele metodei Object Modeling Technique (OMT).
Ivar Jacobson, în urma experienţei dobândite în domeniul telefoniei, a introdus
pentru prima dată diagramele de utilizare, în lucrarea “Object-Oriented Software
Engineerig - A Use Case Driven Approach”.
Metodele existente în acea perioadă erau similare, dar conceptele de bază apăreau
cu mici diferenţe de notaţii ce dădeau naştere la confuzii între utilizatori.
La OOPSLA’95 Grady Booch şi Jim Rumbaugh au prezentat public versiunea 0.8
a documentaţiei pentru o metodă standard de modelare, Unified Method (UM). Metoda
consta într-un limbaj de modelare şi un proces. Limbajul de modelare era (în special cel
grafic) notaţia folosită de metodă. Procesul exprima paşii făcuţi.
Studiul acestei metode i-au determinat să considere că partea de proces a metodei
este nesemnificativă, că nu e nevoie şi de un proces standard, deşi armonizări în
vocabular sunt necesare. În acelaşi timp, au considerat că un limbaj de modelare standard
este necesar şi important. Şi astfel, începând cu 1966, cei doi împreună cu Ivar Jacobson,
au lucrat pentru un limbaj de modelare standard, Unified Modeling Language (UML).
La 17 noiembrie 1997, Object Management Group (OMG) a anunţat adoptarea
specificaţiei UML ca limbaj standard de modelare.
Afirmând că “UML este experienţă, experiment şi adoptare gradată a standardului
care dezvăluie adevăratul potenţial al sistemului şi permite realizarea beneficiilor”, au
definit UML ca “un limbaj de modelare pentru a specifica, vizualiza, construi şi
documenta componentele unui sistem dinamic, în care o metodă este aplicată ca un
proces pentru a defini şi dezvolta sistemul”. Mai mult, au demonstrat că UML:
• este limbaj folosit pentru comunicare, mijloc de a prezenta cunoştinţe (semantică)
despre sistemul studiat şi de a exprima cunoştinţele (sintactic) privind sistemul studiat în
scopul comunicării.
• este limbaj de modelare ce accentuează înţelegerea sistemului prin definirea unui model
al său şi al contextului în care se dezvoltă.
• îmbină teoria sistemele informatice şi practica domeniilor de activitate concrete;
specifică cerinţele sistemului şi modul în care pot fi ele realizate.
• aplicat în prezentare, poate fi folosit pentru vizualizarea sistemului înainte de a fi
realizat.
67
• aplicat în construirea sistemului, poate fi folosit ca ghid în realizarea unui sistem similar
modelului.
• aplicat în documentarea sistemului poate fi folosit pentru includerea cunoştinţelor
despre sistem în timpul ciclului de viaţă.
Pentru a demonstra că UML nu priveşte doar sistemele orientate obiect, putând fi
aplicat sistemelor în general, în “The Visual Modeling of Software Architecture for the
Enterprise”[BG99], Grady Booch a arătat că modelarea este partea centrală a activităţii
care conduce la proiectarea eficientă a oricărui sistem informatic. Indiferent de domeniu,
pentru rezolvarea problemelor din sistemele reale se construiesc modele pentru o mai
bună înţelegere a sistemului, pentru vizualizarea şi controlul arhitecturii sistemului.
Vizualizarea, specificarea, construirea şi documentarea permit ca el să fie văzut din
diferite perspective. Analiza, dezvoltarea, interogările şi testele referă sistemul în diferite
etape. UML ajută programatorii să înglobeze deciziile semnificative luate la nivel de
sistem şi proiectanţii să controleze dezvoltarea iterativă a sistemului în ciclul său de viaţă.
Pentru definirea limbajului sunt folosite trei documente: UML Semantics, UML
Notation Guide şi UML Extetions.
a) UML Semantics este un model logic, cuprinzând semantica declarativă fără
detaliile de implementare, este documentul principal care descrie limbajul în trei
secţiuni:
• Sintaxa abstractă (Abstract syntax), în care diagramele claselor UML sunt folosite
pentru a defini metamodelul UML, conceptele sale (metaclase), relaţiile şi restricţiile.
Sunt incluse şi definiţiile conceptelor. Metamodelul, modelul elementelor modelate, este
prezentat ca un limbaj pentru specificarea modelului obiect. Scopul metamodelului UML
este să furnizeze un singur, comun şi definitiv sens al sintacticii şi semanticii elementelor
UML.
• Regulile de corectitudine (Well-formedness rules), în care sunt definite regulile şi
restricţiile modelului. Object Constraint Language (OCL) este un limbaj specific care
foloseşte logica simplă pentru specificarea proprietăţilor invariante ale sistemului şi
relaţiile. Este prima contribuţie IBM la UML, dezvoltată în cadrul limbajului de modelare
pentru sistemele informatice din mediile de afaceri. Furnizează facilităţi pentru
formalizarea semanticii limbajului, pentru exprimarea structurii modelului şi a
restricţiilor.
• Semantica (Semantics), în care semnificaţia modelului şi cerinţele suplimentare, non-
funcţionale, sunt specificate ca cerinţe textuale.
În descrierea semanticii sunt folosite tehnici formale, definiţiile sunt prezentate
riguros matematic şi fără ambiguităţi, folosind elemente de calculul predicatelor. Totuşi
68
valoarea acestor definiţii nu are înţeles universal. Chiar dacă se pot demonstra
specificaţiile matematice, nu există căi de a proba aceste specificaţii în contact cu
cerinţele reale din sistem.
b) Notaţia este partea grafică văzută în model, este sintaxa limbajului de modelare.
Notaţia din diagrama claselor defineşte modul în care sunt reprezentate conceptele de
clasă, asociere şi multiplicitate.
UML Notation Guide este un document utilizat practic în toate metodele de
analiză şi proiectare. Este structurat în conformitate cu documentele principale
(diagramele) ce pot fi construite în procesul de aplicare a metodei. UML Notation Guide
descrie notaţiile UML şi furnizează exemple. Face sumarul semanticii UML, definiţiile
fiind însă în UML Semantics. Este o reprezentare la nivelul modelului utilizatorului, care
e semantic o instanţă a metamodelului UML.
c) UML Extensions cuprinde definirea extensiilor UML care sunt posibile prin
folosirea stereotipurilor (Stereotypes), valorilor etichetate (Tagged values) şi restricţiilor
(Constraints). Sunt definite două extensii: UML Extension for the Objectory Process for
Software Engineeering şi UML Extension for Business Modeling.
Se apelează la extensii doar când este necesară introducerea de noi notaţii şi
terminologii. Extensiile nu sunt universal acceptate, înţelese şi suportate. Chiar fără
extensii, UML este complet aplicabil pentru multe tipuri de sisteme, domenii, metode sau
procese. Defineşte un set de concepte pentru dobândirea, partajarea şi utilizarea
cunoştinţelor împreună cu mecanismele de extensibilitate.
Ca limbaj de modelare standardizat este deschis la extensibilitate pe scară largă,
permite îmbunătăţirea tacticii şi strategiei pentru creşterea valorii prin calitate şi reducere
de cost. Permite practicienilor creşterea eficienţei având consistenţă, standardizare şi
instrumente suportate de limbaj de modelare.
Dinamice (comportament)
Statice (structură)
Diagrame de cazuri de utilizare Diagrame de colaborare
Diagrame de clase Diagrame de secvenţe
Diagrame de obiecte Diagrame de stare/tranziţie
Diagrame de componente Diagrame de activităţi
Diagrame de implementare
69
3.4.1 Diagrama cazurilor de utilizare
70
Reprezentare:
Actor participare caz de utilizare
Livrare marfă
Furnizor
Aceeaşi persoană poate juca rolul mai multor actori, iniţiind mai multe cazuri de
utilizare.
Exemplu:
gestionarul unui depozit recepţionează marfa şi o înregistrează în fişa de magazie:
Receptionează
marfa
Gestionar
Inregistrează
marfa
Un caz de utilizare poate avea mai mulţi actori, fiecare cu rolul său.
Exemplu: la încheierea unui contract pentru livrarea mărfurilor participă clientul
şi inginerul de vânzări.
Incheiere
contract
71
Exemple: clientul achită, funcţionarul comercial recepţionează marfa
•• Relaţia de incluziune: o instanţă a cazului de utilizare sursă include şi
comportamentul descris de un alt caz de utilizare. Acest tip de relaţie se foloseşte pentru
simplificarea diagramei cazurilor de utilizare în situaţii complexe.
Exemple: în diagrama cazurilor de utilizare corespunzătoare aprovizionării cu
mărfuri (fig 2.1),
cazul de utilizare – Incheie contract - include şi cazul de utilizare
- Semneaza contract –
cazul de utilizare – Livrare marfa - include şi cazul de utilizare
– Receptioneaza marfa –
cazul de utilizare – Intocmeste Nir- este inclus în cazul de utilizare
– Receptioneaza marfa –
cazul de utilizare –Încheiere contract- definit în sistemul informatic privind
aprovizionarea cu mărfuri include şi cazul de utilizare
-Semnare contract- din acelaşi sistem informatic.
•• Relaţia de extensie: cazul de utilizare sursă poate fi extins cu comportamentul
unui alt caz de utilizare destinaţie. Prin relaţia de extensie, care specifică o posibilitate, o
opţiune, poate fi introdus, sub forma unui caz de utilizare distinct, un nou caz de utilizare.
Exemplu: în diagrama cazurilor de utilizare corespunzătoare aprovizionării cu
mărfuri (fig 2.1 ), cazul de utilizare – Receptioneaza marfa –poate fi extins cu cazul de
utilizare – Returneaza marfa-
Descrierea unui caz de utilizare constă în unul sau mai multe “scenarii”, numite instanţe
ale cazului de utilizare.
Aprovizionare
Incheie contract
<<include>>
Semneaza contract
Furnizor
Livreaza marfa
<<include>>
<<extend>>
<<include>> Returneaza marfqa
Fig 3.1
72
În majoritatea lucrărilor din literatura de specialitate, autorii propun ca descrierea
cazurilor de utilizare să cuprindă:
▪ denumire sau titlu
▪ scop
▪ actori
▪ punct iniţial
▪ punct final
▪ descriere derulare
▪ rezultat măsurabil
Exemplu:
Considerăm cazul de utilizare Analiza documentaţiei depuse din activitatea de
acordare a unui credit pentru o firmă, prezentată în 2.3.1.2.
PCredit
Inspector de credit
Fig.3.2
Descrierea cazului de utilizare -Analiza documentaţiei depuse- este:
Denumire : Analiza documentaţiei depuse
Scop : Calcularea coeficientului de risc
Actori: Inspectorul de credite
Punct iniţial: Inspectorul de credite solicită documentaţia depusă de firmă
Punct final: Obţinerea valorii coeficientului de risc
Descriere derulare:
• inspectorul de credite solicită documentaţia depusă de firmă;
73
• dacă firma este un client al băncii se verifică informaţiile existente despre client;
dacă nu, baza de date este actualizată cu datele generale ale clientului;
• din documentaţie se selectează informaţia care contribuie la calcularea
coeficientului de risc;
• în cazul unui coeficient de risc ridicat, cererea este respinsă;
• se analizează suma cerută de firmă prin comparaţie cu posibilităţile băncii de a
acorda creditul solicitat;
Fig. 3.3
• dacă rezultatul este favorabil (nivel de responsabilitate < 100.000.000) cererea
de credit este admisă şi înregistrată;
Rezultat măsurabil
Cererea de credit este admisă şi înregistrată, sau respinsă
După prezentarea scenariului anterior, cazul de utilizare „Analiza documentaţiei
depuse” poate fi delaliat ca în figura 3.3
74
3.4.2 Diagrama claselor şi diagrama obiectelor
Clasa corespunde semantic entităţilor din sistemul real. O clasă desemnează un
grup de obiecte care au proprietăţi similare (atribute), un comportament comun (operaţii),
relaţii comune cu alte obiecte şi o aceeaşi semantică.
Obiectele sunt considerate instanţe ale clasei, fiind construite pornind de la clase,
printr-un proces de instanţiere. Un obiect are o identitate ce-l distinge de celelalte obiecte
şi este caracterizat printr-un ansamblu de atribute şi un anumit comportament.
75
401_furnizor : Furnizori
76
Fig. 3.4
77
componentei la întreg se poate specifica şi multiplicitatea fiecărei componente faţă de
întreg. Acest mod de a defini agregarea îi conferă statutul de formă specială a asocierii.
CContract
NrContract : integer
contracteaza DataContract : integer
CFurnizor TermenContract : integer
* contineC
IncarcaContract()
FDenumire : string ConsultaContract() 1..* MarfaContract
FLocalitate : string ValoareContract() CantContract : integer
AdaugaFurnizor() PretContractttribute : integer
AfiseazaLocalitate()
corespunde ValM arfaContract()
M odificaFurnizor()
* corespundeC
livreaza
CMarfa
CFactura
* DenumireM arfa : string
NrFactura : integer UM M arfa : string
DataFactura : string ModificaDenumire()
TvaFactura()
ValFactura()
corspundeF
contineF
*
MarfaFactura
1..*
CantFactura : real
Pretfactura : real
ValM arfaFactura()
fig 3.5
78
Materiale 3: transfer(BPTR)
2: depozitare (NRCD)
Gestiune
Fig3.6
Pentru a evidenţia declanşarea interacţiunilor de către un element extern
sistemului, în diagramele de colaborare pot fi cuprinşi actori. Fără a se intra în detaliile
obiectelor de interfaţă cu utilizatorul, în acest caz primul mesaj de interacţiune este trimis
de actor.
În faza de analiză, diagramele de colaborare urmăresc scenarii definite pornind de
la cazurile de utilizare.
Exemplu:
în sistemul informatic privind vânzarea produselor, se poate defini o diagramă de
colaborare între obiectele claselor Clienţi, Facturi şi DocumenteÎncasare, pentru a
reprezenta modul în care au fost încasate facturile emise pentru clienţi (fig.3.7 )
Clienti
Facturi
DenumireClient : string *
NrFactura : integer
ContBanca : integer
Datafactura : string
StareFactura : char
ValoareFactura()
DocIncasare
IdDocument : integer
Suma : real
IdClient : undefined
AfiseazaClient()
Afiseaza Factura()
Fig 3.7
În faza de proiectare, diagrama de colaborare furnizează un punct de vedere
complet al dinamicii sistemului, evidenţiind comportamentul claselor ca răspuns la
apariţia unor evenimente, noi operaţii şi clasele cărora le aparţin.
Colaborările definite pentru a urmării anumite cerinţe ale utilizatorilor pot
conduce la apariţia sau dispariţia unor obiecte, la modificarea proprietăţilor unui obiect,
la actualizarea restricţiilor de integritate sau la modificarea relaţiilor dintre obiecte. În
cazul în care obiecte aparţinând aceleiaşi clase participă la colaborări diferite, în funcţiile
79
de scenarii diferite ale aceluiaşi caz de utilizare, se pot specifica împreună cu mesajele
condiţii ce aduc detalii suplimentare pentru implementare.
Exemplu:
în sistemul informatic privind aprovizionarea cu mărfuri, succesiunea operaţiilor de la
formularea unei cereri de marfă şi până la livrarea efectivă a mărfii poate fi prezentată în
diagrama de secvenţe din figura 3.8
CereMarfa
Confirma
TrimiteFactura
LivreazaMarfa
80
fig 3.8
Exemplu:
în sistemul informatic privind gestiunea stocurilor, starea curentă a unui tip de material
poate fi: în aprovizionare, depozitat în gestiune, sau în consum la secţie. Este determinată
de valoarea atributului document, ce conţine numele documentului pe care materialul este
consemnat la un moment dat.
Dacă documentul este “Nir”, clasa Material este asociată cu clasa Gestiune prin asocierea
Depozitat în.
81
1..* document
Exemplu:
în sistemul informatic privind aprovizionarea, diagrama de stări pentru o factură este cea
din figura 3.9
:
acceptare
82
Sosita Inregistrata
Do: ConsultaFz livrare Do: IncarcaDateFz
: VerificaFz : IncarcaDateFact
[sume OP<ValFact]
In curs de achitare
achitare parţială Do: CalcValFact
:AfisezAchitat
: SumePartiale
[sume OP=ValFact]
Achitată
Do: ListaSume
: AfiseazaData
: SeteazaStare
fig 3.9
83
sistemul informatic privind aprovizionarea, sau poate însoţi diagrama de secvenţe din cadrul aceluiaşi
sistem informatic.
se inregistreaza factura
se verifica marfa
Fig 3.10
84
3.5 Modelul sistemului real şi diagramele UML
85
Funcţionalitatea întregului sistem este dată de mulţimea cazurilor de utilizare, grupate
într-o diagramă a cazurilor de utilizare.
Diagrama cazurilor de utilizare, reprezentare a legăturii între actori şi cazurile de
utilizare corespunzătoare, constituie o descriere funcţională a cerinţelor, structurată în
raport cu unul sau mai mulţi actori. În etapa definirii cazurilor de utilizare nu există
obiecte. Trecerea la o structură obiect se face determinând obiectele care colaborează
pentru a obţine funcţionalitatea descrisă de diferitele cazuri de utilizare. Pentru aceasta se
urmăresc diferite scenarii posibile, privite ca instanţe ale cazurilor de utilizare. Se obţin
diagrame obiect şi diagrame de secvenţe. Pentru cazurile algoritmilor complecşi se
definesc diagrame de stare şi diagrame de activităţi.
Abordând modul în care funcţionalitatea sistemului este realizată cu ajutorul
diagramelor UML, mulţi autori consideră că există două importante diagrame: diagrama
cazurilor de utilizare şi diagrama claselor. Cerinţele utilizatorilor se regăsesc în diagrama
cazurilor de utilizare. Funcţionalitatea sistemului exprimată în aceste cerinţe este
transformată de analiştii de sistem într-un model alcătuit din clase şi relaţii între ele.
Celelalte diagrame sunt subordonate diagramei claselor şi folosesc elemente şi
instrumente ale metodologiei orientate obiect pentru a completa modelul claselor:
▪ diagramele de activităţi şi de stări aduc detalii suplimentare privind
comportamentul obiectelor din clase.
▪ diagramele de colaborări şi de secvenţe detaliază interacţiunea între clase.
▪ diagramele de activităţi cuprind elemente necesare pentru implementarea claselor.
86
▪ modelul funcţional prezintă înţelesul operaţiilor şi al restricţiilor din modelul obiect,
înţelesul acţiunilor şi activităţilor din modelul dinamic
Toate cele trei modele sunt supuse unor restricţii, ce arată relaţiile fie dintre două
obiecte la un acelaşi moment de timp, fie între valori ale aceluiaşi obiect la momente de
timp diferite. Restricţiile pot fi asupra obiectelor, caz în care arată dependenţa parţială sau
totală a unor obiecte de altele, pot fi asupra stărilor din modelul dinamic, sau pot
specifica restricţii asupra operaţiilor din modelul funcţional.
Dimensiunea statică vizează structura sistemului, componentele şi relaţiile dintre
ele. Este evidenţiată prin diagrama claselor şi diagrama obiectelor. Aceste diagrame
suferă modificări de-a lungul ciclului de viaţă al sistemului, conducând în final la un
model al sistemului real, complet implementabil cu ajutorul limbajelor orientate obiect
(C++ , Visual Basic).
Înţelegerea unui sistem nu se poate însă limita doar la evidenţierea componentelor
şi a relaţiilor dintre ele. Pentru a surprinde partea dinamică, dependentă de timp, se
definesc noi diagrame: diagrame de colaborare, diagrame de stare şi diagrame de
secvenţe. Pentru obiectele care colaborează, acestea arată care sunt şi cum se modifică
stările unui obiect, evenimentele care cauzează în timp tranziţia de la o stare la alta.
Evidenţiază secvenţele de operaţii ce apar ca răspuns la stimuli externi, fără a lua în
calcul ce face operaţia şi cum este ea implementată.
Dimensiunea dinamică a sistemului este prezentată prin prisma evenimentelor
percepute de sistem. Apariţia sau dispariţia unor obiecte, modificarea proprietăţilor unui
obiect, actualizarea restricţiilor de integritate sau schimbarea relaţiilor dintre obiecte, sunt
doar câteva din modificărilor generate în timp de apariţia unor evenimente.
Aspectul funcţional vizează fluxurile de date care circulă între diferiţi actori ai
sistemului. Descrie ce se întâmplă în sistem şi este reprezentat cu ajutorul diagramelor
cazurilor de utilizare, al diagramelor de activităţi şi de componente.
În plus, evidenţierea aspectului funcţional presupune identificarea datelor de
intrare şi a datelor de ieşire din sistem, definirea procedurilor de prelucrare a datelor,
identificarea restricţiilor şi precizarea criteriilor de optimizare.
87
Parcurgerea ciclului de viaţă al sistemului înseamnă revedere, detaliere,
completare a modelelor existente la un moment dat. Confirmă faptul că modelele
orientate obiect se dezvoltă în spirală.
Definite pentru sisteme noi, sau pentru a permite evoluţia celor existente,
diagrama cazurilor de utilizare constituie pe parcursul etapelor de analiză şi proiectare
cadrul de referinţă comun. Constituie punctul iniţial în stabilirea cerinţelor proiectării şi
formează bază pentru testarea şi verificarea sistemului obţinut.
Modelele obţinute în diferite etape sunt reprezentate prin diagrame de diferite
tipuri, între care există legături de moment determinate de context. În faze care se succed,
fiecare model aduce o perspectivă diferită asupra sistemului, adaugă noi elemente
imaginilor precedente, până în final, când se ajunge la o viziune de ansamblu a stadiilor
prin care va trece sistemul.
Definirea modelelor nu este o activitate liniară, în sensul că diagramele definite într-o
etapă pot fi modificate în alta. Înlănţuirea şi interacţiunea modelelor are loc pe tot
parcursul definirii sistemului:
▪▪ în faza de definire a cerinţelor se stabilesc cerinţele funcţionale ale sistemului cu
ajutorul diagramelor cazurilor de utilizare
▪▪ rezultatele etapei de analiză se concretizează într-o diagramă a claselor şi în diagrame
de comportament (de secvenţe şi de activităţi)
▪▪ în etapa de proiectare sunt definite noi clase, se renunţă la clase care nu au relevanţă,
sunt evidenţiate relaţii suplimentare între clase. Clasele definite pentru mai multe cazuri
de utilizare sunt integrate într-o structură unică. Se definesc diagrame de stare, se adaugă
detalii necesare implementării în modelul claselor.
O aceeaşi diagramă poate fi folosită în scopuri diferite pe parcursul ciclului de
viaţă:
▪ diagrama de activităţi este ataşată în faza de analiză unui caz de utilizare şi serveşte în
faza de implementare la definirea schemelor logice de program, la descrierea detaliată a
operaţiilor. Componentele se traduc în fraze SQL sau în instrucţiuni de program şi
contribuie la definirea structurii claselor.
▪ diagramele obiect sunt folosite în etapa de analiză pentru abstractizarea modelului, şi în
faza de proiectare pentru introducerea detaliilor necesare implementării.
Probleme şi soluţii
88
2. Care din afirmaţiile următoare este falsă ?
a) Identitatea unui obiect este acea proprietate a obiectului care îl distinge de alte
obiecte.
b) Obiectul este definit de un identificator intern unic, independent de valoarea sau
de adresa de memorie a obiectului.
c) Identificatorul este controlat direct de programator. Se exprimă prin diferitele
nume utilizate de programator pentru a-l numi.
]
3. Care din afirmaţiile următoare este adevărată ?
a) Identitatea este o abstracţie a valorilor atributelor şi a legăturilor unui obiect.
b) Starea obiectului reprezintă mulţimea valorilor tuturor atributelor şi legăturilor
sale la un moment dat.
c) Identitatea este adesea asociată cu valoarea unui obiect satisfăcând anumite
condiţii.
89
7. Care din afirmaţiile următoare este adevărată ?
a) Încapsularea este un proces de grupare a elementelor unei clase în elemente
accesibile din exterior şi elemente proprii.
b) Moştenirea permite separarea aspectului extern, accesibil altor obiecte, de
implementarea internă.
c) Abstractizarea oferă posibilitatea de a masca atributele proprii ale unui obiect,
precum şi modul în care se execută operaţiile.
90
b) Partajarea atributelor şi operaţiilor între clase, de-a lungul unei ierarhii între clase
şi subclase este evidenţiată cu ajutorul conceptului de generalizare.
c) Moştenirea permite constituirea de noi tipuri de obiecte şi clase, evitând rescrierea
şi recodificarea.
DOCUMEN
CONTRACT FACTURĂ
DOCUMEN
CONTRACT FACTURĂ
91
c) Actorii sunt elementele din sistem care generează sau primesc evenimente.
92
b) Ataşată unei clase, diagrama de activităţi detaliază acţiunile şi procesele unui caz
de utilizare
c) Ataşată unui caz de utilizare, diagrama de activităţi descrie tranziţia de la o stare
la alta sau algoritmul de prelucrare al operaţiilor.
93
a) Diagrama de stări vizează structura sistemului, componentele şi relaţiile dintre
ele.
b) Dimensiunea statică este evidenţiată prin diagrama de activităţi şi diagrama de
secvenţe.
c) Diagrama cazurilor de utilizare constituie pe parcursul etapelor de analiză şi
proiectare cadrul de referinţă comun.
27. Care din afirmaţiile următoare este falsă ?
a) Aspectul funcţional este reprezentat cu ajutorul diagramelor cazurilor de utilizare
şi al diagramelor obiect.
b) Diagrama cazurilor de utilizare constituie punctul iniţial în stabilirea cerinţelor
proiectării şi formează bază pentru testarea şi verificarea sistemului obţinut.
c) O aceeaşi diagramă poate fi folosită în scopuri diferite pe parcursul ciclului de
viaţă al unui sistem.
Rezolvare
1-c 2-c 3-b 4-a 5-c 6-c 7-a 8-c 9-c 10-a 11-a 12-c
13-c 14-b 15-b 16-c 17-b 18-c 19-c 20-a 21-c 22-b 23-a
24-b 25-b 26-c 27-b
94
BIBLIOGRAFIE
95