Sisteme informaţionale financiar-contabile II
- suport de curs -
Contabilitate şi informatică de gestiune, anul 3, ID
Semestrul 2, an universitar 2018-2019
Prof. Univ. Dr. Dumitru OPREA
Prof. Univ. Dr. Florin DUMITRIU
Prof. Univ. Dr. Gabriela Meşniţă
CUPRINS
Introducere ......................................................................................................................................... 5
Unitatea de studiu 1 ........................................................................................................................... 8
Elemente generale privind formularele/formatele şi rapoartele......................................................... 8
1.1 Aspecte generale ale proiectării formularelor/formatelor şi a rapoartelor ..................... 9
1.2 Caracteristicile generale şi clasificarea ieşirilor ............................................................... 10
1.2.1 Scopul ieşirilor ................................................................................................................ 11
1.2.2 Destinatarii ieşirilor ........................................................................................................ 12
1.2.3 Frecvenţa ieşirilor ........................................................................................................... 13
1.2.4 Formatul ieşirilor............................................................................................................. 15
1.2.5 Conţinutul........................................................................................................................ 15
1.2.6 Sursa datelor.................................................................................................................... 18
1.2.7 Mediul de generare şi transmitere a ieşirilor .................................................................. 19
1.2.8 Controlul confidenţialităţii, integrităţii şi accesibilităţii ieşirilor ................................... 21
1.2.9 Caracteristicile informaţiilor şi nivelurile decizionale ................................................... 22
1.3 Răspunsuri la testele de autoevaluare ................................................................................ 22
1.4 Lucrare de verificare ........................................................................................................... 23
1.5 Bibliografie ........................................................................................................................... 23
Unitatea de studiu 2 ......................................................................................................................... 24
Proiectarea formularelor/formatelor şi a rapoartelor ....................................................................... 24
2.1 Reguli de proiectare a formularelor/formatelor şi a rapoartelor ................................... 24
2.1.1 Recomandări generale de formatare................................................................................ 25
2.1.2 Scoaterea în evidenţă a informaţiilor .............................................................................. 26
2.1.3 Reguli specifice de proiectare a rapoartelor în formă tabelară ....................................... 29
2.1.4 Reguli specifice de proiectare a graficelor...................................................................... 33
2.1.5 Reguli pentru controlul confidenţialităţii, integrităţii şi accesibilităţii ieşirilor ............. 34
2.2 Demersul proiectării ieşirilor.............................................................................................. 36
2.3 Formularea specificaţiilor de proiectare a ieşirilor .......................................................... 38
2.4 Răspunsuri la testele de autoevaluare ................................................................................ 39
2.5 Lucrare de verificare ........................................................................................................... 40
2.6 Bibliografie ........................................................................................................................... 40
Unitatea de studiu 3 ......................................................................................................................... 41
Concepte generale privind interfeţelor utilizator ............................................................................. 41
3.1 Rolul interfeţelor utilizator în dezvoltarea sistemelor informaţionale ........................... 42
3.1.1 Definirea conceptului de interfaţă................................................................................... 42
3.1.2 Identificarea interfeţelor utilizator .................................................................................. 44
3.2 Metode şi echipamente folosite în dialogul om-calculator ............................................... 46
3.2.1 Metode de interacţiune om-calculator............................................................................. 47
3.2.2 Selectarea echipamentelor necesare interacţiunii cu sistemul ........................................ 55
3.3 Răspunsuri la testele de autoevaluare ................................................................................ 56
3.4 Lucrare de verificare ........................................................................................................... 57
3.5 Bibliografie ........................................................................................................................... 57
Unitatea de studiu 4 ......................................................................................................................... 58
Principii de lucru în proiectarea interfeţelor utilizator .................................................................... 58
4.1 Controlul aplicaţiei de către utilizator ............................................................................... 60
4.1.1 Principiul utilizării judicioase a modurilor de lucru ....................................................... 61
4.1.2 Principiul retroacţiunii (feed-back) imediate .................................................................. 63
4.1.3 Principiul pǎstrării stilului de lucru al utilizatorilor ....................................................... 63
4.1.4 Principiul alegerii între utilizarea tastaturii şi/sau a mouse-ului .................................... 63
4.1.5 Principiul asigurării transparenţei detaliilor de proiectare a programelor şi a bazei de
date ........................................................................................................................................... 64
4.2 Reducerea volumului de informaţii pe care trebuie sǎ le memoreze utilizatorul .......... 65
3
4.2.1 Principiul degrevării utilizatorului de memorarea, pe termen scurt, a unor informaţii .. 65
4.2.2 Principiul interfeţei orientate pe recunoaştere, nu pe amintire ....................................... 66
4.2.3 Principiul prevederii formelor scurte de lucru ................................................................ 66
4.2.4 Principiul relevanţei vizuale............................................................................................ 66
4.3 Uniformitatea interfeţelor utilizator .................................................................................. 67
4.3.1 Principiul uniformitǎţii modului de prezentare a interfeţei ............................................ 68
4.3.2 Principiul uniformitǎţii în comportamentul interfeţei ..................................................... 68
4.3.3 Principiul uniformităţii interacţiunii cu interfaţa utilizator ............................................ 69
4.4 Răspunsuri la testele de autoevaluare ................................................................................ 69
4.5 Lucrare de verificare ........................................................................................................... 69
4.6 Bibliografie ........................................................................................................................... 70
Unitatea de studiu 5 ......................................................................................................................... 71
Demersul proiectării interfeţelor utilizator. Controlul datelor în interfeţele utilizator .................... 71
5.1 Demersul proiectării interfeţelor utilizator ....................................................................... 71
5.1.1 Culegerea şi analiza informaţiilor de la utilizatori.......................................................... 74
5.1.2 Proiectarea interfeţei utilizator........................................................................................ 76
5.1.3 Construirea interfeţei utilizator ....................................................................................... 80
5.1.4 Evaluarea şi validarea interfeţei utilizator ...................................................................... 82
5.2 Reguli de proiectare a meniurilor ...................................................................................... 83
5.3 Aspecte privind proiectarea interfeţelor web.................................................................... 84
5.4 Controlul datelor în interfeţele utilizator .......................................................................... 85
5.5 Formularea specificaţiilor de proiectare a interfeţelor .................................................... 88
5.6 Răspunsuri la testele de autoevaluare ................................................................................ 88
5.7 Lucrare de verificare ........................................................................................................... 89
5.8 Bibliografie ........................................................................................................................... 89
Unitatea de studiu 6 ......................................................................................................................... 90
Concepte de bază privind modelarea logică a datelor...................................................................... 90
6.1 Locul modelării logice a datelor în ciclul de viaţă al sistemelor ...................................... 91
6.2 Concepte de bază utilizate în modelul relaţional .............................................................. 92
6.3 Demersul proiectării logice a bazelor de date ................................................................... 96
6.4 Răspunsuri la testele de autoevaluare ................................................................................ 97
6.5 Lucrare de verificare ........................................................................................................... 97
6.6 Bibliografie ........................................................................................................................... 98
Unitatea de studiu 7 ......................................................................................................................... 99
Transformarea diagramelor entitate-relaţie în relaţii ale bazei de date ........................................... 99
7.1 Reprezentarea entităţilor .................................................................................................. 100
7.2 Reprezentarea legăturilor ................................................................................................. 101
7.2.1 Reprezentarea legăturilor binare 1:N şi 1:1 .................................................................. 101
7.2.2 Reprezentarea legăturile binare de tip M:N şi a celor ternare ...................................... 103
7.2.3 Reprezentarea legăturilor unare .................................................................................... 106
7.3 Răspunsuri la testele de autoevaluare .............................................................................. 110
7.4 Lucrare de verificare ......................................................................................................... 110
7.5 Bibliografie ......................................................................................................................... 110
Unitatea de studiu 8 ....................................................................................................................... 111
Proiectarea programelor şi a procedurilor...................................................................................... 111
8.1 Aspecte generale ale proiectării programelor şi procedurilor....................................... 111
8.1.1 Definirea arhitecturii programelor ................................................................................ 112
8.1.2 Structurile de control ale programelor .......................................................................... 113
8.2 Răspunsuri la testele de autoevaluare .............................................................................. 118
8.3 Lucrare de verificare ......................................................................................................... 118
8.4 Bibliografie ......................................................................................................................... 118
4 SISTEME INFORMAŢIONALE FINANCIAR-CONTABILE II
Unitatea de studiu 9 ....................................................................................................................... 119
Implementarea sistemului. Testarea sistemelor informaţionale..................................................... 119
9.1 Planificarea implementării................................................................................................ 120
9.2 Testarea sistemelor informaţionale .................................................................................. 121
9.2.1 Aspecte generale privind organizarea testării sistemelor.............................................. 121
9.2.2 Tehnici de testare .......................................................................................................... 124
9.2.3 Strategia testării sistemelor informatice........................................................................ 128
9.3 Răspunsuri la testele de autoevaluare .............................................................................. 132
9.4 Lucrare de verificare ......................................................................................................... 133
9.5 Bibliografie ......................................................................................................................... 133
Unitatea de studiu 10 ..................................................................................................................... 134
Implementarea sistemului. Documentarea şi conversia sistemului................................................ 134
10.1 Documentarea sistemului ................................................................................................ 134
10.1.1 Consideraţii generale privind documentarea sistemului ............................................. 135
10.1.2 Documentaţia utilizatorului......................................................................................... 137
10.2 Selectarea şi instruirea personalului .............................................................................. 140
10.2.1 Participanţii la instruire............................................................................................... 140
10.2.2 Organizarea activităţilor de instruire .......................................................................... 141
10.3 Conversia sistemului ........................................................................................................ 144
10.4 Răspunsuri la testele de autoevaluare ............................................................................ 145
10.5 Lucrare de verificare ....................................................................................................... 146
10.6 Bibliografie ....................................................................................................................... 146
Bibliografie ............................................................................................................................... 147
5
Introducere
Disciplina Sisteme informaţionale financiar-contabile II este o continuare a disciplinei
Sisteme informaţionale financiar-contabile I pe linia ciclului de viaţă al dezvoltării
sistemelor informaţionale financiar-contabile. Ea îşi propune să integreze cunoştinţele şi
abilităţile dobândite de către studenţi la disciplinele din domeniul financiar-contabil cu cele
din domeniul informaticii, studiate anterior, şi să le ofere cadrul de transpunere a cerinţelor
informaţionale în componente ale sistemului informaţional contabil, precum : rapoarte,
ecrane pentru introducerea datelor, schema logică a bazei de date, arhitectura sistemului,
documentaţia sistemului. Conţinutul cursului tratează doar acele faze şi activităţi ale ciclului
de viaţă în care economiştii joacă un rol important.
Obiectivele principale ale disciplinei sunt:
Alte exemple de rapoarte declanşate de excepţii sunt: „Lista stocurilor fără mişcare sau
cu mişcare lentă”, „Situaţia rebuturilor înregistrate în procesul de producţie”, „Lista
clienţilor cu creanţe scadente neachitate”, „Lista imputaţiilor pentru lipsă din gestiune”.
Rapoartele la cerere au, de asemenea, conţinut şi formă predeterminate, dar sunt
elaborate numai ca răspuns la cererea managerilor.
Rapoartele declanşate de excepţii şi cele la cerere dau puterea sistemelor informaţionale
de a fi eficiente în sprijinirea conducerii.
Teste de autoevaluare
TA 1.2
1. Prezentaţi caracteriticile rapoartelor declanşate de excepţii.
2. Realizaţi o comparaţie între rapoartele programate şi cele neprogramate.
3. Daţi câte un exemplu de rapoarte programate şi declanşate de excepţii din domeniul
contabilităţii.
Răspuns:
15
1.2.4 Formatul ieşirilor
Această caracteristică este considerată adesea drept cea mai importantă. Ea defineşte
informaţiile ce vor fi incluse într-un document sau raport, în funcţie de scopul utilizării lor.
Se spune că managerii au nevoie de şase categorii mari de informaţii1: curente, de
atenţionare, indicatori de bază, situaţionale, clevetiri (bârfe), externe.
Principalele atribute calitative ale ieşirilor, din punctul de vedere al conţinutului, sunt
exactitatea şi exhaustivitatea informaţiilor. Utilizatorilor trebuie să li se furnizeze doar
acele informaţii de care are nevoie, fără a-i sufoca cu un şuvoi informaţional din care să fie
incapabili să deceleze informaţia necesară sau să le solicite eforturi inutile şi păguboase. De
asemenea, dacă se furnizează prea puţine informaţii, atunci raportul nu va mai fi de folos
utilizatorilor.
Prin prisma gradului de detaliere a informaţiilor conţinute, rapoartele pot fi detaliate,
de sinteză sau dinamice.
Rapoartele detaliate conţin informaţii cu un nivel minim de agregare şi filtrare, fiind
utilizate în activitatea de zi cu zi de către angajaţii din firmă. De regulă, în astfel de
rapoarte se include câte o linie pentru fiecare înregistrare prelucrată din baza de date. Unele
rapoarte detaliate pot conţine informaţii referitoare la o singură tranzacţie sau obiect; în
„Fişa analitică” a unui client se reţine câte o linie pentru fiecare înregistrare din baza de
date care priveşte o livrare sau o încasare pentru acel client. Alte rapoarte prezintă un grup
de tranzacţii. De exemplu, „Situaţia lunară a vânzărilor” poate conţine câte o line pentru
fiecare document de livrare emis în luna respectivă, şi pentru fiecare produs cuprins în
document.
1. Alter, S. – Op. cit., pp. 147-148; Mintzberg, H. – „The Manager’s Job: Folklore and Fact”, in Harvard Business
Review 53, nr. 4, July-August 1975, pp. 49-61.
16 SISTEME INFORMAŢIONALE FINANCIAR-CONTABILE II
O bună proiectare a rapoartelor detaliate implică, de cele mai multe ori, prevederea
unuia sau mai multor niveluri de total. În „Situaţia lunară a vânzărilor”, datele pot fi
grupate pe clienţi şi pe documente, fiind prevăzute, în afara totalului general, totalul
vânzărilor pe clienţi şi totalul valoric pentru fiecare document, în literatura de specialitate
fiind cunoscute ca sume de control major, intermediar şi minor.
Rapoartele de sinteză sunt generate pentru a oferi utilizatorilor informaţii agregate şi
filtrate, fără a mai fi prezentate unele detalii, care nu le sunt necesare. Înformaţiile conţinute
în aceste rapoarte sunt obţinute prin prelucrarea şi însumarea înregistrărilor din baza de
date, iar fraza SELECT, prin care se extrag şi se prelucrează datele necesare, va include
clauza GROUP BY.
Rapoartele de sinteză sunt utilizate, de regulă, de către managerii de pe nivelurile
superioare de conducere. Directorul de vânzări poate fi interesat de „Situaţia lunară a
vânzărilor”, numai că informaţiile vor fi prezentate la un nivel de agregare superior celui
discutat anterior. Dacă este solicitată „Situaţia vânzărilor pe clienţi”, atunci raportul va
conţine câte o linie pentru fiecare client, în care sunt însumate toate documentele de livrare
pentru un client. „Raportul vânzărilor lunare” presupune un nivel de agregare şi mai mare,
reţinându-se câte o linie pentru fiecare lună calendaristică, care va conţine totalul vânzărilor
din luna respectivă.
Rapoartele dinamice presupun combinarea rapoartelor de sinteză cu cele detaliate, însă
ele pot fi afişate doar pe ecran. Aceste rapoarte oferă utilizatorului posibilitatea schimbării
interactive a nivelului de detaliere a informaţiilor, dacă ele sunt proiectate în acest sens.
Rapoartele dinamice pot fi create pe baza a două tehnici: „drill up-drill down” şi cea
bazată pe legare.
Prin tehnica drill up-drill down, informaţiile, organizate după o anumită ierarhie, pot fi
afişate pe diferite niveluri de detaliere, aranjate în cascadă. Aceste tipuri de rapoarte sunt
frecvent întâlnite în aplicaţiile OLAP (On-Line Analytical Processing), care extrag datele
stocate în depozite de date (data warehouse) sau baze de date multidimensionale, şi care
sunt utilizate în analize multidimensionale.
„Raportul privind situaţia profitului” din figura 1.2 este prezentat la nivelul maxim de
detaliere pentru primele trei trimestre, însă el poate fi reconfigurat de către utilizator, astfel
încât să fie afişate numai informaţiile la nivel de trimestre sau ani. Selectarea cu mouse-ul a
„minusului” din partea stânga va determina ascunderea detaliilor de pe nivelurile inferioare,
similar cu parcurgerea structurii de directoare în Windows Explorer, operaţiune numită
drill-up. În locul semnului „minus” va apărea semnul „plus” , prin selectarea căruia se va
reveni la afisarea detaliilor de pe nivelul imediat inferior, operaţiune numită drill- down.
Afişarea datelor detaliate pe lunile trimestrului IV se poate face prin selectarea cu mouse-ul
a „plusului” din dreapta. De exemplu, pentru afişarea doar a informaţiilor relative la cele
patru trimestre ale anului 1999 vor trebui selectate cele patru „minusuri”, situate în partea
stângă a liniilor aferente.
17
Fig. 1.2 Exemplu de raport ce utilizează tehnica „drill up-drill down”
Cea de-a doua tehnică presupune legarea rapoartelor, în mod asemănător cu
documentele accesate pe Internet cu ajutorul browser-elor. Această tehnică permite
utilizatorilor să coreleze informaţiile dintr-un raport cu un altul mai detaliat. În figura 1.3
este prezentată „Balanţa analitică a stocurilor de materiale”, iar prin apăsarea tastei
<ENTER> sau efectuarea „dublu clic” pe linia curentă se poate declanşa afişarea „Fişei
analitice” pentru materialul corespunzător. În fişă pot fi vizualizate toate intrările şi ieşirile
din stoc pentru acel material, în perioada curentă. Aceeaşi tehnică poate fi utilizată pentru
legarea unui raport sintetic, privind vânzările lunare pe categorii de produse, de un altul,
detaliat, în care să fie prezentate vânzările lunare pentru o anumită categorie, însă pe
fiecare produs în parte.
Biroul Contabilitate
Balanţa analitică a stocurilor pe luna aprilie 2005
Gestiunea: Materii prime şi materiale
Nr. Cod Denumire UM Pret Stoc Sold Intrari Ieşiri Stoc Sold
crt. material material iniţial iniţial Cantitativ Valoric Cantitativ Valoric final final
1 220006 Balama tip banda buc 188.500 122 22.997.000 75 14.137.500 112 21.112.000 85 16.022.500
2 220014 Ornament Bis buc 74.320 35 2.601.200 40 2.972.800 25 1.858.000 50 3.716.000
3 220022 Broasca simpla buc 98.100 50 4.905.000 88 8.632.800 98 9.613.800 40 3.924.000
4 220037 Furnir stejar mp 212.000
212.000 115 24.380.000 220 46.640.000 235 49.820.000 100 21.200.000
5 220045 Furnir cires mp 179.500 25 4.487.500 33 5.923.500 30 5.385.000 28 5.026.000
6 220053 Lac kg 23.500 360 8.460.000 864 20.304.000 982 23.077.000 242 5.687.000
7 220061 Bait luciu kg 31.200 88 2.745.600 110 3.432.000 120 3.744.000 78 2.433.600
Fig. 1.3 Exemplu de utilizare a tehnicii legării rapoartelor
Un alt aspect dinamic al rapoartelor afişate pe ecran constă în posibilitatea vizualizării
datelor din perspective diferite. De exemplu, situaţia vânzărilor poate fi afişată pe regiuni şi
categorii de produse sau pe regiuni şi pe perioade de timp.
18 SISTEME INFORMAŢIONALE FINANCIAR-CONTABILE II
Rapoartele tipărite pot fi şi ele organizate într-o manieră asemănătoare celor dinamice,
însă costurile vor fi mult mai mari, ceea ce poate afecta eficienţa informaţiilor furnizate.
O altă specificaţie de proiectare, strâns legată de conţinutul rapoartelor, este secvenţa
sau ordinea de prezentare informaţiilor. Alegerea ordinii de prezentare depinde de scopul
ieşirilor. Optarea pentru criterii de ordonare neadecvate poate determina eşecuri în atingerea
scopului urmărit. De exemplu, ordonarea alfabetică a „Situaţiei costurilor” după denumirea
elementelor de cost nu va evidenţia elementele care înregistrează un nivel mare al
costurilor, iar utilizatorul poate fi indus în eroare dacă el trebuie să ia unele decizii
privind reducerea costurilor. În plus, oamenii au tendinţa de a acorda o atenţie mai mare
acelor elemente care sunt prezentate în prima parte a rapoartelor.
De multe ori, satisfacerea unor cerinţe diverse impune ca în acelaşi raport datele să fie
ordonate după unele criterii sau altele. De exemplu, „Balanţa analitică a stocurilor” poate
să aibă datele ordonate pe gestiuni, dacă ea va fi utilizată pentru verificarea fişelor de
magazie, sau pe conturi de evidenţă, dacă se verifică corectitudinea înregistrărilor în
contabilitate, prin compararea ei cu „Balanţa de verificare sintetică”. Diferitele cerinţe de
ordonare pentru acelaşi raport necesită proiectarea unei secvenţe de dialoguri, prin care
utilizatorul să poată alege criteriile de ordonare. Problematica proiectării dialogurilor va fi
tratată în capitolul următor.
Teste de autoevaluare
TA 1.3
1. Descrieţi, pe scurt, tehnica drill-up/drill-down de creare a rapoartelor dinamice.
2. Enumeraţi specificaţiile de proiectare privind conţinutul rapoartelor.
3. Daţi un exemplu de raport în care să puneţi în evidenţă legătura dintre ordinea de
prezentare a informaţiilor şi scopul raportului.
Răspuns:
1.2.6 Sursa datelor
Tabel nr. 1.2 – Surse comune ale informaţiilor
Surse de informaţii
Tip informaţie
Interne Externe
Formală (oficială), bazată Indicatorii principali obţinuţi din Baze de date publice
pe s.p.a.d. diverse sisteme de evidenţă ale firmei
Formală (oficială), bazată Planuri, rapoarte, procese-verbale ş.a. Rapoarte pe ramuri, cărţi, reviste
pe documente
Formală (oficială), verbal şedinţe programate Forumuri pe domenii
Informală Conversaţiile la masă, culese pe timpul Expoziţii, târguri, contacte
deplasărilor ş.a. personale ş.a.
1.2.7 Mediul de generare şi transmitere a ieşirilor
Ieşirile tipărite
Deşi, de mai mulţi ani, se vorbeşte despre biroul „fără hârtie” sau biroul digital, având
drept argumente progresele înregistrate în domeniul tranzacţiilor şi al documentelor
electronice, forma tipărită rămâne cea mai frecvent utilizată. Ieşirile tipărite au avantajul de
a fi „portabile”, mai comode, motive pentru care cei mai mulţi utilizatori vizualizează mai
întâi un raport pe ecran, după care îl tipăresc. În unele cazuri tipărirea constituie încă
singura formă viabilă de generare a ieşirilor, cum este cazul facturilor sau cel al
documentelor în circuit.
Desigur că utilizarea hârtiei pentru generarea ieşirilor creează unele probleme
organizaţiilor, dar şi mediului înconjurător. Cheltuielile privind obţinerea, arhivarea şi
regăsirea informaţiilor stocate pe hârtie sunt mult superioare celorlalte forme. De aceea,
multe firme îşi pun problema transpunerii documentelor din formatul pe hârtie în cel
20 SISTEME INFORMAŢIONALE FINANCIAR-CONTABILE II
electronic, de exemplu prin utilizarea scanner-elor, urmărind reducerea cheltuielilor şi
regăsirea mai rapidă a informaţiilor.
Datorită progreselor înregistrate în ultimii ani de tehnologia iprimării, astăzi există o
varietate mare de imprimante, în funcţie de preţ, rezoluţie, viteza de imprimare şi
capacitatea de memorie. Chiar dacă tehnologia imprimantelor cu jet de cerneală şi a celor
bazate pe laser s-a impus în ultimii ani, imprimantele matriciale rămân încă o soluţie
viabilă, mai ales pentru rapoartele mari sau solicitate des.
Mesajele electronice
Ieşirile din sistem pot fi redate şi sub forma microfilmelor, care, prin instrumente
oferite de softul specializat, pot fi stocate, modificate şi transmise pe mai multe căi.
Sistemele COM permit utilizarea imaginilor în scopul arhivării şi consultării rapide a
documentelor şi rapoartelor generate iniţial pe hârtie, obţinându-se importante economii de
spaţiu. Ele sunt utile mai ales atunci când este necesară stocarea documentelor semnate,
ştampilate sau cu alte caracteristici vizuale. Totuşi, popularitatea acestor sisteme a scăzut în
ultimul timp în favoarea scanner-elor digitale.
Imaginea documentelor este captată şi stocată sub formă de microfilme sau microfişe.
Microfilmele stochează imaginile pe role de film, iar microfişele le transpun pe o singură
peliculă, sub forma diapozitivelor. Microfişele sunt preferate microfilmelor, datorită
21
utilizării mai eficiente a suportului de stocare şi pentru că ele permit indexarea şi regăsirea
mai uşoară a informaţiei.
Un sistem COM este conectat la un calculator şi poate transpune imaginile pe
microfilme sau microfişe în mod direct, pe măsură ce sunt generate. În afara acestui sistem,
utilizarea microfişelor şi a microfilmelor implică utilizarea unor echipamente auxiliare de
developare, copiere şi proiecţie.
Tehnologiile audio şi video au înregistrat cele mai mari progrese în ultimii ani. Ieşirile
audio şi video oferă un potenţial de îmbunătăţire a comunicării pe care nici un alt mediu
nu-l poate realiza.
Audio înseamnă redarea sonoră a datelor. Mesajele vocale, fie şi cele gen Voice-Mail
(V-Mail), sunt destul de folosite în afaceri, îndeosebi în comerţul electronic. Aplicaţiile
practice ale ieşirilor audio sunt din ce în ce mai variate. Ele facilitează citirea ecranelor de
către utilizatorii cu probleme de vedere. De asemenea, ieşirile de tip audio pot fi generate
automat de către sistemul informatic pentru a înlocui personalul care preia telefonic
comenzile clienţilor, oferind astfel clienţilor un serviciu disponibil permanent, de tip
24/7/365 - 24 de ore din 24 ale zilei, 7 zile din 7 ale săptămânii, 365 de zile din an, cu
cheltuieli minime.
Video înseamnă combinarea imaginii şi a sunetului pentru a reda un anumit eveniment
în mişcare sub formă de film sau animaţie. Este forma specifică video-conferinţelor. O altă
utilizare a acestui tip de ieşire presupune crearea de simulări animate pentru a permite
utilizatorilor să vizualizeze o serie complexă de evenimente într-un timp scurt.
Cel mai adesea, ieşirile sunt generate în scopul luării deciziilor pe diferite niveluri
ierarhice. Pentru a-şi dovedi utilitatea, informaţiile trebuie să îndeplinească anumite
caracteristici relative la format, conţinut, sursa datelor, mediul de transmitere etc., aspecte
descrise în paragrafele anterioare. Caracteristicile pot fi văzute în mod diferit pe cele trei
niveluri decizionale, după cum este prezentat tabelul 1.3, care consemnează un punct de
vedere3 din literatura de specialitate.
Aşa cum am văzut anterior, una dintre caracteristicile ieşirilor, care trebuie luată în
considerare la formularea specificaţiilor de proiectare, se referă la controlul ieşirilor.
Obiectivul urmărit la proiectarea ieşirilor constă în asigurarea completitudinii, oportunităţii
şi exactităţii informaţiilor conţinute, precum şi restricţionarea accesului pentru persoanele
35
neautorizate. Odată ce au fost generate, ieşirile sunt dificil de controlat, deoarece numărul
mecanismelor de control este redus, fiind aplicabile doar procedurile de control fizic. De
aceea, este recomandată aplicarea procedurilor de control înainte de generarea şi distribuirea
ieşirilor.
Poate cea mai eficace procedură pentru controlul ieşirilor constă în limitarea accesului
la sistemul informaţional, prin definirea utilizatorilor autorizaţi şi a drepturilor de acces ale
fiecăruia. În acest fel, se asigură un anumit nivel de control în ceea ce priveşte ieşirile, ele
putând fi accesate doar de persoanele cu drepturi de acces în sistem.
Cu toate acestea, sunt necesare unele controale care să-i vizeze pe utilizatorii
sistemului. În acest sens, pot fi aplicate două proceduri: controlul distribuirii ieşirilor şi
separarea atribuţiilor.
Controlul distribuirii ieşirilor vizează permiterea accesului la rapoarte doar
utilizatorilor cărora le sunt destinate. În trecut, majoritatea ieşirilor erau tipărite pe hârtie,
prin folosirea unei singure imprimante la nivelul întregii firme. Controlul distribuirii
ieşirilor era centralizat la nivelul unui birou special, unde utilizatorii autorizaţi puteau
solicita pe cele care le erau destinate.
Progresele tehnologice înregistrate, dezvoltarea pe scară largă a sistemelor
client/server, au determinat unele mutaţii, precum integrarea sistemelor informatice,
preferinţa pentru afişarea rapoartelor pe ecran în detrimentul tipăririi lor, dotarea fiecărui
departament cu imprimante. În noile condiţii, controlul ieşirilor se bazează mai mult pe
procedurile logice decât pe cele fizice. Foarte utilă este întocmirea unei liste pentru
controlul distribuirii, în care se vor specifica utilizatorii autorizaţi pentru fiecare ieşire în
parte, eventual şi staţia de lucru de pe care poate fi generată şi accesată. Implementarea
acestei liste impune gestionarea, în cadrul aplicaţiei, a drepturilor de acces pentru fiecare
ieşire, dar şi o bună coordonare între aplicaţie şi sistemul de securitate din reţeaua de
calculatoare a firmei.
Separarea responsabilităţilor presupune crearea unor activităţi separate care să fie
realizate de angajaţi diferiţi, identificându-se activităţile care, dacă ar fi realizate de acelaşi
angajat, ar crea condiţii pentru realizarea de fraude. Separarea atribuţiilor se realizează la
nivelul diferitelor funcţii ale sistemului, vizate fiind, în mod deosebit, cele care privesc
crearea şi generarea ieşirilor. De exemplu, preluarea comenzilor de la clienţi şi înregistrarea
lor în sistem ar trebui separată de generarea documentelor privind livrările, cele două
activităţi trebuind realizate de două persoane diferite. Altfel, va fi posibilă efectuarea unor
livrări frauduloase. De asemenea, înregistrarea anumitor tipuri de tranzacţii şi obţinerea
rapoartelor, pe baza cărora se va verifica corectitudinea şi completitudinea înregistrărilor
care privesc acele tranzacţii, trebuie realizate de persoane diferite. Un alt exemplu se referă
la separarea funcţiei de scriere a programului pentru generarea unei ieşiri, de cea care
priveşte utilizarea programului respectiv.
Corectitudinea, completitudinea şi oportunitatea informaţiilor furnizate de sistem
depind, în cea mai mare măsură, de procesele interne de prelucrare, şi mai puţin de
aplicarea unor proceduri de control. Totuşi, analistul are la dispoziţie câteva astfel de
proceduri, pe care trebuie să le ia în considerare la proiectarea fiecărei ieşiri, după cum
urmează:
includerea, în antetul rapoartelor, a datei la care au fost generate;
formularea clară a titlului raportului, în care să fie precizată perioada de timp
acoperită de informaţiile conţinute;
includerea numelui destinatarului în antetul rapoartelor;
36 SISTEME INFORMAŢIONALE FINANCIAR-CONTABILE II
numărul de pagină să fie în formatul „pagina din ”;
prevederea unor totaluri de control, ori de câte ori este posibil;
afişarea numărului de înregistrări prelucrate.
2.2 Demersul proiectării ieşirilor
Atât formularele/formatele proiectate a fi realizate cu ajutorul calculatorului, cât şi
rapoartele constituie cele mai interesante piese ale sistemului pentru utilizatorii acestuia.
Demersul proiectării ieşirilor trebuie astfel conceput încât să permită implicarea directă şi
eficientă a utilizatorilor. De aceea, proiectarea ieşirilor trebuie să se realizeze după un
anumit procedeu-cadru, specific prototipizării8, conform figurii 1.10.
Unitatea de studiu 3
Concepte generale privind interfeţelor utilizator
Obiective:
Evidenţierea importanţei interfeţei utilizator în dezvoltarea sistemelor informaţionale
economice
Definirea conceptului de interfaţă utilizator
Prezentarea metodelor de interacţiune şi a echipamentelor folosite în dialogul om-
calculator
Explicarea manierei în care pot fi identificate interfeţele utilizator
Competenţe dobândite:
Alegerea metodelor de interacţiune om-calculator în funcţie de cerinţele sistemului
Selectarea echipamentelor folosite în dialogul om-calculator în sistemele informaţionale
Formularea cerinţelor privind dialogul om-calculator în sistemele informaţionale contabile
Timpul mediu necesar asimilării: 5 ore
Structura unităţii de studiu
3.1 Rolul interfeţelor utilizator în dezvoltarea sistemelor informaţionale................................... 42
3.1.1 Definirea conceptului de interfaţă................................................................................... 42
3.1.2 Identificarea interfeţelor utilizator .................................................................................. 44
3.2 Metode şi echipamente folosite în dialogul om-calculator .................................................... 46
3.2.1 Metode de interacţiune om-calculator............................................................................. 47
3.2.2 Selectarea echipamentelor necesare interacţiunii cu sistemul ........................................ 55
3.3 Răspunsuri la testele de autoevaluare .................................................................................... 56
3.4 Lucrare de verificare .............................................................................................................. 57
3.5 Bibliografie ............................................................................................................................ 57
Intrările şi ieşirile în/din sistemele informaţionale au fost identificate şi descrise în faza
de analiză, iar elementele de proiectare a lor au fost discutate în unităţile anterioare. Au fost
prezentate conţinutul specificaţiilor de proiectare a formularelor/formatelor şi a rapoartelor,
regulile şi demersul de proiectare a lor.
Preluarea intrărilor în sistem şi obţinerea ieşirilor se pot efectua în mod automat, însă,
în majoritatea situaţiilor, ele implică intervenţia omului, ceea ce determină existenţa
interacţiunilor dintre utilizator şi calculator. Pentru fiecare intrare se va proiecta un ecran
care să permită utilizatorilor să introducă datele de intrare. Fiecărei ieşiri îi va corespunde o
succesiune de dialoguri prin care utilizatorii vor putea să le genereze. De asemenea,
utilizatorii vor interacţiona cu calculatorul în vederea iniţierii operaţiunilor de prelucrare,
scop în care se va proiecta un sistem de meniuri. Toate aceste aspecte nu au fost luate în
considerare anterior, ele fiind tratate în continuare, în această unitate de studiu şi
următoarele două.
42 SISTEME INFORMAŢIONALE FINANCIAR-CONTABILE II
3.1 Rolul interfeţelor utilizator în dezvoltarea
sistemelor informaţionale
Proiectarea interfeţelor reprezintă o activitate foarte importantă în dezvoltarea
sistemelor informatice, chiar critică, din perspectiva acceptării sistemului de către
utilizatori. Acest lucru este explicabil, dacă ţinem cont de faptul că interfaţa utilizator
reprezintă acea parte a sistemului pe care acesta o percepe în mod direct, cu care el
interacţionează pentru a-şi realiza sarcinile de lucru. Pe de altă parte, interactivitatea este
una dintre caracteristicile esenţiale ale sistemelor informaţionale economice, interfaţa
utilizator constituind componenta cea mai însemnată.
Proiectarea necorespunzătoare a bazei de date va afecta, în primul rând, proiectanţii de
programe şi programatorii, iar slaba proiectare a arhitecturii programelor şi a modulelor de
program va face mai dificilă munca celor însărcinaţi cu testarea şi întreţinerea programelor.
Utilizatorii sistemului vor percepe mai puţin aceste carenţe în proiectarea sistemului, ei
putând fi nemulţumiţi de timpii de răspuns ai calculatorului la unele operaţii iniţiate de ei
în timpul exploatării. În schimb, proiectarea defectuoasă a interfeţelor utilizator va
determina, de cele mai multe ori, respingerea sistemului, chiar dacă acesta oferă mai multe
funcţionalităţi decât cele solicitate de utilizatori. Dimpotrivă, un sistem, care nu oferă toate
cerinţele funcţionale solicitate, ar putea fi acceptat de către utilizatori dacă dispune de
interfeţe utilizator simple şi prietenoase, care să ofere satisfacţie.
Boris Beizer, un pătimaş al umanizării relaţiilor cu calculatorul, precizează la un
moment dat că „toate relaţiile puternice sunt exprimate prin comunicare. Chiar mai mult,
formele comunicării dau expresie şi relaţiilor. Între dragoste şi ură nu e decât un pas: câteva
cuvinte neinspirate pot schimba prezentul cu trecutul – câteva comenzi necorespunzătoare
pot transforma dragostea faţă de un produs-program în ură. Mijloacele prin care trebuie să
comunicăm cu calculatorul şi cele prin care el comunică cu noi vor afecta în mod
determinant relaţia noastră cu acesta”9.
În acest capitol ne vom ocupa îndeosebi de proiectarea interfeţelor utilizator, nu înainte
de lămuri unele aspecte definitorii ale noţiunii de interfaţă, dată fiind complexitatea ei.
3.1.1 Definirea conceptului de interfaţă
Noţiunea de interfaţă este destul de des întâlnită în literatura informatică, deşi ea are şi
o accepţiune generală în limbajul curent, în sensul de element de legătură între două unităţi.
Dicţionarul explicativ al limbii române defineşte interfaţa foarte îngust, ca fiind
„suprafaţa de separare a porţiunilor care reprezintă faze diferite într-un sistem fizico-
chimic”. Din definiţie rezultă funcţia de separare, şi nu cea de legătură. Ulterior, în
Dicţionarul explicativ al limbii române – Supliment, apar termenii de interfaţare şi
interfaţă.
Interfaţa, cu trimitere la domeniul electronicii, este „un dispozitiv care converteşte
semnalele electronice în aşa fel încât două aparate sau sisteme să poată comunica între ele”.
Se observă o schimbare radicală a poziţiei faţă de prima variantă, interfaţa fiind ceva care
asigură comunicarea între două sisteme. Aproape similar, interfaţarea este definită ca o
„interconectare a părţilor unui sistem sau a unor aparate astfel încât ele să îşi poată îndeplini
funcţia în mod corect, coordonat”.
9. Beizer, B. – Personal Computer Quality: A Guide for Victims and Vendors, Van Nostrand Reinhold Company, New
York, 1986, p. 87.
43
Webster’s Encyclopedia Unbridged Dictionary of the English Language, Grammary
Books, New York/Avenal, New Jersey, ediţia din 1994, defineşte interfaţa astfel:
1. „O suprafaţă referitoare la o frontieră comună (sublinierea noastră) dintre două corpuri
sau spaţii.
2. Fapte, probleme, considerente, teorii, practici etc. avute în comun de două sau mai multe
discipline, proceduri sau domenii de studiu: interfaţa dintre fizică şi chimie.
3. O frontieră comună sau o interconexiune între sisteme, echipamente, concepte sau fiinţe
umane.
4. Computer Technology. a) echipament sau program conceput pentru a comunica
informaţii de la un sistem de echipamente electronice sau programe la altul.
b) orice reglementare privind astfel de comunicaţii…”.
Aşadar, pe scurt, interfaţa asigură comunicarea între două sau mai multe sisteme. În
informatică, o astfel de semnificaţie este des întâlnită, căpătând mai multe conotaţii.
Referindu-se la software-ul de sistem, Schulteis, Sumner şi Bock10 afirmă că „prin
intermediul echipamentelor electronice de calcul şi al unui timp anume destinat, software-
ul sistemelor acţionează ca o legătură sau interfaţă între sistemul de calcul şi programele de
aplicaţii pe care utilizatorul doreşte să le execute”. Aceiaşi autori, la pagina 33, definesc
interfaţa ca „o conexiune la frontierele unui sistem sau subsistem. O interfaţă serveşte drept
mediu de conversie a ieşirilor unui sistem în intrări ale altuia”. De cele mai multe ori,
funcţia de legare între ele a două componente este realizată de un subsistem special
proiectat în acest scop.
Pentru domeniul dezvoltării sistemelor informatice economice, prezintă interes următoarele
sensuri ale noţiunii de interfaţă:
interfaţa dintre sistemul informaţional şi mediul său extern relevant, prin care se
face referire la intrările/ieşirile în/din sistem şi care pot să apară sub forma
documentelor, rapoartelor, a răspunsurilor la întrebări sau a unor simple structuri de
date schimbate cu alte sisteme informatice;
interfaţa dintre componentele software ale sistemului informatic. Această
accepţiune face referire la legăturile dintre modulele unui program, care reflectă
invocarea unui modul de către un altul, şi parametrii transmişi între ele, sub formă
de date elementare, structuri de date sau informaţii de control;
interfaţa dintre om şi calculator, în sensul unui mediu eficient de comunicare dintre
om şi calculator, pe baza căruia utilizatorii pot interacţiona cu calculatorul, pentru a
transmite comenzile şi datele, precum şi pentru a obţine informaţiile necesare. În
această accepţiune, interfaţa face referire la partea vizibilă a sistemului
informaţional, din punctul de vedere al utilizatorului.
Nu toate accepţiunile prezentate anterior vor fi tratate în acest capitol. Prima accepţiune
este utilizată în faza de analiză, la definirea ariei de întindere a sistemului, atunci când
se specifică funcţiile sistemului, intrările, ieşirile şi entităţile externe cu care
interacţionează sistemul. Acest sens a fost deja discutat, în volumul anterior, în capitolul
destinat modelării logice a prelucrărilor.
Cel de-al doilea sens este utilizat la proiectarea programelor şi procedurilor, iar cu el
ne vom întâlni în capitolul cinci. Atunci vom trata interfaţa ca unul dintre atributele de bază
ale modulelor de program.
10. Schulteis, R., Sumner, M., Bock, D. – Management Information Systems: The Manager’s View, Second Edition,
IRWIN, Homewood, Boston, 1992, p. 123.
44 SISTEME INFORMAŢIONALE FINANCIAR-CONTABILE II
Ultima accepţiune mai este referită şi sub denumirea de interfaţă a utilizatorului,
definită de Zwass11 ca „o combinaţie a mijloacelor prin care un utilizator interacţionează cu
un sistem electronic de calcul”. Ea constă din componente hardware şi software, care
permit utilizatorului să preia în sistem datale de intrare, în vederea stocării şi prelucrării lor,
şi să obţină informaţiile necesare în rezolvarea propriilor sarcini de lucru. Componentele
hardware se referă la echipamentele cu care interacţionează utilizatorii precum tastatura,
mouse, trackball, ecran, imprimantă etc. Componentele software ale interfeţei utilizator
cuprind acele elemente pe care utilizatorii le percep dintr-o aplicaţie, respectiv ecranele
(formularele) pentru culegerea şi introducerea datelor în calculator, meniurile şi dialogurile
prin intermediul cărora utilizatorii pot iniţia diferite operaţiuni, inclusiv afişarea şi tipărirea
unor informaţii sub formă de rapoarte.
Noţiunea de interfaţă utilizator ar putea fi definită într-un sens mai larg, prin includerea
altor componente care permit utilizatorilor să interacţioneze cu sistemul, precum
documentaţia utilizatorului, manualul de instruire, facilităţile de ajutor şi alte documentaţii,
care sunt livrate împreună cu echipamentele şi programele. Aceste elemente vor fi
prezentate în capitolul 7 din acest volum.
La o analiză mai atentă, şi subiectul capitolului următor (proiectarea logică a fişierelor
sistemului şi bazelor de date – pe scurt, modelarea logică a datelor) ar ţine tot de o astfel de
problematică: interfeţe om – calculator pentru culegerea datelor.
Ordinea în care sunt tratate cele trei capitole (proiectarea formularelor/ formate şi a
rapoartelor, proiectarea interfeţelor şi a dialogurilor, modelarea logică a datelor) poate fi
îndelung discutată. Secvenţa folosită în tratarea lor, de cele mai multe ori, este doar una
logică: precedentul capitol creează bazele celui ce urmează. În realitate, în practica de zi cu
zi, ordinea lor nu este secvenţială, ci, mai curând, paralelă sau iterativă.
O altă noţiune care prezintă importanţă în acest context este dialogul. În informatică,
el are aceeaşi semnificaţie ca şi în accepţiunea cotidiană: conversaţie între doi parteneri.
Am putea chiar afirma că proiectarea dialogurilor şi a interfeţelor reprezintă procesele de
definire a modalităţilor prin care oamenii şi calculatoarele schimbă informaţii.
În capitolul de faţă, ne vom ocupa de componentele software ale interfeţei utilizator,
care au rolul de a asigura dialogul între utilizator şi sistem. În capitolul anterior am descris
aspectele privind proiectarea formularelor/documentelor, care consemnează datele de
intrare în sistem, şi a rapoartelor, care conţin informaţiile solicitate de utilizator, obţinute
în urma prelucrărilor. Acum, vom urmări proiectarea ecranelor (formularelor), necesare
pentru preluarea datelor de pe formulare/documente şi salvarea lor în baza de date, a
dialogurilor, care vor permite utilizatorilor obţinerea rapoartelor, şi a meniurilor, prin
intermediul cărora utilizatorii vor lansa diferite operaţiuni, inclusiv cele pentru culegerea
datelor şi obţinerea rapoartelor.
Pentru ecrane, în acest capitol, vom folosi şi noţiunea de formular, dar cu alt sens.
Dacă în capitolul anterior, prin formular se făcea referire la un document în care sunt
consemnate datele cu privire la diferite tranzacţii economice, în acest capitol el este sinonim
cu cel de ecran pentru culegerea datelor. Am optat pentru utilizarea ambelor noţiuni,
deoarece unii sunt familiarizaţi cu noţiunea de formular, de la englezescul „form”.
3.1.2 Identificarea interfeţelor utilizator
Ieşiri către alte sisteme informaţionale. Acest tip de interfeţe sistem reprezintă
imaginea în oglindă a tipului de interfeţe discutat la punctele anterioare.
Înregistrarea intrării în stoc a produselor finite poate determina generarea şi
transmiterea automată a unui mesaj către sistemul de gestiune a vânzărilor.
Ieşiri care presupun intervenţie umană minimă. Există situaţii în care generarea şi
transmiterea rapoartelor se face automat, la anumite intervale de timp sau la date
fixe, sau în care interacţiunea cu sistemul este minimă, neimplicând proiectarea
unor dialoguri. De exemplu, situaţia detaliată a soldului pentru clienţii importanţi
poate fi generată şi transmisă periodic acestora, în mod automat.
În dezvoltarea sistemelor informaţionale este foarte importantă separarea clară a
interfeţelor utilizator de interfeţele sistem, deoarece proiectarea celor două tipuri de interfeţe
solicită expertiză şi tehnologii diferite. Dacă de proiectarea interfeţelor utilizator ne vom
ocupa în acest capitol, la proiectarea interfeţelor sistem ne vom referi în capitolul destinat
proiectării programelor, deoarece lor le corespund, adesea, module de programe speciale,
pentru preluarea automată a datelor sau generarea automată a informaţiilor.
Teste de autoevaluare
TA 3.1
1. În ce constă diferenţa dintre interfaţa utilizator şi interfaţa sistem?
2. Enumeraţi componentele software ale interfeţei utilizator.
Răspuns:
3.2 Metode şi echipamente folosite
în dialogul om-calculator
Dacă interfaţa dintre utilizator şi calculator a fost, pe vremuri, practic imposibilă,
făcând referire la calculatoarele generaţiei inventatorilor, prin progresele din domeniu, în
prezent se vorbeşte despre o generaţie a utilizatorilor sau conducătorilor. Progresul
înregistrat a fost atât de rapid, încât a apărut nevoia atribuirii unui calificator pentru noua
variantă, vorbindu-se despre Graphical User Interface (GUI) – interfaţa grafică a
utilizatorului.
Ar fi de ajuns doar să enumerăm câteva astfel de medii. Revoluţia s-a produs odată cu
lansarea pe piaţă a interfeţei grafice a utilizatorului de către Macintosh, bazată în mare
parte pe rezultatele înregistrate de Xerox Palo Alto Research Center. Noul mediu se
bazează pe aşa-zisele icons reprezentând obiecte sau acţiuni prin meniuri care să ajute la
selectarea unei acţiuni. Mouse-ul ajută la navigarea într-un astfel de mediu. Ulterior, au fost
promovate alte produse care încorporează elemente de interfaţă grafică a utilizatorului,
47
dintre care le enumerăm pe cele mai reprezentative: Windows (Microsoft), Presentation
Manager din OS/2 (IBM şi Microsoft), Open Look (AT&T), GEM (Digital Research),
NewWave (Hewlett-Packard), NeXTStep (NeXT), Motif (Open Software Foundation).
Sunt progrese demne de semnalat în mediul grafic faţă de cel tradiţional, spunându-se
că munca utilizatorului se reduce cu 35%, datorită vitezei mai mari cu care se operează, iar
erorile scad cu 17%.
O altă soluţie a constituit-o noua interfaţă pentru calculatoarele dotate cu creioane
optice. Sistemul de operare PenPoint al firmei Go Corporation a însemnat o nouă modă în
interfeţele oferite utilizatorilor.
Interfeţele pentru preluarea/redarea vocii constituie încă un salt, deşi ca răspândire nu
au regimul celorlalte interfeţe. Mai nou, există interfeţele multimedia oferite utilizatorului
pentru acces la text, sunet, imagine.
3.2.1 Metode de interacţiune om-calculator
Interacţiunea prin meniuri este familiară majorităţii celor care utilizează astăzi
calculatorul. Aproape toate produsele-program dispun astăzi de meniuri.
Un meniu pune la dispoziţie o listă de opţiuni, relevante din punctul de vedere al
activităţii ce trebuie realizată, din care utilizatorul va selecta una, iar comanada
corespunzătoare va fi executată. Există mai multe modalităţi de selectare a unei opţiuni din
meniu, dintre care cel mai utilizat este cursorul, deşi operaţiunea poate fi realizată şi prin
atingerea cu degetul a unei zone anume, cu ajutorul mouse-ului, al unui creion special
(light pen) ş.a.
Opţiunile de selectat pot fi afişate în diverse moduri: prin coduri, cuvinte scurte (dar
foarte sugestive), fraze, imagini – icons, butoane sau combinaţii ale acestora, astfel că pot
exista multe tipuri de meniu. Vom prezenta în continuare cele mai utilizate dintre acestea.
Liste simple cu opţiuni
Unele produse-program folosesc meniurile într-o modalitate deosebit de simplă, cu
opţiuni multiple, de genul:
Creare fişier nomenclator
Salvare într-un fişier nou
Listare fişier nomenclator
…
Părăsire aplicaţie
Tastaţi opţiunea dumneavoastră şi apoi RETURN.
În acest tip de meniu, utilizatorul selectează opţiunea dorită, comanda este executată
după care se revine la meniu. În exemplul nostru, utilizatorul selectează o opţiune prin
tastarea literei evidenţiată cu caracter îngroşat. Un astfel de meniu prezintă avantajul
simplităţii navigării şi a memorării uşoare, însă ocupă porţiuni importante de ecran. De
aceea, astăzi ele nu mai sunt folosite.
a) Exemplu de meniu drop-down
Cel mai nou tip de meniu, utilizat în interfeţele utilizator, este meniul context, numele
său provenind de la faptul că opţiunile afişate depind de contextul de lucru în care se află
utilizatorul. El mai este numit şi meniu pop-up, deoarece apare pe ecran, lângă obiectul
selectat, imediat după apăsarea butonului dreapta al mouse-ului sau a unei taste anume.
51
Figura 2.2 prezintă meniul context asociat unui obiect de tip căsuţă de text, din Power
Point.
Un meniu context conţine doar opţiunile de lucru specifice obiectului selectat. De
obicei, se includ doar opţiunile utilizate mai frecvent, care sunt accesibile şi din meniul
bară al produsului-program. Astfel de meniuri pot fi proiectate pentru fiecare element din
fereastra de lucru care poate fi selectat de utilizator: imagine (icon), căsuţă de text etc.
Meniu prin imagini
Fig. 2.2 Exemple de meniu context şi icons
Meniuri prin imagini/pictograme (icons)
Meniurile prin imagini constituie, de fapt, meniuri cu linii de comenzi în care acţiunile
de întreprins sunt exprimate prin imagini (icons), şi nu prin cuvinte. Imaginile sunt cât se
poate de sugestive, facilitând utilizarea, memorarea şi recunoaşterea lor. Totuşi,
simbolistica desenelor rămâne deocamdată un element de studiu pentru specialişti, deoarece
generalizarea lor necesită mult timp, cu atât mai mult cu cât mulţimea simbolurilor se
extinde continuu.
Prin imagini pot fi redate uşor substantivele, destul de mulţumitor verbele, dar foarte
dificil adjectivele şi aproape fără speranţă adverbele. Iată de ce meniurile prin imagini nu
pot lua forme prea performante. Până şi sensurile simbolurilor diferă de la o cultură la alta.
Dacă un chinez ar dori să creeze o imagine prin care să sugereze salvarea tuturor
elementelor-problemă (a se citi un necaz) lui i-ar veni foarte uşor, întrucât în simbolistica
chineză necazul se poate reprezenta prin imaginea a două femei sub acelaşi acoperiş. Câţi
americani sau europeni ar atribui sensul acesta imaginii respective?
Meniurile bazate pe imagini (icons) fac parte din categoria cunoscută în literatură ca
interacţiune bazată pe obiecte. Imaginile folosite funcţionează ca butoanele. La „apăsarea”
lor (a se citi selecţia lor) se activează o anumită funcţie sau comandă (salvare, imprimare,
căutare ş.a.). În figura 2.2 este prezentat meniul bazat pe imagini din Power Point.
52 SISTEME INFORMAŢIONALE FINANCIAR-CONTABILE II
3.2.1.3 Interacţiunea prin ecrane pentru introducerea datelor (formulare)
Cea mai utilizată metodă de interacţiune om-calculator este, probabil, cea bazată pe
ecrane pentru introducerea datelor, numite şi formulare (forms). Prin această metodă,
utilizatorii vor completa diferitele câmpuri din ecrane, cu date preluate adesea din
documentele primare (formate/formulare), a căror proiectare a fost discutată în capitolul
anterior. Datele introduse sunt, de obicei, salvate în baza de date. Ecranele sunt, de
asemenea, utilizate pentru vizualizarea într-o formă logică, structurată, a datelor din bază.
La construirea formularelor se apelează la o serie de obiecte de control, utilizabile
pentru introducerea datelor, referite adesea, pe scurt, prin controale. Forma celor mai
utilizate obiecte de control este prezentată în figura 2.3, iar descrierea lor se regăseşte în
tabelul 2.1. În prima coloană a tabelului am inclus, între paranteze, denumirea lor în limba
engleză, întâlnită în mediile de programare vizuale.
Fig. 2.3 Principalele tipuri de obiecte de control utilizate la construirea formularelor
Tabel nr. 2.1 – Principalele tipuri de controale regăsite în formulare
Fig. 2.4 Exemplu de formular pentru culegerea datelor privind cumpărările de la furnizor
Tabel nr. 2.2 – Funcţiuni ce trebuie incluse în interfeţele
din programele de introducere a datelor
Categorie de Exemple
funcţiune
Deplasarea în Deplasarea de la un câmp la următorul/precedentul/primul/ultimul.
formular
Ştergerea unei linii dintr-o grilă (grid), a tuturor datelor din formular.
Posibilităţi de editare
Inserarea unor caractere printre cele existente
Salvarea conţinutului formularului în baza de date.
Confirmarea salvării formei editate sau trecerea la un alt ecran.
Facilităţi de ieşire
Ieşirea temporară într-un mediu de lucru ajutător (vizualizare ceas,
folosire calculator de buzunar etc.).
Oferirea informaţiilor Furnizarea de informaţii despre orice câmp sau despre întregul formular.
ajutătoare
Restricţionarea accesului utilizatorilor.
Posibilităţi de control Identificarea şi autentificarea utilizatorilor.
al accesului Interzicerea modificărilor/ştergerilor înregistrărilor anterioare care au un
regim special.
Dacă este posibil, să se folosească valorile implicite (data curentă, preţul
de catalog al produselor).
Trecerea automată în câmpul următor, atunci când s-a introdus un
Facilităţi oferite la anumit număr de caractere.
introducerea datelor Nominalizarea prin titluri a conţinutului casuţelor de text şi a altor
obiecte ce afişează date.
Indicarea unităţilor de măsură, atunci când este cazul.
Oferirea exemplelor de formate folosite, cum ar fi cele pentru numere de
55
telefon, sau date calendaristice.
Alinierea automată a datelor introduse.
Verificarea dacă datele sunt cele aşteptate (exemplu: sumele încasate
sunt egale cu cele de încasat?).
Tehnici de validare a Testarea lipsei datelor în unele câmpuri.
datelor introduse Verificarea încadrării valorilor în anumite intervale (exemplu: notele să
fie în intervalul 0-10).
Apelarea la tehnica cifrei de control.
Teste de autoevaluare
TA 3.2
1. Enumeraţi tipurile de meniu utilizate în aplicaţiile informatice.
2. Prezentaţi 8 funcţiuni pe care trebuie să le ofere un formular pentru introducerea datelor.
3. Ce tip de obiect trebuie utilizat în formular atunci când utilizatorul trebuie să aleagă una
din cinci opţiuni care nu se schimbă în timp? Dar dacă sunt 10 opţiuni posibile? De ce?
Răspuns:
3.2.2 Selectarea echipamentelor necesare interacţiunii
cu sistemul
Acest principiu ar putea fi reformulat prin imperativul „Nu lǎsaţi utilizatorul în ceaţǎ!”.
Interfaţa trebuie sǎ indice utilizatorului, dupǎ caz, dacǎ acţiunea iniţiatǎ de el a fost
realizatǎ, fie sǎ afişeze rezultatul acţiunii sale. Dacă execuţia operaţiunii dureazǎ mai mult
timp, atunci utilizatorul trebuie să aibǎ confirmarea cǎ operaţiunea este în curs de execuţie
şi sǎ fie informat despre starea ei. Starea execuţiei unei operaţiuni poate fi afişată sub
forma timpului rǎmas pânǎ la finalizare sau sub forma procentelor din operaţiune care au
fost executate. De asemenea, este necesară precizarea modului în care operaţiunea poate fi
suspendatǎ sau anulatǎ. De exemplu, la descǎrcarea unui fişier de pe un site web, pe ecran
va fi afişat în permanenţǎ, în procente, partea din fişier care a fost transferată.
În general, informarea utilizatorului despre acţiunea iniţiatǎ de el poate fi fǎcutǎ în mai
multe moduri: prin actualizarea liniei de stare a ferestrei de lucru, prin afişarea unui mesaj
sau prin iniţierea unei casete de dialog.
Lipsa retroacţiunii creeazǎ utilizatorului o stare de nesiguranţǎ şi discomfort, şi-l
obligǎ la eforturi suplimentare, pentru a se asigura cǎ operaţiunea iniţiatǎ de el a fost
realizatǎ. Dacă, în formularul din figura 2.4, utilizatorul nu ar primi un mesaj de confirmare
a operaţiunii de anulare a unei facturi, el ar fi nevoit să verifice dacǎ operaţiunea respectivǎ
a fost înregistratǎ în baza de date, afectând astfel productivitatea muncii sale.
4.1.3 Principiul pǎstrării stilului de lucru al utilizatorilor
În general, la proiectarea unui nou sistem informatic trebuie menţinut stilul de lucru al
utilizatorilor, iar eventualele modificǎri să fie explicate acestora. Experienţa anterioarǎ,
aşteptǎrile, pǎrerile, convingerile şi dorinţele utilizatorilor trebuie să se regǎsească în
interfaţă.
Experienţa anterioarǎ a utilizatorilor cu sistemele informatice determinǎ, în bunǎ
mǎsurǎ, aşteptǎrile lor privind modul de funcţionare a noului sistem. De cele mai multe ori,
puşi în situaţii noi sau complexe, oamenii încearcǎ sǎ simplifice lumea din jurul lor şi sǎ
gǎseascǎ similitudini cu lucruri pe care ei le înţeleg şi vor acţiona în maniera în care ei cred
cǎ ar trebui sǎ se desfǎşoare acele lucruri. Prin urmare, ei vor reacţiona în funcţie de
aşteptǎrile lor. Edificator în acest sens, este întâmplarea din urmă cu câţiva ani cu angajatul
unei firme americane, care utiliza unitatea de CD-ROM ca suport pentru ceaşca de cafea,
plecând, probabil, de la experienţa anterioară şi asemănarea relativă cu dispozitivul destinat
acestui scop din autoturismul propriu.
De aceea, membrii echipei de proiectare va trebui sǎ ştie cât mai multe despre
utilizatorii sistemului, despre sarcinile de lucru pe care ei trebuie sǎ le realizeze, despre
cunoştinţele lor în domeniul informaticii, despre experienţa pe care o au în lucrul cu
sistemele informatice, cu interfeţele grafice etc. Dupǎ cum vom vedea ulterior, una din
primele etape ale procesului de proiectare a interfeţelor vizeazǎ identificarea şi descrierea
categoriilor de utilizatori din sistem.
4.1.4 Principiul alegerii între utilizarea tastaturii şi/sau a mouse-ului
Nu toţi utilizatorii sunt bucuroşi sǎ utilizeze mouse-ul, din motive subiective sau
obiective. Pe de o parte, unii utilizatori nu sunt familiarizaţi cu interfeţele grafice, ei
formându-şi unele deprinderi de lucru în utilizarea tastaturii, iar a-i forţǎ sǎ utilizeze
mouse-ul le-ar putea provoca disconfort şi, în final, insatisfacţii. Pe de altǎ parte, utilizarea
64 SISTEME INFORMAŢIONALE FINANCIAR-CONTABILE II
tastaturii este uneori justificatǎ de o mai mare productivitate a muncii, mai ales în cazul
operaţiunilor de rutinǎ, cu un grad mare de repetabilitate.
Sǎ ne imaginǎm că un utilizator trebuie să introducă câteva sute de documente pe zi. El
va relua operaţiunile specifice introducerii datelor pentru un document, de exemplu o
facturǎ, de câteva sute de ori. Prin utilizarea tastaturii, el îşi va forma deprinderile necesare
astfel încât sǎ piardǎ cât mai puţin timp cu privitul pe ecran şi sǎ se poatǎ concentra asupra
citirii datelor de pe document şi tastării lor. Altfel, dacǎ dupǎ fiecare facturǎ introdusǎ va
trebui sǎ priveascǎ ecranul şi sǎ utilizeze mouse-ul pentru deplasarea de la un câmp la altul
sau pentru selectarea butonului „Salvare”, randamentul sǎu se va diminua şi va creşte
oboseala acumulatǎ. El va fi nevoit sǎ schimbe mereu tastatura cu mouse-ul şi invers.
Proiectanţii trebuie sǎ conceapǎ interfeţele astfel încât utilizatorii sǎ poatǎ lucra cu
ambele echipamente. Însă, interfaţa trebuie să fie optimizată pentru utilizarea unuia dintre
cele două echipamente. Dacă sarcinile de lucru au frecvenţă mare, atunci interfaţa trebuie
optimizată pentru lucrul cu tastatura, ceea ce impune acordarea unei atenţii deosebite
facilităţilor de deplasare în formular, mai ales în ce priveşte ordinea de parcurgere a
câmpurilor. Chiar dacǎ interfaţa va fi optimizatǎ pentru utilizarea mouse-ului, vor fi create
şi facilitǎţi de lucru cu tastatura, fie şi numai de dragul utilizatorilor.
4.1.5 Principiul asigurării transparenţei detaliilor de proiectare
a programelor şi a bazei de date
Conform acestui principiu, interfaţa trebuie sǎ ascundǎ detaliile privind structura bazei
de date sau logica prelucrǎrii datelor din modulele de program. De exemplu, nu trebuie
afişate în formulare anumite coduri interne, cum ar fi codul tranzacţiilor, pe care
proiectantul bazei de date le-a inclus din anumite considerente de proiectare a bazei de
date, şi al cǎror sens nu este cunoscut şi nu intereseazǎ utilizatorii. De asemenea, aplicaţia
trebuie sǎ controleze riguros toate erorile care pot să apară în execuţia programelor, fie ele
erori ale sitemului de operare, şi sǎ furnizeze utilizatorului mesaje de eroare pe care acesta
le înţelege sau, oricum, sǎ nu-l sperie.
Un exemplu comun de încǎlcare a acestui principiu îl reprezintǎ utilitarul „Task
manager”, din sistemul de operare Windows 2000. Atunci când un program s-a blocat în
memorie, utilizatorul are posibilitatea închiderii acestuia prin intermediul utilitarului
menţionat (apǎsând tastele CTRL-ALT-DEL). Numai cǎ, acest utilitar afişeazǎ, pe lângǎ
programele lansate de utilizator, şi alte programe ale sitemului de operare, cu nume ciudate,
despre care utilizatorul nu ştie nimic. În plus, utilizatorul poate selecta şi închide oricare
din programe, ulterior el constatând funcţionarea necorespunzătoare a calculatorului.
Teste de autoevaluare
TA 4.1
1. Care sunt avantajele proiectării unor interfeţe în care utilizatorul să deţină controlul asupra
aplicaţiei?
2. Ce presupune optimizarea interfeţei pentru lucrul cu tastatura?
3. Prezentaţi modurile de lucru în interfaţa unui soft cu care sunteti familiarizat şi explicaţi
avantajele şi dezavantajele experimentate.
Răspuns:
65
4.2 Reducerea volumului de informaţii pe care trebuie sǎ le
memoreze utilizatorul
Cercetǎrile psihologice demonstreazǎ cǎ cele douǎ componente ale sistemului de
memorare uman sunt limitate: prima componentǎ, memoria pe termen scurt, asigurǎ
regǎsirea uşoarǎ a informaţiilor reţinute, însǎ este limitatǎ în ce priveşte perioada şi
capacitatea de memorare; cea de-a doua, memoria pe termen lung, este nelimitatǎ în ce
priveşte capacitatea şi perioada de memorare, însǎ este limitatǎ în ceea ce priveşte regǎsirea
informaţiei
Aplicarea aceastei reguli presupune utilizarea calculatorului pentru acoperirea limitelor
memoriei umane. În acest sens, trebuie aplicate câteva principii de proiectare a interfeţelor,
prezentate în continuare.
4.2.1 Principiul degrevării utilizatorului de memorarea,
pe termen scurt, a unor informaţii
Memorarea pe termen scurt este utilǎ în reţinerea informaţiilor care pot fi regǎsite
rapid, dar care pot fi pǎstrate o perioadǎ scurtǎ de timp şi în volum redus (circa 5 – 9
elemente pentru aproximativ 30 de secunde). De aceea, utilizatorii nu trebuie forţati sǎ
memoreze unele informaţii pe termen scurt, atunci când ei trec de la o operaţiune la alta, ci
aplicaţia sǎ facǎ acest lucru pentru ei.
Deşi atât de simplu, acest principiu este încǎlcat în practicǎ deseori. De multe ori,
utilizatorii deschid un formular pentru cautǎ o informaţie, iar dupǎ ce o gǎsesc o noteazǎ pe
hârtie, în vederea folosirii ei în alt formular.
Aşa se întâmplǎ la unele bǎnci, atunci când un client solicitǎ informaţii despre contul
sǎu. El este întrebat, mai întâi, de numǎrul contului, iar dacǎ nu-l cunoaşte i se solicitǎ
numele. Funcţionarul bǎncii deschide formularul pentru cǎutarea şi afişarea informaţiilor
despre clienţii bǎncii, unde va gǎsi numǎrul contului, pe care-l va nota pe hârtie. Apoi, el
va închide formularul respectiv şi va deschide un altul, pentru cǎutarea şi afişarea
informaţiilor despre conturile clienţilor bǎncii iar, pe baza numǎrului de cont notat anterior,
va putea regǎsi şi afişa informaţiile solicitate de client. Să reţinem sugestia funcţionarului
de la ghişeu: „Vă rugăm ca data viitoare sǎ aveţi notat numǎrul contului pentru mai multǎ
operativitate!”.
66 SISTEME INFORMAŢIONALE FINANCIAR-CONTABILE II
4.2.2 Principiul interfeţei orientate pe recunoaştere, nu pe amintire
Aplicarea acestui principiu presupune definirea unor cǎi mai directe de realizare a
diferitelor operaţiuni de cǎtre utilizator, prin reducerea numǎrului de apǎsǎri de taste sau de
acţiuni cu mouse-ul. Astfel, se reduce volumul de informaţii pe care utilizatorul trebuie sǎ-l
memoreze, pentru a lucra cu sistemul, şi va creşte productivitatea muncii sale.
Existǎ douǎ modalitǎţi de definirea a unor scurtǎturi:
Utilizarea comenzilor mnemonice. Aceste comenzi pot fi întâlnite în majoritatea
programelor. Ele apar, de regulă, sub forma un singur caracter alfanumeric, şi
înlesnesc memorarea unor informaţii. Comenzile mnemonice pot fi utilizate pentru
selectarea unei opţiuni din meniul aplicaţiei sau a unui element dintr-o căsuţă de tip
listǎ. De exemplu, meniul tip bară din Microsoft Word conţine comenzile
mnemonice F pentru File, E pentru Edit, V pentru View sau H pentru Help.
Utilizarea tastelor speciale sau a combinaţiilor de taste pentru iniţierea mai directă
operaţiunilor. Spre exemplu, tasta ALT, în mediul Windows, activeazǎ meniul; în
Visual FoxPro, combinaţia CTRL+W determinǎ salvarea ultimelor modificǎri
efectuate în tabela curentǎ şi închiderea ferestrei Browse.
4.2.4 Principiul relevanţei vizuale
Relevanţa vizualǎ este asiguratǎ de obiectele care compun interfaţa, şi se referǎ la:
sugestivitatea lor, modul de organizare şi simplitatea interfeţei.
Sugestivitatea obiectelor presupune ca ele sǎ fie uşor de înţeles şi sǎ reprezinte o
transpunere simplificatǎ a obiectelor reale. În acest sens, se va urmǎri nominalizarea
conţinutului obiectelor care conţin date (cǎsuţe de text, cǎsuţe combinate, căsuţe de tip listă
etc.), prin titluri explicite şi inteligibile, sau atribuirea unor nume sugestive butoanelor şi
grupurilor de obiecte din formulare.
67
Organizarea obiectelor interfeţei vizeazǎ gruparea şi aranjarea lor. Opţiunile,
comenzile şi obiectele de date legate între ele, din punct de vedere logic, trebuie grupate şi
delimitate de celelalte prin linii sau chenare. Aranjarea obiectelor trebuie sǎ fie în
concordanţǎ cu cerinţele funcţionale ale utilizatorilor, astfel încât sǎ le permitǎ acestora o
navigare uşoarǎ de la un obiect la altul, precum şi în interiorul lor. De asemenea,
formularele pentru culegerea datelor trebuie să reflecte structura documentului de pe care
se preiau datele. Utilizatorul va învǎţa mai uşor semnificaţia şi rolul câmpurilor din
formular, va sesiza mai repede informaţiile afişate şi, în consecinţă, va avea o productivitate
sporită.
Prin simplitatea interfeţei se urmăreşte evitarea creării de ecrane încǎrcate, greu de
urmǎrit şi utilizat. Dacǎ un ecran conţine prea multe informaţii, atunci utilizatorul va fi
derutat şi nu va şti unde sǎ se uite, pentru a gǎsi informaţia dorită. Cu cât o interfaţǎ este
mai simplǎ, cu atât ea este mai uşor de învǎţat şi utilizat. Însǎ, nu trebuie sacrificatǎ
funcţionalitatea aplicaţiei de dragul simplitǎţii. Gǎsirea unui echilibru între cele douǎ
caracteristici constituie o provocare pentru proiectant şi impune participarea activǎ a
utilizatorilor în activitatea de proiectare.
Teste de autoevaluare
TA 4.2
1. Enumeraţi modalităţile de aplicare a principiului interfeţei orientate spre recunoaştere.
2. Care sunt avantajele prevederii formelor scurte de lucru?
Răspuns:
4.3 Uniformitatea interfeţelor utilizator
Uniformitatea interfeţelor poate fi obţinută prin aplicarea aceloraşi convenţii de
proiectare a acestora, atât în cadrul unei aplicaţii, cât şi în aplicaţii diferite. Multe
organizaţii au adoptat standardizarea interfeţelor utilizator la nivelul tuturor aplicaţiilor,
conştientizând beneficiile ce pot fi obţinute18.
Uniformitatea interfeţelor permite utilizatorilor transferarea experienţei lor anterioare
şi a cunoştinţelor acumulate, ei fiind în mǎsurǎ sǎ înveţe mai uşor aplicaţiile noi. Interfaţa
noii aplicaţii va fi familiarǎ şi predictibilǎ, oferind utilizatorului sentimentul de stabilitate.
Altfel, procesul de învǎţare poate fi inhibat, iar utilizatorul nu va mai avea încredere nici în
18. Marakas, G. – Systems Analysis and Design. An Active Approach, Prentice Hall, New Jersey, 2001, p. 347.
68 SISTEME INFORMAŢIONALE FINANCIAR-CONTABILE II
noua aplicaţie, nici în ceea ce a învǎţat anterior. Un alt efect benefic al uniformităţii
interfeţelor priveşte reducerea erorilor în culegerea datelor.
Uniformitatea interfeţelor presupune luarea în considerare a următoarelor aspecte:
Uniformitatea în cadrul aplicaţiei.
Uniformitatea în cadrul sistemului, între diferitele aplicaţii existente. Funcţiunile
similare, din aplicaţii diferite, trebuie sǎ ofere interfeţe similare.
Uniformitatea cu sistemul de operare. Respectarea standardelor de proiectare a
interfeţelor specifice sistemului de operare utilizat, cu care utilizatorul este deja
familiarizat, va asigura învǎţarea şi exploatarea mai facilǎ a aplicaţiei.
Uniformitatea interfeţelor utilizator este urmărită sub trei aspecte: al modului de
prezentare, al comportamentului şi al interacţiunii, fiecare fiind tratat, în continuare, ca
principiu dinstinct.
4.3.1 Principiul uniformitǎţii modului de prezentare a interfeţei
Utilizatorul nu trebuie forţat inutil ca într-o parte a aplicaţiei sǎ lucreze cu tastatura, iar
în altǎ parte sǎ utilizeze mouse-ul. De asemenea, comenzile mnemonice, tastele speciale şi
combinaţiile de taste trebuie sǎ aibǎ aceleaşi funcţiuni de la un program la altul. De
exemplu, astăzi în toate mediile de lucru, F1 este utilizată pentru activarea facilităţilor de
ajutor (Help).
*
* *
Toate principiile prezentate anterior trebuie vǎzute ca un sistem, între multe dintre ele
existând relaţii de interdependenţǎ, dar şi antagonice. Proiectantul îşi va defini propriul
sistem, prin alegerea principiilor care se potrivesc cel mai bine platformelor hardware,
sistemului de operare şi altor categorii de software utilizate, cerinţelor funcţionale ale
sistemului şi nevoilor utilizatorilor. Respectarea acestor principii poate însemna eforturi
suplimentare de proiectare, programare şi testare a aplicaţiei, însǎ ele vor fi contrabalansate
de satisfacţiile pe care le vor avea utilizatorii şi, implicit, de reducerea riscului de
neacceptare a sistemului.
4.4 Răspunsuri la testele de autoevaluare
TA 4.1 1) Posibilitatea alegerii ordinii de realizare a anumitor operaţiuni;
productivitatea muncii sporită în cazul operaţiunilor de culegere a datelor cu frecvenţă
mare; uşurinţa invăţării interfeţei utilizator; 2) Includerea facilităţilor de deplasare în
formular, stabilirea atentă a ordinii de parcurgere a câmpurilor formularului. 3) Vezi
exemplul cu procesorul de text de la p.62.
TA 4.2 1) Furnizarea unei liste din care utilizatorul să aleagă elementul dorit; furnizarea unui
meniu din care utilizatorul să aleagă comanda dorită; utilizarea metaforelor. 2) Reducerea volumului
de informaţii de memorat şi creşterea productivităţii activităţilor de culegere a datelor.
4.5 Lucrare de verificare
A. Alegeţi varianta/variantele corectă/e de răspuns:
1) Uniformitatea interfetelor utilizator asigura:
a) reducerea numarului de erori in culegerea datelor
b) reducerea numarului de operatiuni pe care utilizatorul trebuie sa le efectueze
c) productivitate sporita in cazul operatiunilor repetitive
d) invatarea mai usoara a aplicatiei de catre utilizatorii noi
2) Includerea modurilor de lucru in proiectarea interfetelor utilizator este recomandata in
urmatoarele situatii:
a) operatiunile de actualizare a datelor sunt caracterizate de frecventa si grad de
repetitivitate mare
b) se doreste restrictionarea accesului pentru diferite categorii de utilizatori
c) se urmareste simplificarea formularului (ecranului)
d) utilizatorii au o bogata experienta in lucrul cu interfetele grafice
70 SISTEME INFORMAŢIONALE FINANCIAR-CONTABILE II
B. Răspundeţi la următoarele întrebări şi probleme:
1. În ce constă uniformitatea interfeţei utilizator? Enumeraţi principiile de lucru pentru
obţinerea ei.
2. Enumeraţi şi descrieţi trei principii de proiectare a interfeţelor care asigură uşurinţa învăţării
acestora.
3. Enumeraţi şi descrieţi trei principii de proiectare a interfeţelor care asigură uşurinţa utilizării
acestora.
4.6 Bibliografie
1. Mandel, T. – The Elements of User Interface Design, John Wiley & Sons, New York, 1997,
p. 47-79
2. Marakas, G. – Systems Analysis and Design. An Active Approach, Prentice Hall, New
Jersey, 2001, pp. 343-354
3. Oprea, D., Dumitriu, F., Meşniţă, G., Proiectarea sistemelor informaţionale, Ed.
Universităţii “Al. I. Cuza” Iaşi, 2006, pp. 80-93
71
Unitatea de studiu 5
Demersul proiectării interfeţelor utilizator. Controlul
datelor în interfeţele utilizator
Obiective:
Descrierea etapelor de lucru în proiectarea interfeţelor utilizator
Definirea rolului utilizatorilor în proiectarea interfeţelor utilizator
Prezentarea regulilor de proiectare a paginilor Web
Descrierea mecanismelor pentru controlul corectitudinii şi validităţii datelor de intrare
Formularea specificaţiilor de proiectare a interfeţelor utilizator
Competenţe dobândite:
Evaluarea prototipurilor pentru interfaţa utilizator din calitatea de utilizator al sistemului
informaţional
Proiectarea interfeţelor utilizator conform unui demers adaptat la obiectivele definite şi
care să permită implicarea directă a utilizatorilor
Identificarea cerinţelor privind corectitudinea şi validitatea datelor de intrare
Definirea mecanismelor pentru controlul corectitudinii şi validităţii datelor de intrare
Elaborarea specificaţiilor detaliate de proiectare a interfeţelor utilizator
Timpul mediu necesar asimilării: 5 ore
Structura unităţii de studiu
5.1 Demersul proiectării interfeţelor utilizator ............................................................................ 71
5.1.1 Culegerea şi analiza informaţiilor de la utilizatori.......................................................... 74
5.1.2 Proiectarea interfeţei utilizator........................................................................................ 76
5.1.3 Construirea interfeţei utilizator ....................................................................................... 80
5.1.4 Evaluarea şi validarea interfeţei utilizator ...................................................................... 82
5.2 Reguli de proiectare a meniurilor .......................................................................................... 83
5.3 Aspecte privind proiectarea interfeţelor web ......................................................................... 84
5.4 Controlul datelor în interfeţele utilizator ............................................................................... 85
5.5 Formularea specificaţiilor de proiectare a interfeţelor........................................................... 88
5.6 Răspunsuri la testele de autoevaluare .................................................................................... 88
5.7 Lucrare de verificare .............................................................................................................. 89
5.8 Bibliografie ............................................................................................................................ 89
5.1 Demersul proiectării interfeţelor utilizator
Proiectarea interfeţelor utilizator pune accentul pe definirea elementelor componente
ale interfeţei, cu care vor interacţiona utilizatorii, pentru a-şi realiza sarcinile de lucru.
Conştientizând importanţa interfeţelor în succesul noului sistem informaţional, specialiştii
s-au preocupat de găsirea unor tehnici de proiectare, care să plaseze în centrul atenţiei şi să
implice în mod direct utilizatorii în dezvoltarea sistemului informaţional. Aceste tehnici
sunt referite sub titulatura de proiectare orientată spre utilizatori.
Această abordare are la bază trei principii importante19:
Orientarea spre utilizator şi atribuţiile sale de serviciu, încă de la începutul
dezvoltării sistemului informaţional. Dacă în abordarea tradiţională accentul era
19. Satzinger J.W., Jackson, R.B., Burd, S.D. – Systems Analysis and Design in a Changing World, Course Technology,
Thomson Learning, 2002, Boston, p. 441.
72 SISTEME INFORMAŢIONALE FINANCIAR-CONTABILE II
pus pe cerinţele funcţionale ale sistemului, acum analiştii trebuie să axeze pe
identificarea categoriilor de utilizatori şi să înţeleagă cerinţele lor specifice. Ei
trebuie să găsească răspunsuri la întrebări precum: Ce cunoştinţe şi experienţă au
ei? Cum învaţă ei? Cum ar dori ei să lucreze? Ce-i motivează?
Evaluarea specificaţiilor de proiectare în vederea asigurării uşurinţei învăţării şi
utilizării noului sistem. Obţinerea acestei caracteristici reprezintă o sarcină dificilă,
datorită existenţei unor categorii diferite de utilizatori, cu preferinţe şi abilităţi
diversificate, dificil de armonizat. Dacă interfaţa este flexibilă, utilizatorii mai
puţin experimentaţi se pot simţi neliniştiţi, iar o interfaţă prea rigidă creează
frustrări utilizatorilor experimentaţi. De asemenea, uşurinţa în învăţare este adesea
în conflict cu uşurinţa în utilizare. O aplicaţie bazată pe un meniu, cu multe ecrane,
mesaje de dialog şi informaţii explicative detaliate este uşor de învăţat, însă greu
de utilizat, deoarece implică numeroase interacţiuni între utilizator şi calculator. O
astfel de interfaţă este indicată atunci când ea este utilizată rar. Utilizatorii care
folosesc sistemul zilnic, în mod intensiv, preferă o interfaţă mai flexibilă, cu
comenzi apelabile direct, prin combinaţii de taste, cu formulare mai încărcate.
Interfaţa va fi mai greu de învăţat, însă ea le va permite utilizatorilor să obţină un
plus de eficacitate.
Angajarea unui proces iterativ de dezvoltare. Implicarea utilizatorilor în procesul
de dezvoltare a sistemului poate fi obţinută, cel mai bine, prin organizarea
activităţilor într-un proces iterativ, utilizând tehnica prototipizării. Activităţile vor
fi reluate de mai multe ori, prototipul fiind supus modificării şi evaluării din partea
utilizatorilor, în cadrul fiecărei iteraţii. Procesul iterativ se va încheia după ce
utilizatorii îşi vor da acordul asupra interfeţei rezultate.
În continuare vom descrie un proces iterativ de proiectare a interfeţelor, care să pună în
aplicare cele trei principii discutate anterior. El se prezintă sub forma unei spirale (vezi
figura 2.6), formată din patru faze20:
1. Colectarea şi analiza informaţiilor de la utilizatori,
2. Proiectarea interfeţelor,
3. Construirea interfeţelor şi
4. Validarea.
2) Proiectarea
Proiectarea 1) Analiza
3) Construirea
Construirea 4) Validarea
Client Date-comenzi-modificate
Nota-confirmare-
Cantitate-
1.2
comanda
Nomenclator
produse
comanda-
modificata
Cantitate-comanda-noua
Nota-confirmare-
modificare-comanda
Inregistrare
comanda noua Date-
comanda-noua
Comenzi-de-onorat Nomenclator
Comenzi
Comenzi Date-
produse
comenzi-
existente
Date-
client Informatii-clienti-noi
Depozit-livrari
Date-
comenzi-
1.4
inregistrate
Tip-
comanda
Clienti
Date-client
Decizii-politici- Generare
creditare-clienti rapoarte comenzi
Tranzactii comenzi
Date-produs
Conducere
Conducere
Rapoarte-privind-
comenzile
Catalog
Conducere
Conducere
74 SISTEME INFORMAŢIONALE FINANCIAR-CONTABILE II
5.1.1 Culegerea şi analiza informaţiilor de la utilizatori
Care sunt informaţiile de care are nevoie utilizatorul pentru a-şi îndeplini atribuţiile?
Care sunt rezultatele obţinute pentru fiecare atribuţie de serviciu?
Cum lucrează utilizatorii pentru îndeplinirea atribuţiilor lor (manual, pe calculator
etc.)?
Care este frecvenţa de realizare a fiecărei sarcini de serviciu?
Cum ar putea sistemul să-l ajute pe utilizator în realizarea atribuţiilor sale?
Identificarea cerinţelor de lucru
Mulţi sunt tentaţi ca, dupǎ parcurgerea activitǎţilor din faza anterioarǎ, sǎ ignore
această etapă de lucru şi să treacǎ direct la construirea interfeţelor şi scrierea programelor.
Chiar dacǎ aceastǎ fazǎ solicitǎ timp şi eforturi semnificative, parcurgerea ei va asigura
obţinerea unor interfeţe de calitate. În altă ordine de idei, ignorarea acestei faze ar face
imposibilă punerea în practică a procesului iterativ şi, implicit, angajarea directă a
utilizatorilor în proiectarea interfeţelor.
Paşii ce trebuie parcurşi în această fază sunt: definirea
obiectivelor de calitate a interfeţelor, formularea
scenariilor pentru fiecare sarcină de serviciu, definirea
obiectelor şi acţiunilor interfeţei utilizator,
stabilirea modului de reprezentare vizuală a obiectelor interfeţei.
Definirea obiectivelor
Un scenariu reprezintă o descriere generală unei atribuţii de serviciu, sub forma unei
succesiuni de operaţiuni pe care le realizează utilizatorul. Scenariile de lucru sunt utile nu
doar la proiectarea interfeţelor, ci şi la testarea lor. Neidentificarea tuturor scenariilor de
lucru poate determina creşterea probabilităţii de omitere a unui obiect sau a unei acţiuni şi,
implicit, obţinerea unei aplicaţii cu funcţionalitate incompletă. Se vor urmări identificarea
şi definirea de scenarii de lucru distincte, pentru fiecare categorie de utilizatori, ţinând cont
de caracteristicile lor.
Este foarte important de reţinut că scenariile definite trebuie să ghideze proiectarea
interfeţelor şi nu invers, adică proiectarea mai întâi a interfeţelor şi definirea ulterioară a
scenariilor. Altfel, faza de testare va porni de la premise greşite, fiind testate scenariile care
oricum pot fi realizate prin intermediul interfeţei şi nu scenariile de lucru reale.
În caseta 2.4 sunt prezentate scenariile de lucru ale utilizatorilor pentru actualizarea şi
vizualizarea datelor privind comenzile primite de la clienţi.
21. Booth, P. – An Introduction to Human-Computer Interaction, Lawrence Erlbaum Associates, Londra, 1989, citat în
Mandel, T. – op. cit., p. 103.
78 SISTEME INFORMAŢIONALE FINANCIAR-CONTABILE II
Caseta nr. 2.4 – Scenariile de lucru pentru actualizarea şi vizualizarea comenzilor
Scenariul 1. Introducerea unei comenzi noi
Operaţiile de lucru sunt următoarele:
Alegerea clientului. Utilizatorul introduce codul clientului după care va verifica dacă
numele şi adresa acestuia corespund cu datele înscrise pe document. În cazul în care
utilizatorul nu ştie codul clientului, şi nici nu este trecut în document, atunci el va selecta
numele acestuia din lista clienţilor;
Adăugarea unui client nou (dacă clientul dorit nu există în baza de date);
Salvarea comenzii;
Transmiterea unei notificări către client. În cazul primirii comenzii prin telefon, clientul
poate solicita confirmarea înregistrării comenzii sale prin transmiterea unui email cu toate
detaliile;
Tipărirea comenzii, dacă utilizatorul doreşte acest lucru (în special în cazul comenzilor
primite prin telefon.
Scenariul 2. Modificarea datelor de pe o comandă
Operaţiile de lucru sunt următoarele:
Căutarea şi afişarea comenzii. Căutarea poate fi efectută în funcţie de numărul dat de client
sau numărul (codul) intern al comenzii, perioada în care a fost înregistrată, codul sau
numele clientului;
Tipărirea comenzii, dacă utilizatorul doreşte acest lucru (mai ales în cazul comenzilor
primite anterior prin telefon).
Scenariul 3. Anularea unei comenzi
Operaţiile de lucru sunt următoarele:
Căutarea unei comenzi a clientului selectat. Căutarea poate fi realizată după numărul
comenzii dat de client sau data de înregistrare;
Vizualizarea comenzii. Utilizatorul poate fi interesat de felul plăţii, data livrării, articolele
şi cantităţile comandate, valoarea totală a comenzii, starea acesteia etc;
Tabel nr. 2.8 – Mecanisme de control al datelor introduse în ecrane
Mecanisme de Explicaţii
control
Se verifică dacă datele dacă sunt de un anumit tip (numerice, alfanumerice,
Tipul datelor
date calendaristice etc.)
Verosimilitatea datelor depinde de la caz la caz. De exemplu, cantitatea
vândută nu poate fi prea mare dacă preţul de vânzare este foarte mare. Nivelul
Verosimilitate
salariului sau al unei retrageri din cont bancar nu pot depăşi anumite limite.
Atunci când este posibil, aplicaţia va permite utilizatorului să aleagă o valoare
Selectarea unei
dintr-o listă, prin utilizarea căsuţelor combinate sau a celor de tip listă. De
valori, în locul
exemplu, pentru introducerea tipului de document se va prevedea în formular
introducerii ei
o căsuţă combinată sau butoane de opţiune.
Câmpurile din formulare, care sunt obligatoriu de completat, trebuie
Depistarea datelor
semnalate utilizatorilor, iar în momentul salvării datelor se va verifica dacă
lipsă
au fost completate toate câmpurile.
Această tehnică este utilizată pentru verificarea corectitudinii codurilor
Tehnica cifrei de
utilizate în aplicaţie, cum ar fi codul mărfii, al furnizorului etc. Un exemplu
control
este prezentat mai jos.
Pentru unele date pot fi definite şabloane, urmând a se verifica dacă datele
introduse corespund acestora. Astfel de şabloane pot fi definite pentru datele
Formatul datelor
calendaristice, numere de telefon, numere de înmatriculare a autoturismelor
etc.
Se verifică dacă datele introduse de utilizator se încadrează în intervalele de
Intervale de valori valori admise. De exemplu, notele obţinute la examen să fie în intervalul 0 –
10, stocul să fie mai mare decât 0 etc.
Numărul de caractere care trebuie introduse într-un câmp trebuie verificat
Numărul de
atunci când este cunoscut. De exemplu, CNP-ul unei persoane este format din
caractere
13 cifre.
Validitatea datelor introduse în formulare poate fi determinată prin
Compararea compararea lor cu datele stocate deja în baza de date. De exemplu, la
datelor introduse introducerea codului sau a numelui clientului se va verifica dacă el există în
cu cele stocate baza de date. Acest mecanism permite utilizatorilor să verifice corectitudinea
datelor introduse, înainte de salvarea lor.
Dintre mecanismele de control enumerate în tabelul 2.8, tehnica cifrei de control este
ceva mai complex. Conform acesteia, codurile numerice utilizate pentru reprezentarea
diferitelor entităţi vor avea ultima cifră determinată pe baza unui algoritm. Acelaşi algoritm
va fi utilizat şi la introducerea codurilor respective în formulare, pentru a stabili validitatea
lor. Această tehnică este utilizată la stabilirea codului numeric personal (CNP) al unei
persoane.
În caseta 2.8 sunt prezentate un exemplu de cod cu cifră de control şi algoritmul de
determinare a ei. Mai întâi, fiecărei cifre din cod i se atribuie câte un număr prim, în ordine
crescătoare, începând de la stânga spre dreapta. În cazul unui cod format din cinci cifre,
numerele prime utilizate vor fi 1, 2, 3, 5 şi 7. Primei cifre din stânga i se va atribui numărul
87
1, celei de-a doua numărul prim 2 ş.a.m.d. Apoi, se va calcula suma ponderată a cifrelor
din cod cu numerele prime atribuite. Cifra de control se va determina prin aplicarea
operaţiei „modulo 9” din suma ponderată rezultată. În final, se adaugă cifra de control la
codul iniţial şi se va obţine codul final.
codulnumer
Să considerăm codu numeric 12012.
c 12012.
Numerele cu ca
caree va fi ponderată ieca e cicifră
fiecare ă dindin
cod sun
cod : 12012
sunt: 12012
12357
12357
Suma ponderată va fi 1x1+2x2+0x3+1x5+2x7=24
împărţirii
Restul împăr irii sumei la 9 (modulo 9 din sumă): 24 : 9 = 2, iar restul este 6.
Cifra de control este 6, iar codul rezultat va fi 120126.
În tabelul 2.8 sunt prezentate doar mecanismele de control care realizează verificarea
automată a datelor introduse prin intermediul ecranelor. În afara acestora, pot fi prevăzute
mecanisme care să permită utilizatorilor să verifice ei înşişi corectitudinea datelor, în
momentul introducerii lor. Un astfel de mecanism îl reprezintă afişarea informaţiilor de
identificare a entităţilor în legătură cu care se introduc date, mai ales atunci când se
folosesc coduri. De exemplu, după introducerea codului pentru furnizorul care a emis
factura, se vor afişa, în câmpuri alăturate, datele sale de identificare, preluate automat din
baza de date, respectiv numele, adresa etc. Utilizatorul va avea posibilitatea să compare
aceste informaţii cu cele înscrise în factură şi să depisteze eventualele neconcordanţe.
Aceeaşi procedură poate fi utilizată şi pentru introducerea datelor privind mărfurile din
factură.
O altă procedură constă în afişarea unor totaluri sau a altor câmpuri calculate. De
exemplu, în formularul pentru introducerea facturilor primite de la furnizori se va afişa
valoarea TVA şi totalul facturii. Dacă aceste valori diferă de cele înscrise în factură, atunci
este foarte probabil ca utilizatorul să fi introdus greşit cantitatea sau preţul pentru una sau
mai multe mărfuri.
Teste de autoevaluare
TA 5.2
1. Enumeraţi 6 reguli de proiectare a meniurilor.
2. Enumeraţi 5 reguli de proiectare a interfeţelor Web.
3. Explicaţi, printr-un exemplu, în ce constă aplicarea tehnicii cifrei de control?
Răspuns:
88 SISTEME INFORMAŢIONALE FINANCIAR-CONTABILE II
5.5 Formularea specificaţiilor de proiectare a interfeţelor
Specificaţiile de proiectare a interfeţelor şi dialogurilor se pot concretiza într-o formă
similară celei prezentate în continuare.
1. Prezentare generală descriptivă
1.1. Numele interfeţei/dialogului
1.2. Caracteristicile utilizatorului
1.3. Caracteristicile activităţii
1.4. Caracteristicile sistemului
1.5. Caracteristicile mediului de lucru
2. Proiectele interfeţelor/dialogurilor
2.1. Proiectele formularelor/formatelor/rapoartelor
2.2. Diagramele secvenţelor de derulare a dialogurilor şi prezentarea descriptivă a
acestora
3. Testarea şi evaluarea interfeţelor/dialogurilor în utilizare
3.1. Obiectivele testării
3.2. Procedurile testării
3.3. Rezultatele testării
3.3.1. Timpul de învăţare
3.3.2. Viteza de execuţie
3.3.3. Rata erorilor
3.3.4. Rezistenţa în timp
3.3.5. Satisfacţia şi alte percepţii ale utilizatorului
5.6 Răspunsuri la testele de autoevaluare
TA 5.1 1) Vezi p. 71-72. 2) Definirea obiectivelor de calitate a interfeţelor, formularea
scenariilor pentru fiecare sarcină de serviciu, definirea obiectelor şi acţiunilor interfeţei
utilizator, stabilirea modului de reprezentare vizuală a obiectelor interfeţei. 3) Culegerea şi
analiza informaţiilor - analiza atribuţiilor de serviciu, identificarea cerinţelor de lucru;
Proiectarea interfeţelor – definirea scenariilor de lucru; Evaluarea şi validarea interfeţelor
utilizator – evaluarea prototipurilor.
TA 5.2 1) Vezi subunitatea 5.2 2) Vezi subunitatea 5.3. 3) vezi caseta 2.8.
89
5.7 Lucrare de verificare
A. Alegeţi varianta/variantele corectă/e de răspuns:
1) Care dintre urmatoarele mecanisme pentru controlul datelor in interfetele utilizator trebuie
aplicat in vederea evitarii introducerii eronate a valorii Novatim in loc de Navotim pentru numele
clientului?
a) verosimilitate
b) selectarea unei valori in locul introducerii ei
c) tipul datelor
d) tehnica cifrei de control
2) La proiectarea meniurilor trebuie aplicate urmatoarele conventii:
a) oferirea accesului direct la toate optiunile din meniu
b) includerea in meniu doar a optiunilor de lucru care se regasesc in cerintele functionale
c) pozitia Help este intotdeauna prima din linia meniului
d) separarea optiunilor care initiaza actiuni distructive de cele apelate in mod curent
B. Răspundeţi la următoarele întrebări şi probleme:
1. Descrieţi, pe scurt, etapele şi activităţile procesului de proiectare a interfeţelor utilizator.
2. Enumeraţi elementele specificaţiei de proiectare a interfeţelor utilizator.
3. Alegeţi mecanismul cel mai potrivit pentru controlul datelor în vederea depistării
următoarelor erori de introducere a datelor:
introducerea într-o căsuţă de text a valoarii 220459 în loc de 220549;
specificarea datei 30 februarie;
specificarea a 320 ore lucrate pentru un angajat, la preluarea datelor din centralizatorul
lunar al pontajelor;
introducerea valorii Iasirad în loc de Iasiard, pentru numele clientului;
nespecificarea cantităţii pentru un produs, la preluarea datelor de pe o factură;
introducerea greşită cantităţii, pentru o marfă achiziţionată prin factură;
introducerea valorii IS-289-GDF, pentru numărul de înmatriculare al unui camion;
introducerea sumei de 2500 lei pentru plata unei facturi, deşi valoarea facturii este de
numai 2000 lei.
5.8 Bibliografie
1. Mandel, T. – The Elements of User Interface Design, John Wiley & Sons, New York, 1997,
p. 245-290
2. Marakas, G. – Systems Analysis and Design. An Active Approach, Prentice Hall, New
Jersey, 2001, pp. 354-362
3. Oprea, D., Dumitriu, F., Meşniţă, G., Proiectarea sistemelor informaţionale, Ed.
Universităţii “Al. I. Cuza” Iaşi, 2006, pp. 93-112
Unitatea de studiu 6
Concepte de bază privind modelarea logică a datelor
Obiective:
Definirea locului modelării logice a datelor în ciclul de viaţă al sistemelor
Descrierea aspectelor calitative ale modelului logic al datelor
Prezentarea sintetică a conceptelor specifice modelului relaţional
Descrierea demersului de proiectare logică a bazei de date
Competenţe dobândite:
Evaluarea aspectelor calitative ale unei scheme logice a bazei de date
Modelarea logică a datelor prin înţelegerea corectă a necesităţii şi conţinutului aplicării
principiului abstractizării
Elaborarea unui demers de proiectare a bazei de date adaptat la caracteristicile sistemului
Timpul mediu necesar asimilării: 4 ore
Structura unităţii de studiu
6.1 Locul modelării logice a datelor în ciclul de viaţă al sistemelor ........................................... 91
6.2 Concepte de bază utilizate în modelul relaţional ................................................................... 92
6.3 Demersul proiectării logice a bazelor de date ........................................................................ 96
6.4 Răspunsuri la testele de autoevaluare .................................................................................... 97
6.5 Lucrare de verificare .............................................................................................................. 97
6.6 Bibliografie ............................................................................................................................ 98
În timpul analizei sistemelor, s-a discutat despre dezvoltarea sistemului informaţional
din trei puncte de vedere:
determinarea cerinţelor sistemului;
structurarea cerinţelor;
generarea şi selecţia variantelor noului sistem.
Componenta referitoare la structurarea cerinţelor a fost tratată astfel:
modelarea logică a proceselor de prelucrare;
modelarea logicii proceselor;
modelarea conceptuală a datelor (diagrama entitate-relaţie).
Unitatea de studiu de faţă, împreună cu următoarea, se află în strânsă legătură cu
modelarea conceptuală a datelor. Pentru o şi mai bună clarificare, revenim la aplicarea
principiului abstractizării, discutat şi în cadrul etapei de analiză, conform căruia datele sunt
modelate pe trei niveluri: conceptual, logic şi fizic. Acum ne concentrăm asupra celui de-al
doilea nivel de abstractizare, respectiv modelarea logică a datelor. În timpul modelării
conceptuale s-a urmărit reprezentarea modului de organizare a datelor, independent de
tehnologiile specifice de stocare şi prelucrare a bazelor de date, fără să se înregistreze o
preocupare anume referitoare la calitatea modelelor. Ultimului aspect i se va acorda atenţia
cuvenită abia acum, odată cu modelarea logică a datelor, descriindu-se structurile datelor
din bază.
91
6.1 Locul modelării logice a datelor
în ciclul de viaţă al sistemelor
Modelarea logică a datelor descrie datele cu ajutorul unei notaţii speciale, care
corespunde unui mod de organizare a acestora de către un sistem de gestiune a bazelor de
date relaţionale, numit şi model relaţional.
Diferenţa majoră dintre modelarea conceptuală şi cea logică a datelor este aceea că,
după modelarea logică a datelor, cerinţele structurate de date se concretizează în relaţii
(tabele), şi nu în entităţi. Din cauza unor criterii de calitate şi reguli de organizare diferite,
cum ar fi normalizarea, nu este necesară o corespondenţă biunivocă între mulţimea
entităţilor şi cea a relaţiilor.
Principalele criterii de calitate utilizate în evaluarea modelului logic al datelor sunt22:
Completitudine. Modelul logic trebuie să conţină toate datele necesare prelucrărilor
în vederea obţinerii ieşirilor din sistem.
Neredundanţă. Redundanţa datelor generează probleme privind integritatea lor (vezi
anomaliile la actualizare descrise în acest capitol) şi solicită procese suplimentare
pentru întreţinerea datelor. De aceea, modelul logic trebuie să fie format dintr-un set
de tabele normalizate.
Reutilizare. Schema logică a bazei de date trebuie concepută astfel încât ea să
satisfacă nu doar cerinţele anticipate ale sistemului, ci şi pe cele ale altor potenţiali
utilizatori sau eventualele cerinţe viitoare care apar inevitabil. Dacă datele sunt
organizate având în minte doar cerinţele actuale, atunci reorganizarea datelor,
determinată de apariţia unor noi cerinţe funcţionale, poate fi foarte costisitoare.
Stabilitate şi flexibilitate. Aceste criterii vizează uşurinţa adaptării bazei de date la
modificările ulterioare ale cerinţelor sistemului. Un model al datelor este considerat
stabil dacă eventualele modificări ale cerinţelor funcţionale nu determină schimbarea
structurii sale. Schema bazei de date va fi considerată mai stabilă sau mai puţin
stabilă în funcţie de amploarea modificărilor generate de schimbarea cerinţelor.
Flexibilitatea unui model al datelor este dată de uşurinţa extinderii sale pentru
înglobarea noilor cerinţe cu impact minim asupra structurii existente.
Simplitate şi eleganţă. Modelul logic al datelor trebuie să ofere o clasificare naturală
şi elegantă a datelor. De exemplu, este inadecvată existenţa tabelelor FURNIZOR şi
CLIENT, atât timp cât unii parteneri de afaceri pot fi atât furnizori, cât şi clienţi.
Aceeaşi situaţie poate apărea în cazul facturilor, fiind neelegantă conceperea a două
tabele, una pentru facturi emise şi alta pentru facturi primite, atât
timp cât ele au structuri similare.
Tot acum facem menţiunea că relaţiile (tabelele) nu corespund fişierelor fizice realizate
cu calculatorul, operaţiune efectuată în timpul proiectării fizice, descrisă într-un capitol
următor. După cum vom vedea, obiectivele şi criteriile de calitate sunt diferite de cele
vizate la proiectarea logică a datelor.
Procesul de modelare logică a datelor se derulează în paralel cu celelalte activităţi ale
proiectării logice: proiectarea formularelor şi a rapoartelor, proiectarea dialogurilor şi
interfeţelor. Modelarea logică a datelor se realizează nu numai pe baza diagramei entitate-
22. Simsion, G.C. – Data Modeling Essentials. Analysis, Design, and Innovation, Second Edition, The Coriolis Group,
2001, Scottsdale, Arizona, pp. 11-15.
92 SISTEME INFORMAŢIONALE FINANCIAR-CONTABILE II
relaţie, ci şi pe baza machetelor formularelor şi a rapoartelor. Se efectuează analiza datelor
elementare din intrările şi ieşirile sistemului, pentru a se desprinde legăturile dintre ele.
Procesul de modelare a datelor este complex. În fiecare etapă a ciclului de viaţă al
sistemelor se regăseşte câte o activitate specifică datelor, conform tabelului 3.1.
Întrucât modelul relaţional reprezintă subiectul central al discuţiei noastre despre
modelarea logică a datelor, în paragraful următor, vom descrie conceptele sale de bază.
Tabel nr. 3.1 – Relaţia dintre etapele ciclului de viaţă al sistemelor şi modelarea datelor
Etapa din ciclul de Elemente de modelare a datelor
viaţă al sistemului
Identificarea şi Modelul general al datelor la nivel de întreprindere (DER doar cu
selecţia proiectelor entităţi).
Iniţierea şi Modelul conceptual al datelor. Prezentarea DER cu entităţile specifice
planificarea unor proiecte.
proiectului
Analiza Modelele conceptuale ale datelor. Se prezintă DER în care se includ şi
atributele.
Proiectarea logică Modelul logic al datelor (relaţional).
Proiectarea fizică Proiectarea fişierelor şi bazelor de date fizice (organizarea fişierelor).
Implementarea Descrierea fişierelor şi bazelor de date (codificarea unor SGBD).
Întreţinerea Evoluţia modelului datelor.
6.2 Concepte de bază utilizate în modelul relaţional
O bază de date relaţională poate fi definită ca un ansamblu de relaţii (tabele) aflate în
legătură. Fiecare tabel este identificat printr-un nume propriu, având linii şi coloane, la
intersecţia cărora se introduc valori atomice. În figura 3.1 este prezentat un exemplu
simplificat de bază de date pentru evidenţa vânzărilor.
În modelul relaţional, datele sunt stocate sub forma tabelelor, numite şi relaţii (de aici
provine şi numele de model relaţional). Conceptul de relaţie permite reprezentarea unei
entităţi din universul modelat sau a unei legături semantice dintre două entităţi. În exemplul
nostru se regăsesc patru relaţii: PRODUS, ARTICOLFACTURA, FACTURA şi CLIENT.
În tabelul 3.2 sunt prezentate principalele noţiuni utilizate în descrierea modelului
relaţional, precum şi termenii corespondenţi din teoria mulţimilor şi din domeniul
prelucrării datelor.
Tabel nr. 3.2 – Terminologia diferitelor domenii de lucru
Teoria Baze de date relaţionale Convenţii din prelucrarea datelor
mulţimilor
Relaţie Tabel Fişier
Domeniu Toate valorile posibile pe care le Toate valorile posibile pe care le poate
poate avea o coloană avea un câmp
Tuplu Linie Înregistrare
Termenul relaţie provine din studiile efectuate asupra datelor de E.F. Codd şi alţii, în
timp ce lucrau pentru IBM, în tentativa lor de a găsi unele criterii, cât de cât ştiinţifice, de
descriere a datelor şi care să conducă la o proiectare flexibilă, cu structuri uşor de modificat.
Concentrându-se asupra datelor, Codd a găsit de cuviinţă că ar fi utilă aplicarea în acest
domeniu a matematicilor mulţimilor de elemente. O mulţime matematică este
93
concepută ca un grup de obiecte, cu o regulă de asociere între elemente bine definite, sau
prin folosirea unei liste de consultat, pentru a se vedea dacă un element îi aparţine sau nu.
Se poate spune, astfel, că mulţimea numerelor pare este o submulţime a mulţimii numerelor
naturale, cu condiţia ca fiecare număr să se împartă exact la 2.
PRODUS
CodProdus DenProdus UM Stoc PretVanzare
100001 Canapea Mircea buc 7,00 250,00
100018 Comoda Mia buc 12,00 140,00
100026 Pal furniruit mp 112,00 12,50
100034 Biblioteca Livia buc 4,00 980,00
ARTICOLFACTURA
ARTICOLFACTURA
NrFactura CodProdus Cantitate
81001 100026 40,00
81002 100001 4,00
81002 100018 8,00
81003 100018 1,00
81004 100026 28,00
81004 100018 45,00
81005 100034 1,00
FACTURA
NrFactura DataFactura CodClient
81001 25.mai.04 1001
81002 25.mai.04 1001
81003 26.mai.04 1002
81004 26.mai.04 1002
81005 27.mai.04 1003
CLIENT
CodClient NumeClient Adres
Adresaa Sold
1001 Mota SRL Florilor, 21, Ias i 0
1002 Mobins SA Copou, 11, Vas lui 15000000
1003 Lux SRL Viilor, 45, Hus i 29000000
Fig. 3.1 Exemplu de bază de date relaţională
Fiecare linie dintr-o tabelă (relaţie), numită tuplu, conţine date despre un caz sau o
instanţă a entităţii reprezentate prin tabela respectivă. De exemplu, fiecare linie din tabela
PRODUS conţine datele necesare despre un anumit produs. Fiecare coloană (atribut)
conţine informaţii despre o anumită caracteristică a entităţii reprezentate, ele fiind cunoscute
şi sub numele de valori ale caracteristicii. Astfel, fiecare instanţă a entităţii PRODUS este
descrisă prin următoarele caracteristici: cod, denumire, unitate de măsură, stoc şi preţul de
vânzare.
La intersecţia fiecărei linii şi coloane se va introduce o valoare atomică, adică o
valoare care nu mai poate fi descompusă. De exemplu, la intersecţia coloanei NrFactura cu
prima linie din tabela FACTURA se regăseşte o singură valoare, 81001, care nu mai poate
fi descompusă. Acesta este şi motivul pentru care a fost creată tabela ARTICOLFACTURA.
Dacă nu ar fi existat această tabelă, iar câmpul Cantitate ar fi fost inclus în tabela
FACTURA, atunci linia corespunzătoare unei facturi ar fi conţinut mai multe valori pentru
această coloană, câte una pentru fiecare produs vândut prin intermediul acelei facturi. De
exemplu, linia corespunzătoare facturii 81004 ar fi conţinut două valori în coloana
Cantitate, 28.00 şi 45.00, pentru cele două produse de pe factură.
94 SISTEME INFORMAŢIONALE FINANCIAR-CONTABILE II
Totuşi, în exemplul nostru se poate considera că unele coloane nu conţin valori
atomice. Coloana Adresa din tabela CLIENT ar putea fi descompusă cel puţin în oraş,
strada şi număr. Este adevărat însă, după cum vom vedea ulterior, atomicitatea valorilor
stocate într-o tabelă este o noţiune relativă.
Mulţimea tuturor valorilor pe care le poate lua o dată elementară se numeşte domeniu,
definit, de cele mai multe ori, prin limite superioare şi inferioare
Ansamblul minimal de atribute prin care se poate identifica în mod unic orice tuplu
dintr-o relaţie reprezintă cheia relaţiei. Orice relaţie posedă cel puţin o cheie. Când cheia
este constituită dintr-un singur atribut, poartă numele de cheie simplă, iar atunci când este
formată din mai multe atribute ea se numeşte cheie compusă. Tabelele PRODUS,
FACTURA şi CLIENT au cheie simplă, respectiv CodProdus, NrFactura şi CodClient, în
timp ce tabela ARTICOLFACTURA are o cheie compusă, formată din coloanele NrFactura
şi CodProdus (în figura 3.1, datele din coloanele respective sunt cu caractere îngroşate).
O relaţie poate avea două sau mai multe atribute sau combinaţii de atribute care să joace
rolul de cheie. În acest caz ele se vor numi chei candidat, urmând ca proiectantul să aleagă
una dintre ele drept cheie primară, iar celelalte se vor numi chei secundare. În relaţia
CLIENT, atributul NumeClient reprezintă o cheie secundară deoarece valorile sale pot
identifica în mod unic fiecare linie.
La alegerea unei chei primare analistul trebuie să aibă în vedere trei restricţii:
unicitatea – o cheie identifică un singur tuplu (linie) a relaţiei;
compoziţia minimală – atunci când cheia primară este compusă, nici un atribut din
cheie nu poate fi eliminat fără distrugerea unicităţii tuplului în cadrul relaţiei;
valori ne-nule – valorile atributului sau ale ansamblului de atribute ce desemnează
cheia primară sunt întotdeauna specificate, deci ne-nule; nici un atribut din
compoziţia cheii primare nu poate avea valori nule.
În mulţimile matematice nu este permis ca un obiect să apară de mai multe ori. Cât
timp o relaţie este o mulţime de tupluri, teoretic nici o linie a unei relaţii nu poate fi
duplicatul altei linii (SQL admite existenţa unor linii duplicat într-un tabel, considerându-se
că există modalităţi de eliminare a lor, dacă se doreşte). Dacă o coloană sau o combinaţie
de coloane nu poate să identifice în mod unic o linie, atunci trebuie inventată o coloană-
cheie specială. Oricum, fiecare relaţie trebuie să dispună de o cheie primară.
Legătura între tupluri din relaţii diferite se realizează prin intermediul unei coloane
comune, utilizându-se noţiunea de cheie străină, întâlnită uneori în literatură şi sub numele
de cheie externă. O cheie străină este un atribut care apare într-o tabelă şi care este cheie
primară în altă tabelă. În exemplul nostru, legătura dintre tabelele CLIENT şi FACTURA
este realizată prin intermediul atributului comun CodClient. Acest atribut joacă rolul de
cheie primară în tabela-părinte CLIENT şi rolul de cheie străină în tabela-copil
FACTURA23. În figura 3.1, cheile primare sunt evidenţiate prin caractere îngroşate (bold),
iar cheile străine prin caractere înclinate (italic).
În legătură cu cheia străină, apare conceptul de restricţie de integritate referenţială.
Această restricţie presupune că, pentru o cheie străină se admite orice valoare nenulă care
se regăseşte între valorile cheii primare din tabela-părinte. În tabela FACTURA toate
valorile coloanei CodClient, care este cheie străină, au corespondenţă în valorile aceleiaşi
coloane din tabela CLIENT, unde ea este definită cheie primară.
23. În teoria grafurilor, structurile arborescente sunt redate prin relaţii descendente, în care apar conceptele de bunic,
părinte, copil (fiu).
95
concepută ca un grup de obiecte, cu o regulă de asociere între elemente bine definite, sau
bazei de date, motiv pentru care trebuie definite aspectele de comportament al datelor în
cazul celor trei operaţiuni de actualizare: adăugarea, modificarea şi ştergerea de linii.
În cazul operaţiunii de adăugare, nu este permisă introducerea unei noi linii în tabela-
copil care să nu aibă corespondent în tabela-părinte. De exemplu, nu este corectă adăugarea
unei facturi în tabela FACTURA pentru clientul cu codul 2222 (adică o linie pentru care
valoarea atributului CodClient să fie 2222), atât timp cât acest client nu există în tabela
CLIENT.
Celelalte două operaţiuni privesc comportamentul datelor din tabela-părinte. Astfel, nu
se admite modificarea valorii cheii primare pentru o linie din tabela-părinte dacă aceasta
are asociată cel puţin o linie în tabela-copil. De exemplu, nu se admite modificarea valorii
cheii primare pentru linia corespunzătoare clientului „Lux SRL” (valoarea 1003 pentru
coloana CodClient) în tabela CLIENT deoarece în tabela FACTURA ultima linie face
referire la această valoare. În mod asemănător, nu este permisă ştergerea unei linii din
tabela-părinte dacă există cel puţin o linie în tabela-copil care face referire la ea. Cu atât
mai mult, linia corespunzătoare clientului „Lux SRL” din tabela CLIENT nu poate fi
eliminată. Dacă nu ar fi existat ultima linie din tabela FACTURA, atunci operaţia de
ştergere ar fi putut avea loc.
Asigurarea consistenţei datelor impune conceperea unei baze de date bine structurate,
care să garanteze respectarea restricţiilor privind cheia şi a restricţiei referenţiale. În
paragraful următor vom pune în evidenţă, printr-un exemplu, avantajele unei baze de date
structurate.
Teste de autoevaluare
TA 6.1
1. Explicaţi deosebirea dintre modelul conceptual şi modelul logic al datelor.
2. Enumeraţi criteriile de calitate ale modelului logic al datelor.
3. Explicaţi următoarele noţiuni din modelul relaţional: relaţie, cheie primară, cheie străină,
restricţie de integritate referenţială.
Răspuns:
96 SISTEME INFORMAŢIONALE FINANCIAR-CONTABILE II
6.3 Demersul proiectării logice a bazelor de date
Proiectarea schemei logice a bazei de date poate fi realizată în mai multe moduri.
Abordarea tradiţională, aplicată, în special, în cazul bazelor de date relaţionale, presupune
constituirea relaţiei generale prin reunirea tuturor datelor elementare (atribute), identificate
în faza de analiză, şi repartizarea lor în tabele, pe baza analizei dependenţelor dintre
atribute (dependenţe funcţionale, dependenţe multivaloare şi de joncţiune) şi aplicarea
procesului de normalizare. Această abordare a înregistrat unele succese în proiectarea
bazelor de date de dimensiuni mici şi medii, însă ea devine foarte greoaie în cazul bazelor
de date de dimensiuni mari şi foarte mari.
Introducerea modelului entitate-relaţie a determinat reorientarea specialiştilor către o
nouă abordare în proiectarea bazelor de date. Aceasta presupune, mai întâi, modelarea
conceptuală a datelor, prin construirea diagramei entitate-relaţie, care evidenţiază entitaţile
de date ale sistemului, atributele acestora şi legăturile dintre entităţi. Ulterior, prin aplicarea
unor reguli simple, are loc transformarea DER în schema logică a bazei de date. Tabelele
astfel rezultate sunt, în final, analizate din perspectiva normalizării, cu posibilitatea obţinerii
unor tabele noi.
Corespunzător celor două abordări, există două strategii de proiectare a schemei logice
a bazei de date:
strategia bottom-up reprezintă abordarea tradiţională şi presupune constituirea
relaţiei generale care urmează a fi supusă normalizării pentru a se obţine tabelele
bazei de date;
strategia top-down presupune construirea DER şi apoi transformarea ei într-un set
de tabele, prin aplicarea unor reguli. Tabelele rezultate vor fi analizate din
perspectiva normalizării.
Utilizarea strategiei top-down oferă o serie de avantaje, faţă de abordarea tradiţională24:
diagrama entitate-relaţie reprezintă un instrument util de comunicare între analişti
şi utilizatori pe parcursul fazelor de analiză şi proiectare logică;
modelul entitate-relaţie este uşor de înţeles şi conceput. În general, prezentarea
grafică permite exprimarea unui volum mare de informaţii sub o formă compactă,
uşor de urmărit şi înţeles;
utilizează conceptul de abstractizare, ceea ce reduce considerabil numărul obiectelor
luate în considerare la analiza şi proiectarea bazei de date. Prin utilizarea noţiunii de
entitate (sau clasă de entităţi), ca abstractizare pentru datele elementare (atribute), se
vor analiza mai puţine obiecte (numărul entitaţilor de date este mult mai mic
decât numărul datelor elementare din sistem) şi mai puţine relaţii între obiecte
(numărul relaţiilor dintre entităţi este mult mai mic decât numărul relaţiilor de
dependenţă existente între atribute). Deşi datele elementare sunt reprezentate şi în
modelul entitate-relaţie, ca proprietăţi ale entităţilor, totuşi numărul
dependenţelor ce trebuie analizate este mult redus, fiind luate în considerare doar
dependenţele dintre atributele unei entităţi şi nu dependenţele dintre toate atributele
bazei de date.
Existenţa unui set complet de reguli de transformare a DER în tabele ale bazei de
date. Aceste reguli permit transformarea simplă şi rapidă a cerinţelor informaţionale
ale sistemului, structurate în DER, în baza de date. În acest sens, majoritatea
24. Adaptare după Teorey, T.J. – Database Modeling & Design, Morgan Kaufmann Publishers, Inc, 1999, San Francisco,
p. 46.
97
instrumentelor CASE oferă suport pentru generarea automată a bazei de date, în
funcţie de SGBD-ul dorit.
Pornind de la cele două strategii, pot fi identificate demersuri diferite de proiectare a
bazei de date, mai mult sau mai puţin riguroase. Două dintre ele corespund celor două
strategii, ele fiind descrise pe scurt anterior. Un demers mai riguros presupune combinarea
celor două strategii: se aplică ambele strategii, pentru obţinerea a două modele logice ale
datelor, iar, din compararea lor, va rezulta schema logică finală a bazei de date. În acest fel
se combină avantajele strategiei top-down, enumerate anterior, cu abordarea mai analitică,
specifică strategiei bottom-up. Chiar dacă este mai îndelungat şi mai costisitor, un astfel de
demers oferă garanţii suplimentare privind calitatea schemei logice a bazei de date, mai
ales în ce priveşte completitudinea.
Un asemenea demers presupune parcurgerea următorilor patru paşi:
1. Construirea câte unui model logic al datelor din perspectiva utilizatorului
(formulare şi rapoarte) privind aplicaţia, respectându-se principiile normalizării.
2. Integrarea tuturor perspectivelor normalizate ale utilizatorilor, obţinute prin
parcurgerea pasului anterior, într-un model logic consolidat al datelor.
3. Transformarea modelului conceptual al datelor (entitate-relaţie), realizat fără să se
ţină cont de perspectiva utilizatorului, într-un set de relaţii normalizate.
4. Compararea modelului logic consolidat al datelor, rezultat prin integrarea
perspectivelor utilizatorilor (pasul 2), cu cel obţinut prin transformarea DER (pasul
3), în vederea definirii modelului logic final al datelor.
În practică, poate fi angajat un alt demers, mai simplu (uneori simplist!), de proiectare
a bazei de date, constând în transpunerea directă a cerinţelor sistemului în modelul logic al
datelor, fără parcurgerea unor paşi intermediari. Cu alte cuvinte, analistul va exprima
cerinţele funcţionale nestructurate ale sistemului direct în termenii tabelelor, coloanelor şi
restricţiilor. Un asemenea demers poate fi aplicat în cazul bazelor de date de dimensiuni
foarte mici sau dacă analistul are o mare experienţă în domeniul problemei. Oricum,
alegerea unui demers sau a altuia depinde de complexitatea bazei de date, de experienţa
echipei de proiectare, de timpul şi resursele financiare disponibile sau de cerinţele de
calitate dorite.
În continuare, vom dezbate, pe rând, cele două strategii de proiectare, după care vom
prezenta căteva consideraţii legate de conţinutul celui de-al patrulea pas al demersului
propus, respectiv contopirea rezultatelor obţinute în paşii 2 şi 3.
6.4 Răspunsuri la testele de autoevaluare
TA 6.1 1) În modelul conceptual datele sunt reprezentate ca entităţi abstracte, iar în modelul
logic cerinţele structurate de date se concretizează în relaţii (tabele) 2) Completitudine,
neredundanţă, reutilizare, stabilitate şi flexibilitate, simplitate şi eleganţă. 3) Vezi p. XXX.
6.5 Lucrare de verificare
A. Alegeţi varianta/variantele corectă/e de răspuns:
1) Implicarea utilizatorilor in proiectarea logica a bazei de date poate fi realizata prin:
a) includerea in echipa de proiectare a unui reprezentant al utilizatorilor
b) utilizarea instrumentelor CASE
98 SISTEME INFORMAŢIONALE FINANCIAR-CONTABILE II
c) angajarea unui demers iterativ
2) Spre deosebire de abordarea traditionala, strategia top-down de proiectare a bazei de date
prezinta urmatoarele avantaje:
a) exista un set complet de reguli de transformare a DER in tabele si legaturi ce permite
generarea automata a bazei de date
b) relatiile de dependenta functionala dintre atribute sunt mai putin numeroase decat
legaturile dintre entitatile de date
c) este mai analitica, prin aplicarea ei evitandu-se omiterea unor cerinte functionale
B. Răspundeţi la următoarele întrebări şi probleme:
1. Realizaţi o comparaţie între cele două strategii de proiectare logică a bazei de date, bottom-
up şi top-down.
2. Daţi un exemplu de bază de date formată din două tabele, din domeniul contabilităţii, şi
puneţi în evidenţă conceptele principale ale modelului relaţional.
6.6 Bibliografie
1. Airinei, D., ş.a., Instrumente software pentru afaceri, Ed. Sedcom Libris, Iaşi, 2007, p. 131-
160
2. Teorey, T.J. – Database Modeling & Design, Morgan Kaufmann Publishers, Inc, 1999, San
Francisco, p. 40-52
3. Oprea, D., Dumitriu, F., Meşniţă, G., Proiectarea sistemelor informaţionale, Ed.
Universităţii “Al. I. Cuza” Iaşi, 2006, pp. 119-149
99
Unitatea de studiu 7
Transformarea diagramelor entitate-relaţie în relaţii
ale bazei de date
Obiective:
Prezentarea modului de reprezentare a entităţilor de date într-o bază de date relaţională
Descrierea şi exemplificarea regulilor de transformare a legăturilor între entităţi în relaţii
(tabele) ale unei baze de date relaţionale
Competenţe dobândite:
Proiectarea schemei logice a bazei de date prin aplicarea strategiei top-down
Timpul mediu necesar asimilării: 4 ore
Structura unităţii de studiu
7.1 Reprezentarea entităţilor ...................................................................................................... 100
7.2 Reprezentarea legăturilor ..................................................................................................... 101
7.2.1 Reprezentarea legăturilor binare 1:N şi 1:1 .................................................................. 101
7.2.2 Reprezentarea legăturile binare de tip M:N şi a celor ternare ...................................... 103
7.2.3 Reprezentarea legăturilor unare .................................................................................... 106
7.3 Răspunsuri la testele de autoevaluare .................................................................................. 110
7.4 Lucrare de verificare ............................................................................................................ 110
7.5 Bibliografie .......................................................................................................................... 110
Din descrierile anterioare rezultă că normalizarea este un proces ascendent (bottom-
up), prin care se obţine un set de relaţii bine structurate, care să conţină toate datele
solicitate din exteriorul sistemului şi pe cele consemnate în ieşirile lui. Acum, vom
prezenta principalele reguli care se aplică în cadrul strategiei top-down, pentru
transformarea DER într-un set de relaţii normalizate, reunite într-un proces. El reprezintă
conţinutul celui de-al treilea pas al demersului propus pentru proiectarea logică a bazei de
date.
Prin transformarea DER, pot rezulta patru tipuri de tabele:
1. Tabele care vor avea acelaşi conţinut ca entităţile originale. Acest tip de tabele
rezultă din transformarea (1) entităţilor implicate în relaţii binare de tipul „multe-la-
multe”, (2) a celor situate în partea „unu” a unei relaţii binare „unu-la-multe” sau
(3) a uneia dintre cele două entităţi aflate într-o relaţie „unu-la-unu”; acelaşi tip de
tabele poate rezulta şi din transformarea (4) entităţilor cu relaţii recursive de tipul
„multe-la-multe” sau (5) a entităţilor implicate în relaţii ternare. Cheia primară a
acestor tabele va fi reprezentată de cheia entităţii originale, iar celelalte proprietăţi
ale entităţii vor deveni atribute non-cheie în tabela rezultată. Tabelele de acest tip
vor juca, întotdeauna, rolul de părinte în legăturile cu tabele încadrate în celelalte
tipuri.
2. Tabele care vor conţine cheia primară a entităţii părinte. Acest tip de transformări
apar în cazul (1) entităţilor aflate de partea „multe” a unei relaţii binare de tipul
„unu-la multe”, (2) a uneia dintre entităţile legate printr-o relaţie „unu-la unu”,
precum şi (3) a entităţilor cu legături recursive de tipul „unu-la-unu” sau „unu-la-
multe”. Tabelele rezultate în urma acestor transformări vor juca rolul de tabelă
copil. Ele vor avea ca atribute proprietăţile entităţii originale, la care se adaugă
10 SISTEME INFORMAŢIONALE FINANCIAR-CONTABILE II
cheia principală a entităţii cu care este legată şi care va juca rolul de cheie
străină/externă.
3. Tabele care vor conţine cheile tuturor entităţilor asociate într-o relaţie. Aceste
tabele derivă din transformarea (1) legăturilor binare sau recursive de tipul „multe-
la-multe”, precum şi (2) a legăturilor ternare sau de un ordin mai mare de trei. Ele
mai sunt numite şi entităţi asociative, iar o tabelă de acest tip va conţine cheile
primare ale tuturor entităţilor asociate, fiecare jucând rolul de cheie străină, precum
şi eventualele proprietăţi ale relaţiei. Cheia principală a tabelei este formată, de
regulă, prin combinarea cheilor străine.
4. Tabele care vor conţine atributele multivaloare ale unei entităţi. În cazul în care o
entitate conţine unul sau mai multe atribute multivaloare, atunci se va constitui o
tabelă distinctă care va conţine atributele multivaloare, preluând şi cheia entităţii
originale. De regulă, cheia primară va fi formată din cheia entităţii originale la care
se adaugă unul sau mai multe din celelalte atribute. Acest caz a fost discutat în
capitolul 10 din volumul 1, atunci când am prezentat entităţile atributive.
Regulile anterioare de transformare iau în considerare numai maximul cardinalităţii
relaţiilor dintre entităţi. Minimul cardinalităţii, care descrie caracterul obligatoriu/facultativ
al relaţiei dintre entităţi, indică dacă pentru cheile străine sunt permise valorile nule sau nu.
În acest sens, se va lua în considerare minimul cardinalităţii unei legături de partea entităţii
părinte (adică entitatea din partea în care maximul cardinalităţii este”unu”); dacă legătura
este opţională, atunci se vor permite valorile nule pentru cheia străină în tabela-copil; în
cazul legăturilor obligatorii, nu se vor permite valori nule pentru cheile străine.
Transformarea DER într-un set de tabele normalizate presupune parcurgerea a patru
paşi:
1. Reprezentarea entităţilor, în care se obţin tabele din prima categorie;
2. Reprezentarea relaţiilor dintre entităţi, activitate în urma căreia vor rezulta tabele
din a doua şi a treia categorie.
3. Reprezentarea atributelor multivaloare, caz în care se vor obţine tabele din ultima
categorie.
4. Normalizarea relaţiilor. Tabelele create în paşii 1 şi 2 pot conţine redundanţe
nedorite şi vor constitui surse ale anomaliilor la actualizare.
Deoarece subiectul de la pasul 4 a fost tratat disciplinei Baze de date, în cele ce
urmează vom discuta doar primii trei paşi.
7.1 Reprezentarea entităţilor
Fiecare entitate din diagrama entitate-relaţie este reprezentată ca o relaţie (tabelă) în
modelul logic al datelor. Identificatorul entităţii devine cheie primară a relaţiei, iar celelalte
proprietăţi ale entităţii devin atribute non-cheie. Ulterior, ca rezultat al transformării
legăturilor dintre entităţi, unele entităţi vor avea ca atribute cheile primare ale altor entităţi.
Ele se mai numesc şi entităţi slabe.
Reprezentarea unei entităţi ca relaţie se face în mod direct, după cum rezultă din figura
3.2, prin alegerea uneia dintre formele (b), (c) şi (d).
101
NUME
(a) MARCA ADRESA
ANGAJAT
(b) ANGAJAT (MARCA, NUME, ADRESA)
ANGAJAT
Marca Nume Adres a
(d)
1111 Ion Ion Arini, 28, Iasi
1112 Ion Ionel Anini, 120, Blaj
Fig. 3.2 Entitatea ANGAJAT şi formele de reprezentare ca relaţie
7.2 Reprezentarea legăturilor
Am recurs la noţiunea de legătură în locul celei de relaţie (cu sensul de înrudire)
pentru a nu se confunda cu termenul relaţie (sub accepţiunea de tabelă), care preia
conţinutul entităţilor din DER.
Procedura de reprezentare a legăturilor depinde atât de gradul legăturii (unară, binară,
ternară), cât şi de cardinalitatea ei (1:1, 1:M, M:N).
7.2.1 Reprezentarea legăturilor binare 1:N şi 1:1
În figura 3.4 avem tot o relaţie 1:N, dar în care participarea entităţii de partea „unu” a
legăturii este obligatorie (cardinalitatea minimă este 1). Transformarea este asemănătoare
cu cea din exemplul anterior, singura diferenţă constând în faptul că nu se admit valori nule
pentru cheia străină. Observaţi, de asemenea, că participarea facultativă a entităţii aflate de
partea „multe” nu are efecte asupra transformării. Cele două relaţii rezultate sunt:
Furnizor
Furn_id
Furn_nume
Furnizor
O factură este emisă obligatoriu Furn_id
(1,1) de un furnizor, în timp ce un Furn_nume
furnizor ne poate emite mai
multe facturi sau nici una.
Emite
Factura
Fact_nr
(0,M) Fact_data
Furn_id [FK] NOT NULL
Factura
Fact_nr
Fact_data
Fig. 3.4 Transformarea relaţiilor 1:N în care
participarea entităţii din partea unu este obligatorie
103
Dacă participarea unei entităţi într-o legătură 1:1 este opţională, atunci ea va reprezenta
tabela părinte, iar cheia sa principală va fi adăugată în tabela corespunzătoare celeilalte
entităţi, jucând rolul de cheie străină. În figura 3.5, participarea entităţii ANGAJAT în
relaţia "conduce" cu entitatea DEPARTAMENT este opţională (cardinalitatea minimă este
0), deci tabela corespunzătoare ei va fi tabela-părinte, iar cheia sa, Ang_id va fi cheie
străină în tabela corespunzătoare entităţii DEPARTAMENT. Altfel formulată această
regulă, cheia primară a entităţii aflate în partea cu cardinalitatea minimă
1 va fi inclusă în tabela aferentă celeilalte entităţi şi va reprezenta cheia străină. De
asemenea, observaţi că pentru cheia străină nu se admite valoarea nulă. Relaţiile rezultate
sunt :
ANGAJAT (Ang_id, Ang_nume, Ang_saltf)
DEPARTAM ENT(Dep _id, Dep _nume, Ang_id)
Departament Fiecare departament trebuie să aibă
Dep_id un manager, iar un angajat poate fi
Dep_nume managerul unui singur departament Departament
dar nu este obligatoriu ca fiecare Dep_id
(0,1) angajat să conducă un depa rtament Dep_nume
Ang_id [FK] NOT
NULL
Conduce
(1,1) Angajat
Ang_id
Angajat Ang_nume
Ang_id Ang_saltf
Ang_nume
Ang_saltf
Fig. 3.5 Transformarea relaţiilor 1:1 în care
participarea uneia dintre entităţi este facultativă
7.2.2 Reprezentarea legăturile binare de tip M:N şi a celor ternare
În figura 3.6 nu s-a mai specificat restricţia „NOT NULL” pentru cele două chei
străine din tabela ARTICOL_FACTURA, fiind inutilă de vreme ce ambele chei străine fac
parte din cheia primară.
Pot exista situaţii când relaţia constituită pe baza legăturii M:N dintre două entităţi nu
este suficient definită printr-o cheie-primară care conţine doar cheile-primare ale entităţilor
aflate în legătură, fiind necesară utilizarea suplimentară a unuia sau mai multor atribute.
Să pornim de la exemplul prezentat în figura 3.7.
Data Nota
StuStuStud
Student tuSdtud
en n
deen Profesoesoeso
Profesor sor
er
en
ent
eent ntt
Examinare r r
sor
Nr_matricol Cod_profesor
(0,M) (0,M
NrNN rN rr__r_
Nume_student m
_m atarico
tr CoCCo ood_
Cod_
Nume_prof d_dd_pro
_dd
__
ii ii i l i l f f
Fig. 3.7 Exemplu de relaţie definită prin chei primare şi atribute proprii
Pentru diagrama de mai sus, atributul DATA trebuie să fie o parte a cheii relaţiei
EXAMINARE, astfel:
EXAMINARE (NR_MATRICOL, COD_PROFESOR, DATA, NOTA)
Dacă fiecare examinare ar avea un cod propriu de identificare, data ar fi de prisos, iar
NR_MATRICOL şi COD_PROFESOR ar deveni chei-referinţă-încrucişată, după cum
urmează:
EXAMINARE (COD_EXAMINARE, NR_MATRICOL, COD_PROFESOR, DATA, NOTA)
105
Transformarea legăturilor ternare este asemănătoare cu cea aplicată legăturilor binare
de tip M:N. Deosebiri se înregistrează doar la definirea cheii primare a tabelei asociate
legăturii. În acest sens, se aplică următoarele reguli:
1. Dacă toate entităţile prezintă cardinalitatea maximă „unu”, atunci există trei
posibilităţi de formare a cheii primare (trei chei candidat), rezultate prin combinarea
oricăror două dintre cele trei chei ale entităţilor originale;
2. Dacă două dintre entităţi prezintă cardinalitatea maximă „unu”, atunci vor exista
două posibilităţi de formare a cheii: prin combinarea cheii primare a entităţii din
partea „multe” cu una dintre cheile entităţilor situate de partea „unu”;
3. Dacă o singură entitate prezintă cardinalitatea maximă „unu”, atunci cheia va fi
formată prin combinarea cheilor principale ale celor două entităţi situate de partea
„multe” a relaţiei;
4. Dacă toate cele trei entităţi prezintă cardinalitatea maximă „multe”, atunci cheia
primară va fi formată prin combinarea cheilor tuturor celor trei entităţi asociate.În
figura 3.8 este prezentat un exemplu de transformare a unei legături ternare cu cardinalitatea
1:M:N. Tabela EXAMEN, corespunzătoare legăturii dintre cele trei entităţi, va avea ca
atribute cheile primare ale celor trei entităţi, STUD_ID, PROF_ID şi DISC_ID, care vor
juca rolul de chei străine, precum şi atributele asociate legăturii, EXAM_DATA şi
EXAM_NOTA. Conform regulilor prezentate anterior (regula nr. 3), cheia primară a acestei
tabele ar trebui să fie formată din atributele STUD_ID şi DISC_ID. Însă, această
combinaţie nu este suficientă pentru a juca rolul de cheie primară, deoarece un student
poate susţine acelaşi examen de mai multe ori, situaţie în care vor exista mai multe linii
(tupluri) în relaţia EXAMEN care vor prezenta aceleaşi valori pentru cele două atribute.
Din acest motiv, în compoziţia cheii a fost inclus şi atributul EXAM_DATA.
Profesor
Profeso sosoor
sorrr
Prof_id
PrPrPrro
Poro
fo_fi_did
Prof_nume
P
drof_nume
1
D iscisciscip
Disciplina cispcl Examinare Student
Student
M N
li
ip
i
p n
la
i n
Disc_id a Stud_id
Stud
StudStud
tud_
S_
D iscscscc_
Disc_den sc_
__idid Stud_nume
_i
tud_
id_id
Fiecare student susţine un anumit examen cu un singur profesor ; un student
poate fi examinat de acelaşi profesor la mai multe discipline; un profesor
examinează la o anumită disciplină mai mulţi studenţi.
Profesor
Profeso sosoor
sorrr
Prof_id
PrPrPrro
Poro
fo_fi_did
Prof_nume
P
drof_nume
Disciplina
Discisciscip cispcl Ex
Examen
Ex Ex xa
Eaxame
amemm emeen
n Student
Student
liipnlaina
ip
Disc_id me
n mten
S
Stud_idund_id[FK] Stud
Stud_id
StudStud
tud_
S_
Disc_den
Discscscc_sc_
__idid [Disc_id
S FtuKd]_id [FK]
[FK] Stud_nume
_i
tud_
id_id
DExam_data
iscscscc_
sc_
__idid
[Prof_id
FK] [FK]
EExam_nota
xam_data
P P P Pf ifd id
Fig. 3.8 Transformarea legăturilor ternare de tipul 1:M:N
10 SISTEME INFORMAŢIONALE FINANCIAR-CONTABILE II
Relaţiile rezultate din transformarea legăturii "Examinare" sunt:
PROFESOR (PROF_ID, PROF_NUME)
STUDENT(MATRICOL, STUD_NUME)
DISCIPLINA(DISC_ID, DISC_DEN)
O legătură unară reprezintă o legătură între instanţele unei singure entităţi, numită şi
legătură sau asociere recursivă. În literatură sunt cele mai citate exemplele prin care
entitatea ANGAJAT are o legătură recursivă cu ea însăşi (un ANGAJAT „conduce” zero,
unul sau mai mulţi ANGAJAT(i)) sau structura unei reţete de fabricaţie în care ARTICOL
„conţine” zero, unul sau mai multe ARTICOL(e). Cele două exemple sunt prezentate în
figurile 3.9 şi 3.10. În primul exemplu avem o legătură recursivă de tipul 1:N, iar în cel de-
al doilea o legătură de tipul M:N.
Pentru o legătură unară de tip 1:N, în care intră cazul entităţii ANGAJAT, diagrama
este prezentată în fig. 3.9.
107
Un angajat poate conduce mai
ANGAJAT
ANGAJAT ANGAJAT
mulţi angajaţi sau nici unul, Marca_angajat
Marca_angajat
Marca_angajat (0,M)
Numemm
Nume ee iar fiecare angajat are un Nume
Alte_date
Alte_date manager şi numai unul Alte_date
Marca_manager [FK]
(1,1)
Conduce
Fig. 3.9 Diagrama legăturilor unare de tip 1:N şi transformarea lor
Pentru legătura unară de tip M:N, în care intră entitatea ARTICOL, diagrama este
redată în figura 3.10.
ARTICOL
ARTICOL
A RTICOL
Un articol poate conţine mai Cod_articol
multe articole, iar un articol
Co
Cod_articol
Co Co od
Cdod _ar
d_ar _ar
__ar (0,M ) Denumire
Denumire
art
_art_ic
art
icicol
ticiocio
lcicol
l olol
poate intra în fabricaţia mai Cost
De
Cost
olDeDenu nu numi
multor alte articole.
DDDD
i i
(0,M )
Contine
ARTICOL_COMPONENT
Cod_articol
Cod_componenta [FK]
Cantitate Cantitate
Fig. 3.10 Diagrama legăturilor unare de tip M:N
Pentru legătura unară 1:N, entitatea este modelată ca o relaţie, în care cheia primară
este cheia primară a entităţii. Relaţiei i se adaugă o cheie străină prin care se va face
referire la valoarea cheii-primare din aceeaşi relaţie.
O cheie-străină recursivă este o cheie-străină dintr-o relaţie care face referire la valorile
cheii-primare din aceeaşi relaţie. Reprezentarea legăturii unare 1:N din exemplul dat este:
ANGAJAT (MARCA_ANGAJAT, NUME, ALTE_DATE, MARCA_MANAGER)
în relaţia de mai sus, MARCA_MANAGER este o cheie-străină recursivă care îşi ia
valoarea din acelaşi domeniu cu MARCA_ANGAJAT.
Pentru legătura unară M:N, entitatea ARTICOL se va modela ca o relaţie, după care se
va crea o altă relaţie pentru scoaterea în relief a legăturii M:N. Cheia primară a acestei noi
relaţii este una compusă care va prelua cele două atribute, dar care nu trebuie să aibă
acelaşi nume, în schimb vor lua valori din acelaşi domeniu al cheii-primare. Orice alt
atribut ce trebuie adăugat noii legături (cum este CANTITATE) este inclus ca un atribut
non-cheie.
Rezultatul poate fi prezentat astfel:
ARTICOL (COD_ARTICOL, DENUMIRE, COST)
ARTICOL_COMPONENT (COD_ARTICOL, COD_COMPONENTA, CANTITATE)
Prin tot ceea ce s-a tratat în paragraful de faţă, s-a demonstrat modul în care se pot
transforma diagramele entitate-relaţie în relaţii. În tabelul 3.3 sunt descrise regulile de
transformare a DER în relaţii.
10 SISTEME INFORMAŢIONALE FINANCIAR-CONTABILE II
Tabel nr. 3.3 – Transformarea relaţională a structurilor entitate-relaţie
Structura entitate-
Reprezentarea relaţională
relaţie
Entităţi normale Se creează o relaţie care are o cheie primară şi atribute non-cheie.
Entitate slabă Crearea unei relaţii cu o cheie primară compusă (în care este inclusă
cheia primară a fiecărei entităţi de care depinde această entitate) şi cu
atributele non-cheie.
Legătura binară sau Plasarea cheii-primare a oricărei entităţi în relaţia creată din cealaltă
unară 1:1 entitate sau efectuarea acestui lucru pentru ambele entităţi.
Legătura binară 1:M Se plasează cheia-primară a entităţii aflate lângă partea „unu” a legăturii
ca o componentă specială (cheie străină) a relaţiei care se află lângă
partea „multe” a legăturii.
Legăturile sau Crearea unei relaţii cu o cheie-primară compusă, folosind cheile primare
gerundivele binare ale entităţilor înrudite, plus orice atribute non-cheie ale legăturii sau
sau unare M:N gerundivei.
Legăturile sau Crearea unei relaţii cu o cheie primară compusă, folosind cheile primare
gerundivele binare ale entităţilor înrudite şi atribute suplimentare folosite drept cheie
sau unare M:N cu primară asociate legăturii sau gerundivei, plus orice alte atribute non-
chei suplimentare cheie ale legăturii sau gerundivei.
Legăturile sau Creare unei relaţii cu cheia primară asociată legăturii sau gerundivei,
gerundivele binare plus orice alte atribute non-cheie ale legăturii sau gerundivei, iar cheile
sau unare M:N cu primare ale entităţilor înrudite sunt folosite tot ca atribute non-cheie.
chei proprii
Legătura IS-A (clasă Crearea unei relaţii pentru clasa superioară care să conţină propria cheie
– subclasă) primară şi atributele comune tuturor subclaselor, plus crearea a câte unei
relaţii separate pentru fiecare subclasă cu aceeaşi cheie primară (cu
nume identic sau propriu) dar care să conţină numai atributele specifice
subclasei respective.
În Caseta 3.1 se pleacă de la exemplul sistemului de gestiune a clienţilor şi se reia
procesul de proiectare a bazei de date de la modelul conceptual al datelor (diagrama
entitate-relaţie), construit în timpul analizei sistemului. În casetă se regăseşte modul de
aplicare a unora dintre regulile descrise anterior.
Transformarea diagramei entitate-relaţie (DER) începe cu reprezentarea entităţilor.
Comparând figurile C3.1 şi C3.2, se poate constata că pentru fiecare entitate de date a fost
creată câte o tabelă în baza de date. Astfel, în fig. C3.2 se regăsesc tabelele CLIENT,
COMANDA, LIVRARE, RETURNARE, DEPOZIT şi PRODUS. Cele şase tabele au
preluat cheile primare şi atributele non-cheie ale entităţilor corespondente.
În continuare, se trece la analiza legăturilor dintre entităţi, urmărindu-se ordinul şi
cardinalitatea acestora. Din punctul de vedere al ordinului, toate legăturile din DER sunt
binare, iar din cel al cardinalităţii maxime avem trei tipuri: 1:1, 1:N şi M:N.
Singura legătură de tipul 1:1 este Corespunde, dintre LIVRARE şi RETURNARE.
Întrucât participarea entităţii LIVRARE în acestă legătură este facultativă (cardinalitatea
minimă este 0), tabela corespondentă va fi părinte, iar cheia primară a acesteia, NrFactura,
va fi inclusă în tabela RETURNARE şi va juca rolul de cheie străină. Deoarece în tabela
RETURNARE exista deja un atribut cu acelaşi nume, atributul inclus se numeşte
NrFacturaL.
109
Caseta nr. 3.1 – Proiectarea bazei de date plecând de la modelul conceptual
Comanda Returnare
CodComanda
(0,1) Livrare (1,1) NrFactura
NrComanda (1,M) (0,1) DataFactura
DataComanda Onorare NrFactura
Corespunde
DataFactura
NrNotaRefuz
TermenLivrare DataRefuz
StareComanda
(0,M) (0,M) Motivatie
(0,M)
(0,M)
Cantitate
Emite
returnata
Emite Conţine
Stoc
(1,1) curent
(1,1)
(1,M)
Depozit
(1,M)
Client CodDepozit
Produs
NumeDepozit Este în
CodClient CodProdus
NumeClient stoc DenProdus
(0,M)
Adresa UM
CodFiscal Conţine PretUnitar
Sold (1,M)
LimitaCredit
TipClient
Cantitate
comandata
Fig. C3.2 Schema logică a bazei de date pentru sistemul de gestiune a clienţilor
Legăturile de tip 1:N sunt trei: emite, dintre CLIENT şi COMANDA; onorare, dintre
COMANDA şi LIVRARE; emite, dintre LIVRARE şi DEPOZIT. În cazul tuturor celor trei
legături, entitatea aflată de partea „multe” a preluat cheia primară a entităţii aflată de partea
„unu”. Astfel, tabela COMANDA are două chei străine, CodClient şi NrFactura, prin
intermediul cărora se stabilesc legăturile cu tabelele CLIENT, respectiv LIVRARE, iar
tabela LIVRARE conţine o cheie străină, CodDepozit, care asigură legătura cu tabela
DEPOZIT. O particularitate apare în cazul legăturii Onorare, deoarece participarea entităţii
părinte, LIVRARE, este facultativă. Prin urmare, se vor admite valori nule pentru atributul
11 SISTEME INFORMAŢIONALE FINANCIAR-CONTABILE II
NrFactura din tabela COMANDA, care este cheia străină rezultată din transformarea
acestei legături. Pentru celelalte chei străine nu se admite valoarea nulă, fapt specificat în
fig. C3.1 prin adăugarea „Not null” în dreptul lor.
Legăturile Conţine, dintre COMANDA şi PRODUS, Este în stoc, dintre DEPOZIT şi
PRODUS, şi Conţine, dintre RETURNARE şi PRODUS, sunt de tipul M:N. Pentru toate
cele trei legături s-a creat câte o tabelă nouă, rezultând tabelele PRODUSECOMANDATE,
STOCURI şi PRODUSERETURNATE. Fiecare tabelă conţine cheile primare ale entităţilor
legate, ele jucând rolul de cheie străină, precum şi atributele descriptive ale legăturii
corespondente. Cheia primară este formată, pentru toate cele trei tabele, din combinaţia
cheilor străine.
În final să remarcăm că fiecare cheie străină apare ca urmare a unei legături dintre
tabele, iar fiecărei legături îi corespunde o cheie străină.
În practică, transformarea DER poate să nu fie chiar atât de simplă, uneori fiind
necesară modificarea bazei de date obţinute de către echipa de proiectare, pe baza
experienţei şi a regulilor euristice de care dispune.
TA 7.1 1) Entităţile care vor avea ca atribute cheile primare ale altor entităţi . 2) Vezi
exemplul din fig. 3.4 3) Se creează câte o tabelă pentru fiecare entitate; se adaugă a treia
tabelă corespunzătoare legăturii M:N; a treia tabelă conţine cheile primare ale celorlalte
două tabele, ce vor juca rolul de chei străine, şi eventualele atribute ale legăturii M:N; cheia
primară a celei de-a treia tabele se formează, de regulă, prin combinarea celor două chei
străine.
Arhitectura unui sistem informatic face referire la structura sa. Conform teoriei
generale a sistemelor, prin structură se descriu elementele componente ale sistemului,
interconexiunile între acestea, pe de o parte, între acestea şi sistem, pe de altă parte.
Noţiunea de structură poate fi definită din perspectiva transformărilor prin care trece
sistemul în interacţiunea cu mediul său, considerându-se că ea face referire la aspectul
invariant al sistemului, dând identitatea acestuia. Ea defineşte o ordine relativ stabilă,
referindu-se la anumite caracteristici invariabile în condiţiile variabilităţii intrărilor, ieşirilor
şi stărilor sistemului.
Într-o manieră generică, arhitectura unui program defineşte componentele acestuia,
proprietăţile lor vizibile din exterior, precum şi relaţiile dintre componente. Concretizarea
definiţiei anterioare presupune specificarea semnificaţiei atribuite noţiunii componentă,
după care vor putea fi identificate proprietăţile lor şi natura relaţiilor dintre ele.
În cazul programelor, putem vorbi despre două categorii de componente: instrucţiunile
(în alte materiale fiind regăsite sub numele de enunţuri, în altele – declarative, de la
cuvântul englezesc statements) şi modulele. Ele constituie „materia primă” din care se
realizează programele aplicaţiilor.
Instrucţiunile sunt operaţiuni elementare executate de calculator prin gruparea şi
selecţia controlată a acestora pentru atingerea obiectivelor funcţiilor de prelucrare orientate
pe probleme. Instrucţiunile constituie cel mai de jos nivel al operaţiunilor ce pot fi executate
de către un limbaj de programare. Blocurile de instrucţiuni sunt astfel grupate încât să
constituie anumite structuri executabile de calculator. De modul în care sunt grupate
instrucţiunile pentru a da naştere unor structuri standard ale programelor, de relaţiile dintre
instrucţiuni, de aranjamentul acestora depinde calitatea softului proiectat.
Modulul este o unitate structurală de sine stătătoare, fie program, fie subprogram, ce
apare ca o colecţie sau o formă grupată de instrucţiuni program. El reprezintă o unitate de
program ce poate fi compilată separat. Modulele se pot grupa pentru a forma programele,
deci, la nivelul softului proiectat, modulul reprezintă componenta de bază.
Odată ce am clarificat semnificaţia noţiunii de componentă în arhitectura programelor,
acum va trebui să identificăm proprietăţile modulelor de program. Astfel, un modul prezintă
trei atribute (proprietăţi) de bază, prin intermediul cărora el poate fi descris: funcţia,
logica şi interfaţa.
Funcţia unui modul face referire la transformările realizate asupra datelor în urma
execuţiei acestuia. Funcţia este tratată în regimul cutiei negre, adică ea este văzută prin
ceea ce se percepe din exteriorul modulului, respectiv intrările, ieşirile şi rolul modulului,
fără a privi componentele interne ale modulului (instrucţiunile şi logica modulului).
Logica modulului descrie prelucrările care au loc în interiorul acestuia, ceea ce, spre
deosebire de funcţie – referită ca o cutie neagră, ar însemna tratamentul cutiei albe. La
nivelul programării, preocuparea este, în esenţă, legată de logica modulului. Algoritmii de
prelucrare, redaţi sub diverse forme – scheme logice, pseudocod, tabele de decizie, arbori
113
de decizie sau combinaţii ale acestora – sunt concepuţi pentru prezentarea modului de
transformare a intrărilor în ieşiri. Paşii algoritmilor se vor transforma în instrucţiuni ale
limbajelor de programare. Fiecare modul va avea un singur punct de intrare şi un singur
punct de ieşire.
Interfeţele fac referire la structurile de date transferate între module. De cele mai multe
ori, pentru a-şi îndeplini funcţia, modulele trebuie să primească anumite date şi, la rândul
lor, să transmită rezultatele prelucrării altor module.
Aşa cum spuneam anterior, arhitectura unui program face referire numai la proprietăţile
componentelor vizibile din exterior, adică funcţia şi interfeţele modulelor. Proprietăţile
interne ale componentelor, reprezentate de detaliile logicii algoritmilor din module, nu
sunt luate în considerare la definirea arhitecturii programelor, ele nefiind vizibile din
exterior.
Din acest punct de vedere, putem distinge două mari activităţi în proiectarea
programelor: proiectarea arhitecturală şi proiectarea logicii modulelor. Proiectarea
arhitecturală presupune găsirea soluţiilor privind descompunerea sistemului în părţi
componente astfel încât fiecare parte să fie mai puţin complexă decât sistemul ca întreg, iar
prin integrarea acestor componente sistemul să fie cât mai flexibil, să îndeplinească
cerinţele funcţionale şi criteriile de calitate specifice programelor. În condiţiile în care
complexitatea modulelor este rezonabilă, este foarte important ca interfeţele dintre acestea
să nu fie prea complicate. Logica modulelor vizează algoritmii de prelucrare ce vor fi
implementaţi în vederea obţinerii funcţionalităţii prevăzută pentru fiecare modul în parte.
Ultimul aspect relevant, din perspectiva arhitecturii programelor, se referă la natura
relaţiilor dintre componente. Relaţiile dintre modulele unui program se înregistrează pe
două planuri:
al transferării controlului execuţiei de la un modul la altul;
al transmiterii datelor de la un modul la altul.
Arhitectura programelor prezintă o mare importanţă în activitatea de proiectare din cel
puţin patru motive25:
conceperea arhitecturii programului permite o mai bună comunicare între membrii
echipei de dezvoltare a sistemului informatic, pe baza ei putându-se discuta şi
analiza inclusiv aspectele calitative relevante ale programelor;
arhitectura evidenţiază principalele decizii de proiectare care au un impact profund
asupra activităţilor ulterioare privind dezvoltarea programului şi în succesul
acestuia;
arhitectura oferă un model relativ simplu al modului în care este structurat sistemul
şi modul în care componentele sale interacţionează, facilitând repartizarea sarcinilor
de lucru privind proiectarea şi scrierea programelor pe fiecare membru al echipei;
arhitectura reprezintă o unitate transferabilă a sistemului informatic, deoarece ea
facilitează reutilizarea componentelor atât în cazul unor sisteme similare, cât şi al
reproiectării sistemului.
8.1.2 Structurile de control ale programelor
de decizie sau combinaţii ale acestora – sunt concepuţi pentru prezentarea modului de
operaţiile din Bloc-2; după execuţia blocului, se continuă cu instrucţiunea următoare.
Când Bloc-2 nu conţine nici o operaţiune, rezultă o structură alternativă cu o ramură
vidă, de tip IF-THEN, redată în figura 4.3.
Nu Da
C
Bloc-1
Fig. 4.3 Structura alternativă cu o ramură vidă
Structura alternativă generalizată (de tip CASE-OF) este o generalizare a selecţiei. Ea
permite alegerea unei variante din mai multe posibile (fig. 4.4).
C
Bloc-11
Bloc- Bloc-2 Bloc-n
Fig. 4.4 Structura alternativă generalizată
Iteraţia sau structura repetitivă defineşte execuţia repetată a unei operaţii sau grup de
operaţii, funcţie de rezultatul evaluării unei condiţii. Evaluarea condiţiei se face fie înainte,
fie după executarea operaţiilor.
Structura repetitivă condiţionată anterior (de tip WHILE-DO) se reprezintă ca în
figura 4.5.
Structura repetitivă condiţionată posterior (de tip DO UNTIL) are forma redată în
figura 4.6.
116 SISTEME INFORMAŢIONALE FINANCIAR-CONTABILE II
Bloc-1
C
Da
Nu
Fig. 4.5 Structura repetitivă condiţionată anterior
Bloc-1
C
Da
Nu
Fig. 4.6 Structura repetitivă condiţionată posterior
O formă particulară de structură repetitivă condiţionată posterior este structura
repetitivă cu număr definit de paşi (de tip DO FOR). Numărul de repetiţii este controlat de
o variabilă, numită variabilă de control. În reprezentarea grafică următoare, V este variabila
de control, Vi este valoarea iniţială a variabilei de control, Vf este valoarea finală a
variabilei de control, iar R este raţia (incrementul). O astfel de structură este redată în
figura 4.7.
În literatura de specialitate, se consideră că structura secvenţială, structura alternativă
de tip IF-THEN-ELSE şi structura repetitivă condiţionată anterior sunt suficiente pentru a
defini structura de control a oricărui program Din acest motiv, cele trei structuri de control,
enumerate mai sus, sunt numite structuri fundamentale sau structuri de bază.
117
V:=Vi
Bloc-1
V:=Vi+R
V>Vf Nu
Da
Fig. 4.7 Structura repetitivă cu număr definit de paşi
Teste de autoevaluare
TA 8.1
1. Ce semnifică interfaţa modulelor de program?
2. Prezentaţi succint atributele de bază ale unui modul de program.
3. Redaţi în formă grafică structura de control alternativă generalizată.
Răspuns:
118 SISTEME INFORMAŢIONALE FINANCIAR-CONTABILE II
8.2 Răspunsuri la testele de autoevaluare
TA 8.1 1) Structurile de date transferate între două module de program. 2) Fucţia, logica
modulului şi interfaţa 3) Vezi fig. 4.4.
8.3 Lucrare de verificare
A. Alegeţi varianta/variantele corectă/e de răspuns:
1) Care dintre următoarele restricţii, în legătură cu structurile de control (secvenţa, selecţia,
iteraţia), trebuie respectate la elaborarea programelor?
a) fiecare structură de control trebuie să aibă cel puţin o intrare şi cel puţin o ieşire
b) fiecare structură de control trebuie să aibă un punct unic de intrare şi unul de ieşire
c) fiecare structură de control trebuie să conţină cel puţin 2 căi de execuţie
d) elementul de iteraţie să permită şi o execuţie cu factor de repetiţie 0
2) Structura alternativă generalizată permite:
a) alegerea mai multor variante posibile
b) includerea unei ramuri vide
c) alegerea unei variante din mai multe posibile
3) Prin arhitectura unui program se face referire la:
a) logica prelucrărilor din fiecare modul de program
b) funcţia fiecărui modul de program
c) interfeţele utilizator
d) interfeţele dintre modulele de program
B. Răspundeţi la următoarele întrebări şi probleme:
1. Definiţi următoarele concepte: program, modul de program, arhitectura programelor, logica
modulului de program.
2. Daţi un exemplu de prelucrare din domeniul contabilităţii prin care să puneţi în evidenţă o
structură de control alternativă simplă.
8.4 Bibliografie
1. Oprea, D., Dumitriu, F., Meşniţă, G., Proiectarea sistemelor informaţionale, Ed.
Universităţii “Al. I. Cuza” Iaşi, 2006, pp. 215-225, 241-251
2. Presmann, R.S. – Software Engineering. A practitioner’s Approach, McGraw Hill
Publishing Company, London, 2000, p. 356-364
119
Unitatea de studiu 9
Implementarea sistemului. Testarea sistemelor
informaţionale
Obiective:
Înţelegerea importanţei planificării implementării
Înţelegerea obiectivelor şi a principiilor testării sistemelor informaţionale
Descrierea activităţilor din cadrul procesului de testare
Clasificarea tehnicilor de testare
Definirea strategiei de testare
Competenţe dobândite:
Definirea obiectivelor testării sistemelor informaţionale
Aplicarea unor tehnici de testare
Timpul mediu necesar asimilării: 6 ore
Structura unităţii de studiu
9.1 Planificarea implementării ................................................................................................... 120
9.2 Testarea sistemelor informaţionale ...................................................................................... 121
9.2.1 Aspecte generale privind organizarea testării sistemelor.............................................. 121
9.2.2 Tehnici de testare .......................................................................................................... 124
9.2.3 Strategia testării sistemelor informatice........................................................................ 128
9.3 Răspunsuri la testele de autoevaluare .................................................................................. 132
9.4 Lucrare de verificare ............................................................................................................ 133
9.5 Bibliografie .......................................................................................................................... 133
Dintre toate etapele dezvoltării sistemului, implementarea are gradul de risc cel mai
mare. Acest lucru se datorează faptului că, în timpul etapelor anterioare (microanaliză,
analiză, proiectare), proiectul de dezvoltare este desfăşurat într-un mediu ce nu afectează
activităţile zilnice ale firmei. În schimb, implementarea presupune influenţarea
operaţiunilor economice reflectate de către sistemul dezvoltat, prin faptul că ea constă în
înlocuirea efectivă a sistemului vechi, ceea ce înseamnă că orice eroare nedepistată nici
acum poate declanşa grave probleme. De aceea, este necesar ca activităţile etapei de
implementare să fie planificate şi gestionate cu atenţie pentru a minimiza cât mai mult
potenţialele efecte negative şi să se conceapă un plan de acţiune pentru evenimentele
neprevăzute.
Implementarea este procesul de transformare a componentelor proiectate într-un sistem
funcţional. Într-o formă destul de concentrată, în caseta 5.1, prezentăm conţinutul unui
raport al proiectării pentru firma ABC.
Caseta nr. 5.1 – Conţinutul raportului proiectării
S.C. ABC
Raportul proiectării sistemelor
I. Sinteza proiectării fizice a sistemelor
II. Prezentarea generală a scopului proiectului şi sinteza la zi a constatărilor de pe teren
III. Recomandările principale ale proiectării fizice
1. Proiectarea ieşirilor
2. Proiectarea intrărilor
120 SISTEME INFORMAŢIONALE FINANCIAR-CONTABILE II
3. Proiectarea bazelor de date
4. Proiectarea prelucrărilor (softului)
5. Proiectarea echipamentelor
6. Proiectarea controalelor
7. Proiectarea procedurilor de lucru
IV. Ipoteze de lucru şi probleme nerezolvate
V. Concluzii
VI. Anexe şi glosar de termeni
Implementarea sistemelor este procesul de instalare a echipamentelor şi softului, în
vederea finalizării sistemului şi dării lui în funcţiune. Operaţiunea se derulează printr-un
set bine definit de activităţi, redate în fig. 5.1.
Planificarea
Plan carea mpimplementării
emen ări
Pregătirea locurilor
Pregătirea locurilo
Realizarea şi Selectarea şi
de muncă; instalarea
testarea şi testarea instruirea
programelor echipamentelor personalului
Finalizarea Testarea
documentaţiei
documenta iei sistemului
Conversia de la
vechiul la noul
sistem
Fig.5.1 Principalele activităţi ale etapei de implementare
9.1 Planificarea implementării
În timpul implementării, vor fi executate simultan mai multe activităţi. De aceea, ele
trebuie să fie planificate şi programate de către o echipă de implementare formată din
utilizatori, manageri şi specialişti în proiectarea sistemelor.
Planificarea implementării, firesc, începe anterior demarării unei astfel de acţiuni. De
fapt, problemele implementării sunt abordate chiar la începutul proiectului, iar aspectele
conceptuale şi strategiile implementării şi conversiei sistemelor trebuie să fie luate în
discuţie în fiecare stadiu al ciclului de viaţă al sistemelor. Totuşi, planurile detaliate de
implementare nu pot fi finalizate până când conducerea nu aprobă proiectul noului sistem.
Planul de implementare este revizuit şi modificat la intervenţiile comitetului de
informatizare, ale utilizatorilor, ale conducătorilor sistemului, înainte de a începe
operaţiunea de implementare.
Un plan de implementare evidenţiază toate activităţile necesare, ajutând pe cei ce-l
întocmesc să fie siguri că totul a fost prezentat corect. Prin el se vor consemna toate
activităţile de efectuat, precum şi timpul alocat. Responsabilităţile de execuţie trebuie să fie
121
foarte clare. De asemenea, trebuie estimate costurile fiecărei activităţi astfel încât să poată
fi elaborat un buget special. În acelaşi timp, trebuie determinate reperele de executat în
timp, pentru a putea fi controlate. Mai dificil este de estimat momentul când se va finaliza
implementarea. De fiecare dată utilizatorii sunt cei care îşi dau acceptul final, iar procesul,
teoretic, poate fi considerat ca desfăşurându-se pe o perioadă nedefinită.
Planificarea, coordonarea şi controlarea activităţii de implementare sunt cel mai des
realizate prin două tehnici cunoscute: diagramele Gantt şi PERT.
Dintre cele mai relevante aspecte ale planificării implementării, pot fi enumerate:
începe odată cu luarea startului conceperii unui nou proiect;
se încheie odată cu aprobarea dată pentru implementare;
aprobarea planului de implementare, firesc, se obţine înainte de a începe această
etapă;
identificarea activităţilor principale, a desfăşurării lor calendaristice, a
responsabilităţilor, precum şi a rezultatelor finale ale acestora;
urmărirea riguroasă a modului în care se respectă planul de implementare;
identificarea factorilor de risc şi a modalităţilor strategice de eliminare sau de
diminuare a riscurilor;
apelarea la diagramele Gantt pentru urmărirea modului de desfăşurare a etapei de
implementare;
folosirea tehnicii PERT pentru identificarea activităţilor critice.
Planul de implementare are un rol esenţial în derularea activităţilor specifice şi de el
depind calitatea sistemului şi momentul în care poate dat în exploatare. Fără a face neapărat
o ierarhie, se consideră că planificarea implementării ocupă unul din primele locuri între
factorii de succes sau eşec al unui proiect, pentru că prin implementare se asigură, până la
urmă, funcţionarea sistemului.
9.2 Testarea sistemelor informaţionale
Dezvoltarea rapidă a tehnologiilor informaţionale a determinat extinderea rapidă a
ariei de informatizare, condiţii în care calitatea existenţei noastre depinde din ce în ce mai
mult de calitatea sistemelor informatice cu care lucrăm. De aceea, trebuie acordată o atenţie
deosebită activităţilor de testare. Testarea este ultima ocazie pentru revizuirea cerinţelor
sistemului, a specificaţiilor de proiectare şi a programelor sursă. Obiectivul general al
testării îl reprezintă identificarea numărului maxim de erori cu efort minim.
În general, cheltuielile asociate activităţii de testare pot ajunge până la o pondere de
30-40% din totalul cheltuielilor necesare dezvoltării unui sistem informatic. În domeniile
cu activităţi critice (controlul traficului aerian, monitorizarea reactoarelor nucleare etc)
aceste cheltuieli pot fi de 3-5 ori mai mari decât toate celelalte cheltuieli cu dezvoltarea
sistemului informatic26.
9.2.1 Aspecte generale privind organizarea testării sistemelor
Testarea este un termen mai general care face referire la alte două noţiuni: verificarea
şi validarea. Verificarea reprezintă procesul de evaluare a sistemului sau a unei
26. Pressman, R.S. – Software Engineering. A Practitioner’s Approach, Fifth Edition, McGraw-Hill Publishing
Company, London, 2000, p.426.
122 SISTEME INFORMAŢIONALE FINANCIAR-CONTABILE II
componente a lui, pentru a se determina dacă o anumită funcţie a fost implementată corect,
oferind răspunsul la întrebarea: A fost construit bine sistemul? Validarea poate fi definită
ca procesul de evaluare a sistemului sau a unei componente a lui, pentru a se determina
dacă sunt respectate cerinţele funcţionale identificate în faza de analiză, răspunzând la
întrebarea: A fost construit sistemul care trebuie? Aşadar, verificarea vizează modul cum a
fost construit sistemul, iar validarea se referă la ce a fost construit. Atât verificarea, cât şi
validarea trebuie desfăşurate pe parcursul întregului proces de dezvoltare a sistemului, nu
doar la sfârşitul acestuia.
Practic, testarea întregului sistem nu este posibilă, deoarece ea nu ar fi fezabilă
economic şi tehnic. Un exemplu simplu este edificator: dacă un program conţine două
structuri de control repetitive imbricate, fiecare din cele două structuri presupunând un
număr de iteraţii cuprins între 1 şi 20, iar structura de control interioară conţine patru
structuri de control alternative simple, atunci numărul ramurilor logice din program care
trebuie testate va fi de 1014! Din acest motiv, activitatea de testare trebuie organizată în
mod riguros şi eficient.
În general, testarea implică elaborarea planurilor testelor, stabilirea standardelor testării,
precum şi încadrarea întregii activităţi de testare în ciclul de viaţă al sistemelor, în vederea
asigurării completitudinii planurilor de testare a programelor şi sistemului căruia aparţin.
Într-o formă schematică, principalele activităţi care formează procesul de testare sunt
evidenţiate în figura 5.2. P reprezintă obiectul supus testării, respectiv un modul de
program, specificaţiile procedurale sau întregul sistem.
subset al
datelor de Stabilirea rezultatele
intrare rezultatelor asteptate
P Strategia Compararea Rezultatele Documentatia
testarii rezultatelor testarii testarii
subset al P rezultatele
datelor de obtinute
intrare
Fig. 5.2 Schema generală a procesului de testare
(adaptare după van Vliet, H. – Software Engineering. Principles and Practicies,
John Wiley & Sons, LTD, Chichester, 2000, p. 401)
Prima activitate se referă la definirea strategiei, care are drept scop definirea setului
minim al datelor de test care să satisfacă cerinţele testării, cuantificate prin intermediul
criteriilor de acceptabilitate. De exemplu, criteriile de acceptabilitate pot fi exprimate
astfel: la testare se va urmări execuţia cel puţin o dată a tuturor instrucţiunilor din program;
prin testare se va urmări execuţia tuturor ramurilor logice din program etc. Evident că cele
două exemple nu sunt echivalente, întru-cât primul criteriu nu permite testarea ramurilor
vide.
După stabilirea criteriilor de acceptabilitate, se va trece la generarea setului de teste
care să răspundă acestor criterii, adică a unui subset al datelor de intrare în P. Această
activitate nu se desfăşoară la întâmplare, ci de-o manieră sistematică, apelând la diferitele
tehnici de testare pe care le avem la dispoziţie. În funcţie de tehnicile de testare alese se va
genera şi subsetul datelor de test.
Odată definit setul de teste, se va trece la determinarea rezultatelor aşteptate pentru
fiecare test în parte şi apoi la execuţia componentei P. În final, se realizează compararea
123
rezultatelor obţinute în urma execuţiei cu cele aşteptate, eventualele diferenţe semnalând
existenţa unor erori, ce vor fi transmise spre rezolvare proiectanţilor sau programatorilor
responsabili de componenta testată. Rezultatele testării vor fi consemnate într-o
documentaţie specială.
Există câteva principii generale care ghidează activitatea de testare a programelor:
1. Testele trebuie concepute astfel încât să urmărească respectarea cerinţelor
utilizatorilor. Cele mai numeroase erori sunt legate de nesatisfacerea cerinţelor
sistemului, identificate şi formulate în faza de analiză.
2. Testele trebuie planificate cu mult timp înainte de începerea activităţii de testare.
Toate testele trebuie planificate şi proiectate înainte de scrierea/ generarea
programelor sursă, chiar din timpul analizei sistemului odată ce modelul cerinţelor
sistemului este complet. Definirea detaliată a cazurilor de test poate începe încă din
timpul fazei de proiectare, odată cu întocmirea specificaţiilor de proiectare.
3. Testarea trebuie să înceapă cu detaliile, desfăşurată la nivelul modulelor
componente, iar, pe măsură ce ea progresează, atenţia va fi îndreptată spre
identificarea erorilor de integrare a acestor componente şi, în final, asupra
întregului sistem.
4. Testarea exhaustivă nu este posibilă. Numărul cazurilor de test, derivate din
combinarea tuturor situaţiilor posibile, este foarte mare chiar şi pentru programele
de dimensiuni mai mici. De aceea, este necesară utilizarea unor tehnici speciale de
definire a cazurilor de test care să corespundă criteriilor de acceptabilitate.
5. Pentru a fi eficientă, testarea trebuie să fie realizată de persoane care nu au fost
implicate în fazele anterioare de dezvoltare a sistemului. Chiar dacă acest principiu
nu trebuie interpretat în mod absolut, totuşi, de cele mai multe ori, persoanele
implicate în crearea sistemului nu sunt cele mai indicate în realizarea testării
programelor, cu excepţia aplicaţiilor de dimensiuni mai mici.
6. Testarea nu vizează numai produsul final, ci şi rezultatele fazelor intermediare ale
dezvoltării sistemului. Nu doar programele sunt supuse testării, ci şi cerinţele
informaţionale şi funcţionale ale sistemului (structurate în faza de analiză), soluţiile
generale de proiectare, specificaţiile detaliate de proiectare (întocmite în fazele
proiectării logice şi fizice), documentaţia sistemului etc. Cele mai grave erori sunt
cele derivate din identificarea incompletă sau formularea greşită a cerinţelor.
Insistăm asupra ultimului principiu prezentat, tocmai pentru că el este, adesea, ignorat
în practică, consecinţele fiind apariţia de costuri suplimentare. De aceea, una dintre
activităţile care trebuie realizată înainte de proiectarea şi implementarea sistemului priveşte
verificarea cerinţelor sistemului. Prin această activitate nu se urmăreşte a stabili dacă
cerinţele sunt corecte sau greşite, ci a determina dacă ele sunt complete. Altfel spus, se
stabileşte dacă27: cerinţele sunt detaliate suficient, astfel încât să permită proiectarea şi
implementarea lor; cerinţele nu intră în contradicţie unele cu altele.
Atingerea obiectivelor urmărite prin verificarea cerinţelor presupune utilizarea a două
metode de lucru: mai întâi se efectuează inspecţia cerinţelor, urmată de schiţarea planului
de testare. Inspecţia cerinţelor presupune efectuarea unor verificări simple asupra
documentului cerinţelor, întocmit la sfârşitul fazei de analiză, pentru a fi siguri că el
conţine suficiente detalii şi că nu există două cerinţe contradictorii. Acestă operaţiune
trebuie realizată de autorul documentului, împreună cu reprezentanţi ai echipelor de
proiectare, implementare şi testare.
27. Richard, L.K. – Testing Requirements, www.gantthead.com (accesat 18.01.2006).
124 SISTEME INFORMAŢIONALE FINANCIAR-CONTABILE II
După finalizarea inspecţiei cerinţelor, echipa de testare va întocmi o schiţă a planului
de testare, prin care se stabileşte cât de detaliat sunt formulate cerinţele. Dacă se constată
dificultăţi în elaborarea testelor pe baza documentaţiei, atunci este de aşteptat că nici
proiectanţii sau programatorii să nu poată implementa aceste cerinţe. În cel mai bun caz, ei
vor încerca să citescă printre rânduri şi să deducă propriile soluţii, care ar putea fi în
contradicţie cu aşteptările utilizatorilor.
9.2.2 Tehnici de testare
structuri structuri structuri
repetitive repetitive repetitive
simple imbricate concatenate
Ambele tehnici de testare sunt manuale, iar aplicarea lor presupune constituirea unor
echipe speciale care vor evalua programele şi specificaţiile procedurale în cadrul unor
sesiuni formale de lucru, urmându-se anumite proceduri clar definite.
Examinările presupun evaluarea programelor linie cu linie în vederea depistării
manuale a unor erori frecvent întâlnite, fără a se urmări efectul fiecărei instrucţiuni. De
aceea, este necesară întocmirea unei liste de control cu erorile tipice întâlnite în activităţile
de proiectare şi programare. Exemple de erori sunt:
Utilizarea greşită a structurilor de date: referirea unor variabile neiniţializate sau
chiar nedeclarate, depăşirea dimensiunii unui tablou de date etc;
Erori în expresiile de calcul: împărţirea la 0, utilizarea unor variabile de tipuri
diferite în aceeaşi expresie fără a se apela la funcţiile de conversie, nerespectarea
ordinii de prioritate a operatorilor, plasarea eronată a parantezelor, rotunjirea
zecimalelor şi nu truncherea şirului de cifre pentru partea fracţionară (în calcule
foarte exacte, cum sunt cele ştiinţifice sau pentru stabilirea mediilor în sistemele
educaţionale) etc;
Erori legate de fluxul logic de control: structuri de control repetitive infinite,
blocuri de instrucţiuni ce nu vor putea fi executate niciodată etc;
Erori la nivelul interfeţelor: utilizarea unui număr incorect de parametri sau a unor
parametri al căror tip nu este corespunzător etc.
În general, o echipă de examinare este formată din patru membri, fiecare cu roluri bine
definite. Moderatorul este responsabil pentru organizarea şedinţelor de lucru, le conduce,
asigură ca fiecare participant să urmeze procedurile stabilite astfel încât aceştia să lucreze
ca o echipă. Echipa mai conţine doi inspectori (examinatori) care vor interpreta programul
sursă. Din echipă va face parte şi programatorul, respectiv cel ce a scris codul (programul
sursă), deoarece acesta cunoaşte cel mai bine programul şi poate fi solicitat de inspectori să
explice ce a intenţionat să facă atunci când aceştia consideră că ceva este greşit, neclar sau
nu funcţionează corect.
Membrii echipei de examinare vor primi programele sursă, specificaţiile de proiectare
şi documentaţia asociată cu câteva zile înainte de desfăşurarea sesiunii de lucru. În timpul
şedinţelor de lucru, examinatorii vor interpreta liniile de program, mai multe linii deodată,
iar pe baza comentariilor şi întrebărilor formulate se vor descoperi eventualele greşeli. De
asemenea, programele vor fi analizate pe baza listei de control a erorilor tipice. Rezultatele
sesiunii de examinare vor fi consemnate într-o listă a problemelor identificate. Aceste
probleme nu vor fi rezolvate în cadrul şedinţelor de examinare pentru a nu distrage atenţia
membrilor echipei de la obiectivul principal, respectiv identificarea erorilor. Lista cu
problemele identificate va fi înmânată pentru rezolvare programatorilor care au scris codul.
Execuţia de probă, spre deosebire de examinări, presupune analiza programelor prin
urmărirea efectului fiecărei instrucţiuni pe baza unor date de test. Datele de test alese sunt
de cele mai multe ori simple, astfel încât să nu facă dificilă urmărirea programului. De fapt,
datele de test vor servi mai mult drept punct de pornire a discuţiilor decât unei testări
riguroase. Pe parcursul sesiunii de lucru, proiectantul poate fi solicitat să argumenteze şi să
explice deciziile sale.
128 SISTEME INFORMAŢIONALE FINANCIAR-CONTABILE II
Testarea presupune un grup de activităţi care trebuie planificate din timp şi realizate în
mod sistematic. În acest sens, este necesară definirea unui cadru de desfăşurare a fazei de
testare, ca parte a demersului dezvoltării sistemelor informatice. Acest cadru se
concretizează în strategia testării. Strategia testării sistemelor informatice integrează
diferitele metode de concepere a cazurilor de test, într-o succesiune de paşi bine planificaţi,
astfel încât să fie asigurată dezvoltarea unui sistem informatic de calitate.
Orice strategie de testare trebuie să aibă următoarele caracteristici generale:
1. Testarea începe de jos, de la nivelul modulelor, şi se încheie prin validarea sistemului
informatic ca un tot. În faza de proiectare, sistemul este descompus în mai multe
module organizate ierarhic, obţinându-se arhitectura sistemului, pe baza căreia se va
realiza şi faza de testare. Se va începe cu testarea modulelor, după care se va viza
maniera de integrare a acestora, conform arhitecturii definite în faza de proiectare,
numită testarea integrării. După testarea integrării, urmează testarea sistemului,
31. Oprea, D. – Analiza şi proiectarea sistemelor informaţionale economice, Editura Polirom, Iaşi 1999, p. 481.
129
moment în care programele şi alte elemente componente ale sistemului sunt testate ca
un tot, în funcţie de cerinţele funcţionale şi restricţiile definite în faza de analiză. Se
încheie cu testarea de acceptare, prin implicarea directă a utilizatorilor. Cele patru
etape vor fi prezentate succint în paragrafele următoare.
2. Diferitele tehnici de testare trebuie aplicate în anumite momente ale testării. Dacă la
testarea modulelor se utilizează cu precădere tehnicile tip „cutia albă”, în timpul
testării integrării vor fi utilizate mai mult tehnicile tip „cutia neagră”. Testarea
sistemului şi testarea de acceptare implică aproape în exclusivitate apelarea la testarea
tip „cutia neagră”, urmărindu-se verificarea funcţionalităţii, comportamentului şi
performanţelor sistemului, precum şi dacă sistemul corespunde exigenţelor
utilizatorilor.
3. Testarea este realizată de către o echipă independentă, în cazul proiectelor mari sau
de membrii echipei de dezvoltare a sistemului, în cazul proiectelor de mai mică
amploare. Pentru orice proiect de dezvoltare a sistemelor informatice, faza de testare
implică anumite conflicte de interese inerente. Pe de o parte, pare evident că cei mai
potriviţi, pentru a realiza testarea, sunt proiectanţii şi programatorii, adică cei care
cunosc cel mai bine sistemul. Pe de altă parte, aceştia vor încerca să demonstreze că
programele nu conţin erori, iar prin testele proiectate vor demonstra că sistemul
funcţionează conform cu cerinţele formulate.
În general, proiectanţii şi programatorii sunt responsabili atât pentru testarea modulelor,
cât şi pentru testarea integrării modulelor, iar ultimele două etape vor fi realizate de o echipă
independentă.
module situate pe nivelul ierarhic inferior, pentru a-şi putea realiza funcţia. În aceste
condiţii, aplicarea tehnicilor de testare dinamică este de cele mai multe ori imposibilă.
Pentru a se evita acest neajuns, pentru fiecare modul testat, se vor concepe două tipuri
speciale de module: module subordonate (stub module) şi module director (drive module).
Un modul director este văzut ca un program principal al cărui rol constă în a simula
condiţiile normale de exploatare a programului în care va fi executat modulul testat.
Funcţiile lui privesc acceptarea datelor de test, transmiterea lor către modulul ce trebuie
testat şi afişarea rezultatelor relevante ale testării. Un modul subordonat are rolul de a
înlocui un modul invocat de modulul testat, el fiind un subprogram care va avea aceeaşi
interfaţă ca şi modulul pe care-l înlocuieşte, va realiza un minim de prelucrări, va semnala
faptul că el a fost apelat, după care va reda controlul modulului testat.
Testarea modulelor este simplificată, cu atât mai mult, cu cât coeziunea lor este mai
mare. Dacă un modul este caracterizat de o coeziune funcţională, deci el a fost proiectat să
realizeze o singură funcţie, atunci numărul testelor necesare este mai redus, iar erorile pot fi
mai uşor descoperite.
Ajunşi în această etapă, unii s-ar putea întreba: De ce mai este necesară testarea
integrării modulelor, atât timp cât fiecare modul a fost testat individual şi se presupune că
ele funcţionează ireproşabil? Răspunsul este cât se poate de simplu: pentru că pot apărea
alte erori, care nu pot fi depistate prin testarea la nivelul modulelor. Anumite date se pot
pierde, prin transmiterea lor de la un modul la altul, sau execuţia unui modul poate avea
efecte negative asupra altui modul. De asemenea, integrarea subfuncţiilor realizate de
diferite module poate să nu ducă la obţinerea funcţiei dorite sau se pot ivi unele probleme
la utilizarea structurilor de date globale. Lista ar putea continua.
Integrarea modulelor se poate face treptat, modul cu modul, sau deodată. Strategia
integrării treptate presupune construirea şi testarea programului în paşi mici, astfel încât
erorile să fie uşor de localizat şi corectat, interfeţele să fie cât mai complet testate, iar
întreaga activitate de testare a integrării modulelor să fie desfăşurată de o manieră
sistematică. În opoziţie cu această strategie, integrarea deodată a modulelor presupune
construirea programului prin integrarea modulelor componente urmată de testarea
programului ca un tot. Această strategie nu este recomandată deoarece face dificilă
localizarea şi corectarea erorilor.
Testarea integrării se poate face atât de sus în jos (top-down) , cât şi de jos în sus
(bottom-up). Integrarea şi testarea modulelor de sus în jos (top-down) începe cu modulul
principal, după care se continuă, prin parcurgerea în jos a structurii ierarhice a programului,
în două modalităţi posibile: integrarea orientată pe verticală sau integrarea orientată pe
orizontală.
Integrarea orientată pe verticală presupune integrarea tuturor modulelor componente
pe câte o ramură a structurii ierarhice. Integrarea orientată pe orizontală presupune
reunirea mai întâi a modulelor situate pe nivelul ierarhic imediat inferior modulului
principal şi se continuă cu fiecare nivel ierarhic.
Aplicarea integrării top-down impune utilizarea modulelor subordonate. Se începe prin
testarea modulului principal, considerat ca modul director, iar modulele de pe nivelul
ierarhic inferior vor fi înlocuite cu module subordonate. Acestea din urmă vor fi eliminate
şi înlocuite cu modulele reale, pe măsură ce se înaintează cu testarea
După cum sugerează şi numele, testarea integrării de-jos-în-sus presupune construirea
şi testarea treptată a programului, începând cu modulele de pe ultimele niveluri ierarhice.
131
În acest caz, se va apela la înlocuirea modulelor de program cu module director. Această
abordare se desfăşoară după următorul scenariu: modulele situate pe ultimele niveluri
ierarhice sunt grupate astfel încât fiecare grup de module să realizeze o subfuncţie a
programului; apoi se creează câte un modul director pentru fiecare grup de module şi pe
baza căruia se va testa fiecare grup în parte; după ce testarea fiecărui grup de module s-a
încheiat, se elimină modulele director şi se regrupează modulele prin înglobarea celor
situate pe nivelul imediat superior. Acest proces va fi reluat până la construirea şi testarea
întregului program.
În practică, cele două abordări sunt utilizate împreună, fiecare prezentând avantaje şi
dezavantaje specifice. Principalul beneficiu obţinut poate consta în reducerea numărului de
module director şi subordonate care trebuie create.
Deşi testarea la nivelul sistemului poate părea similară cu testarea integrării, ea diferă
prin orientarea testelor spre acele caracteristici nespecifice componentelor programului,
cum ar fi: performanţele sistemului, securitatea, refacerea în cazul apariţiei unor căderi ale
sistemului etc. De asemenea, testarea sistemului diferă de testele anterioare prin luarea în
considerare şi a celorlalte componente ale sistemului, în afară de programe. Aceste teste
vor verifica dacă elementele componente ale sistemului – hardware, software, oameni şi
date - sunt integrate corespunzător şi realizează funcţiile prevăzute.
Testele concepute în această fază pot fi împărţite în patru categorii, în funcţie de
scopul urmărit32:
Testarea refacerii urmăreşte să forţeze căderea sistemului din diferite cauze şi să
verifice dacă refacerea este realizată corespunzător. Dacă refacerea este realizată
automat de către sistemul însuşi, vor fi verificate reiniţializarea sistemului,
refacerea datelor şi alte aspecte. Dacă refacerea implică intervenţia beneficiarului,
va fi evaluată perioada de timp necesară pentru repunerea sistemului în funcţiune.
Testarea securităţii urmăreşte să verifice dacă mecanismele de protecţie ale
sistemului funcţionează corespunzător împotriva încercărilor de atac asupra
sistemului sau a accesării neautorizate.
Testarea solicitării sistemului presupune confruntarea sistemului cu situaţii
anormale, testele anterioare vizând modul de funcţionare a programelor în condiţii
normale de lucru. Prin testele concepute, execuţia programelor va solicita resurse în
cantităţi, volume sau frecvenţe anormale. De exemplu, pot fi concepute teste pentru
situaţiile în care volumul şi rata datelor de intrare creşte de un anumit număr de ori
faţă de situaţiile normale, teste în care timpul de căutare şi citire a datelor de pe disc
este foarte mare etc.
Testarea performanţelor sistemului este adesea combinată cu testarea solicitării
sistemului şi ia în considerare performanţele tehnice ale hardware-ului şi software-
ului.
În principiu, testarea sistemului va include toate activităţile specifice testării de
acceptare, însă va fi realizată fără implicarea utilizatorilor. Astfel, se oferă ocazia ultimelor
verificări şi modificări înainte de prezentarea sistemului în faţa beneficiarului.
32. Presmann, R.S. – op. cit., pp. 483-485.
132 SISTEME INFORMAŢIONALE FINANCIAR-CONTABILE II
9.2.3.4 Testarea de acceptare
Bibliografie selectivă
1. Airinei, D., ş.a. – Medii de programare, Ediţia a IV-a, Editura Sedcom Libris, Iaşi, 2004
2. Bachenski, B. – „GUI Builders Pay Price for User Productivity”, in Software Magazine, April 1992;
3. Beizer, B. – Personal Computer Quality: A Guide for Victims and Vendors, Van Nostrand Reinhold
Company, New York, 1986.
4. Benbasat. I., Dexter, A.S., Todd, P. – „The Influence of Color and Graphical Information Presentation
in a Managerial Decision Simulation”, in Human-Computer Interaction 2, 1986.
5. Bidgoli, H. (editor) – Encyclopedia of Information Systems, vol. 4, Academic Press, Amsterdam, 2003.
6. Blattner, M., Schultz, E. – „User Interface Tutorial”, Proceedings of the International Conference on
System Sciences, Kona, Hawaii, January 1988.
7. Booth, P. – An Introduction to Human-Computer Interaction, Lawrence Erlbaum Associates, Londra,
1989.
8. Budd, T. – An Introduction to Object-Oriented Programming, Second Edition, Addison Wesley,
Reading, Massachusetts, 1998.
9. Carliner, S. – Industry Report: Overview of the Technical Communication Industry, 2002, www.stc.org
(accesat 2.01.2006).
10. Caroll, J.M. – Designing Interaction, Cambridge University Press, Cambridge, 1991.
11. Connoly, T.M., Begg, C.E. – Database Systems. A Practical Approach to Design, Implementation, and
Management, Third Edition, Addison Wesley, Harlow, 2002.
12. Craig, J.S., Beck, B.E. – „A New Look at Documentation and Training: Technical Communicator as
Problem Solver”, in Information Systems Management, 10 (Summer), 1993.
13. Crowley, A. – „The Help Desk Gains Respect”, in PC Week, no. 10, November 15, 1993.
14. Cushing, B.E., Romney, M.B. – Accounting Information Systems, Addison Wesley Publishing
Company, New York, 1994.
15. Date, C.J. – An Introduction to Database Systems, Seventh Edition, Addison Wesley, Reading,
Massachusetts, 2000.
16. Date, C.J. – Baze de date, Editura Plus, Bucureşti, 2005, traducere a lucrării Date, C.J. – An
Introduction to Database Systems, Eighth Edition, Pearson Education, Inc., Boston, 2004.
17. Davenport, T.H. – Process Innovation: Reengineering Work through Information Technology, Harvard
Business School Press, Boston, 1993.
18. Dollinger, R. – Baze de date şi gestiunea tranzacţiilor, Editura Albastră, Cluj-Napoca, 1999.
19. Dumas, J.S. – Designing User Interface for Software, Prentice Hall, Englewood Cliffs, 1988.
20. Elmasri, R., Navathe, S.B. – Fundamentals of Database Systems, Third Edition, Addison Wesley,
Reading, Massachusetts, 2000.
21. Fînaru, L., Brava, I.M. – Visual Basic. Primii paşi… şi următorii, Editura Polirom, Iaşi, 2001.
22. Forward, A. – Software Documentation – Building and Maintaining Artefacts of Communication,
University of Ottawa, Ontario, Canada, 2002.
23. Fotache, M. – Proiectarea bazelor de date. Normalizare şi postnormalizare. Implementări SQL şi
Oracle, Editura Polirom, Iaşi, 2005.
24. Gliedman, C. – Thirty-one Best Practices for the Service Desk, June 28, 2005, http://i.i.com/cnwk.ld/itp
(accesat 25.10.2005).
25. Greenbaum, J. – „The Evolution Revolution”, in Information Week, March 14, 1994.
26. Haarind, R. – „Software’s New Object Lesson”, in Technology Review, February-March, 1992.
27. Hall, G., Rosenthal, J., Wade, J. – „How to make reengineering really work”, in Harvard Business
Review, November-December 1993.
28. Halpin, T. – Information Modeling and Relational Databases, Kaufmann Publishers, Inc, San Francisco,
2001.
29. Hammer, M. – „Re-engineering work: don’t automative, obliterate”, in Harvard Business Review, July-
August 1990.
30. Hayley, K., Plewa, J., Watts, M. – „Reengineering Tops CIO Menu”, in Datamation, vol. 38., nr. 6,
April 15, 1993.
31. Hicks Jr., J.O. – Management Information Systems: A User Perspective, Second Edition, West
Publishing Company, St. Paul, 1987.
BIBLIOGRAFIE 149
67. Richard, L.K. – Testing Requirements, www.gantthead.com (accesat 18.01.2006).
68. Riordan, R.M. – Designing Relational Database Systems, Microsoft Press, Redmond, Washington,
1999.
69. Satzinger J.W., Jackson, R.B., Burd, S.D. – Systems Analysis and Design in a Changing World,
Course Technology, Thomson Learning, Boston, 2002.
70. Schiesser, R. – IT Systems Management. Designing, Implementing, and Managing World-Class
Infrastructures, Prentice Hall PTR, Upper Saddle River, New Jersey, 2002.
71. Schulteis, R., Sumner, M., Bock, D. – Management Information Systems: The Manager’s View, Second
Edition, IRWIN, Homewood, Boston, 1992.
72. Shelly, G.B., Cashman, T.J., Rosenblatt, H.J. – Systems Analysis and Design, Fourth Edition, Course
Technology, Thomson Learning, Boston, 2001.
73. Shneiderman, B. – Designing the User Interface, Addison Wesley, 1998, Third Edition,
http://www.cs.utexas.edu/users/almstrum/cs370/elvisino/rules.html
74. Shneiderman, B. – Designing the User Interface: Strategies for Effective Human-Computer Interaction,
Addison Wesley, Reading, Massachusetts, 1992.
75. Simon, J.C., Chaney, L.H. – Systems and Procedures for the Modern Office –A Simulation Approach,
Second Edition, Regents/Prentice Hall, Englewood Cliffs, New Jersey, 1993.
76. Simsion, G.C. – Data Modeling Essentials. Analysis, Design, and Innovation, Second Edition, The
Coriolis Group, Scottsdale, Arizona, 2001.
77. Teorey, T.J. – Database Modeling & Design, Morgan Kaufmann Publishers, Inc, San Francisco, 1999.
78. van Vliet, H. – Software Engineering. Princples and Practice, Second Edition, John Wiley & Sons,
LTD, Chichester, 2002.
79. Văduva, I. ş.a. – Ingineria programării, Editura Academiei, Bucureşti, 1985 (vol. I), 1986 (vol. II).
80. Wiederhold, G., Wegner, P., Ceri, S. – „Toward Megaprogramming”, in Communications of ACM 35,
nr. 11, November 1992.
81. Yourdon, E. – Decline & Fall of the American Programmer, Englewood Cliffs, New Jersey, Yourdon
Press, 1993.
82. Zwass, V. – Management Information Systems, WCB-Wm, C. Brown Publishers, Dubuque, 1992.
83. *** – Foundation of Business Systems, Second Edition, Andersen Consulting – Arthur A. Andersen &
Co. S.C., Dryden, 1989.
84. *** – Software Process Engineering Metamodel, version 1.1, OMG, 2005.
85. *** – Unified Modeling Language (UML) Specification: Infrastructure, version 2.0, OMG, 2004, p. 10.
86. *** – Project Management – Guidelines, www.projectmanagement.tas.gov.au (accesat 06.07.2004).
87. *** – Oracle® Database Performance Tuning Guide 10g Release 2 (10.2), www.oracle.com.
88. *** – Incident Description Report, www.gantthead.com (accesat 12.01.2006).