Documente Academic
Documente Profesional
Documente Cultură
PROIECTAREA SISTEMELOR
INFORMAŢIONALE
– Suport de curs –
CAPITOLUL I
Proiectarea formularelor/formatelor
şi a rapoartelor
Obiective:
• Explicarea conceptelor formular/format şi raport
• Identificarea şi descrierea ieşirilor din sistem
• Clasificarea ieşirilor din sistem
• Înţelegerea importanţei controlului integrităţii ieşirilor din sistem
• Descrierea regulilor şi recomandărilor de proiectare a ieşirilor
• Prezentarea unor criterii de apreciere a calităţii informaţiilor incluse în formulare/formate şi
rapoarte
• Descrierea procesului de proiectare a formularelor şi rapoartelor
• Prezentarea unui model de întocmire a specificaţiilor de proiectare a formularelor şi rapoartelor
Aşa cum a fost finalizată etapa de analiză, rezultă că intrările şi ieşirile au fost identificate
şi prezentate în subfaza de structurare a cerinţelor. Oricum, în acel moment, nu s-au prezentat
toate detaliile privind formularele/formatele, rapoartele şi răspunsurile la întrebări. S-a insistat
mai mult asupra identificării acestora şi descrierii lor. De exemplu, fiecare formular/format va
fi asociat unui flux al datelor ce intră într-un proces al diagramelor fluxurilor de date (DFD),
iar fiecare formular/format de ieşire sau raport se poate regăsi într-un flux al datelor generate
de un proces al DFD.
Se poate concluziona că datele elementare conţinute de fluxurile de date asociate
înseamnă, în acelaşi timp, şi conţinuturile formularelor/formatelor de intrare sau ale rapoartelor
şi răspunsurilor la întrebări. De asemenea, datele formularelor/ formatelor sau rapoartelor pot
fi date elementare ale locurilor de stocare sau pot fi calculate pe baza acestora şi a altor
elemente generate de sistem.
În acest capitol ne vom concentra asupra proiectării intrărilor şi ieşirilor din sistem, fie ele
formulare/formate sau rapoarte, fără a ne preocupa de interacţiunile dintre utilizator şi
calculator, inerente în preluarea datelor de intrare sau în generarea ieşirilor. Această din urmă
categorie de aspecte vor fi dezbătute pe larg în capitolul următor.
Rapoarte de excepţii
• Semnalează doar cazurile ieşite de sub
control
• Pot fi liste de erori sau rapoarte obişnuite
Rapoarte la cerere
• Generate la cererea unei persoane
• Uşor de realizat prin limbaje de interogare
• Acoperă cererea spontană de informaţii
Rapoarte programate
• Realizate la termene prestabilite
• Pot fi zilnice, săptămânale, decadale,
chenzinale ş.a.
• Mult solicitate de utilizatori
1.2.5 Conţinutul
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.
Informaţiile curente sunt cele ce sintetizează starea generală a afacerii sau organizaţiei, pe
componente funcţionale (aprovizionare, desfacere, producţie ş.a.). Ele sunt informaţii care vin
de la subordonaţi sau colaboratori de birou.
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.
PROIECTAREA FORMULARELOR/FORMATELOR ŞI A RAPOARTELOR 17
Atenţionările sunt relatări despre lucruri care necesită intervenţia promptă a managerilor
sau schimbarea unui plan de acţiune.
Indicatorii de bază sunt măsuri ale principalelor aspecte privind performanţele
organizaţiei, cum ar fi vânzări/magazin, vânzări/vânzător, venituri/cheltuieli de reclamă ş.a. Se
pot folosi valori numerice sau grafice sau combinaţii ale lor.
Informaţiile situaţionale reflectă starea curentă a unor proiecte importante, a problemelor,
a comenzilor care trebuie să fie aduse la cunoştinţa managerilor.
Clevetirile (bârfele) sunt informaţii neformale ce pot fi culese din diverse locuri, dar care
pot fi utile managerilor.
Informaţiile externe, după cum au fost definite anterior, sunt cele din afara unităţii sau a
unui departament.
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.
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.
18 PROIECTAREA SISTEMELOR INFORMAŢIONALE
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.
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.
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.
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
PROIECTAREA FORMULARELOR/FORMATELOR ŞI A RAPOARTELOR 19
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 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
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.
frecvent utilizate. Principalele tehnologii care facilitează schimbul electronic de informaţii sunt
Web-ul, poşta electronică şi sistemele EDI.
Extinderea utilizării Internetului, Intranet-ului, Extranet-ului şi a tehnologiei Web în
lumea afacerilor a creat condiţiile integrării sistemelor informaţionale. De exemplu, o firmă
poate permite accesul principalilor furnizori la sistemul său de gestiune a stocurilor,
transmiţînd acestora responsabilităţile privind activitatea de aprovizionare. Prin intermediul
tehnologiei Web, furnizorii vor putea oricând să acceseze baza de date şi să obţină anumite
rapoarte privind stocurile. De asemenea, prin intermediul unui site Web, clienţii vor putea
obţine on-line un catalog al produselor sau o ofertă.
Poşta electronică a devenit instrumentul esenţial de comunicare internă şi externă în
lumea afacerilor. Informaţiile despre produse noi, plăţi scadente, diverse notificări sau
confirmări, chiar documente, pot fi generate şi transmise în exteriorul firmei sub forma
mesajelor e-mail. Poşta electronică este utilizată din ce în ce mai mult şi în interiorul firmei,
înlocuind corespondenţa tradiţională bazată pe hârtie. Noile sisteme informaţionale pot genera
şi transmite automat, prin poşta electronică, diferite solicitări, înştiinţări sau confirmări către
angajaţii firmei sau decidenţi.
Sistemele cu ieşiri bazate pe microfilme, COM
(Computer Output Microfilm)
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ă 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.
Sistemele audio şi video
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.
22 PROIECTAREA SISTEMELOR INFORMAŢIONALE
Niveluri decizionale
Caracteristicile
informaţiilor/rapoartelor
Operativ Tactic Strategic
Dependenţa de sistemele de
prelucrare automată a datelor Ridicată Moderată Redusă spre moderată
Dependenţa de informaţiile interne Foarte ridicată Ridicată Moderată
Dependenţa de informaţiile externe Redusă Moderată Foarte ridicată
Gradul de sintetizare a informaţiilor Foarte redus Moderat Ridicat
Nevoia de informaţii on-line Foarte ridicată Ridicată Moderată
Nevoia de grafică pe calculator Redusă Moderată Ridicată
Folosirea informaţiilor în timp real Foarte ridicată Ridicată Moderată
Folosirea informaţiilor predictive* Redusă Ridicată Foarte ridicată
Folosirea informaţiilor din trecut Ridicată Moderată Redusă
Folosirea informaţiilor tip What-If Redusă Ridicată Foarte ridicată
Folosirea informaţiilor în etalon
bănesc Redusă Moderată Ridicată
Frecvenţa cererii de informaţii Regulat, repetitiv Aproape regulat Deseori ad-hoc
Efectul primirii informaţiei la Rezultat aşteptat Pot apărea unele surprize Rezultate pline de
utilizator (predictibil) surprize
Intervalul de timp acoperit Trecut Comparativ pe perioade Pentru perioade viitoare
sau faţă de anumite (predicţii)
standarde
Nivelul de detaliere a prezentărilor Foarte detaliate Sintetice Sintetice
Sursa datelor Interne Interne şi externe Majoritatea externe
Natura datelor utilizate Puternic structurate Unele date nestructurate Puternic nestructurate
Corectitudinea/Precizia datelor Foarte precise Unele date sunt subiective Foarte subiective
Utilizatorii tipici Supervizorii din prima Managerii de mijloc Top managerii
linie
Obiectul deciziei luate Activităţi prestabilite Orientate spre controlul Orientate spre obiective
şi alocarea resurselor strategice
* În accepţiunea autorului înseamnă informaţii obţinute prin tehnici de modelare statistică, cum ar fi regresia,
analiza seriilor de timp şi simularea. Ajută managerul în planificarea managerială, oferind răspunsuri la întrebările
What-If.
4. Shneiderman, B. – Designing the User Interface: Strategies for Effective Human-Computer Interaction, Addison-
Wesley, Reading, Massachusetts, 1992; Caroll, J.M. – Designing Interaction, Cambridge University Press,
Cambridge, 1991; Norman, K.L. – The Psychology of Menu Selection, Ablex, Norwood, New Jersey, 1991;
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, pp. 65-92.
5. Dumas, J.S. – Designing User Interface for Software, Prentice Hall, Englewood Cliffs, 1988; Vezi şi Beizer, B. –
Personal Computer Quality, Van Nostrand Reinhold Company, New York, 1986.
6. Cushing, B.E., Romney, M.B. – Accounting Information Systems, Addison-Wesley Publishing Company, New
York, 1994.
24 PROIECTAREA SISTEMELOR INFORMAŢIONALE
Titlu clar,
bine scos în evidenţă
7. Benbasat, I., Dexter, A.S., Todd, P. – op. cit.; Shneiderman, B. – op. cit.; Dumas, J. S. – op. cit.
PROIECTAREA FORMULARELOR/FORMATELOR ŞI A RAPOARTELOR 27
Nu trebuie să se tragă concluzia că întotdeauna varianta color este mai bună decât cea alb-
negru. De exemplu, un stat de salarii, o calculaţie de cost, o situaţie a furnizorilor ar fi eronat
realizate în varianta color. În schimb, reprezentarea grafică a indicatorilor economici se
pretează la utilizarea marcării prin culori.
Cel puţin în privinţa monitoarelor, s-a constatat că 8% din bărbaţii Europei şi Americii de
Nord au probleme cu vederea din cauza folosirii culorilor. Varianta alb-negru este mult mai
odihnitoare pentru privire, dar nu şi mai plăcută întotdeauna. De aceea se sugerează proiectarea
în varianta alb-negru, rămânând la latitudinea utilizatorului ce culori foloseşte. Se recomandă,
de asemenea, apelarea la un număr cât mai redus de culori, doar pentru a evidenţia anumite
elemente şi pentru formatarea informaţiilor.
În ceea ce priveşte textele, care în orice condiţii de lucru au o pondere substanţială în
ieşirile sistemelor, se recomandă câteva reguli:
Caracterele: Se recomandă folosirea literelor mari şi mici, inclusiv respectarea regulilor
de punctuaţie.
Spaţierea: Dacă este posibil, este de dorit folosirea dublei spaţieri. Dacă nu, se
recomandă plasarea unei linii cu spaţii între paragrafe.
Alinierea: Se recomandă alinierea textului la stânga şi, dacă nu se poate rezolva altfel,
partea dreaptă poate fi neregulată.
Liniuţa de În textele ecranelor, ale rapoartelor nu se recomandă despărţirea cuvintelor
unire: în silabe de pe un rând pe altul.
Abrevierile: Nu se recomandă folosirea abrevierilor pentru cuvinte care nu au o
recunoaştere generală.
Departamentul Desfacere
Antet
Situaţia vânzărilor pe clienţi în perioada 01/01/2006 - 28/02/2006 raport
Data: 15/03/2006
Nr. Factura Comanda Valoare
Antet pagina
crt. Număr Data Număr Data
Cod client: 1234, Nume client: ALFA srl Antet grup
1 458992 13-ian-2006 1212 5-ian-2006 72.000.000
2 459025 13-feb-2006 1875 6-feb-2006 57.000.000
3 459220 22-feb-2006 1899 11-feb-2006 112.000.000 Linie detaliu
4 459758 23-feb-2006 2543 13-feb-2006 43.000.000
Total client 284.000.000 Sfârsit grup
Cod client: 1235, Nume client: BETA sa
5 458891 13-ian-2006 1211 4-ian-2006 14.500.000
6 458999 18-ian-2006 1256 10-ian-2006 29.850.000
7 459112 20-feb-2006 1301 10-feb-2006 44.000.000
Total client 88.350.000
Total general 372.350.000 Sfârsit raport
În figura 1.7 sunt prezentate elementele componente ale unui tabel şi modul lor de
organizare, iar în figura 1.8 oferim un exemplu pentru a reliefa aspectele teoretice care stau la
baza construirii tabelelor.
(1) Numărul tabelului
(2) Titlul tabelului
(3) Linie desenată________________________________________
(6) Titlul coloanelor multiple
(4) Titlul cotorului (5) Titlul coloanei Titlul coloanei
(7) Titlul liniei
(8) Subtitlu Date Date
Subtitlu Date Date
Titlul liniei Date Date
(3) Linie desenată________________________________________
(9) Sursa:
(10) Note explicative
Fig. 1.7 Elementele de bază ale unui tabel
Pentru realizarea unui tabel, aşa cum se observă şi din figurile 1.7 şi 1.8, trebuie luate în
considerare zece elemente esenţiale, şi anume:
(1) Numărul tabelului: se va atribui consecutiv, în ordinea apariţiei, pe parcursul
întregului raport, sub forma numerelor arabe. Numărul se va scrie la marginea din stânga,
apelând la metoda numerelor duble (de exemplu, 2.3) numai în rapoartele lungi, care conţin
mai multe capitole, fără a se pune punct după ultimul grup de numere. Numărul şi titlul se vor
plasa deasupra tabelului, iar elementele suplimentare în zona imediat următoare sub tabel.
(2) Titlul tabelului trebuie să identifice, cât mai concis, datele înregistrate în tabel. Ca şi
numărul tabelului, titlul va fi scris la marginea din stânga, la două rânduri sub număr. Formatul
în care se va scrie titlul este următorul: prima literă a titlului şi pentru substantivele proprii se
vor scrie cu literă mare, iar celelalte cuvinte cu litere mici. Dacă titlul necesită şi o a doua linie,
30 PROIECTAREA SISTEMELOR INFORMAŢIONALE
se va începe tot din marginea din stânga, la două rânduri sub prima linie de titlu. Nu se va pune
punct după titlu.
(1) Tabel 1
(2) Costul de producţie pe produs
(3) ___________________________________________________
(6) Tipul produsului
(5) AC DC
(4) Costuri iniţiale
(7) Componenta de bază1 $ 76,000 $ 110,000
(8) Dispozitiv auxiliar-1 1,500 -
Dispozitiv auxiliar-2 2,000 -
Instalare 23,000 12,000
Total $ 102,500 $ 122,000
(3) ___________________________________________________
(9) Sursa: Smith, J.K., Speed Drives, Production Journal, iulie, 1977, 52.
(10) 1 în ambele variante se oferă un an garanţie
Fig. 1.8 Exemplu de tabel cu prezentarea elementelor componente
(3) Liniile tabelului. În general, tabelele au trei linii orizontale şi nici o linie verticală.
Dacă raportul este mai mult informal, se va apela la cât mai puţine linii sau chiar la nici una.
Ultima linie din tabel va delimita conţinutul acestuia de elementele suplimentare ataşate, cum
ar fi sursa tabelului şi notele explicative.
(4) Titlul cotorului (capetele de linii) este folosit pentru a denumi coloana în care vor fi
înregistrate numele variabilelor comparate în cadrul tabelului.
(5) Titlul coloanelor defineşte datele înscrise în coloanele respective.
(6) Titlul coloanelor multiple este folosit ca nume comun pentru coloanele situate sub el,
pentru a se reduce repetiţiile ce ar putea apărea în titlul fiecărei coloane.
(7) Titlul liniei identifică conţinutul rândului de date din dreapta primei coloane în care se
găseşte. Dacă este necesar, titlul liniei poate fi descompus în două sau mai multe subtitluri, caz
în care nu se vor înregistra date în dreptul liniei de titlu.
(8) Subtitlul defineşte conţinutul elementelor plasate pe rândurile imediat următoare
variabilei pe care o formează, fiind plasat sub titlul liniei şi evidenţiat prin indentare (scriere
adâncită, mai spre dreapta).
(9) Sursa este folosită pentru a indica originea datelor preluate. În cazul în care datele au
fost citate dintr-un material, se vor preciza cu exactitate autorul, titlul materialului, locul şi
anul apariţiei, eventual numărul paginii. Dacă datele provin dintr-o altă sursă decât materiale
publicate, se va specifica locul de unde au fost preluate (de exemplu, Sursa: Date preluate de la
Departamentul Producţie). Dacă sunt necesare comentarii asupra tabelului, acestea se vor
realiza între ultima linie trasată şi sursă, folosind cuvântul Notă, urmat de comentariile
respective.
(10) Notele explicative sunt destinate explicaţiilor privind anumite zone ale tabelului. Se
va face trimitere la aceste note prin litere mari sau mici atât în cadrul tabelului, cât şi la
începutul notei explicative.
modalităţi prin care să se înşele percepţia utilizatorului, fie prin formatul datelor, fie prin tipul
lor, ca de exemplu:
• Oferirea informaţiilor fie prin tabele, fie prin grafice, care să-i facă utilizatorului
imposibilă sesizarea unor lucruri relevante. De exemplu, dacă am urmări conturile de
valori materiale pentru a stabili care este situaţia stocurilor supranormative, iar tabelul
ar fi realizat în ordinea alfabetică a materialelor şi s-ar afişa color stocurile cele mai
mici, ambele ar contribui la abaterea atenţiei utilizatorului de la realitate.
• Încărcarea reprezentărilor cu multe elemente, multe linii, multe culori, multe fonturi,
astfel încât percepţia unor comportamente anume ale unui lucru să nu fie posibilă.
• Apelarea la culori şi alte modalităţi de scoatere în evidenţă a altor date decât cele ce
ar trebui să aibă acest tratament.
• Manipularea percepţiei prin factorii de scalare din reprezentările grafice. O astfel de
tehnică este văzută la prezentarea performanţelor calculatoarelor, ale programelor, ale
automobilelor ş.a. Intenţia este fie de a ascunde ceva, fie de a scoate în relief altceva.
Prezentăm în figura 1.9 aceleaşi informaţii în trei moduri: a) normal, b) modificarea
bazei de pornire a reprezentării, c) exagerarea valorii maxime a parametrilor
reprezentaţi grafic.
Baza scalei = 0
Vârful scalei = aproape de valoarea maximă
50
45
40
35
30
25
20
15
10
5
0
Trim. I Trim. II Trim. III Trim. IV
a) Scală normală
Baza scalei
Baza scalei == 15
15
Vârful scalei = aproape de
Vârful scalei = aproape de valoarea
valoarea maximă
maximă
50
45
40
35
30
25
20
15
Trim. I Trim. II Trim. III Trim. IV
Baza scalei = 0
Vârful scalei = 100, mult mai mare decât valoarea maximă
100
90
80
70
60
50
40
30
20
10
0
Trim. I Trim. II Trim. III Trim. IV
Din exemplele prezentate, rezultă că un rol deosebit în redarea fidelă a realităţii îi revine
analistului sau realizatorului ieşirilor sistemului. Cele mai multe denaturări ale scalelor se
întâlnesc în campaniile publicitare ale produselor.
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;
• 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.
8. Naumann, J.D., Jenkins, A.M. – „Prototyping: The New Paradigm for Systems Development”, in MIS Quarterly,
6 (3), 1993, pp. 29-44.
PROIECTAREA FORMULARELOR/FORMATELOR ŞI A RAPOARTELOR 35
În afara performanţei, utilizatorul priveşte ieşirile şi din alte puncte de vedere, care pot fi
prezentate astfel:
• Stabilitate – Stabilitatea sau consistenţa presupune folosirea aceloraşi termeni,
abrevieri, formate, titluri şi metode de navigare în toate ieşirile sistemului.
• Eficienţa – Atunci când se efectuează formatarea ea trebuie să se deruleze în strânsă
concordanţă cu sarcinile de executat. Textele trebuie să fie aliniate, coloanele sortate,
deplasarea să fie uşor de realizat. Pe cât este posibil, ar trebui să fie evitate
introducerile de date necesare obţinerii ieşirilor.
• Comoditate – Să nu se facă trimiteri la afişări anterioare, să se folosească etichete
clare, precum şi factori de scală corespunzători.
• Format – Formatul informaţiilor trebuie să se menţină pentru aceleaşi tipuri de date şi
să scoată în evidenţă ceea ce este important. Se recomandă folosirea, printre
caracterele tipărite, a semnelor monetare, a mărcilor zecimale, a separatorilor ordinelor
de mărime şi a semnelor +, –, % în mod corespunzător.
• Flexibilitate – Trebuie să i se ofere utilizatorului posibilitatea de a lista în modurile
dorite de el, de a opri procesul şi de a naviga în locurile dorite.
În concluzie, specialiştii spun că satisfacţia în utilizare s-ar putea rezuma la: timpul de
învăţare (acomodare), viteza în execuţie, rata erorilor, persistenţa în timp (stabilitatea),
satisfacţii subiective. Culegerea informaţiilor despre toate aceste considerente o efectuează
echipa de proiectare şi realizare, prin tehnicile descrise anterior în etapa de analiză a
sistemelor.
Ca şi în cazul altor etape sau subetape, trebuie să luăm în discuţie şi produsele etapei de
faţă. Ele sunt sintetizate în specificaţii de proiectare a formularelor şi rapoartelor, structurate
astfel:
• prezentarea descriptivă a ieşirii;
• un model al proiectului;
• testarea şi evaluarea comportamentului în utilizare.
În secţiunea rezervată prezentării descriptive a ieşirii, trebuie specificate toate elementele
relevante de proiectare, care privesc caracteristicile discutate anterior, în acest capitol: scopul
şi destinatarii, frecvenţa, formatul şi conţinutul, sursa datelor, mediul de generare şi controlul.
În cea de-a doua secţiune este prezentat prototipul, din care reiese forma ieşirii respective. În
ultima secţiune, sunt prezentate rezultatele evaluării prototipului de către utilizatori. În acest
sens, va fi cuantificată percepţia utilizatorilor în legătură cu aspectele esenţiale ale ieşirii,
aspecte prezentate în finalul paragrafului anterior.
Un model de specificaţie pentru raportul „Situaţia vânzărilor …” este prezentat în figura
1.11.
Pentru sursa datelor, specificaţiile de proiectare pot fi completate prin descrierea
câmpurilor ce vor fi accesate din fiecare tabelă a bazei de date. Asupra acestui aspect vom
reveni în capitolul destinat proiectării fizice a bazei de date. De asemenea, specificaţiile de
proiectare a secvenţei de dialoguri, prin care utilizatorul va interacţiona cu sistemul pentru
obţinerea raportului, vor fi prezentate în capitolul următor.
PROIECTAREA FORMULARELOR/FORMATELOR ŞI A RAPOARTELOR 37
b) Modelul proiectului
Departamentul Contabilitate
Pagina 1 din 1
Rezumat
Una dintre primele activităţi desfăşurate în faza de proiectare priveşte proiectarea ieşirilor din
sistem. În sistemele informaţionale economice, ieşirile se regăsesc, de cele mai multe ori, sub forma
formularelor/formatelor şi a rapoartelor. Un formular/format poate fi un document primar sau o machetă
de ecran care conţine unele date predefinite, numite şi date constante, cărora li se adaugă altele ce
urmează a fi completate, cunoscute şi sub numele de date variabile. Raportul este un document economic
în care sunt incluse doar date predefinite, fiind folosit în mod exclusiv pentru a fi citit sau vizualizat.
Principalul obiectiv urmărit la proiectarea ieşirilor constă în a prezenta informaţia solicitată într-o
formă inteligibilă, în locul potrivit, la momentul oportun şi numai utilizatorilor îndreptăţiţi. În acest sens,
la formularea specificaţiilor de proiectare, trebuie considerate următoarele caracteristici: scopul,
destinatarii, frecvenţa, conţinutul, sursa datelor, mediul de transmitere şi controlul.
Scopul ieşirilor determină unele aspecte de proiectare, cum ar fi ordinea de prezentare a coloanelor,
sortarea informaţiilor şi frecvenţa. Rapoartele generate de sistemele informaţionale economice pot fi
utilizate în luarea deciziilor, controlul activităţilor economice, transferul de informaţii în exteriorul firmei
sau întocmirea altor documente şi rapoarte.
38 PROIECTAREA SISTEMELOR INFORMAŢIONALE
Cunoaşterea destinatarilor constituie premise ale unei bune proiectări a ieşirilor, mai ales în ce
priveşte mecanismele de control, alegerea mediului de transmitere sau stabilirea numărului de exemplare
pentru fiecare ieşire. Din punctul de vedere al destinatarilor, pot fi identificate trei tipuri de ieşiri: interne,
externe şi documente în circuit.
Frecvenţa face referire la momentele la care se va genera fiecare ieşire din system, fie document, fie
raport. În funcţie de această caracteristică, rapoartele pot fi clasificate în patru categorii: rapoarte
programate, analize neprogramate, rapoarte la cerere şi rapoarte declanşate de excepţii.
Formatul ieşirilor defineşte modalitatea de organizare şi prezentare a informaţiilor. În acest sens,
cele mai utilizate forme de prezentare sunt: tabelară, zone predefinite şi grafică. Echipa de proiectare va
trebui să aibă în vedere regulile de proiectare specifice fiecărei forme.
Poate cea mai importantă caracteristică a ieşirilor o reprezintă conţinutul. Ea defineşte informaţiile
ce vor fi incluse într-un document sau raport, în funcţie de scopul pentru care ele sunt generate. În
legătură cu acestă caracteristică trebuie stabilite criteriile de ordonare a informaţiilor, precum şi nivelul
de detaliere, în funcţie de care putem avea trei tipuri de rapoarte: detaliate, sintetice şi dinamice.
Rapoartele dinamice se obţin prin combinarea rapoartelor sintetice cu cele detaliate, apelând la două
tehnici: „drill up-drill down” şi legarea rapoartelor. Acest tip de rapoarte oferă utilizatorului posibilitatea
schimbării interactive a nivelului de detaliere a informaţiilor afişate pe ecran.
Din punctul de vedere al sursei datelor, majoritatea ieşirilor se obţin prin accesarea bazei de date,
caz în care trebuie specificate tabelele, înregistrările şi câmpurile care vor fi citite. Alte surse pot fi
documente şi rapoarte primite de la alte sisteme sau baze de date publice.
Un alt element de proiectare a formularelor şi rapoartelor priveşte mediul de transmitere.
Majoritatea ieşirilor sunt tipărite pe hârtie sau afişate pe ecran, însă, astăzi sunt disponibile diverse alte
medii, precum cele audio şi video, schimbul electronic de date sau sistemele COM.
Pentru proiectarea formularelor/formatelor şi rapoartelor există numeroase reguli, recomandări şi
principii de lucru. Unele au caaracter general, altele sunt specifice unui anumit tip de ieşire. Pentru o mai
uşoară înţelegere şi reţinere a lor, ele au fost grupate în următoarele categorii: recomandări generale de
formatare a ieşirilor, reguli pentru evidenţierea informaţiilor, reguli de proiectare a tabelelor şi cele
pentru proiectarea graficelor.
O categorie aparte de reguli sunt cele care privesc controlul integrităţii ieşirilor. Din acest punct de
vedere, obiectivul urmărit la proiectarea ieşirilor constă în asigurarea completitudinii şi corectitudinii
informaţiilor conţinute, precum şi restricţionarea accesului la ele. În acest sens, cea mai eficace cale
constă în aplicarea procedurilor de control înainte de generarea şi distribuirea ieşirilor, cum ar fi limitarea
accesului la sistem, prin definirea utilizatorilor autorizaţi şi a drepturilor de acces. Alte două proceduri de
control sunt: separarea atribuţiilor şi controlul distribuirii ieşirilor.
Formularele/formatele şi rapoartele utilizate în sistem, indiferent că ele sunt intrări sau ieşiri,
reprezintă piesele cele mai importante pentru utilizatori. Acest fapt îi obligă pe specialişti să pună în
practică un demers de proiectare care să-i implice pe utilizatori. Demersul propus este unul iterativ şi
utilizează tehnica prototipizării. Principalele sale etape sunt: culegerea tuturor informaţiilor în legătură cu
documentele şi rapoartele solicitate, construirea câte unui prototip pentru fiecare ieşire, implementarea şi
utilizarea prototipului de către utilizatori, revizuirea prototipului pe baza observaţiilor utilizatorilor şi
conversia.
La finalul etapei de lucru trebuie întocmite specificaţiile de proiectare a formularelor şi
rapoartelor. Acest document conţine următoarele secţiuni: prezentarea descriptivă a ieşirii, modelul
proiectului şi testarea şi evaluarea comportamentului în utilizare.
Întrebări recapitulative
1. Explicaţi diferenţa dintre un formular/format şi un raport.
2. Care sunt obiectivele urmărite la proiectarea ieşirilor?
3. Care sunt sursele posibile pentru obţinerea ieşirilor din sistem.
4. Enumeraţi şi exemplificaţi tipurile de rapoarte în funcţie de frecvenţa de obţinere a lor.
5. Care sunt aspectele prin intermediul cărora se descrie conţinutul rapoartelor?
6. Explicaţi avantajele ieşirilor afişate pe ecran în comparaţie cu cele tipărite.
7. Efectuaţi o scurtă prezentare a mediilor de generare a ieşirilor din sistem.
8. Enumeraţi şi descrieţi 10 reguli de proiectare a rapoartelor tipărite.
PROIECTAREA FORMULARELOR/FORMATELOR ŞI A RAPOARTELOR 39
9. Descriereţi zonele specifice rapoartelor în formă tabelară. Daţi un exemplu prin care să puneţi în
evidenţă aceste zone.
10. Explicaţi de ce este necesară şi în ce constă orientarea spre utilizator în procesul de proiectare a
ieşirilor.
Probleme
1. Daţi câte un exemplu de raport generat de sistemul analizat în studiul de caz în scopul luării unei
decizii, respectiv controlul unei activităţi.
2. Explicaţi conceptul de raport dinamic. Daţi un exemplu de raport construit pe baza tehnicii „drill up-
drill down”.
3. Prezentaţi un exemplu de grafic prin care să se reprezinte o serie de valori discrete. Precizaţi regulile
de proiectare folosite.
4. Prezentaţi trei exemple de rapoarte dintr-o firmă, pe tema propriului studiu de caz sau o alta la liberă
alegere, şi realizaţi o descriere critică a acestora.
5. Daţi un exemplu de aplicare a procedurii separării responsabilităţilor pentru controlul ieşirilor din
sistemul analizat în propriul studiu de caz.
6. Întocmiţi specificaţiile de proiectare pentru un raport.
CAPITOLUL II
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
• Înţelegerea diferenţei dintre interfeţele utilizator şi interfeţele sistem
• Explicarea manierei în care pot fi identificate interfeţele utilizator
• Descrierea principiilor de proiectarea şi a modului de aplicare a lor în scopul obţinerii unor
interfeţe utilizator de calitate
• Descrierea etapelor de lucru î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
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.
9. Beizer, B. – Personal Computer Quality: A Guide for Victims and Vendors, Van Nostrand Reinhold Company,
New York, 1986, p. 87.
10. Schulteis, R., Sumner, M., Bock, D. – Management Information Systems: The Manager’s View, Second Edition,
IRWIN, Homewood, Boston, 1992, p. 123.
42 PROIECTAREA SISTEMELOR INFORMAŢIONALE
11. Zwass, V. – Management Information Systems, WCB-Wm, C. Brown Publishers, Dubuque, 1992, p. 338.
PROIECTAREA INTERFEŢELOR UTILIZATOR 43
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”.
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.
zonei tastelor funcţionale. Alteori, se lipesc mici etichete adezive pe taste, indicând noua lor
funcţiune.
Nu putem să nu consemnăm interacţiunea cu calculatorul prin limbaj natural, deşi ea se
află în stadiu incipient. Progresele se datorează cercetărilor din domeniul inteligenţei
artificiale, şi anume acelora referitoare la limbajul natural. Oricum, au fost concepute sisteme
care folosesc atât interfaţa prin voce, cât şi aceea care utilizează clasica tastatură a sistemelor
de calcul.
Spre deosebire de softul care comunică prin meniuri, în care opţiunile sunt afişate pe
ecran, comunicarea prin limbaj-comandă presupune ca opţiunile de lucru să se afle în mintea
utilizatorului. Acesta este motivul determinant pentru care softul orientat pe comenzi este mai
dificil de învăţat, pentru că trebuie însuşite comenzile ce pot fi utilizate. Dacă ele nu au o
logică, o oarecare apropiere de limbajul uman, misiunea de a le învăţa devine şi mai
anevoioasă. Totuşi, ele rămân încă bine apreciate în rândul multor informaticieni.
2.2.3.2 Interacţiunea prin meniuri
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.
Zone cu comenzi şi linii-meniu
Există produse-program care, imediat ce sunt lansate în execuţie, afişează comenzile într-
o anumită zonă sau, de cele mai multe ori, pe prima sau pe ultima linie a ecranului. Selecţia
uneia dintre comenzi se poate efectua prin câteva metode, cum ar fi: prima literă a cuvântului-
cheie, marcarea sau punctarea comenzii, apăsarea unei taste funcţionale. Astfel de meniuri se
regăseau în special în programele ce rulau sub sistemul de operare MS-DOS, mai cunoscute
fiind LOTUS 1-2-3 şi WORD PERFECT.
Cum cele mai multe calculatoare au tastele funcţionale pe linia de sus a tastaturii, în multe
produse-program comenzile se afişează pe ultima linie a ecranului, realizându-se astfel o
PROIECTAREA INTERFEŢELOR UTILIZATOR 47
Meniuri context
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. 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.
Fig. 2.4 Exemplu de formular pentru culegerea datelor privind cumpărările de la furnizor
Datele din formular privesc documentele primite de la furnizori, facturi şi/sau avize de
expediţie, şi cele de recepţionare a mărfurilor. Formularul prezentat conţine, în partea sa
superioară, o secţiune pentru filtrarea datelor afişate şi căutarea documentelor. Primele două
PROIECTAREA INTERFEŢELOR UTILIZATOR 51
căsuţe de text, din partea stângă, permit utilizatorului să specifice intervalul de timp pentru
care se vor afişa date în formular, iar butoanele radio şi căsuţa de text din partea dreaptă vor fi
utilizate pentru a specifica tipul şi numărul documentului pe care utilizatorul doreşte să-l caute
şi să-l afişeze. De asemenea, formularul conţine două pagini, respectiv FACTURI/AVIZE şi
RECEPTII, în figura 2.4 fiind afişată prima pagină. Această pagină conţine două grile: prima
afişează date despre documentele (facturi şi avize) primite de la furnizori şi înregistrate în
perioada specificată anterior; cea de-a doua grilă prezintă detaliile documentului selectat din
prima grilă. După cum se poate observa, unele coloane din cele două grile sunt de tip căsuţe
combinate. Cele două grile pot fi utilizate şi pentru adăugarea datelor. În partea de jos a
paginii, se regăsesc butoanele, prin intermediul cărora se pot iniţia diferite acţiuni, precum
adăugarea sau salvarea unui document.
O problemă foarte importantă în construirea formularelor/ecranelor o constituie
proiectarea navigării între câmpuri şi în interiorul lor. Navigarea trebuie să fie de la stânga la
dreapta şi de sus în jos, însă cu posibilităţi de revenire, la cerere. Formularele pentru
introducerea datelor trebuie să încorporeze şi alte categorii de funcţiuni comune. O parte dintre
acestea sunt enumerate în tabelul 2.2.
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
Posibilităţi de Ştergerea unei linii dintr-o grilă (grid), a tuturor datelor din formular.
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 Furnizarea de informaţii despre orice câmp sau despre întregul formular.
informaţiilor
ajutătoare
Restricţionarea accesului utilizatorilor.
Posibilităţi de Identificarea şi autentificarea utilizatorilor.
control 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 anumit număr
de caractere.
Facilităţi oferite la
Nominalizarea prin titluri a conţinutului casuţelor de text şi a altor obiecte ce
introducerea
afişează date.
datelor
Indicarea unităţilor de măsură, atunci când este cazul.
Oferirea exemplelor de formate folosite, cum ar fi cele pentru numere de 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 Testarea lipsei datelor în unele câmpuri.
a datelor introduse Verificarea încadrării valorilor în anumite intervale (exemplu: notele să fie în
intervalul 0-10).
Apelarea la tehnica cifrei de control.
52 PROIECTAREA SISTEMELOR INFORMAŢIONALE
12. Porter, A. – C++ Programming for Windows, McGraw-Hill, Berkeley, 1993; Bachenski, B. – „GUI Builders
Pay Price for User Productivity”, in Software Magazine, April 1992; Greenbaum, J. – „The Evolution
Revolution”, in Information Week, March 14, 1994; Haarind, R. – „Software’s New Object Lesson”, in
Technology Review, February-March, 1992; Jalics, P.J. – „COBOL on a PC: A New Perspective on a Language
and Its Performance”, in Communications of ACM 30, nr. 2, February 1987; Mandelkern, D. – „Graphical User
Interfaces: The Next Generation”, in Communication of ACM 36, nr. 4, April 1993; Morse, A., Reynolds, G. –
„Overcoming Current Growth Limits in UI Development”, in Communications of ACM 36, nr. 4, April 1993;
Wiederhold, G., Wegner, P., Ceri, S. – „Toward Megaprogramming”, in Communications of ACM 35, nr. 11,
November 1992.
13. May, J.C. – Extended the Macintosh Toolbox: Programming Menus, Windows, Dialogues and More, Addison-
Wesley, Reading, Massachusetts, 1991.
14. Autorii sunt referiţi în Mandel, T. – The Elements of User Interface Design, John Wiley & Sons, 1997, New
York, p.49.
15. Shneiderman, B. – Designing the User Interface, Addison Wesley, 1998, Third Edition,
http://www.cs.utexas.edu/users/almstrum/cs370/elvisino/rules.html
PROIECTAREA INTERFEŢELOR UTILIZATOR 53
Regula Descriere
simplificate sau chiar eliminate.
4. Marcarea sfârşitului Orice dialog trebuie să fie organizat ca o secvenţă de acţiuni în care să
dialogurilor existe un început, un mijloc şi un sfârşit.
5. Gestiunea simplă a erorilor Sistemul trebuie proiectat astfel încât să limiteze posibilitatea ca
utilizatorul să comită erori grave. Totuşi, dacă se întâmplă, sistemul va
oferi mecanisme simple şi inteligibile de detectare şi gestionare a
erorilor.
6. Prevederea operaţiunilor Interfaţa trebuie să-i permită utilizatorului să folosească acţiunea
reversibile inversă celei anterioare, cum ar fi readucerea unui element şters.
Unităţile de reversibilitate pot fi o acţiune simplă, o introducere de date
sau un grup complet de acţiuni.
7. Controlul aplicaţiei de Utilizatorii experimentaţi doresc ca ei să fie cei care controlează
către utilizator aplicaţia. Aplicaţia trebuie astfel proiectată încât utilizatorii să joace
rolul de iniţiatori ai acţiunilor şi nu pe cel de respondenţi.
8. Reducerea volumului de La proiectarea interfeţelor trebuie luate în considerare limitele
informaţii pe care memoriei umane pe termen scurt. Formularele vor fi simple, se vor
utilizatorul trebuie să-l evita trecerile de la un formular la altul etc.
memoreze pe termen scurt
16. Mandel, T. – The Elements of User Interface Design, John Wiley & Sons, New York, 1997, p. 48.
54 PROIECTAREA SISTEMELOR INFORMAŢIONALE
Fig. 2.5 Exemplu de interfaţă în care utilizatorul este sub controlul aplicaţiei
Când se aplică această regulă, se va lua în considerare categoria de utilizatori pentru care
este proiectată interfaţa, adică experienţa lor în lucrul cu calculatorul şi cea din domeniul de
activitate pentru care este dezvoltat sistemul. Revenind la analogia cu audiţia albumului
„Innuendo”, pentru ca „melomanul” să poată beneficia de avantajele oferite de combina audio,
el trebuie să cunoască comenzile acesteia şi conţinutul albumului. Transpunând aceste două
cerinţe în sfera proiectării interfeţelor, utilizatorul se va putea bucura de deţinerea controlului
asupra aplicaţiei numai dacă este familiarizat cu interfeţele grafice şi cu sarcinile de lucru din
sistemul informaţional.
În continuare, vom prezenta cele mai importante dintre principiile a căror aplicare
conduce la punerea în practică a acestei reguli.
2.3.1.1 Principiul utilizării judicioase a modurilor de lucru
Printr-un mod de lucru se înţelege un context în care se află aplicaţia la un moment dat, în
care utilizatorul poate efectua doar anumite operaţiuni sau de care depinde funcţia pe care o
realizează un obiect al interfeţei. De regulă, atunci când utilizatorul se află într-un mod de
lucru, nu i se permite să lucreze în altă parte a aplicaţiei.
Utilizatorii calculatoarelor sunt obişnuiţi cu modurile de lucru, deoarece ele pot fi
observate uşor în majoritatea programelor. Un exemplu comun este dat de modurile de lucru
insert/overwrite dintr-un procesor de texte, trecerea dintr-un mod de lucru în celălalt
realizându-se prin apăsarea tastei Insert.
În cele mai multe aplicaţii, formularele concepute pentru actualizarea bazei de date conţin
modul de lucru vizualizare, în care utilizatorii pot afişa informaţiile, dar nu le pot modifica.
Ecranul din figura 2.4 permite, la încărcarea acestuia, afişarea facturilor/avizelor primite de la
furnizori, dar nu şi adăugarea sau modificarea lor. Pentru a modifica datele referitoare la un
PROIECTAREA INTERFEŢELOR UTILIZATOR 55
document, utilizatorul trebuie să-l selecteze şi să intre în modul de lucru modificare, prin
apăsarea butonului MODIFICA DOC. Intrarea în modul de lucru adăugare se face prin apăsarea
butonului DOC. NOU. Imediat după salvarea datelor modificate/adăugate, se revine la modul de
lucru vizualizare.
Modurile de lucru limitează controlul utilizatorului asupra aplicaţiei, deoarece acesta nu
poate realiza decât operaţiunile permise în contextul de lucru respectiv. În plus, utilizatorul va
fi nevoit să efectueze un număr suplimentar de operaţiuni, pentru a trece de la un mod de lucru
la altul. Din acest motiv, apelarea la modurile de lucru trebuie temeinic justificată.
Chiar dacă utilizarea modurilor de lucru limitează controlul utilizatorului asupra
aplicaţiei, ele se regăsesc în majoritatea aplicaţiilor. Ele trebuie utilizate numai atunci când
sunt necesare, evitându-se plasarea utilizatorului în moduri de lucru inutile. Întrebarea „Când
este justificată şi când nu utilizarea modurilor de lucru?” nu are un răspuns general valabil.
Câteva dintre cazurile care justifică utilizarea modurilor de lucru sunt:
• Utilizatorii sunt neexperimentaţi în lucrul cu interfeţele grafice sau în activităţile
derulate în cadrul sistemului, fiind de dorit un control mai bun al operaţiunilor
realizate de ei cu ajutorul calculatorului. Astfel, se evită apariţia erorilor datorate
iniţierii greşite a unor operaţiuni.
• Restricţionarea accesului, atunci când există categorii de utilizatori cu drepturi de
acces diferite. Unii utilizatori pot avea drepturi de modificare sau anulare a facturilor,
iar alţii doar pe cele de vizualizare a acestora.
• Simplificarea formularului, prin schimbarea funcţiilor unor butoane de la un mod de
lucru la altul, pentru a se evita includerea unui număr prea mare de butoane. De
exemplu, prin transformarea butoanelor de comandă ADAUGARE şi MODIFICARE, din
modul de lucru vizualizare, în SALVARE şi ABANDON, în modurile de lucru adăugare
şi modificare, formularul va conţine doar două butoane în loc de patru.
Un alt aspect, demn de luat în considerare, la analiza justeţei includerii modurilor de
lucru, se referă la numărul de operaţiuni suplimentare necesare pentru trecerea de la un mod de
lucru la altul. Dacă, la introducerea facturilor/avizelor, utilizatorul va fi nevoit să comute între
modurile de lucru adăugare şi vizualizare pentru fiecare document în parte, atunci el ar putea fi
nemulţumit de productivitatea muncii sale, mai ales dacă numărul de documente ce trebuie
operate este mare. Ar fi mai simplu ca ei să poată adăuga date fără a mai fi necesară selectarea
butonului ADAUGARE, pentru fiecare document în parte. Prin urmare, utilizarea modurilor de
lucru este neproductivă în cazul operaţiunilor de actualizare cu frecvenţă mare.
Atunci când sunt utilizate, este obligatorie semnalarea, în orice moment, a modului de
lucru în care se află utilizatorul. În acest sens, există mai multe posibilităţi. De exemplu, în
Microsoft Word, intrarea în modul de lucru „Draw” este semnalat prin schimbarea pointerului
de mouse în semnul „+”. Pentru diferenţierea între modurile vizualizare şi modificare, se pot
utiliza culori diferite pentru fundalul câmpurilor din formular, de regulă gri pentru vizualizare
şi alb pentru modificare. O altă modalitate priveşte introducerea unui mesaj în linia de stare,
care să arate în orice moment utilizatorului modul de lucru în care se află (vezi mesajul cu roşu
din formularul prezentat în figura 2.4).
Aşadar, aplicarea acestui principiu este strâns legată de cel care va fi discutat în
continuare, respectiv principiul retroacţiunii imediate.
2.3.1.2 Principiul retroacţiunii (feed-back) imediate
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
56 PROIECTAREA SISTEMELOR INFORMAŢIONALE
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.
2.3.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.
2.3.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 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ǎ
PROIECTAREA INTERFEŢELOR UTILIZATOR 57
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.
17. Marakas, G. – Systems Analysis and Design. An Active Approach, Prentice Hall, New Jersey, 2001, p. 347.
60 PROIECTAREA SISTEMELOR INFORMAŢIONALE
18. 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.
PROIECTAREA INTERFEŢELOR UTILIZATOR 61
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 faze19:
1. Colectarea şi analiza informaţiilor de la utilizatori,
2. Proiectarea interfeţelor,
3. Construirea interfeţelor şi
4. Validarea.
2) Proiectarea 1) Analiza
3) Construirea 4) Validarea
Modelul în spirală relevă faptul că, fiecare dintre fazele enumerate mai sus va fi reluată de
mai multe ori, astfel încât fiecare iteraţie va introduce noi cerinţe şi specificaţii de proiectare,
care vor fi implementate şi testate de fiecare dată. Procesul iterativ va continua până când toate
cerinţele identificate au fost înglobate în specificaţiile de proiectare ale interfeţei, iar
utilizatorul îşi va da acordul asupra rezultatului proiectării.
În paragrafele următoare, vom descrie activităţile specifice fiecăreia dintre cele patru faze.
De asemenea, vom relua modelul de studiu de caz privind sistemul de gestiune a clienţilor şi ne
vom ocupa de proiectarea ecranului pentru preluarea în sistem a comenzilor primite de la
19. Mandel, T. – The Elements of User Interface Design, John Wiley & Sons, New York, 1997, p. 251.
62 PROIECTAREA SISTEMELOR INFORMAŢIONALE
Informatii-limita- Actualizare
Date-comenzi-noi creditare-clienti comenzi
Date-de-identificare si-modificate
Client Date-comenzi-modificate
Nota-confirmare- Cantitate-
comanda 1.2 Nomenclator comanda-
produse modificata
Nota-confirmare- Cantitate-comanda-noua
Inregistrare
modificare-comanda comanda noua Date-
comanda-noua Nomenclator
Comenzi-de-onorat Comenzi Date-
produse
comenzi-
existente
Date-
client Informatii-clienti-noi
Depozit-livrari Date-
comenzi- 1.4
Tip- inregistrate
comanda Date-client
Decizii-politici- Clienti
Generare
creditare-clienti rapoarte comenzi
Catalog
Conducere
În această fază sunt derulate cinci activităţi: determinarea profilului utilizatorilor, analiza
atribuţiilor de serviciu ale acestora, culegerea cerinţelor utilizatorilor, analiza mediului de
lucru şi armonizarea cerinţelor utilizatorilor cu atribuţiile lor de serviciu.
Determinarea profilului utilizatorilor
În cadrul acestei activităţi, analistul trebuie să identifice categoriile de utilizatori, să
înţeleagă percepţia fiecărei categorii asupra sistemului şi să formuleze cerinţele lor specifice.
Categoriile de utilizatori pot fi identificate pe baza unei matrice, rezultată prin combinarea
a două dimensiuni: cunoştinţele în domeniul de activitate, pentru care se dezvoltă sistemul
informaţional, şi experienţa în lucrul cu sistemele informatice. Rezultă patru categorii de
utilizatori:
• utilizatori care nu au cunoştinţe în domeniul lor de activitate şi nici experienţă în
utilizarea calculatorului;
• utilizatori fără cunoştinţe în domeniul lor de activitate, dar familiarizaţi cu sistemele
informatice;
• utilizatori care au o experienţă bogată în domeniul lor de activitate, dar mai puţină
experienţă în utilizarea calculatorului;
• utilizatori experimentaţi atât în domeniul lor de activitate, cât şi în utilizarea sistemelor
informatice.
Analiza atribuţiilor de serviciu ale utilizatorilor
Acum se urmăreşte identificarea şi descrierea atribuţiilor de serviciu ale utilizatorilor, a
modului în care ei realizează aceste sarcini. După descrierea situaţiei existente, se va încerca
reorganizarea sarcinilor de serviciu, astfel încât să se beneficieze din plin de avantajele oferite
de noile tehnologii angajate în dezvoltarea sistemului. Această problemă se pune, mai ales, în
situaţia trecerii de la interfeţe clasice la interfeţe grafice, de la un sistem manual la unul
informatizat, sau de la unul neintegrat la unul integrat.
Schimbările privind modul de realizare a sarcinilor de serviciu trebuie să fie bine
justificate din punctul de vedere al optimizării lor, iar efectele lor pozitive şi/sau negative să fie
aduse la cunoştinţa utilizatorilor. Mai mult, utilizatorii trebuie implicaţi activ în regândirea
sarcinilor lor de muncă. Altfel, modificările radicale şi nejustificate pot crea frustrări în rândul
utilizatorilor şi, implicit, sporirea riscului de neacceptare a noului sistem.
Această etapă de lucru trebuie să ofere răspunsuri la unele întrebări, precum:
• Care sunt sarcinile realizate de utilizatori?
• Ce atribuţii sunt cele mai importante pentru activitatea desfăşurată de utilizator?
• Care sunt operaţiunile necesare pentru realizarea unei atribuţii de serviciu?
• Cu ce scopuri realizează utlizatorul aceste atribuţii?
• 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
În acest moment, se vor culege informaţiile privind doleanţele utilizatorilor, cu privire la
ce trebuie să ofere şi cum trebuie să arate interfeţele. Cerinţele utilizatorilor vor putea fi culese
cu ajutorul tehnicilor specifice, cum ar fi interviul şi chestionarul. În cazul în care utilizatorii
nu sunt în măsură să-şi specifice cerinţele, proiectantul va construi un prototip al fiecărei
interfeţe, pe baza rezultatelor din primii doi paşi, pe care-l va supune apoi atenţiei acestora.
64 PROIECTAREA SISTEMELOR INFORMAŢIONALE
Având în faţă un astfel de prototip, utilizatorii vor putea să facă observaţii şi să-şi exprime
cerinţele.
În general, cerinţele utilizatorilor se pot referi la reducerea numărului de erori în culegerea
datelor, automatizarea unor activităţi manuale, sporirea vitezei de culegere a datelor, efectuarea
anumitor verificări asupra datelor introduse, semnalarea unor situaţii de excepţie etc.
Analiza mediului de lucru al utilizatorilor
Prin analiza mediului de lucru se urmăreşte determinarea caracteristicilor de mediu care
pot influenţa activitatea utilizatorilor. Vor fi culese informaţii cu privire la caracteristicile
fizice ale mediului de lucru (luminozitate, zgomote, spaţiu, temperatură etc.), aspectele de
ergonomie a muncii, nevoile speciale ale utilizatorilor cu diverse infirmităţi etc.
Armonizarea cerinţelor utilizatorilor cu sarcinile lor de serviciu
În finalul acestei faze, se va verifica dacă cerinţele exprimate de utilizatori corespund cu
caracteristicile sarcinilor de serviciu pe care ei trebuie să le realizeze. Analistul va încerca să
ofere utilizatorilor mai mult decât ceea ce au cerut ei, dar şi să explice acestora situaţiile în
care anumite cerinţe nu pot fi rezolvate. De exemplu, dacă utilizatorul are nevoie numai de
informaţii de tip text, atunci nu se justifică proiectarea unei interfeţe care să ofere facilităţi de
lucru multimedia.
În caseta 2.2 sunt prezentate rezultatele acestei faze pentru proiectarea ecranului de
actualizare a comenzilor.
Caseta nr. 2.2 – Rezultatele fazei de colectare şi analiză a informaţiilor necesare
proiectării ecranului pentru actualizarea comenzilor
Profil utilizatori
- abilităţi minime în utilizarea calculatorului;
- o bună cunoaştere a produselor firmei;
- nivel mediu de experienţă în preluarea şi prelucrarea comenzilor.
Activităţile utilizatorilor
- înregistrarea unei comenzi noi;
- modificarea unei comenzi;
- anularea unei comenzi;
- vizualizarea datelor privind comenzile unui client.
Cerinţele utilizatorilor
- timpi mici de răspuns, mai ales în cazul primirii comenzilor prin telefon;
- interfeţe asemănătoare cu cele din mediul Windows;
- posibilitatea de tipărire a comenzilor;
- posibilitatea de transmitere de notificări către client, cu privire la înregistrarea comenzii
sale, mai ales în cazul primirii ei prin telefon;
- oferirea de informaţii privind stocul disponibil;
- servirea simultană a mai multor utilizatori;
- flexibilitatea derulării dialogurilor pentru situaţia primirii comenzii prin telefon;
- întreruperea şi abandonarea unei activităţi.
Mediul de lucru al utilizatorului
- cerinţele standard pentru utilizarea desktop-urilor conectate la reţeaua firmei pentru
PROIECTAREA INTERFEŢELOR UTILIZATOR 65
20. Booth, P. – An Introduction to Human-Computer Interaction, Lawrence Erlbaum Associates, Londra, 1989, citat
în Mandel, T. – op. cit., p. 103.
66 PROIECTAREA SISTEMELOR INFORMAŢIONALE
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.
• 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.
trecute într-o listă specială. Fiecare substantiv este susceptibil de a reprezenta un obiect, iar
fiecare verb poate corespunde unei acţiuni. Obiectele sunt reprezentate, de regulă, prin câmpuri
de date, precum numărul şi data facturii, numele furnizorului, denumirea marfii, iar acţiunile
prin operaţiunile iniţiate în interfaţă, cum ar fi adăugare factură, salvare date, căutare
document, încărcarea datelor.
În caseta 2.4, substantivele (obiectele) au fost evidenţiate cu caractere îngroşate (bold), iar
verbele (acţiunile) cu caractere înclinate (italice). Lista obţinută va fi revizuită pentru a se
elimina obiectele şi acţiunile duplicate, precum şi pentru a adăuga eventualele obiecte şi
acţiuni care nu au rezultat în mod explicit din descrieriea scenariilor de lucru. Lista finală
pentru exemplul nostru este prezentată în caseta 2.5.
În caseta 2.7 este prezentată fereastra de dialog cu care va interacţiona utilizatorul pentru
generarea şi tipărirea raportului „Situaţia vânzărilor pe gestiuni şi facturi”, ale cărui specificaţii
de proiectare au fost prezentate în capitolul anterior.
Datorită simplităţii secvenţei de dialoguri, nu a mai fost necesară parcurgerea, fază cu
fază, a demersului de proiectare a interfeţelor utilizator. Oricum, construirea prototipului
pentru fereastra de dialog are la bază specificaţiile de proiectare ale raportului, cum ar fi
perioada de timp pentru care se generează raportul, modul de grupare şi ordonare, gestiunile
pentru care se vor lista datele etc. Scenariile de lucru sunt uşor de intuit şi de transpus în
prototip, fără a mai fi necesară definirea lor explicită.
70 PROIECTAREA SISTEMELOR INFORMAŢIONALE
Proiectarea
preliminară
Construire
prototip nr. 1
Construire
prototip nr. N
Modificarea
Evaluarea
specificaţiilor
interfeţei
de proiectare
Analiza
rezultatelor
Interfaţă proiectată
complet
Meniurile unei aplicaţii reflectă structura generală a sistemului informaţional, din punctul
de vedere al utilizatorului. Meniul conţine o ierarhie de opţiuni, grupate după diferite criterii.
Cel mai adesea, meniurile sunt structurate pe subsisteme (funcţii) sau acţiuni efectuate asupra
obiectelor. De exemplu, opţiunile principale din meniul unei aplicaţi privind gestiunea
relaţiilor cu clienţii pot fi: înregistrare tranzacţii, actualizare clienţi şi generare rapoarte
diverse. Meniurile pot fi aranjate şi pe baza obiectelor din sistem: comenzi, livrări, încasări,
clienţi, produse. În acest caz, unele funcţii vor fi redundante, întrucât fiecare dintre opţiunile
amintite va avea asociat un submeniu cu opţiuni precum actualizare sau rapoarte.
La proiectarea meniurilor trebuie analizate cu atenţie diagramele fluxurilor de date, în
special diagramele de nivel 0 şi 1. Structurarea meniurilor poate reflecta, în bună măsură,
structura funcţională a sistemului, rezultată prin procesul de descompunere a diagramelor
fluxurilor de edate. De regulă, proiectarea meniurilor se realizează în paralel cu proiectarea
arhitecturii programelor. Se va lua în considerare caracteristica generală a sistemului, adică
dacă el este orientat pe tranzacţii sau pe transformări. În acest sens, diagrama de structură,
instrumentul utilizat pentru descrierea arhitecturii programelor, va reflecta în partea sa
superioară structura meniului. De aceea, asupra proiectării meniurilor vom reveni în cadrul
capitolului destinat proiectării programelor.
În legătură cu proiectarea meniurilor, s-au conturat câteva convenţii standard, dintre care
le enumerăm pe cele mai importante:
• în cele mai multe aplicaţii se foloseşte poziţia File. În astfel de cazuri ea trebuie să fie
prima poziţie din linia meniului;
• poziţia Edit este întotdeauna a doua, dacă există;
• poziţia Window este întotdeauna penultima, dacă există;
• poziţia Help este întotdeauna ultima din linie, dacă există;
• o săgeată (¾) plasată în dreapta ultimului element înseamnă descompunerea acestuia
în submeniuri (vezi şi figura 2.2 a);
• elementele selectate sau activate vor fi marcate într-un anumit mod (de exemplu, bifare
în stânga numelui);
• prezentarea elementelor care, dacă sunt selectate, vor conduce la apariţia meniurilor
pop-up, marcate, de obicei, cu (…);
• afişarea pe prima linie a unui text-comentariu referitor la poziţia pe care se află
prompterul;
• ştergerea sau evidenţierea poziţiilor ce pot fi activate faţă de celelalte care nu pot fi
folosite (de exemplu, folosirea culorilor accentuate pe butoanele care pot fi activate, şi
aproape şterse pe celelalte);
• structura meniului trebuie să reflecte cât mai fidel succesiunea paşilor pe care
utilizatorul o foloseşte cel mai frecvent;
• oferirea a două sisteme de meniuri, unul pentru utilizatorii neexperimentaţi, care va
conţine un set minim de acţiuni, organizate în cascadă, şi unul pentru utilizatorii
experimentaţi, care va conţine toate opţiunile de lucru;
• gruparea opţiunilor astfel încât să se maximizeze similitudinea lor în cadrul categoriei
şi să se minimizeze similitudinea opţiunilor din categorii diferite;
• oferirea accesului direct la opţiunile critice sau utilizate frecvent;
• separarea opţiunilor care iniţiază acţiuni destructive de cele utilizate frecvent;
• includerea în meniu a unor opţiuni de lucru care nu se regăsesc în cerinţele funcţionale
(transpuse în diagrama fluxurilor de date). Astfel de opţiuni pot privi restaurarea sau
arhivarea bazei de date, întreţinerea conturilor de utilizatori, facilităţi de ajutor (help)
etc.
72 PROIECTAREA SISTEMELOR INFORMAŢIONALE
Erorile la introducerea datelor apar, de cele mai multe ori, ca urmare a adăugării de
caractere în plus sau a trunchierii datelor de intrare, a schimbării succesiunii a două sau mai
multor caractere. Deşi eliminarea completă a datelor eronate nu este posibilă, există totuşi o
serie de mecanisme de control care pot reduce considerabil apariţia erorilor. Aceste mecanisme
de control vor ajuta utilizatorii în identificarea anumitor tipuri de erori la culegerea datelor. În
tabelul 2.5 sunt enumerate şi descrise, succint, câteva mecanisme de control al datelor de
intrare, ce pot fi implementate la nivelul interfeţei utilizator.
Tabel nr. 2.5 – 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, date
Tipul datelor
calendaristice etc.)
Verosimilitatea datelor depinde de la caz la caz. De exemplu, cantitatea vândută
Verosimilitate nu poate fi prea mare dacă preţul de vânzare este foarte mare. Nivelul 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 o
introducerii ei
căsuţă combinată sau butoane de opţiune.
Câmpurile din formulare, care sunt obligatoriu de completat, trebuie semnalate
Depistarea datelor
utilizatorilor, iar în momentul salvării datelor se va verifica dacă au fost
lipsă
completate toate câmpurile.
Această tehnică este utilizată pentru verificarea corectitudinii codurilor utilizate
Tehnica cifrei de
în aplicaţie, cum ar fi codul mărfii, al furnizorului etc. Un exemplu este prezentat
control
mai jos.
Pentru unele date pot fi definite şabloane, urmând a se verifica dacă datele
Formatul datelor introduse corespund acestora. Astfel de şabloane pot fi definite pentru datele
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 Numărul de caractere care trebuie introduse într-un câmp trebuie verificat atunci
caractere când este cunoscut. De exemplu, CNP-ul unei persoane este format din 13 cifre.
Validitatea datelor introduse în formulare poate fi determinată prin compararea
Compararea datelor lor cu datele stocate deja în baza de date. De exemplu, la introducerea codului
introduse cu cele sau a numelui clientului se va verifica dacă el există în baza de date. Acest
stocate mecanism permite utilizatorilor să verifice corectitudinea datelor introduse,
înainte de salvarea lor.
Dintre mecanismele de control enumerate în tabelul 2.5, 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 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.
74 PROIECTAREA SISTEMELOR INFORMAŢIONALE
În tabelul 2.5 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.
Rezumat
Interactivitatea reprezintă una dintre caracteristicile esenţiale ale sistemelor informaţionale
economice, drept pentru care proiectarea interfeţelor utilizator reprezintă o activitate critică. Prin
interfaţă utilizator, în acest capitol, facem referire la componentele software ale aplicaţiei, care au rolul
de a asigura dialogul între utilizator şi sistem, în vederea culegerii şi salvării datelor (ecrane/formulare),
obţinerii rapoartelor necesare sau iniţierii diferitelor operaţiuni (meniuri).
Una dintre primele activităţi realizate în cadrul proiectării o reprezintă identificarea interfeţelor
utilizator. Această activitate, realizată pe baza rezultatelor fazei de analiză, presupune interpretarea
diagramelor fluxurilor de date şi a graniţelor informatizării, stabilite la definirea strategiei de proiectare.
Intrările şi ieşirile care depăşesc graniţele pot prezenta interes din perspectiva proiectării interfeţelor
utilizator. Însă, nu toate intrările/ieşirile în/din sistem implică intervenţia directă a utilizatorilor, caz în
care ele vor fi referite ca interfeţe sistem. Ele apar în cazul culegerii automate a datelor, a
intrărilor/ieşirilor provenite/transmise de la/către alte sisteme informaţionale, care nu presupun intervenţia
utilizatorilor, sau a ieşirilor pentru obţinerea cărora rolul oamenilor este redus. Aceste tipuri de interfeţe
vor fi tratate în capitolul destinat proiectării programelor.
La proiectarea interfeţelor utilizator trebuie alese cu grijă metodele şi echipamentele ce vor fi
folosite în dialogul om-calculator, cu atât mai mult cu cât ele sunt numeroase şi supuse direct evoluţiei
rapide din domeniul tehnologiilor informaţionale.
Cele mai utilizate metode de interacţiune om-calculator sunt: limbajul-comandă, meniurile şi
ecranele pentru culegerea datelor, referite de noi şi prin formulare. Interacţiunea prin limbaj-comandă
presupune ca utilizatorul să realizeze o anumită operaţiune prin transmiterea unei comenzi. Cele mai
cunoscute tipuri sunt: comenzile sintactice, comenzile mnemonice, comenzile-taste şi comenzile în
limbajul natural. Interfeţele bazate pe comenzi sunt mai greu de învăţat, întrucât utilizatorul trebuie să
cunoască foarte bine sintaxa acestora. Spre deosebire de acestea, interacţiunea prin meniuri solicită mai
puţin memoria utilizatorului, motiv pentru care ele sunt familiare tuturor celor care folosesc astăzi
calculatorul. Un meniu pune la dispoziţie o listă de opţiuni, din care utilizatorul va selecta pe cea dorită.
În funcţie de modul de afişare, meniurile pot fi de mai multe tipuri, dintre care amintim: liste simple cu
opţiuni, linii-meniu, meniu de tip bară, meniuri context şi meniuri prin imagini. Interacţiunea prin ecrane
(formulare) este folosită, în special, pentru culegerea datelor, dar şi pentru afişarea unor informaţii din
baza de date. În construirea formularelor se apelează la o serie de obiecte de control, dintre care amintim:
căsuţă de text, căsuţă cu listă sau combinată, butoane de opţiune sau butoane de comandă.
În literatura de specialitate au fost formulate numeroase principii, care să ghideze specialiştii în
proiectarea unor interfeţe utilizator de calitate. Mai mult, marii producători de software, precum
Microsoft, IBM şi Apple, şi-au definit propriul set de principii şi reguli, pe care le aplică în dezvoltarea
produselor lor. În prezentarea acestor principii, noi am optat pentru gruparea lor în trei reguli de bază:
controlul aplicaţiei de către utilizator, limitarea volumului de informaţii memorate de utilizator şi
uniformitatea interfeţelor.
Prima regulă presupune ca utilizatorul să joace un rol activ, şi nu unul reactiv, în sensul că acesta
trebuie să simtă că el este cel care controlează aplicaţia şi nu invers. El va fi cel care iniţiază operaţiunile,
controlând astfel derularea proceselor realizate cu calculatorul. Câteva dintre principiile utilizate în
aplicarea acestei reguli sunt: utilizarea judicioasă a modurilor de lucru, principiul retroacţiunii imediate,
menţinerea stilului de lucru al utilizatorilor.
Reducerea cantităţii de informaţii pe care trebuie să o memoreze utilizatorul, cea de-a doua regulă
enunţată, vizează utilizarea calculatorului pentru acoperirea limitelor memoriei umane, atât cea pe termen
scurt, cât şi cea pe termen lung. Pentru aceasta, avem la dispoziţie o serie de principii, precum: orientarea
interfeţei pe recunoaştere, prevederea formelor scurte pentru realizarea unor operaţiuni, principiul
relevanţei vizuale etc.
Cea de-a treia regulă, uniformitatea interfeţelor utilizator, presupune aplicarea aceloraşi convenţii de
proiectare a interfeţelor în cadrul sistemului. Uniformitatea vizează modalitatea de prezentare a interfeţei,
comportamentul acesteia şi interacţiunea cu utilizatorul.
Obţinerea unor interfeţe utilizator de calitate implică nu doar aplicarea unor principii de lucru, ci şi
urmărirea unui demers riguros, format din mai multe etape şi activităţi bine definite, şi care să fie orientat
spre utilizator. De aceea, procesul de proiectare a interfeţelor este unul iterativ, care utilizează tehnica
prototipizării. Etapele acestui demers sunt: culegerea şi analiza informaţiilor de la utilizatori,
proiectarea interfeţelor, construirea lor şi evaluarea de către utilizatori. În fapt, activitatea de evaluare
este cea care determină caracterul iterativ a procesului de proiectare al interfeţelor utilizator.
76 PROIECTAREA SISTEMELOR INFORMAŢIONALE
În acest capitol, sunt prezentate şi unele reguli specifice de proiectare a meniurilor şi a interfeţelor
web. Meniul unei aplicaţii trebuie să reflecte structura funcţională a sistemului, dar din punctul de vedere
al utilizatorilor, care poate fi regăsită în diagramele fluxurilor de date. De asemenea, la proiectarea
meniurilor trebuie respectate unele convenţii standard. Tehnologia web presupune unele particularităţi
faţă de interfeţele clasice, motiv pentru care există anumite reguli specifice de proiectare.
O problemă deosebit de importantă în proiectarea interfeţelor utilizator o reprezintă controlul
datelor, în vederea asigurării corectitudinii şi completitudinii lor. Pornind de la principalele tipuri de eori
întâlnite la culegerea datelor, au fost formulate mai multe mecanisme de control, dintre care amintim:
verosimilitatea, tehnica cifrei de control, tipul şi formatul datelor, compararea datelor introduse cu cele
stocate în baza de date.
În finalul capitolului, este prezentat un model de specificaţii de proiectare a interfeţelor şi
dialogurilor, ce conţine, în sinteză, rezultatele activităţilor parcurse.
Întrebări recapitulative
1. Explicaţi importanţa proiectării interfeţelor utilizator în dezvoltarea sistemelor informaţionale.
2. Care este rolul diagramelor fluxurilor de date în proiectarea interfeţelor utilizator?
3. În ce constă diferenţa dintre interfaţa utilizator şi interfaţa sistem?
4. Enumeraţi şi descrieţi pe scurt principalele metode de interacţiune om-calculator.
5. Enumeraţi tipurile de meniu şi explicaţi avantajele şi dezavantajele specifice fiecărui tip în parte.
6. Care este diferenţa dintre butoanele radio şi căsuţele de validare? Dar între căsuţa de tip listă şi
căsuţa combinată?
7. Prezentaţi 8 funcţiuni pe care trebuie să le ofere un formular pentru introducerea datelor.
8. 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?
9. Care sunt avantajele utilizării unui standard în proiectarea interfeţelor utilizator?
10. Prezentaţi 5 reguli de proiectare a interfeţelor utilizator, a căror aplicare ar duce la creşterea
eficacităţii introducerii datelor în formulare.
11. Descrieţi cele mai importante 5 reguli de proiectare a interfeţelor pentru utilizatorii experimentaţi.
12. Descrieţi cele mai importante 5 reguli de proiectare a interfeţelor pentru utilizatorii neexperimentaţi.
13. Care sunt avantajele proiectării unor interfeţe în care utilizatorul să deţină controlul asupra
aplicaţiei? Care sunt dezavantajele?
14. Ce presupune optimizarea interfeţei pentru lucrul cu tastatura?
15. Enumeraţi şi descrieţi principiile de proiectare care duc la reducerea volumului de informaţii pe care
utilizatorul trebuie să le memoreze pe termen lung.
16. În ce constă uniformitatea interfeţei utilizator? Cum poate fi obţinută?
17. Enumeraţi şi descrieţi trei principii de proiectare a interfeţelor care asigură uşurinţa învăţării
acestora.
18. Enumeraţi şi descrieţi trei principii de proiectare a interfeţelor care asigură uşurinţa utilizării
acestora.
19. Explicaţi avantajele unui proces iterativ de proiectare a interfeţelor utilizator.
20. Descrieţi, pe scurt, etapele şi activităţile procesului de proiectare a interfeţelor utilizator.
21. Care sunt factorii de definire a calităţii interfeţelor?
22. Explicaţi de ce obiectivele generale privind calitatea interfeţelor utilizator, uşurinţa învăţării şi
uşurinţa în utilizare, se pot afla în contradicţie.
23. De ce credeţi că este necesară reorganizarea atribuţiilor de serviciu ale utilizatorilor când, prin
dezvoltarea noului sistem informţional, se trece de la unul neintegrat la unul integrat? Ce importanţă
ar avea această reorganizare asupra proiectării interfeţelor utilizator?
24. Descrieţi principiile proiectării orientate spre utilizator a interfeţelor?
25. Care este avantajul utilizării tehnicii cifrei de control?
PROIECTAREA INTERFEŢELOR UTILIZATOR 77
Probleme
1. Daţi câte 3 exemple de interfeţe sistem pentru următoarele sisteme informaţionale: Gestiunea
clienţilor, Urmărirea aprovizionării, Evidenţa cheltuielilor, Evidenţa încasărilor şi plăţilor.
2. Precizaţi ce tipuri de obiecte veţi utiliza la proiectarea unui formular pentru preluarea consumurilor
de materiale, ştiind că trebuie introduse următoarele date: tipul (bon de consum sau fişă limită de
consum), numărul şi data documentului, locul de consum (există 15 departamente, secţii şi ateliere),
codul, denumirea şi preţul materialelor (maxim 7 materiale pe un document), cantitatea solicitată,
cantitatea aprobată şi valoarea consumată, valoarea totală a documentului.
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;
• introducerea judeţului Vslui în loc de Vaslui;
• 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.
CAPITOLUL III
Obiective:
• Definirea locului modelării logice a datelor în ciclul de viaţă al sistemelor
• Identificarea aspectelor calitative ale modelului logic al datelor
• Definirea strategiilor de proiectare logică a bazelor de date
• Descrierea demersului de proiectare logică a bazei de date
• Transformarea diagramei entitate-relaţie într-un set de relaţii normalizate
Î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).
Capitolul de faţă este î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ă.
21. Simsion, G.C. – Data Modeling Essentials. Analysis, Design, and Innovation, Second Edition, The Coriolis
Group, 2001, Scottsdale, Arizona, pp. 11-15.
PROIECTAREA LOGICĂ A BAZELOR DE DATE: MODELAREA LOGICĂ A DATELOR 79
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 selecţia Modelul general al datelor la nivel de întreprindere (DER doar cu entităţi).
proiectelor
Iniţierea şi planificarea Modelul conceptual al datelor. Prezentarea DER cu entităţile specifice unor
proiectului proiecte.
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.
22. Adaptare după Teorey, T.J. – Database Modeling & Design, Morgan Kaufmann Publishers, Inc, 1999, San
Francisco, p. 46.
PROIECTAREA LOGICĂ A BAZELOR DE DATE: MODELAREA LOGICĂ A DATELOR 81
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.
NUME
Onorare
Comanda
Cmd_nr
(1,M) Cmd_data
Fact_nr [FK] NULL
Comanda
Cmd_nr
Cmd_data
Observaţi că pentru cheia străină (atributul Fact_nr din tabela COMANDA) se admite
valoarea nulă, dat fiind cardinalitatea minimă 0 din dreptul entităţii FACTURĂ, care este
părinte (participarea entităţii părinte este facultativă). Deşi în realitate pot exista situaţii de
tipul prezentat anterior, trebuie să spunem că ele trebuie evitate, deoarece admiterea valorii
nule pentru cheia străină poate crea dificultăţi în menţinerea integrităţii datelor din bază.
Relaţiile (tabelele) rezultate sunt prezentate în partea dreaptă a figurii 3.3. O altă formă de
prezentare o redăm mai jos (cheia primară este subliniată cu o linie continuă, iar cheia străină
cu o linie întreruptă):
FACTURA(Fact_nr, Fact_data)
COM ANDA(Cmd_nr, Cmd_data, Fact_nr)
Î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)
FACTURA(FACT_NR, FACT_DATA, FACT_ID)
O legătură binară de tip 1:1, dintre două entităţi A şi B, poate fi reprezentată în una din
următoarele modalităţi:
1. Adăugarea cheii-primare a entităţii A la entitatea B sub formă de cheie-străină.
2. Adăugarea cheii-primare a entităţii B la entitatea A, sub formă de cheie-străină.
3. Ambele cazuri (1 şi 2), dacă cerinţele de acces la date o cer.
4. Unirea celor două entităţi într-o singură tabelă, care va conţine atributele ambelor entităţi şi
a cărei cheie principală va fi aleasă dintre cheile celor două entităţi.
Furnizor
Furn_id
Furnizor
Furn_nume 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
(1,1) Angajat
Ang_id
Angajat Ang_nume
Ang_id Ang_saltf
Ang_nume
Ang_saltf
(0,M)
Factura Factura
Fact_nr Fact_nr
Fact_data Fact_data
Data Nota
Student Profesor
Examinare
Nr_matricol Cod_profesor
(0,M) (0,M
Nume_student Nume_prof
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)
Profesor
Prof_id
Prof_nume
1
Profesor
Prof_id
Prof_nume
Conduce
ARTICOL
ARTICOL
Un articol poate conţine mai Cod_articol
Cod_articol
multe articole, iar un articol Denumire
(0,M ) poate intra în fabricaţia mai
Denumire Cost
Cost multor alte articole.
(0,M )
Contine
ARTICOL_COMPONENT
Cod_articol
Cod_componenta [FK]
Cantitate Cantitate
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)
COMANDA, LIVRARE, RETURNARE, DEPOZIT şi PRODUS. Cele şase tabele au preluat cheile
primare şi atributele non-cheie ale entităţilor corespondente.
Tabel nr. 3.2 – Transformarea relaţională a structurilor entitate-relaţie
Structura
Reprezentarea relaţională
entitate-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ă Plasarea cheii-primare a oricărei entităţi în relaţia creată din cealaltă entitate
sau unară 1:1 sau efectuarea acestui lucru pentru ambele entităţi.
Legătura binară Se plasează cheia-primară a entităţii aflate lângă partea „unu” a legăturii ca o
1:M 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 ale
gerundivele binare entităţilor înrudite, plus orice atribute non-cheie ale legăturii sau gerundivei.
sau unare M:N
Legăturile sau Crearea unei relaţii cu o cheie primară compusă, folosind cheile primare ale
gerundivele binare entităţilor înrudite şi atribute suplimentare folosite drept cheie primară asociate
sau unare M:N cu legăturii sau gerundivei, plus orice alte atribute non-cheie ale legăturii sau
chei suplimentare gerundivei.
Legăturile sau Creare unei relaţii cu cheia primară asociată legăturii sau gerundivei, plus orice
gerundivele binare alte atribute non-cheie ale legăturii sau gerundivei, iar cheile primare ale
sau unare M:N cu entităţilor înrudite sunt folosite tot ca atribute non-cheie.
chei proprii
Legătura IS-A Crearea unei relaţii pentru clasa superioară care să conţină propria cheie
(clasă – 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 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.
Fig. C3.2 Schema logică a bazei de date pentru sistemul de gestiune a clienţilor
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.
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 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.
PROIECTAREA LOGICĂ A BAZELOR DE DATE: MODELAREA LOGICĂ A DATELOR 91
Rezumat
Modelarea logică a datelor reprezintă o activitate deosebit de importantă, dacă avem în vedere că
baza de date reprezintă nucleul oricărui sistem informaţional economic. Spre deosebire de modelul
conceptual al datelor, modelarea logică ia în considerare tehnologiile de organizare şi prelucrare a
datelor, precum şi criteriile de calitate specifice, precum completitudine, neredundanţă, reutilizare,
flexibilitate.
Obiectivul principal al acestei activităţi îl reprezintă elaborarea schemei logice a bazei de date, cu
care vor interacţiona proiectanţii şi programatorii în conceperea şi implementarea programelor. În
prezent, cel mai utilizat mod de organizare a datelor este modelul relaţional, motiv pentru care conceptele
şi regulile acestuia au fost avute în vedere la modelarea logică a datelor. Astfel, dacă, la modelarea
conceptuală a datelor, cerinţele funcţionale se regăseau sub forma unui ansamblu de entităţi de date şi
legături între entităţi, modelul logic al datelor este format din relaţii şi legături între relaţii.
Proiectarea logică a bazei de date implică transformarea modelului conceptual al datelor, transpus
sub forma unei diagrame entitate-relaţie, prin aplicarea unor reguli ce iau în considerare entităţile de date,
cardinalitatea şi ordinul legăturilor dintre entităţi. Această manieră de proiectare mai este referită şi ca
strategia top-down. O altă strategie, numită bottom-up, presupune aplicarea procedurii de normalizare,
pornind de la relaţia generală iniţială, în care se cuprind toate datele elementare care corespund punctului
de vedere al unui utilizator sau categorii de utilizatori asupra bazei de date şi care trebuie stocate.
Fiecare din cele două strategii prezintă avantaje şi dezavantaje: strategia top-down este considerată
mai simplă, deoarece utilizează conceptul de abstractizare, ceea ce permite reducerea numărului de
obiecte şi legături ce trebuie analizate; strategia bottom-up este mai analitică, deoarece ea porneşte de la
datele elementare, regăsite în documente primare, rapoarte şi ecrane, ceea ce permite reducerea riscului
de a scăpa din vedere unele dintre ele.
Obţinerea unei scheme logice de calitate poate solicita punerea în practică a unui demers mai
riguros de proiectare logică a bazei de date, care să îmbine cele două strategii: se vor aplica, pe rând,
ambele strategii de proiectare, iar la sfârşit se vor compara şi integra rezultatele obţinute.
Întrebări recapitulative
1. Explicaţi deosebirea dintre modelul conceptual şi modelul logic al datelor.
2. Descrieţi criteriile de calitate ale modelului logic al datelor.
3. Realizaţi o comparaţie între cele două strategii de proiectare logică a bazei de date (bottom-up şi top-
down).
4. Prezentaţi, într-o formă sintetică şi structurată, regulile de transformare a DER într-un set de relaţii.
5. În ce situaţii o legătură dintre două entităţi poate avea propriile atribute?
6. Explicaţi următoarele noţiuni, în legătură cu transformarea DER într-un set de relaţii: entitate slabă,
entitate atributivă, entitate asociativă, cheie străină recursivă. Daţi exemple prin care să puneţi în
evidenţă fiecare din noţiunile enumerate anterior.
Probleme
1. Daţi un exemplu prin care să puneţi în evidenţă transformarea unei legături binare M:N.
2. Daţi un exemplu prin care să puneţi în evidenţă transformarea unei legături ternare, indiferent de
cardinalitatea acesteia.
CAPITOLUL IV
Obiective
• Înţelegerea scopului şi obiectivelor urmărite la proiectarea fizică a bazelor de date
• Descrierea mecanismului tranzacţional al bazei de date
• Identificarea şi analiza informaţiilor necesare în proiectarea fizică a fişierelor şi bazelor de date
Din punct de vedere fizic, există două tipuri de operaţiuni de accesare a datelor: scrierea
şi citirea. Din punct de vedere logic, adică din perspectiva utilizatorilor, operaţiunea fizică de
citire apare sub forma interogărilor bazei de date, exprimate cel mai adesea sub forma frazelor
SQL SELECT. Operaţiunea fizică de scriere are în corespondenţă trei operaţiuni logice:
adăugarea, modificarea şi ştergerea liniilor (înregistrărilor) în tabele. Operaţiunile de
actualizare mai sunt referite şi ca tranzacţii ale bazei de date, ele trebuind tratate cu foarte
94 PROIECTAREA SISTEMELOR INFORMAŢIONALE
multă atenţie, deoarece au impact direct asupra integrităţii datelor din bază. Vom reveni asupra
acestei probleme în paragraful următor.
Unul dintre obiectivele principale ale proiectării fizice a bazelor de date priveşte
îmbunătăţirea performanţelor operaţiilor de acces la date. Aceste performanţe sunt apreciate
prin intermediul unor indicatori, cei mai frecvent utilizaţi fiind numărul operaţiilor executate
într-o unitate de timp şi timpul de răspuns pentru realizarea unei singure operaţii de acces.
Obţinerea performanţelor dorite nu este o sarcină tocmai uşoară. Dificultatea ei este
sporită de faptul că, din punctul de vedere al performanţelor, operaţiile de citire şi scriere se
află în tabere opuse. În general, obţinerea de performanţe la interogarea datelor va însemna
contra-performanţe în cazul operaţiilor de actualizare. De exemplu, introducerea indecşilor va
determina creşterea performanţelor la citire şi, în acelaşi timp, diminuarea lor pentru operaţiile
de scriere.
În continuare, ne vom opri, mai întâi, asupra problematicii gestiunii tranzacţiilor, după
care vom identifica principalele categorii de informaţii utile în luarea deciziilor de proiectare
fizică.
4.2.1 Mecanismul tranzacţional al bazei de date
Pentru descrierea operaţiilor de actualizare a bazei de date se foloseşte noţiunea de
tranzacţie. Prin tranzacţie se înţelege un ansamblu de operaţiuni executate împreună asupra
bazei de date în vederea realizării unei activităţi, ea fiind tratată ca o unitate logică de
prelucrare care garantează consistenţa bazei de date. O tranzacţie poate fi încheiată în două
moduri: validarea ei, când toate operaţiunile au putut fi executate, sau anularea ei, dacă cel
puţin una dintre operaţiunile care o compun nu poate fi executată, caz în care toate operaţiunile
vor fi anulate.
Regulile şi procedurile de tratare a tranzacţiilor bazei de date formează mecanismul
tranzacţional. Rolul său este de a garanta menţinerea bazei de date în stare de consistenţă
atunci când o tranzacţie este executată în mod concurent cu altele sau că au apărut
disfuncţionalităţi în timpul execuţiei ei. Prin urmare, mecanismul tranzacţional trebuie să
rezolve următoarele două probleme:
1 Controlul concurenţei, adică sincronizarea acceselor astfel încât să fie menţinută
integritatea bazei de date. De regulă, această problemă este rezolvată prin intermediul
mecanismelor de blocare.
2 Rezistenţa la defecte se referă la asigurarea toleranţei sistemului faţă de apariţia unor
defecte şi a capacităţii acestuia de recuperare, adică revenirea la o stare consistentă în
urma apariţiei unui defect care a determinat rămânerea bazei de date într-o stare de
inconsistenţă.
O bază de date este într-o stare consistentă dacă datele respectă toate restricţiile de
integritate definite asupra lor: restricţii privind cheia, restricţii de integritate referenţială,
restricţii specifice afacerii.
Iată două exemple de tranzacţii pentru baza de date VANZARI. O tranzacţie simplă este
adăugarea unui nou client: ea implică inserarea unei linii în tabela CLIENT. O tranzacţie mai
complexă este adăugarea unei vânzări, formată din următoarele operaţii, a cărei descriere este
prezentată şi în tabelul 4.1:
• inserarea unei linii în tabela FACTURA;
• inserarea a câte o linie în tabela ARTICOLFACTURA, pentru fiecare produs vândut;
• actualizarea, în tabela CLIENT, a atributului Sold pentru clientul către care se face
vânzarea;
• actualizarea, în tabela PRODUS, a atributului Stoc pentru liniile corespunzătoare
produselor vândute.
PROIECTAREA FIZICĂ A FIŞIERELOR ŞI A BAZELOR DE DATE 95
actualizare a sa, din nou tranzacţia nu îndeplineşte condiţia de consistenţă, atât timp cât este
afectată integritatea datelor din bază.
Rezolvarea celorlalte trei proprietăţi cade în sarcina SGBD-urilor. Atomicitatea este
rezolvată prin mecanismele de blocare şi cele de înseriere, iar durabilitatea, prin facilităţile de
jurnalizare a tranzacţiilor. În cazul sistemelor distribuite, apare problema asigurării atomicităţii
globale a tranzacţiilor distribuite, scop în care unele SGBD-uri au implementat mecanismul de
validare în două faze (two phase commit).
4.2.2 Analiza informaţiilor privind operaţiile de acces la date
O bună proiectare fizică a bazei de date impune analiza interogărilor şi a tranzacţiilor în
baza de date. O primă analiză a lor a fost realizată în etapa proiectării logice a bazei de date,
atunci când s-a verificat completitudinea schemei logice.
Analiza tuturor operaţiunilor de accesare a bazei de date este practic imposibilă, de aceea
vor fi investigate doar cele mai importante, din punctul de vedere al frecvenţei invocării lor. În
general, se poate aplica regula lui Fibonacci (80/20), adaptată domeniului informatic de către
Wiederhold23. Conform acesteia, 80% din totalul operaţiunilor de acces al datelor sunt invocate
numai de 20% din interogările utilizatorilor. Aşadar, analiza operaţiunilor de acces poate
începe cu identificarea celor mai reprezentative 20% dintre ele, din punctul de vedere al
frecvenţei.
În vederea luării deciziilor de proiectare fizică a bazei de date, sunt necesare următoarele
categorii de informaţii24:
A. Descrierea interogărilor şi tranzacţiilor bazei de date
Scopul descrierii interogărilor şi tranzacţiilor în baza de date constă în determinarea
tabelelor şi atributelor accesate cel mai frecvent. Fişierele accesate mai frecvent trebuie
analizate mai în detaliu pentru a se determina structurile de stocare şi căile de accesare cele
mai potrivite.
În acest context, sunt utile matricile CRUD, utilizate şi descrise de noi în faza de analiză.
Matricea CRUD arată tranzacţiile din sistem şi tabelele pe care le accesează, aşa cum este ea
construită în timpul analizei. Dacă în celulele matricei se va introduce şi frecvenţa de apariţie a
fiecărei operaţii de acces, sub forma numărului de accese pe unitatea de timp (oră, zi,
săptămână, lună etc), atunci ea va evidenţia şi tabelele pentru care se înregistrează un număr
mai mare de accese. Aceste tabele vor fi analizate mai atent din perspectiva performanţelor,
pentru a se lua deciziile optime de proiectare fizică. Informaţiile furnizate de matricea CRUD
pot fi completate cu cele privind descrierea interogărilor şi tranzacţiilor, obţinându-se o
imagine mai completă prin determinarea atributelor accesate mai frecvent.
Pentru fiecare interogare se vor specifica următoarele elemente:
1. fişierele (tabelele) accesate, incluse în clauza FROM;
2. atributele ale căror valori vor fi returnate ca rezultat al interogării, respectiv cele
specificate în clauza SELECT. Atributele derivate (calculate pe baza altor atribute din
tabele) sunt candidate pentru stocare în fişiere;
3. atributele incluse în condiţiile (predicatele) de selecţie a înregistrărilor din tabele ce
vor fi reţinute în rezultatul interogării (în clauza WHERE). Pentru aceste atribute se va
analiza oportunitatea prevederii unor structuri de acces (precum indecşii);
4. atributele incluse în condiţiile de joncţiune a tabelelor, ele fiind, de asemenea,
candidate pentru crearea structurilor de acces.
Pentru fiecare tranzacţie se vor specifica următoarele elemente:
23. Connoly, T.M., Begg, C.E. – Database Systems. A Practical Approach to Design, Implementation, and
Management, Third Edition, Addison-Wesley, Harlow, 2002.
24. Elmasri, R., Navathe, S.B. – Fundamentals of Database Systems, Third Edition, Addison Wesley, Reading,
Massachusetts, 2000.
PROIECTAREA FIZICĂ A FIŞIERELOR ŞI A BAZELOR DE DATE 97
Rezumat
Proiectarea fizică a bazei de date are drept scop transformarea schemei logice într-un set de
specificaţii tehnice care privesc stocarea şi accesarea datelor. Obiectivele principale urmărite constau în:
transpunerea schemei logice a datelor într-un model care să poată fi implementat în SGBD-ul ales,
obţinerea performanţelor dorite prin structura de stocare aleasă şi definirea măsurilor de securitate
privind accesul la date.
Atingerea obiectivelor enumerate anterior presupune parcurgerea unui demers, a cărui primă
activitate constă în alegerea SGBD-ului în care va fi implementată baza de date. Urmează transpunerea
schemei logice a bazei de date, în sensul alegerii tipurilor de date pentru fiecare atribut, a modurilor de
implementare a câmpurilor calculate şi a restricţiilor de integritate.
Întrebări recapitulative
1. Realizaţi o comparaţie între proiectarea logică şi cea fizică a bazei de date din perspectiva scopului şi
obiectivelor urmărite.
2. Definiţi noţiunea de tranzacţie din perspectiva bazei de date.
3. Care este rolul mecanismului tranzacţional al bazei de date ?
98 PROIECTAREA SISTEMELOR INFORMAŢIONALE
Probleme
1. Pornind de la schema logică a bazei de date pentru sistemul de gestiune a clienţilor, prezentată în
figura C3.1, să se descrie tranzacţiile şi interogările enumerate mai jos. Pentru tranzacţii se va utiliza
modelul din tabelul 4.1., iar pentru interogări se va crea un tabel care să conţină coloanele: nume
tabelă accesată, atribute solicitate, atribute derivate(se va specifica şi formula de calcul), atribute
incluse în joncţiuni.
a) T1 - Adăugare vânzare;
b) T2 - Adăugare returnare produse;
c) T3 - Anulare vânzare;
d) T4 - Adăugare client;
e) T5 - Modificare date comandă;
f) I1 – Lista stocurilor şi soldurilor pe depozite (soldul se calculează ca produs între stocul şi preţul
produsului);
g) I2 – Situaţia comenzilor neonorate cu termenul de livrare depăşit;
h) I3 – Afişarea conţinutului unei facturi
i) I4 – Situaţia vânzărilor din ultimele trei luni pentru un anumit client (se va calcula valoarea
fiecărei facturi)
j) I5 – Situaţia agregată a vânzărilor din anul anterior pe fiecare produs şi fiecare lună
calendaristică.
k) I6 – Situaţia agregată a returnărilor din anul anterior pe fiecare client şi fiecare lună
calendaristică.
CAPITOLUL V
Obiective:
• Prezentarea principalelor concepte utilizate în proiectarea programelor
• Definirea arhitecturii programelor
• Descrierea principiilor de proiectare a programelor
• Descrierea organizării ierarhice a programelor
• Evaluarea obiectivelor proiectelor software prin intermediul cuplării şi coeziunii
• Formularea unor recomandări pentru rafinarea arhitecturii programelor
Până în această fază ne-am ocupat, mai întâi, de proiectarea interfeţelor sistemului, care
apar sub forma formularelor/formatelor sau rapoartelor, a ecranelor sau secvenţelor de dialog.
Apoi, ne-am ocupat de proiectarea bazei de date, urmărind transpunerea cerinţelor din modelul
conceptual al datelor în schema logică (modelul relaţional) şi, mai departe, în schema fizică de
stocare a datelor. Proiectarea intrărilor, ieşirilor şi a stocării datelor fiind rezolvată, nu ne
rămâne decât să ne aplecăm asupra cerinţelor privind prelucrările din sistem, în scopul
transpunerii lor în programe.
Prin problematica prezentată în capitolul de faţă intrăm în domeniul de activitate al
proiectanţilor de soft şi al programatorilor. Proiectantul de soft are ca principală misiune
definirea şi structurarea componentelor care vor forma un tot unitar, astfel încât prin acestea să
se obţină un proiect soft operaţional. După proiectanţii de soft vor interveni programatorii,
pentru transpunerea în realitate a proiectului. Ei vor controla intrările, prelucrările, stocările şi
ieşirile din sistem prin intermediul programelor.
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.
În acest capitol ne vom concentra atenţia asupra proiectării arhitecturale a programelor,
cadru în care vom pune în discuţie organizarea modulelor de program, instrumentele şi
tehnicile de reprezentare a arhitecturii programelor, căile de obţinere a ei şi criteriile cantitative
şi calitative de evaluare a structurii programelor.
25. Presmann, R.S. – Software Engineering. A practitioner’s Approach, McGraw Hill Publishing Company,
London, 2000, p. 359.
102 PROIECTAREA SISTEMELOR INFORMAŢIONALE
S1
S2
Sn
Selecţia (structura de tip IF-THEN-ELSE) sau structura alternativă are următoarea formă
de reprezentare (fig. 5.2):
Nu Da
C
Bloc-2 Bloc-1
Nu Da
C
Bloc-1
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
5.5, iar structura repetitivă condiţionată posterior (de tip DO UNTIL) are forma redată în
figura 5.6.
Bloc-1
C
Da
Nu
Bloc-1
C
Da
Nu
V:=Vi
Bloc-1
V:=Vi+R
V>Vf Nu
Da
P Nivelul 1
P apelea za
nod
a b c
Nivelul 2
arc
adâncimea d e k l m Nivelul 3
f g h n o p q Nivelul 4
r este
r apelat
i j Nivel 5
lungimea
presupun cunoaşterea detaliilor interne ale modulelor. Cele mai simple mărimi, puse în
evidenţă în figura 5.8, sunt:
• Dimensiunea, calculată ca numărul de noduri din structură, numărul arcelor sau ca
suma acestora. Structura ierarhică a programelor poate fi văzută ca un graf, în care
modulele reprezintă nodurile grafului, iar arcele corespund legăturilor dintre module.
• Adâncimea (depth) indică numărul nivelurilor ierarhice din structură, luându-se în
calcul calea cea mai lungă de la rădăcină până la un nod frunză. Pentru structura din
figura 5.8, acest indicator are valoarea cinci.
• Lăţimea (width) reprezintă numărul nodurilor de pe nivelul ierarhic cu cele mai multe
noduri. Pe nivelul patru al arhitecturii din figura 5.8 se găsesc cele mai multe module,
respectiv şapte.
• Numărul modulelor apelate (fan-out) este calculat, pentru fiecare modul, ca numărul
modulelor apelate în mod direct de către modulul respectiv. Pentru modulul m acest
indicator are valoarea patru.
• Numărul modulelor apelante (fan-in), calculat, de asemenea, pentru fiecare modul şi
reprezintă numărul modulelor care apelează în mod direct modulul respectiv. De
exemplu, modulul i este apelat de trei module, respectiv f, g şi h.
Aceste mărimi elementare stau la baza calculării unor indicatori, care permit o evaluare
mai completă a structurii programelor. De exemplu, raportul dintre numărul arcelor şi numărul
nodurilor măsoară nivelul conectivităţii arhitecturii şi oferă o imagine generală asupra gradului
de cuplare a modulelor.
Numeroşi specialişti au propus chiar seturi de indicatori pe baza cărora să se analizeze
arhitectura programelor26. Card şi Glass au definit trei indicatori pentru aprecierea
complexităţii arhitecturale:
• Complexitatea structurală a unui modul, calculată după formula:
S(i) = A2(i),
în care A reprezintă numărul modulelor apelate de către modulul i.
• Complexitatea datelor se referă la complexitatea interfeţelor unui modul, fiind
calculată după formula:
D(i) = v(i) / [A(i) + 1],
în care v(i) reprezintă numărul variabilelor care intră/ies în/din modulul i.
• Complexitatea sistemului este definită ca suma celor două mărimi definite anterior,
respectiv C(i) = S(i) + D(i). Pe măsură ce aceste mărimi cresc, va creşte şi
complexitatea sistemului, deci şi probabilitatea ca efortul de programare, testare şi
întreţinere să crească.
5.3.1 Cuplarea
Scopul cuplării este de reducere a interdependenţelor dintre module. Operaţiunea de
asigurare a independenţei modulelor nu este uşor de realizat, întrucât performanţa constă într-
un grad cât mai redus al cuplărilor. Cu cât gradul de cuplare este mai mare, cu atât este mai
mare probabilitatea propagării erorilor de la un modul la altul.
Page & Jones27 tratează cinci tipuri de cuplare (la nivel de date elementare – data
coupling, la nivel de date grupate – stamp coupling, la nivelul informaţiilor de control –
control coupling, la nivelul datelor comune – common coupling, la nivel de conţinut – content
coupling). Powers, Cheney şi Crow tratează doar primele patru tipuri.
Cuplarea prin date elementare (data coupling) trebuie să constituie obiectivul proiectului.
Modulele sunt total independente unele de altele, deoarece ele îşi transmit doar datele
elementare necesare pentru ca fiecare să-şi realizeze funcţia pentru care au fost proiectate.
Altfel spus, nici un modul nu va fi interesat de detaliile procedurale interne ale modulelor cu
care interacţionează.
Un exemplu este redat în fig. 5.9. Nici unul dintre cele două module nu este interesat de
detaliile interne de prelucrare ale celuilalt. Modulul INREGISTRARE_LIVRARE nu este
interesat de prelucrările la care vor fi supuse codul clientului şi valoarea facturii în modulul
CALCUL_DISCOUNT, ci doar de rezultatul prelucrărilor, respectiv valoarea discountului.
Inregistrare_livrare
vCodClient
vValDiscount
vValFactura
Calcul_discount
Cuplarea prin date grupate (stamp coupling) presupune transferarea datelor grupate sub
formă de structuri de date sau chiar înregistrări întregi. O astfel de cuplare nu mai este la fel de
27. Page, J., Hooper, P. – Accounting and Information Systems, Fourth Edition, Prentice Hall, Englewood Cliffs,
New Jersey, 1992.
108 PROIECTAREA SISTEMELOR INFORMAŢIONALE
bună ca şi cea prin date elementare, întrucât complică sistemul. O simplă schimbare a unei
structuri de date dintr-un anumit modul va afecta, în lanţ, toate modulele cu care vine în
legătură, chiar şi atunci când acestea nu apelează la partea modificată. Se constată, astfel,
creşterea dependenţei modulelor de alte module, deoarece cuplarea prin date grupate oferă mai
multe date decât ar fi necesare. Ea nu ar fi criticabilă dacă toate datele elementare din structură
ar fi valorificate de către modulele care le preiau, conform fig. 5.10.
Inregistrare_livrare
Calcul_discount
Inregistrare_livrare
Calcul_discount
Cele trei tipuri de cuplare prezentate până acum sunt frecvent întâlnite în practică. Mai rar
întâlnite sunt ultimele două tipuri de cuplare.
Inregistrare_comanda
vCodClient
bStareClient
vValComanda
Validare_client
5.3.2 Coeziunea
Măsura în care toate instrucţiunile unui modul se referă la una şi aceeaşi funcţie se
numeşte coeziune. În timp ce cuplarea se referă la conexiunile externe dintre module,
coeziunea se preocupă de legăturile dintre elementele interne modulelor, ea fiind o măsură
internă a calităţii proiectului. Se spune că idealul ar consta într-o coeziune maximă, adică un
modul să realizeze o singură funcţie (sarcină).
Cercetătorii au sesizat şapte niveluri ale coeziunii. În ordinea valorii lor, de la cea mai
bună la cea mai slabă, aceste niveluri sunt: funcţională, secvenţială, comunicaţională,
procedurală, temporală, logică şi coincidentală. Scala valorilor coeziunii este neliniară, în
sensul că tipurile de coeziune cele mai slabe sunt mult mai „rele” decât tipurile de coeziune
medii care sunt „destul de bune” în comparaţie cu tipurile de coeziune cele mai bune.
Coeziunea funcţională
Un modul cu coeziune funcţională este cel mai dorit întrucât instrucţiunile lui au ca
obiectiv realizarea unei funcţii sau activităţi. Comportamentul acestor module este tipic cutiei
negre, în sensul că pentru folosirea lor trebuie cunoscute doar intrările şi ieşirile modulului,
fără să intereseze prelucrările lui interne.
O modalitate deosebită de testare a coeziunii funcţionale a unui modul o constituie
atribuirea numelui de modul. Dacă modulul poate fi descris ca realizând o singură funcţie
asupra unei singure structuri de date, atunci funcţionalitatea lui este asigurată. Astfel de
exemple sunt: CALCUL_DOBÂNDĂ, ACTUALIZARE_STOC, CALCUL_IMPOZIT_SALARIU,. La
numirea modulelor vor fi evitate elementele de legătură („şi”, „_”), ceea ce poate sugera că
modulul respectiv realizează mai mult decât o singură funcţie şi ar putea fi necesară
descompunerea acestuia.
Această caracteristică este valabilă pentru modulele aflate pe nivelurile inferioare ale
structurii ierarhice a programului, dar nu şi pentru modulele situate pe nivelurile superioare,
care au ca rol controlul execuţiei programului, în primul rând, şi nu realizarea unor sarcini
elementare. De exemplu, modulul CALCUL_SPORURI_REŢINERI_SALARII este un modul de
control a cărui funcţie constă în apelarea modulelor subordonate ierarhic într-o anumită
110 PROIECTAREA SISTEMELOR INFORMAŢIONALE
succesiune în vederea calculării salariului net, fiecare modul subordonat realizând calculul
unui anumit tip de spor sau reţinere. Prin urmare, se poate spune că modulul de control
CALCUL_SPORURI_REŢINERI_SALARII este coeziv funcţional.
Coeziunea secvenţială
Un modul este caracterizat de coeziune secvenţială atunci când realizează funcţii multiple
de prelucrare asupra aceloraşi structuri de date. Ordinea în care sunt apelate funcţiile este
foarte importantă. Rezultatele obţinute prin execuţia unei operaţiuni (funcţii) devin intrări
pentru următoarele. Aşadar, prima funcţie (operaţiune) va prelucra structura de date primită,
după care rezultatul transformării va constitui intrare pentru a doua funcţie, iar la rândul ei
ieşirea celei de-a doua funcţie va constitui intrarea pentru cea de-a treia funcţie ş.a.m.d.
Rezultatul obţinut prin aplicarea ultimei funcţii va reprezenta ieşirea modulului respectiv.
Un exemplu general de coeziune secvenţială este regăsit la modulele care citesc datele
dintr-un fişier, le prelucrează şi apoi le afişează/tipăreşte într-o anumită formă.
Multiplele funcţii pe care le realizează un modul caracterizat de coeziune secvenţială fac
dificilă întreţinerea acestuia. Însă, dezavantajul cel mai important este legat de limitarea
reutilizării unei funcţii interne a acestui modul de către celelalte module din sistem. Acceptarea
acestui tip de coeziune poate fi justificată de reducerea complexităţii interfeţelor dintre
modulele ce s-ar obţine prin descompunerea modulului, respectiv evitarea abuzului în
utilizarea de variabile globale. Oricum, eventualele probleme cauzate de coeziunea secvenţială
pot fi înlăturate prin descompunerea modulului respectiv în două sau mai multe module
subordonate ierarhic.
Coeziunea comunicaţională
Într-un modul caracterizat de coeziune comunicaţională, multiplele funcţii pe care le
realizează sunt legate între ele tot prin datele pe care modulul le utilizează, însă, spre deosebire
de coeziunea secvenţială, succesiunea funcţiilor nu este importantă.
De exemplu, un modul proiectat pentru înregistrarea unei facturi, va realiza următoarele
funcţii: inserarea facturii în baza de date, actualizarea soldului clientului, actualizarea stocului
pentru produsele vândute şi generarea notei contabile. El este caracterizat de o coeziune
comunicaţională, deoarece cele patru funcţii prelucrează aceleaşi date, dar ordinea de realizare
nu este importantă.
Coeziunea procedurală
Un modul prezintă coeziune procedurală atunci când conţine elemente grupate pe baza
fluxurilor de control din cadrul programului, adică funcţii independente, reunite doar pentru a
asigura transferul controlului de la o funcţie internă la alta, dar a căror secvenţă este
importantă.
Un exemplu de coeziune procedurală este cel al unui program de actualizare a
înregistrărilor, în cadrul căruia se realizează adăugarea, ştergerea sau modificarea unei
înregistrări. Astfel, în funcţie de codul operaţiunii care urmează să fie executată, programul
transmite controlul uneia din cele trei funcţii de prelucrare.
Coeziunea temporală
Modulele caracterizate de coeziune temporală grupează mai multe funcţii între care nu
există altă legătură decât cea legată de factorul timp, în sensul că toate trebuie executate la un
moment dat în execuţia programului, fără ca secvenţa de execuţie a lor să prezinte importanţă.
Cele mai cunoscute exemple sunt modulele de iniţializare şi cele de finalizare a programelor.
La lansarea unui program, un modul poate fi conceput pentru a realiza iniţializarea variabilelor
de memorie, conectarea la baza de date, deschiderea tabelelor necesare, configurarea mediului
de lucru etc.
PROIECTAREA PROCEDURILOR ŞI A PROGRAMELOR 111
Coeziunea logică
În acest tip de coeziune legăturile dintre instrucţiunile unui modul sunt foarte slabe.
Funcţiile unui astfel de modul sunt grupate împreună pe considerentul includerii lor într-o
categorie generală, urmărindu-se evitarea redundanţei în scrierea codului. Modulele cu
coeziune logică implică un grad mare de cuplare, ordinea de execuţie a instrucţiunilor dintr-un
astfel de modul fiind dictată din afară, prin intermediul unei informaţii de control.
Fişierele DLL din mediul WINDOWS sunt, în cele mai multe cazuri, proiectate să fie
logic coezive. De exemplu, fişierul COMMDLG.DLL conţine instrucţiunile pentru
configurarea căsuţelor de dialog activate la utilizarea opţiunilor File Open, File Save, Search şi
Print. Avantajul unei astfel de abordări constă în oferirea unei interfeţe unice pentru întreaga
aplicaţie şi scrierea de cod mai puţin. Numai că, dacă proiectanţii unei aplicaţii în mediul
WINDOWS doresc să nu se limiteze la facilităţile oferite de COMMDLG.DLL, vor trebui să
scrie propriul cod pentru a adăuga noi facilităţi. Ori, acest lucru este imposibil de realizat fără a
dezmembra o bună parte a logicii programului.
Coeziunea coincidentală
Este tipul de coeziune cel mai nedorit. Ea se manifestă atunci când între elementele unui
modul există puţine legături sau chiar nici o legătură. Toate funcţiile pe care le realizează
modulul au fost grupate cu totul întâmplător, ca urmare a neatenţiei proiectantului sau din
dorinţa acestuia de a economisi timp cu activităţile de proiectare şi programare. În mod normal,
modulele cu coeziune coincidentală sunt foarte rar întâlnite (sau cel puţin ar trebui).
Page-Jones a dezvoltat o diagramă foarte utilă pentru înţelegerea tipurilor de coeziune, el
ordonându-le într-un arbore decizional, redat în figura 5.13.
Da Funcţional?
Se poate considera că
modulul realizează o
Secvenţa Da Secvenţial?
singură funcţie? Datele prezintă
importanţă? Nu Comunicaţional?
Nu
28. van Vliet, H. – Software Engineering. Principles and Practice, John Wiley & Sons, Ltd., Chichester, 2000.
29. Presmann, R.S. – Software Engineering. A practitioner’s Approach, McGraw Hill Publishing Company,
London, 2000, p. 348-350.
PROIECTAREA PROCEDURILOR ŞI A PROGRAMELOR 113
Rezumat
La baza oricărui program stau noţiunile de instrucţiune (declarativă) şi modul. Instrucţiunile
constituie cel mai de jos nivel al operaţiunilor ce pot fi executate într-un limbaj de programare, ele fiind
astfel grupate încât să constituie anumite structuri executabile de calculator. Modulul este o colecţie sau o
formă grupată de instrucţiuni de programe sursă. Modulele se pot grupa pentru a forma programele.
În proiectarea programelor pot fi distinse două mari activităţi: proiectarea arhitecturii programelor
şi proiectarea logicii modulelor. Arhitectura unui program defineşte componentele acestuia, proprietăţile
lor vizibile din exterior, precum şi relaţiile dintre componente. Prin componentă facem referire la
modulele de program, iar proprietăţile lor vizibile din exterior sunt funcţia şi interfeţele. Relaţiile dintre
module asigură transmiterea controlului execuţiei şi transferul structurilor de date.
Rafinarea arhitecturii, presupune aplicarea unor concepte şi reguli practice de proiectare care
privesc îmbunătăţirea calităţii programului. Calitatea programelor este apreciată prin prisma uşurinţei
implementării, testării, întreţinerii şi modificării lor şi are la bază conceptul de independenţă funcţională.
Conform acestuia, fiecare modul de program să fie proiectat să realizeze o singură funcţie, bine definită, a
programului.
Independenţa funcţională este măsurată prin intermediul a doi indicatori calitativi: coeziunea şi
cuplarea. Coeziunea este măsura legăturilor interne dintre componentele de prelucrare sau instrucţiunile
unui modul, iar cuplarea reflectă gradul de interconectare a modulelor de program. Există mai multe
tipuri de coeziune şi cuplare, scopul oricărui proiect software fiind coeziunea funcţională şi cuplarea prin
date elementare. Rafinarea arhitecturii obţinute în urma transpunerii diagramelor fluxurilor de date constă
în recompunerea sau descompunerea unor module pentru a se obţine o coeziune maximă şi o cuplare
minimă.
După ce proiectarea structurii programului a fost finalizată, se trece la cea de-a doua activitate,
proiectarea logicii modulelor. Pentru redarea logicii modulelor se pot utiliza mai multe instrumente:
pseudocodul, tabelele sau arborii decizionali, diagrama stărilor de tranziţie etc.
Întrebări recapitulative
1. Definiţi următoarele concepte: program, modul de program, arhitectura programelor, logica
modulului de program.
2. Care este diferenţa dintre o dată elementară şi o informaţie de control?
3. Explicaţi rolul coeziunii şi cuplării în proiectarea programelor.
4. Descrieţi cele cinci principii utilizate în proiectarea programelor.
5. Explicaţi de ce un modul cu coeziune funcţională este uşor de testat.
114 PROIECTAREA SISTEMELOR INFORMAŢIONALE
Probleme
1. Daţi un exemplu de pseudocod care să conţină o structură de control alternativă generalizată.
2. Daţi un exemplu de pseudocod care să conţină o structură de control repetitivă cu un număr definit
de paşi.
3. Daţi exemple din propriul studiu de caz de module caracterizate de următoarele tipuri de coeziune:
funcţională, secvenţială, comunicaţională.
4. Daţi câte un exemplu, din propriul studiu de caz, de cuplare prin date elementare şi prin informaţii
de control.
CAPITOLUL VI
Implementarea sistemului
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
• Conştientizarea importanţei şi rolului documentării sistemului
• Descrierea celor patru metode de conversie a vechiului sistem la noul sistem
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. De regulă, proiectarea fizică se concretizează într-un raport al proiectării fizice a
sistemelor, întocmit cu scopul furnizării informaţiilor necesare factorilor de decizie pentru a
efectua ultimele verificări şi pentru a-şi da sau nu acceptul de trecere la etapa de implementare.
Într-o formă destul de concentrată, în caseta 6.1, prezentăm conţinutul unui astfel de
raport pentru firma ABC.
Î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 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 implementării
Pregătirea
Realizarea şi Selectarea şi
locurilor de muncă;
testarea instalarea şi testarea instruirea
programelor echipamentelor personalului
Finalizarea Testarea
documentaţiei sistemului
Conversia de la
vechiul la noul
sistem
30. Pressman, R.S. – Software Engineering. A Practitioner’s Approach, Fifth Edition, McGraw-Hill Publishing
Company, London, 2000, p.426.
118 PROIECTAREA SISTEMELOR INFORMAŢIONALE
subset al
datelor de Stabilirea rezultatele
intrare rezultatelor asteptate
subset al P rezultatele
datelor de obtinute
intrare
Fig. 6.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
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.
IMPLEMENTAREA SISTEMULUI 119
general, tehnicile manuale nu implică execuţia programelor33, iar tehnicile de testare automată
presupun de cele mai multe ori execuţia programelor, deci ele sunt considerate tehnici de
testare dinamică.
În mod tradiţional, există două abordări complementare în testarea programelor, în funcţie
de sursele de informaţii utilizate pentru generarea cazurilor de test. Celor două abordări le
corespund două categorii de tehnici de testare: tehnici tip „cutia neagră” sau tehnici tip „cutia
albă”.
Testarea tip „cutia neagră”, numită şi funcţională, nu ia în considerare detaliile
procedurale interne ale componentei testate, ci urmăreşte funcţiile acesteia. Se vor alege date
de test pentru fiecare funcţie în parte. În cazul unui modul de program, responsabilii testării nu
vor examina instrucţiunile acestuia, ei fiind interesaţi doar de datele de intrare şi rezultatele
aşteptate pentru fiecare funcţie a modulului.
Testarea tip „cutia albă”, numită şi structurală, presupune concentrarea atenţiei asupra
detaliilor procedurale ale componentei testate, pentru a putea determina cazurile de test şi
datele de intrare necesare. Ea implică identificarea cazurilor de test care permit execuţia
tuturor ramurilor programului, derivate din structurile de control alternative şi/sau repetitive.
Prin urmare, se va defini câte un caz de test pentru fiecare ramură logică a programului.
Tehnica testării căilor de bază, ce va fi prezentată în paragraful următor, se încadrează în
această categorie.
Deoarece porneşte de la analiza structurilor de control din specificaţiile procedurale de
proiectare sau codul program, s-ar putea crea impresia că aplicarea aceste testări, tip „cutia
albă”, ar conduce inevitabil către obţinerea de programe 100% corecte şi că testarea de tip
„cutia neagră” ar fi inutilă. Ar putea fi adevărat dacă ar fi posibilă testarea exhaustivă a
programelor (reamintiţi-vă unul din principiile testării enunţate anterior).
Problema poate fi formulată şi din cealaltă perspectivă: de ce trebuie să cheltuim atâta
timp şi energie cu testarea la nivelul detaliilor programelor, în loc să ne concentrăm atenţia
asupra testelor care să vizeze fiecare funcţie a programelor? Aşadar, de ce să ne complicăm cu
testarea tip „cutia albă”, în loc să consumăm toate resursele cu testarea tip „cutia neagră”?
Răspunsul la întrebarea anterioară derivă din natura erorilor întâlnite în programe. Multe
erori apar atunci când se proiectează şi implementează condiţii sau structuri de control care
privesc cazurile speciale ale funcţiei tratate şi care nu fac parte din fluxul logic principal al
programului. Se estimează că numărul erorilor logice este invers proporţional cu probabilitatea
de execuţie a unei ramuri logice a programului34. Erorile de scriere a programelor sursă pot
apărea oriunde în programe, atât în ramurile logice principale, cât şi în cele care tratează
cazurile speciale, ceea ce justifică necesitatea tehnicilor de testare de tip „cutia albă”.
Pe de altă parte, aplicarea tehnicilor de testare de tip „cutia albă” permite identificarea şi
localizarea mai uşoară a erorilor, tocmai datorită faptului că acest tip de testare se desfăşoară la
nivelul detaliilor procedurale. Să ne imaginăm ce dificilă ar fi localizarea unei erori identificate
la testarea unei funcţii a sistemului ce presupune execuţia mai multor module de program. În
plus, noi ştim că rezultatele obţinute nu sunt corecte, dar ar putea fi vorba de mai multe erori şi
nu doar de una singură. Acesta este unul din motivele pentru care strategia de testare trebuie
definită astfel încât să se aplice mai întâi tehnicile de testare tip „cutia albă” şi apoi cele tip
„cutia neagră”.
De regulă, testarea tip „cutia albă” urmăreşte generarea cazurilor de test astfel încât:
• execuţia fiecărei structuri de control alternative pe ambele ramuri;
• execuţia fiecărei structuri de control repetitive, atât la numărul minim, cât şi cel maxim
al iteraţiilor, dar şi a unuia intermediar;
33. van Vliet, H. – Software Engineering. Princples and Practice, Second Edition, John Wiley & Sons, LTD,
Chichester, 2002, p. 399.
34. Jones, T.C. – Programming productivity: Issues for the 80s, IEEE Computer Society Press, 1981, citat în
Presmann, R.S. – op. cit., p. 433.
IMPLEMENTAREA SISTEMULUI 121
...
..
.
Fig. 6.3 Construcţiile elementare pentru crearea grafului fluxurilor logice de control
Pentru pseudocodul din caseta 6.2, graful fluxurilor logice de control este prezentat în
figura din caseta 6.3.
2. Determinarea complexităţii logice a programului pe baza grafului
Complexitatea logică a programului (cyclomatic complexity) trebuie determinată în
vederea stabilirii numărului căilor independente de execuţie. O cale independentă de execuţie a
programului reprezintă orice cale din program care implică cel puţin un nod nou (adică un grup
nou de instrucţiuni sau o condiţie nouă), adică el nu a fost inclus în căile definite anterior.
Complexitatea logică poate fi determinată în mai multe moduri. Unul dintre acestea are la
baza formula: Cl = P + 1, în care P reprezintă numărul nodurilor predicative din graful
fluxurilor de control. Un nod predicativ este acela care conţine o condiţie logică (un predicat).
Prin urmare, în graf, din fiecare nod predicativ vor pleca cel puţin două săgeţi.
IMPLEMENTAREA SISTEMULUI 123
Caseta nr. 6.3 – Graful fluxurilor logice de control pentru modulul EvaluareFIFO
1
3
9
4
10 11
5 6
12
7
Caseta nr. 6.5 – Datele de test a modulului EvaluareFIFO pentru testarea căii 4
1. Datele de intrare
cCodMat = „100001”
vCantitate = 100
În tabela STOCURI există următoarele înregistrări:
MatCod DataIntrare Stoc Pret
100001 20/01/2006 50 125.00
100001 06/02/2006 65 126.00
100001 13/02/2006 40 126.50
2. Rezultatele aşteptate
bConsValid = True
Valorile pentru tabloul aConsum: 20/01/2006 50 125.00
06/02/2006 50 126.00
În final, se vor executa toate cazurile de test, iar rezultatelor testării vor fi consemnate
într-o documentaţie.
6.2.2.3 Testarea structurilor de control repetitive.
Structurile repetitive stau la baza majorităţii algoritmilor implementaţi în programe. Din
punctul de vedere al testării, ele pot fi împărţite în trei categorii, prezentate în figura 6.4:
simple, imbricate şi concatenate. Regulile de testare a structurilor repetitive se încadrează în
tehnicile tip „cutia albă”.
35. Oprea, D. – Analiza şi proiectarea sistemelor informaţionale economice, Editura Polirom, Iaşi 1999, p. 481.
IMPLEMENTAREA SISTEMULUI 127
În acest moment al testării sunt implicate mai multe tehnici de testare, în funcţie de
aspectele urmărite. De regulă, se începe cu testarea la nivelul interfeţelor modulului, pentru a
se asigura că intrările şi ieşirile în/din modul sunt corecte, înainte de a se efectua alte teste
asupra modulului. Urmează testarea structurilor de date locale, prin care se verifică
integritatea datelor memorate temporar de-a lungul ramurilor de execuţie din modulul
respectiv.
Cele mai importante teste, dintre cele efectuate la nivelul modulelor, sunt cele care
vizează căile de execuţie a programului. Prin testarea căilor de execuţie se urmăreşte
depistarea erorilor legate de calcule greşite, comparaţii greşite în expresiile logice, controlul
logic necorespunzător al execuţiei etc. Foarte utile, în acest scop, sunt tehnica testării căilor de
bază şi testarea structurilor de control repetitive. Testarea modulelor se încheie cu analiza
valorilor limită. Deşi sunt puţine explicaţii, majoritatea erorilor apar la extremităţile
domeniului de valori pentru datele de intrare şi nu în mijlocul acestui domeniu. De exemplu,
apar erori la execuţie, atunci când se invocă ultima iteraţie dintr-o structură repetitivă, se
prelucrează ultimului element dintr-un tablou de date etc. Din acest motiv, se impune reluarea
testelor privind structurile de date şi fluxul logic de control, însă vor fi utilizate alte cazuri de
test, prin care se va urmări exersarea valorilor limită ale domeniului.
Testarea modulelor mai are o particularitate. După cum se ştie, un modul nu este de sine-
stătător, el fiind plasat undeva în structura ierarhică a programului, de unde este apelat de
modulele de pe nivelul ierarhic superior, după cum, la rândul său, poate apela unele 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.
6.2.3.2 Testarea integrării
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.
128 PROIECTAREA SISTEMELOR INFORMAŢIONALE
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. Î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.
6.2.3.3 Testarea la nivelul sistemului
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ărit36:
• 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.
Documentaţia este privită, deseori, numai din perspectiva existenţei unui volum
suplimentar de informaţii la dispoziţia organizaţiei şi a echipei proiectului, care, după părerea
unora, îngreunează şi prelungeşte derularea unui proiect. Această opinie ar putea fi acceptată
dacă se are în vedere viteza şi stringenţa cu care se solicită modificarea sau înlocuirea
sistemelor. Însă, o astfel de poziţie poate să aibă, pe termen lung, un efect destul de costisitor.
37. Oprea, D. – Managementul proiectelor. Teorie şi cazuri practice, Editura Sedcom Libris, Iaşi, 2001, pp. 105-
109.
38. *** – Project Management – Guidelines, www.projectmanagement.tas.gov.au (accesat 06.07.2004).
IMPLEMENTAREA SISTEMULUI 131
39. Oprea, D., Meşniţă, G. – „Documentaţia sistemelor informaţionale – problemă a managementului proiectelor?”,
în vol. Societatea informaţională: Educaţie, Cercetare, Sisteme informaţionale, Tehnologii Informaţionale,
Editura ETP Tehnopress, Iaşi, 2004, pp. 110-111.
132 PROIECTAREA SISTEMELOR INFORMAŢIONALE
metodei sunt date de faptul că se elimină riscul în caz de eşec al noului sistem şi faptul că
utilizatorii au mai mare încredere în noul sistem, oferindu-li-se posibilitatea de a-l verifica
înainte de fi dat în exploatare definitiv. Dezavantajul principal îl constituie volumul dublu de
muncă şi o cantitate mai mare de resurse. Totuşi, în practică, este cea mai agreată metodă.
Conversia paralelă nu funcţionează în situaţia în care cele două sisteme nu sunt
compatibile tehnic sau când mediul de exploatare nu poate să suporte sarcina funcţionării lor în
paralel. De asemenea, nu se recomandă atunci când sistemele au funcţionalităţi diferite sau
noul sistem presupune o nouă metodă de derularea a operaţiilor economice.
Conversia pe faze sau graduală constă în înlocuirea treptată a elementelor sistemului,
evitându-se schimbările drastice, instalându-se câte un subsistem pe rând. În acest fel, noul
sistem poate să funcţioneze on-line cu o serie de componente funcţionale, logic ordonate, astfel
încât să elimine cât mai mult posibil perioadele de întrerupere a activităţii utilizatorilor şi a
fluxurilor economice. Principalul dezavantaj este creşterea costului prin crearea interfeţelor
temporare între vechiul şi noul sistem, precum şi timpul suplimentar impus de înlocuirea
treptată. Conversia pe faze nu poate fi folosită atunci când noul sistem nu permite separarea
modulelor sau subsistemelor.
Conversia modulară (pilot) presupune implementarea sistemului în unele componente din
unitate, cum ar fi un anumit număr de secţii, compartimente ş.a. Întâi se ia o staţie pilot în care
implementarea să se facă după una dintre cele trei metode prezentate, iar după testare va fi
extins fie în întregul sistem, fie în anumite locuri. Dezavantajul provine din intervalul de timp
mărit pentru conversie, precum şi din costul interfeţelor necesare între vechiul şi noul sistem
care coexistă până ce conversia se realizează în ultimul loc din unitate.
O sinteză a metodelor de conversie este redată în fig. 6.5.
Sistem vechi
Sistem vechi Sistem nou
Sistem nou
Rezumat
Implementarea este una din etapele care include cel mai mare grad de risc pentru reuşita proiectului
de dezvoltare a sistemului informaţional. Până la această etapă, proiectul se desfăşoară fără să afecteze
activităţile curente al organizaţiei. Însă, implementarea presupune afectarea mediului de lucru al
utilizatorilor, implicit al organizaţiei, iar o proastă gestionare a activităţilor implementării poate conduce
la efecte dezastruoase.
Implementarea începe, mai întâi, cu o planificare riguroasă, după care se continuă cu realizarea şi
testarea programelor, pregătirea locurilor de muncă şi a spaţiilor în care vor fi instalate echipamentele,
testarea acestora, selectarea şi instruirea personalului care să asigure atât exploatarea sistemului, cât şi
întreţinerea acestuia, finalizarea documentaţiei, testarea finală, conversia de la vechiul sistem la cel nou.
Planificarea are loc înainte de demararea activităţilor propriu-zise de implementare, chiar de la
începutul proiectului. Se folosesc tehnicile cunoscute: diagramele Gantt şi PERT.
Una dintre etapele implementării priveşte testarea, ea fiind critică pentru calitatea sistemelor
informaţionale. Obiectivul general al etapei de testare îl reprezintă identificarea numărului maxim de
erori cu efort minim. Atingerea acestui obiectiv impune organizarea şi planificarea riguroasă a testării.
Principalele activităţi care formează procesul de testare sunt: definirea strategiei de testare, stabilirea
rezultatelor aşteptate, efectuarea testelor planificate, compararea rezultatelor testării şi întocmirea
documentaţiei.
Astăzi există o mulţime de tehnici de testare, clasificate după numeroase criterii. Se pot distinge
tehnici de testare dinamice sau statice, în funcţie de execuţia sau nu a programelor, automate sau
manuale, dacă testele sunt realizate sub controlul calculatorului sau a omului, tip „cutia albă” sau „cutia
neagră”, în funcţie de luarea în considerare sau nu a detaliilor procedurale interne ale componentei
testate.
Din punctul de vedere al organizării, testarea va începe la nivelul modulelor de program, fiind
vizate, în principal: interfeţele modulelor, structurile de date locale, şi algoritmii de prelucrare. Se
continuă cu testarea integrării modulelor, pentru depistarea unor categorii de erori specifice, şi testarea
la nivelul sistemului, în care testele sunt orientate spre acele caracteristici nespecifice componentelor
programului, cum ar fi: performanţele sistemului, securitatea, refacerea în cazul apariţiei unor căderi ale
sistemului. Se încheie cu testarea de acceptare, desfăşurată într-un mediu similar celui în care va lucra
utilizatorul.
Având finalizate activităţile care asigură funcţionalitatea sistemului se trece la finalizarea
documentaţiei sistemului, formată din mai multe componente, în funcţie de persoanele care vor beneficia
de ea. Astfel, se va regăsi documentaţia utilizatorului, formată din manualul de utilizare, ghidul general şi
tutorialele, şi documentaţia tehnică, adresată echipei ce va asigura întreţinerea sistemului, în care se
includ manualul de operare, manualul de instalare şi manualul dezvoltatorului.
În final, se poate trece la activitatea care asigură operaţionalitatea noului sistem, respectiv
conversia. Se utilizează patru metode de conversie: directă, paralelă, pe faze sau graduală, modulară sau
pilot. Fiecare metodă prezintă avantaje şi dezavantaje, iar decizia de a merge pe una din ele depinde de
mai mulţi factori, cum ar fi: complexitatea sistemului, urgenţa implementării, compatibilitatea celor două
sisteme (vechi şi nou), nivelul de descompunere a sistemului. Tot acum are loc şi conversia datelor,
operaţiune destul de anevoioasă şi riscantă.
Întrebări recapitulative
1. Motivaţi de ce este necesară planificarea implementării.
2. Care sunt principalele activităţi ale etapei de implementare?
3. Prin ce diferă operaţiunile de verificare şi validare din perspectiva testării sistemelor informaţionale.
4. Descrieţi pe scurt demersul procesului de testare.
5. Care sunt principiile testării?
6. Comentaţi următoarea afirmaţie: Tehnicile de testare tip „cutia albă” şi cele tip „cutia neagră” sunt
complementare.
7. Definiţi criteriul de acceptabilitate la care răspunde tehnica de testare a căilor de bază.
8. Formulaţi cinci reguli de testare a structurilor de control repetitive.
9. Prezentaţi patru categorii de erori care pot fi urmărite în cadrul examinărilor.
IMPLEMENTAREA SISTEMULUI 135
Probleme
1. Pentru un sistem cunoscut, selectaţi o metodă de conversie şi motivaţi alegerea făcută. Dacă
recomandaţi conversia pe faze, specificaţi ordinea în care doriţi implementarea
subsistemelor/modulelor. Dacă apelaţi la metoda de conversie pilot, identificaţi departamentul cu
care să începeţi şi motivaţi alegerea.
CAPITOLUL VII
Exploatarea şi întreţinerea
sistemelor informaţionale
Obiective:
• Cunoaşterea modalităţilor de sprijinire a utilizatorilor în exploatarea sistemului
• Prezentarea caracteristicilor activităţii de închidere a proiectului de dezvoltare
• Înţelegerea principalelor aspecte ale etapei de întreţinere a sistemelor informaţionale
• Dobândirea cunoştinţelor necesare realizării operaţiunii de întreţinere a sistemelor
Exploatarea şi întreţinerea sunt două etape ale ciclului de viaţă al sistemului care încep
imediat ce acesta devine operaţional şi continuă până când funcţionalităţile şi performanţele lui
nu mai corespund obiectivelor firmei, cerinţelor utilizatorilor. În timpul acestor etape, echipa
de specialişti şi firmele furnizoare trebuie să vină în sprijinul utilizatorilor, prin oferirea
sprijinului necesar în utilizare, şi să rezolve eventualele cerinţe suplimentare, probleme sau
erori ce apar pe parcursul exploatării, adică să întreţină şi îmbunătăţească performanţele
acestuia. Tot acum este momentul în care echipa de dezvoltare a sistemului, împreună cu
conducerea firmei trebuie să conceapă planul de redresare a sistemului în caz de dezastre.
Cel puţin din cel de-al doilea punct de vedere, al cunoştinţelor, utilizatorii finali
informatizaţi diferă semnificativ ca nivel de pregătire. Unii au studii medii, de tip colegiu, sau
universitare de specialitate. Alţii, au beneficiat doar de cursuri de scurtă durată, însă cea mai
mare parte a utilizatorilor finali sunt „nealfabetizaţi” în domeniul prelucrării automate a
datelor, deşi, cu sau fără voia lor, sunt incluşi în categoria potenţială de utilizatori finali
informatizaţi.
La structurile atât de eterogene enunţate, eforturile de sprijinire a lor sunt cu totul altele.
Iată de ce literatura adaugă, în ultimul deceniu, un nou concept, centrul informaţional, chiar
dacă el s-a născut în deceniul opt. Se pare că, la fel ca şi în lumea muzicii, şi în informatică,
unde se utilizează o mare diversitate de instrumente, se simte nevoia unui dirijor al activităţilor
care se bazează pe sprijinul calculatoarelor, iar sistemul să fie văzut ca o orchestră.
primilor paşi ai acestora în intenţiile lor de a se dota cu hard şi soft sau, şi mai mult, de iniţiere
în tehnicile realizării, controlării şi integrării propriilor sisteme.
Centrul informaţional reprezintă un concept creat pentru sprijinul acordat utilizatorilor de
către un grup specializat de persoane; el este şi o entitate funcţională, de cele mai multe ori sub
formă distinctă în cadrul componentelor organizatorice informatice ale firmelor (serviciul
sistemelor informaţionale, centrul de calcul, oficiul sau staţia de calcul). El este în acelaşi timp
şi un loc fizic, în care consultanţii aşteaptă să fie solicitaţi de către utilizatorii informatizaţi.
Referitor la noul concept şi la cadrul lui de aplicare, uneori ne punem întrebarea dacă,
alături de centrul informaţional, ţinând cont de modul de organizare a activităţii de informatică
din ţara noastră, nu s-ar putea folosi şi termenii de oficiu informaţional sau staţie
informaţională. Nu de altceva, dar ni se pare că ar suna ciudat ca în cadrul unei staţii de calcul
să existe un centru informaţional, fie şi numai din respect pentru greutatea semantică a
cuvintelor. Alt motiv ar fi conştientizarea trecerii de la centre, oficii şi staţii de calcul, la
centre, oficii şi staţii informaţionale – ca unităţi distincte sau ca părţi componente ale vechilor
forme de organizare. E doar un simplu punct de vedere.
Specialiştii centrelor informaţionale sunt analiştii de sistem, cu vaste cunoştinţe despre
componentele informatice, un fel de uomo universale, întrucât sunt solicitaţi într-o foarte
diversificată gamă de probleme. În plus, trebuie să posede calitatea de a transmite cunoştinţele
lor către utilizatorii informatizaţi. Deşi aceasta pare o problemă lipsită de importanţă, ea are un
rol determinant în asigurarea succesului centrului informaţional, deoarece pot fi specialişti de
înaltă clasă, dar cu mari carenţe în psihopedagogie. Simularea stărilor empatice va fi cheia
succesului, ceea ce sub accepţiune generală ar însemna „arta de a fi în pielea utilizatorului”.
Solicitările pot fi şi pe domenii generate de funcţiile întreprinderilor (aprovizionare, producţie,
personal, financiar, contabilitate ş.a.), ceea ce duce la concluzia că în echipa centrului
informaţional trebuie să existe specialişti care, parafrazându-l pe Pico della Mirandola, să ştie
tot ce-i pe lume despre sistemele informatice şi chiar… ceva mai mult.
În cadrul centrelor informaţionale, specialiştii trebuie să contribuie la realizarea unor
funcţii specifice, dintre care amintim:
• iniţierea utilizatorilor finali în tehnicile de evaluare, selecţie, instalare şi întreţinere a
microcalculatoarelor şi a pachetelor-program aferente;
• sprijinirea utilizatorilor finali în realizarea accesului la bazele de date. Aici intră tehnicile
de dialog cu calculatoarele medii-mari din reţea, protejarea de tip „numai citire” pentru
anumite părţi ale bazei de date ş.a. Se ştie că în lucrul cu bazele de date centrale, „citirea”
este mult mai simplă decât „scrierea”, care, de cele mai multe ori, nici nu este posibilă. Se
cuvine iniţierea utilizatorilor în tehnica protecţiei prin niveluri diferite de acces;
• instruirea utilizatorilor informatizaţi în domeniul proiectării sistemelor. În realitate, sunt
multe centre informaţionale care refuză să ofere aşa ceva, considerând că menirea lor este
doar de a acorda asistenţă de specialitate, în timp ce altele trec la acomodarea utilizatorilor
cu mijloacele de lucru ale generaţiei a patra de limbaje şi de produse-program, CASE
(Computer Aided/Assisted Software/Systems Engineering) fiind cel mai solicitat;
• acordarea sprijinului pentru instalarea şi întreţinerea aplicaţiilor;
• îmbunătăţirea metodelor şi tehnicilor puse în slujba utilizatorilor informatizaţi, realizatori
de sisteme proprii;
• asigurarea „asistenţei de birou”, în regim non-stop, prin coborârea de la nivelul centrului
informaţional la cel al birourilor, creându-se soft specializat de consultanţă pe teme hard şi
soft, de genul sistemelor expert de rezolvare a necazurilor ce pot apărea în viaţa sistemelor
informatice. Edificator este softul de „ajutor de birou” SupportMagic al firmei Magic
Solutions din Mahwah, statul New Jersey;
• susţinerea utilizatorilor informatizaţi în exercitarea controlului asupra propriilor sisteme
sau iniţierea controlorilor şi auditorilor interni în îndeplinirea sarcinilor ce le revin în noul
EXPLOATAREA ŞI ÎNTREŢINEREA SISTEMELOR INFORMAŢIONALE 139
Alte organizaţii apelează la un sistem de ajutor continuu oferit de furnizori. Costul variază
între 5.000 USD şi 20.000 USD. În schimbul sumei amintite, furnizorul oferă acces la toate
cunoştinţele posibile despre produsele lui, prestează servicii electronice ajutătoare şi asigură
personal specializat la dispoziţia clientului. Sunt mulţi furnizori care oferă întreaga
documentaţie tehnică şi pe CD-ROM, cu actualizarea ei periodică, de cele mai multe ori în
variantă online, prin intermediul paginilor web, a e-mailului sau a transferului de fişiere prin
ftp (file transfer protocol). De reţinut că toate serviciile menţionate anterior sunt adaptate
condiţiilor specifice fiecărei organizaţii. În cadrul unui program anunţat, de până la patru ore
zilnic, o persoană din partea furnizorului stă la dispoziţia acestora pentru orice problemă
cuprinsă în contract.
40. Potrivit unui raport al Datamonitor, numărul serviciilor din centrele de apel din Europa Centrală şi de Est ar
putea să ajungă la 13.700 în 2008, iar România este considerată un fel de al doilea Bangalore (oraşul din India
cu cele mai multe servicii externalizate) în privinţa oportunităţilor de dezvoltare a unor astfel de centre, prin
externalizare de către marile firme, îndeosebi din domeniul IT, în special cele franceze şi italiene.
41. Crowley, A. – „The Help Desk Gains Respect”, in PC Week, no. 10, November 15, 1993, p. 138.
EXPLOATAREA ŞI ÎNTREŢINEREA SISTEMELOR INFORMAŢIONALE 141
Cel de-al patrulea nivel este ocupat de controlorii activităţii zilnice prestate de personalul
ce lucrează cu utilizatorii.
Nivelul final este reprezentat de şeful biroului de ajutor.
Pentru eficientizarea acestor niveluri se recomandă integrarea unor componente web care
sprijină biroul de ajutor să interacţioneze în mod dinamic cu softul de automatizare a
serviciilor. Pentru că interfeţele web sunt aplicaţii client ce nu solicită resurse importante şi
asigură conectarea paralelă a unui număr mare de utilizatori folosind orice browser, se asigură
şi o reducere a costului total de funcţionare a biroului. O astfel de soluţie poate să ofere
următoarele facilităţi:
• accesul la instrumente ce permit obţinerea directă a informaţiilor necesare, fără intervenţia
unei alte persoane, cum ar fi baza internă de cunoştinţe. Astfel, diferite categorii de
persoane pot să introducă informaţii tehnice care să sprijine primul nivel al biroului, iar
utilizatorii le pot folosi pentru a găsi rezolvarea problemei într-o manieră proactivă;
• interacţiunea dinamică cu baza de date a biroului. Clienţii sau personalul de sprijin pot
introduce sau modifica o serie de elemente, pot să ofere detalii legate de unele acţiuni
pentru soluţionarea unei probleme, ceea ce face ca baza de date să fie permanent
actualizată şi disponibilă. Astfel, nu se mai înregistrează dublarea eforturilor de actualizare
(preluarea de la clienţi a problemelor şi găsirea soluţiilor şi apoi încărcarea lor în cadrul
bazei de date). De asemenea, nu mai există timpi de aşteptare până la identificarea tipului
de problemă şi transmiterea către persoana cea mai indicată să o rezolve;
• scăderea costurilor de funcţionare, pentru că nu mai sunt necesare softuri specializate şi
licenţe specifice pentru întreţinerea bazei de date, bază de date la care are acces orice
utilizator autorizat, ea fiind dezvoltată cu ajutorul unui limbaj specific, iar informaţiile pot
fi obţinute cu ajutorul oricărui browser, care presupune un cost relativ redus sau poate fi
descărcat gratuit;
• asigurarea unei evidenţe clare a numărului de accesări ale utilizatorilor, a numărului de
probleme pentru care există soluţii, a timpului necesar pentru rezolvarea unei probleme,
numărul de reveniri ale utilizatorilor etc., ceea ce vin în sprijinul personalului care asigură
întreţinerea sistemului.
Deşi biroul de ajutor ar trebui să fie de un real folos pentru utilizatori, după cum îi spune
şi numele, dintr-un studiu realizat de Forrester42 a rezultat că doar 53% din utilizatori consideră
că este satisfăcător nivelul în care sunt sprijiniţi. Şi această poziţie poate genera destul de
multe probleme pentru firme, pentru că, prin reducerea sau pierderea credibilităţii, poate fi
afectată negativ percepţia utilizatorilor legată de aplicaţiile sistemului, ceea ce va conduce la o
restrângere a bugetelor de funcţionare, atât a biroului, cât şi a sistemului, o perioadă mai mare
de timp pentru aprobarea noilor proiecte şi reducerea rolului sistemelor în asigurarea
performanţei organizaţiei într-un mediu în continuă schimbare.
Acest nivel destul de redus al gradului de satisfacţie se datorează în primul rând
numărului tot mai mare de aplicaţii utilizate în cadrul firmelor. Dacă în trecut, biroul de ajutor
avea în structură posturi ce nu cereau calificări complexe, pentru că personalul era implicat,
cea mai mare parte a timpului, în oferirea de răspunsuri simple, repetitive, la probleme
comune, astăzi lucrurile s-au schimbat. Întrebările utilizatorilor sunt din ce în ce mai complexe,
iar rolul biroului a trecut din faza de soluţionare a defecţiunilor tehnice către înţelegerea şi
sprijinirea strategiilor de afaceri. Utilizatorii nu mai solicită ajutor pentru probleme de genul
„s-a blocat o hârtie în imprimantă” sau „nu reuşesc să introduc CD-ul în unitate”, ci solicită tot
mai multe informaţii despre aplicaţiile folosite şi procesele economice, care ies din sfera de
acţiune tradiţională a biroului de ajutor. De aici rezultă că personalul angajat trebuie să fie
orientat din ce în ce mai mult către componentele de afaceri şi legăturile cu aplicaţiile specifice
şi mai puţin către cele hardware şi software de sistem. Dar lucrul acesta nu este simplu,
42. Gliedman, C. – Thirty-one Best Practices for the Service Desk, June 28, 2005, http://i.i.com/cnwk.ld/itp, pp. 1-2,
accesat pe 25 octombrie 2005.
142 PROIECTAREA SISTEMELOR INFORMAŢIONALE
întrucât personalul specializat al biroului de ajutor trebuie să fie supus, să zicem, unei
reconversii profesionale, orientată către partea economică şi organizaţională a sistemelor
informaţionale. Pentru a asigura eficienţa personalului, au fost elaborate câteva recomandări43:
• angajarea persoanelor potrivite şi într-un număr suficient care să asigure oferirea
suportului într-un timp cât mai scurt din momentul solicitării;
• instruirea corespunzătoare a utilizatorilor;
• instruirea personalului din cadrul biroului pe componentele afacerii;
• asigurarea unei legături cu cel mai apropiat nivel managerial, pentru obţinerea cât mai
rapidă a aprobărilor şi resurselor necesare pentru modificări la nivelul sistemului,
atunci când ele se impun;
• motivarea personalului să accepte şi să se adapteze la schimbări;
• asigurarea mobilităţii personalului de pe un post pe altul, pentru a nu se ajunge la
starea de plafonare, prin implicarea lor, în perioade cu mai puţine solicitări, în proiecte
de dezvoltare a unor noi aplicaţii.
În final, trebuie să spunem că înfiinţarea sau păstrarea unui birou de ajutor trebuie să fie
atent analizată, întrucât presupune costuri, resurse şi o structură proprie de organizare. De
aceea, este necesar să se evalueze eficienţa activităţilor desfăşurate, pe baza numărului
apelurilor, timpului de răspuns, gradului de satisfacţie a utilizatorilor, tipurilor de probleme
apărute, a frecvenţei lor, monitorizării performanţei personalului implicat etc.
Iniţierea şi Transformarea
planificarea cererilor în
proiectului schimbări
Proiectarea
Analiza
schimbărilor
Proiectarea
logică
Proiectarea Implementarea
fizică schimbărilor
Implementarea
Adaptivă (8%)
Corectivă (75%)
Rezumat
Exploatarea şi întreţinerea sunt două etape ale ciclului de viaţă care încep imediat ce sistemul
devine operaţional şi continuă până când se impune înlocuirea lui. În timpul activităţii de exploatare,
specialiştii IT trebuie să asigure suportul utilizatorilor în utilizarea sistemului, iar în timpul întreţinerii
(care nu este o etapă secvenţială exploatării, ci paralelă), trebuie să corecteze erorilor apărute şi
nedepistate în timpul etapei de implementare sau să îmbunătăţească funcţionalităţile şi performanţele
sistemului.
Sprijinirea utilizatorilor se realizează sub diferite forme: materiale tipărite, versiuni online,
consultanţă de specialitate. Dintre cele mai întâlnite forme de organizare a activităţii de asistenţă a
utilizatorilor enumerăm: centrele informaţionale, serviciile automate de asistare, birourile de ajutor (help
desks) sau aşa numitele centre de apel (call centers). Odată cu sporirea complexităţii sistemelor şi a
creşterii vitezei de modificare sistemelor şi-a făcut apariţia şi o nouă profesie, comunicantul tehnic
(technical communicator), care asigură întocmirea şi transmiterea documentaţiei tehnice a sistemului şi a
utilizatorului.
Atunci când sistemul este dat în exploatare se atinge şi ultima etapă a ciclului de viaţă al proiectului,
din punct de vedere al managementului de proiect, respectiv închiderea proiectului, care presupune
desfăşurarea mai multor activităţi, dintre care mai importante sunt: evaluarea finală a echipei proiectului,
degrevarea de responsabilităţi prin care se face analiza critică a sistemului, finalizarea contractului cu
beneficiarul.
148 PROIECTAREA SISTEMELOR INFORMAŢIONALE
Chiar dacă proiectul de dezvoltare a sistemului s-a încheiat, ciclul de viaţă al celui din urmă
continuă, prin etapa de întreţinere, care este una din cele mai costisitoare. Activităţile implicate de
întreţinere sunt: primirea cererilor de întreţinere, transformarea acestora în propuneri de schimbări,
proiectarea modificărilor şi implementarea lor. Există patru tipuri de întreţinere: corectivă, adaptivă,
perfectivă şi preventivă.
Întrebări recapitulative
1. Care sunt formele sub care se concretizează sprijinul acordat utilizatorilor?
2. Ce este centrul informaţional?
3. Prin ce se diferenţiază centrul informaţional de un infocentru?
4. Descrieţi cele mai întâlnite servicii automate de asistare a utilizatorilor.
5. Definiţi şi prezentaţi caracteristicile biroului de ajutor.
6. Care sunt avantajele integrării componentelor web în interacţiunea utilizatorilor cu biroul de ajutor?
7. Care sunt activităţile în care este implicat comunicantul tehnic?
8. Care sunt activităţile implicate de întreţinerea sistemului?
9. Prin ce se caracterizează cele patru tipuri de întreţineri: corectivă, adaptivă, perfectivă şi preventivă?
Probleme
1. Plecând de la informaţiile pe care le găsiţi pe diferite site-uri ale firmelor specializate, identificaţi
principalele servicii pe care le pot oferi birourile de ajutor, în regim de externalizare, pentru asistenţa
utilizatorilor.
2. Identificaţi principalele competenţe şi abilităţi pe care trebuie să le deţină persoanele angajate într-un
birou de ajutor.
3. Căutaţi informaţii privind tipurile de centre de apel existente în România şi prezentaţi serviciile
oferite.
4. Având la dispoziţie informaţii privind sistemul informaţional al unei firme, încercaţi să dezvoltaţi o
procedură care să fie respectată de către utilizatorii sistemului şi personalul tehnic atunci când
solicită o modificare a sistemului.
CAPITOLUL VIII
Obiective:
• Înţelegerea principalelor concepte specifice orientării-obiect
• Cunoaşterea principalelor modalităţi de reprezentare grafică specifică UML (Unified Modeling
Language)
• Exemplificarea elementelor de analiză şi proiectare orientate-obiect în contextul aplicaţiilor
economice
45. Capitol realizat de asist. univ. drd. Florin Constantin SÎRBU de la Facultatea de Economie şi Administrarea
Afacerilor, Universitatea „Al. I. Cuza” Iaşi.
150 PROIECTAREA SISTEMELOR INFORMAŢIONALE
conferinţei OOSLA), când cei doi stabilesc caracteristicile de bază ale unei noi metode de
analiză şi proiectare, rezultată prin unificarea metodei lui Booch (OOD) cu OMT, metodă
denumită iniţial metoda unificată (The Unified Method).
La sfârşitul anului 1995, celor doi li se alătură Ivar Jacobson, un alt nume de referinţă din
domeniu, autorul metodei OOSE (Object-Oriented Software Engineering) .
În 1996, metoda unificată îşi schimbă numele în limbajul unificat de modelare (Unified
Modeling Language) datorită faptului că eforturile iniţiale de unificare au fost concentrate
asupra limbajului grafic de modelare, a semanticii lui şi abia după aceea a modului de utilizare
a conceptelor. Schimbarea denumirii a fost justificată şi prin faptul că acest efort ştiinţific nu a
tratat iniţial şi aspecte de metodologie, permiţând astfel separarea limbajului de modelare de
procesul aplicării metodologiei. Punerea accentului pe limbaj nu echivalează cu ignorarea
modului de folosire a acestuia.
În 1997, apare versiunea 1.0, ce conţinea o documentaţie mai detaliată decât versiunile
anterioare, versiune ce este propusă OMG-ului (Object Management Group) pentru
standardizare. Răspunsul pozitiv al celor de la OMG vine în acelaşi an, UML devenind astfel
un limbaj standard de modelare orientată-obiect.
De la standardizare şi până în prezent au mai apărut şi alte versiuni ale limbajului unificat
de modelare, cum ar fi: versiunea 1.5, din martie 2003, şi versiunea 2.0, din septembrie 2005.
UML nu este o metodă de proiectare, ci un limbaj universal pentru modelarea şi realizarea
oricărui tip de sistem, de orice mărime, asigurând posibilităţi unitare de reprezentare grafică în
toate fazele dezvoltării unui sistem informatic: definirea cerinţelor, analiză, proiectare,
implementare, testare, instalare, întreţinere.
Conform definiţiei date chiar de OMG46, UML este un limbaj vizual pentru specificarea,
construirea şi documentarea elementelor sistemelor. Este un limbaj de modelare universal ce
poate fi folosit cu toate metodele obiectuale şi în toate domeniile de aplicaţii (de exemplu,
economie, sănătate, telecomunicaţii, gestiunea fluxurilor de lucru) şi pe toate platformele de
implementare (de exemplu, J2EE, .NET).
Nu toate posibilităţile de modelare pe care le oferă sunt necesare în toate domeniile de
aplicaţii. Acest lucru sugerează că limbajul trebuie structurat modular, cu posibilitatea de a
selecta doar acele părţi ale limbajului care sunt de interes într-un anumit proces de modelare.
Pe de altă parte, un exces de flexibilitate creşte probabilitatea ca două instrumente diferite
UML să suporte subseturi diferite de limbaj, ducând la probleme de interacţiune între ele.
UML 2.0 conţine două specificaţii complementare: infrastructura UML (UML
Infrastructure) şi superstructura UML (UML Superstructure). Dacă prima specificaţie prezintă
componentele fundamentale ale limbajului, partea a doua prezintă constructorii accesibili
utilizatorilor acestui limbaj.
Metamodelul UML a fost creat ţinându-se cont de următoarele principii:
• principiul modularităţii se asigură printr-o coeziune strânsă şi cuplare slabă cu
ajutorul pachetelor şi organizarea metaclaselor;
• principiul stratificării presupune separarea conceptelor pe diferite niveluri de
abstractizare;
• principiul partiţionării folosit pentru a organiza zone în cadrul aceluiaşi nivel de
abstractizare;
• principiul extensibilităţii se asigură prin două modalităţi:
– definirea de profile (Profiles) pentru a adapta limbajul anumitor platforme (de
exemplu, J2EE sau .NET) şi domenii (de exemplu, economie, finanţe etc.);
– definirea unui nou limbaj, înrudit cu UML, prin reutilizarea unor elemente din
infrastructura UML şi adăugarea metaclaselor necesare;
• principiul refolosirii, asigurat de un metamodel flexibil.
46. *** – Unified Modeling Language (UML) Specification: Infrastructure, version 2.0, OMG, 2004, p. 10.
PARTICULARITĂŢI ALE ANALIZEI ŞI PROIECTĂRII ORIENTATE-OBIECT 151
MetaModel M2 UML
Model M1 RUP
47
Fig. 8.1 Niveluri de modelare conform SPEM
47.*** – Software Process Engineering Metamodel, version 1.1, OMG, 2005, p. 1-2.
152 PROIECTAREA SISTEMELOR INFORMAŢIONALE
Diagrame Diagrame de
de structură comportament
Diagrame de clase
structură compusă
Diagrame stărilor
Diagrame cazuri
de interacţiune
Diagrame de
componente
Diagrame de
Diagrame de
Diagrame de
de utilizare
de tranziţie
amplasare
de pachete
de obiecte
Diagrame
Diagrame
activitate
Diagrame
Diagrame de
Diagrame de
comunicare
secvenţă
48. Voss, G. – Object-Oriented Programming. An Introduction, Osborne McGraw-Hill, Berkeley, 1991, pp. 19-21.
49. Booch, G. – Object-Oriented Analysis and Design with Applications, Addison Wesley, New York, 1994, p. 516.
50. Marchesi, M. – Object-Oriented Programming with Smalltalk/V, Prentice Hall International Ltd, London, 1994,
p. 1.
51. Budd, T. – An Introduction to Object-Oriented Programming, Second Edition, Addison Wesley, Reading,
Massachusetts, 1998, p. 22.
52. Wilkie, G.– Object-Oriented Software Engineering, Addison Wesley, Reading, Massachusetts, 1993, p. 386.
53. Koval, J. A. – Analyzing Systems, Prentice Hall, Upper Saddle River, New Jersey, 1988, p. 184.
54. Martin, J. – Information Engineering: Book II – Planning & Analysis, Prentice Hall, Englewood Cliffs, New
Jersey, 1990, p. 474.
55. *** – Foundation of Business Systems, Second Edition, Andersen Consulting – Arthur A. Andersen & Co. S.C.,
Dryden, 1989, p. 233.
154 PROIECTAREA SISTEMELOR INFORMAŢIONALE
Clasele de obiecte sunt tipuri abstracte de date care definesc structura obiectelor din acea
clasă (setul de date şi prelucrările reunite). Clasele sunt aranjate într-o ierarhie, în aşa fel încât
ele pot moşteni o parte din structură (date şi prelucrări) de la propriii părinţi.
O clasă este considerată clasă abstractă dacă nu este folosită pentru a crea obiecte direct
prin ea, ci este folosită doar pentru a crea alte clase. Termenul de metaclasă desemnează clasa
unei clase.
Caracteristicile esenţiale ale metodei orientate-obiect sunt56:
• orice este un obiect;
• prelucrările sunt realizate de obiecte ce comunică între ele, cerând unul altuia să
execute anumite acţiuni. Obiectele comunică prin transmiterea şi primirea mesajelor.
Un mesaj este cererea pentru o acţiune, însoţită de anumite argumente ce pot fi
necesare îndeplinirii acesteia;
• fiecare obiect are propria memorie, ce este, la rândul ei, alt obiect;
• orice obiect este instanţa unei clase. O clasă reprezintă o grupare a unor obiecte
similare;
• clasa este dicţionarul comportamentului asociat unui obiect, aşa încât toate obiectele ce
sunt instanţe ale aceeaşi clase pot realiza aceleaşi acţiuni;
• clasele sunt organizate într-o singură structură arborescentă, numită ierarhia claselor
sau ierarhia moştenirii. Memoria şi comportamentul, asociate cu instanţele unei clase,
sunt disponibile automat oricărei clase descendente acesteia, în structura arborescentă.
În urma acestei incursiuni în câteva dintre elementele specifice orientării-obiect, putem
concluziona că:
• o clasă este o colecţie de date şi proceduri ce abstractizează un element al lumii reale.
• un obiect este o implementare a unei clase, de la aceasta luând structura şi
comportamentul.
Tipuri aparte de clase sunt cele ce reprezintă grupurile de utilizatori ai sistemului, inclusiv
alte sisteme cu care se interacţionează. Termenul folosit pentru desemnarea acestora este de
actor. Actorii nu fac parte din sistem, fiind doar generatori de evenimente, având acelaşi rol ca
şi entităţile externe (sursele sau destinaţiile fluxurilor de date) din modelarea structurată, cu
ajutorul diagramelor fluxurilor de date. În figura 8.3, se prezintă modalitatea de reprezentare
grafică a actorilor, propusă în UML.
56. Budd, T. – An Introduction to Object-Oriented Programming, Second Edition, Addison Wesley, Reading,
Massachusetts, 1998, p. 13.
PARTICULARITĂŢI ALE ANALIZEI ŞI PROIECTĂRII ORIENTATE-OBIECT 155
Starea unui obiect este dată de valorile atributelor pe care le conţine. De exemplu,
obiectul „clientul SC ALFA SRL” are o anumită adresă, un anumit număr de telefon, nu este
incert etc. Când se schimbă starea obiectului, nu este afectată în nici un fel identitatea acestuia.
Atributele unui obiect nu trebuie să aparţină, în mod obligatoriu, unor tipuri scalare de date, ci
pot fi la rândul lor alte obiecte.
Comportamentul obiectului se referă la serviciile pe care le oferă altor obiecte. Aceste
servicii sunt asigurate prin operaţiile pe care le conţine datorită instanţierii sale dintr-o anumită
clasă. Cererile adresate unui obiect pentru a întoarce o valoare sau pentru a schimba o stare se
numesc mesaje. Un obiect primeşte mesaje de la alte obiecte şi răspunde acestora prin
intermediul serviciilor pe care le oferă. De exemplu: „afişează soldul curent” sau „schimbă
adresa” sunt o operaţii posibile asupra obiectului „clientul SC ALFA SRL”.
Dacă o metodă este văzută în mod asemănător cu o procedură dintr-un limbaj
convenţional, atunci trimiterea unui mesaj este similară cu apelarea unei proceduri. Diferenţa
între transmiterea mesajelor şi apelarea procedurilor este aceea că în transmiterea mesajelor
există un receptor, iar interpretarea (selecţia unei metode pentru a fi executată ca răspuns al
mesajului) poate varia de la un receptor la altul57.
Componentele unui mesaj sunt: receptorul (obiectul căruia i se cere să execute o metodă),
selectorul (metoda cerută a fi declanşată receptorului) şi argumentele (parametrii metodei).
Rezultatul mesajului este şi el o referire a unui obiect şi este trimis expeditorului
mesajului. Odată ce un mesaj a fost trimis unui obiect, obiectele din afară, nu pot şi nici nu ar
trebui să ştie cum, să prelucreze datele în obiect.
Metodele unui obiect pot fi de actualizare sau doar de citire. Metodele de actualizare sunt
cele ce modifică valorile atributelor propriului obiect, pe când metodele destinate citirii nu
afectează aceste valori, ci doar le citeşte în vederea realizării anumitor operaţii. În mod analog,
pot fi clasificate mesajele la care răspund obiectele, după metoda la care fac referire.
Metodele fără nici o implementare (care nu conţin cod) se numesc metode abstracte şi pot
apărea doar în clase abstracte.
Tipuri aparte de metode sunt constructorii şi destructorii.
Un constructor este o metodă care creează un obiect, în sensul ca îi alocă spaţiu şi/sau
iniţializează atributele acestuia şi nu întoarce nici o valoare. Constructorii sunt apelaţi automat
la instanţierea unui obiect. Prezenţa constructorilor în corpul unei clase nu este obligatorie, o
clasă poate să nu aibă nici un constructor, să aibă unul sau mai mulţi constructori. Dacă o clasă
are mai mulţi constructori, aceştia trebuie să difere prin semnătură (lista de argumente primite).
În felul acesta, sunt permise diverse tipuri de iniţializări ale obiectului la crearea sa, în funcţie
de numărul şi tipul parametrilor cu care este apelat constructorul.
Destructorul este o metoda care încheie ciclul de viaţă al unui obiect, eliberând spaţiul pe
care acesta l-a ocupat.
În vederea ascunderii detaliilor de implementare a atributelor unei clase şi a operaţiilor
acesteia, se poate controla accesul la aceste resurse prin definirea unor operaţii speciale.
Această ascundere se defineşte cu ajutorul unor atribute de vizibilitate, care se pot asocia
atributelor şi operaţiilor dintr-o clasă. Atributele de vizibilitate şi reprezentarea lor în UML
sunt prezentate în tabelul 8.1:
57. Budd, T. – An Introduction to Object-Oriented Programming, Second Edition, Addison Wesley, Reading,
Massachusetts, 1998, p. 9.
156 PROIECTAREA SISTEMELOR INFORMAŢIONALE
«Stereotip»
Nume_MetaClasa::Nume_Clasa
+Atribut public : Tip_Data = Valoare_Initiala
#Atribut protejat : Tip_Data = Valoare_Initiala
-Atribut privat : Tip_Data = Valoare_Initiala
+Operatie publica(in Parametru_1 : Tip_Data = Valoare_implicita, out Parametru_N : Tip_Data) : Tip_Data
#Operatie protejata(in Parametru_1 : Tip_Data, inout Parametru_i : Tip_Data, out Parametru_N : Tip_Data) : Tip_Data
-Operatie privata() : Tip_Data
Simbolul folosit în UML pentru reprezentarea unui obiect instanţiat dintr-o anumită clasă
este tot un dreptunghi în care sunt evidenţiate doar două din cele trei părţi: identitatea şi
starea. A treia parte, comportamentul, nu se reprezintă şi în simbolul fiecărui obiect, deoarece
PARTICULARITĂŢI ALE ANALIZEI ŞI PROIECTĂRII ORIENTATE-OBIECT 157
acesta este comun tuturor obiectelor instanţiate din aceeaşi clasă. În partea destinată stării se
prezintă valorile curente ale fiecărui atribut, aşa cum este prezentat în figura 8.5.
«Stereotip»
Nume_Obiect : Nume_MetaClasa::Nume_Clasa
Atribut public : Tip_Data = Valoare_Curenta
Atribut protejat : Tip_Data = Valoare_Curenta
Atribut privat : Tip_Data = Valoare_Curenta
8.1.3.1 Asocieri
Asocierile sunt relaţii între două sau mai multe clase, prin care se modelează
interdependenţe între obiectele instanţiate din clasele respective. Un exemplu de asociere poate
fi: „un mijloc fix este în gestiunea unui anumit gestionar”.
O instanţă a unei asocieri poartă numele de legătură, ea descriind relaţia dintre două sau
mai multe obiecte. Un exemplu de legătură poate fi: „Mijlocul fix cu numărul de inventar
331265 este în gestiunea lui Gestionărescu Fix”.
Asocierile dintre clase au câte un rol (o explicaţie) pentru fiecare clasă participantă. Un
rol poate fi privit ca o imagine a unui obiect. Între două clase pot exista mai multe asocieri,
fiecare cu roluri distincte. De exemplu, între clasa „Bon_de_transfer” şi clasa „Gestiune” pot
exista două asocieri, una privind gestiunea în care se transferă şi cea de a doua asociere privind
gestiunea de la care se transferă.
Asocierile au pentru fiecare element pe care îl leagă o cardinalitate (multiplicitate)
corespunzătoare numărului de obiecte ce pot apărea la instanţiere sub forma:
- 1 – unul şi doar un obiect;
- 0..1 – nici unul sau maxim un obiect;
- 0..* – nici unul sau mai multe obiecte;
- * – tot zero sau mai multe obiecte;
- 1..* – unul sau mai multe obiecte;
- 1..n – unul sau maxim n obiecte;
- 0..n sau n – nici unul sau maxim n obiecte;
- nl, n2, n3 – înşiruire de numere, care exprimă numărul de obiecte;
- n - m – număr de obiecte cuprins între n şi m.
În funcţie de numărul de elemente pe care le leagă, asocierile pot fi: binare sau n-are. În
UML, o asociere binară se reprezintă grafic printr-o linie dreaptă ce uneşte cele două
elementele implicate. Când elementele unite sunt actori, cazuri de utilizare sau clase, pe aceste
linii se pot specifica rolurile şi cardinalităţile elementelor.
Asocierile n-are se reprezintă, în UML, cu ajutorul unui romb, de la care pleacă spre
fiecare element implicat în relaţie câte o linie dreaptă, pe care se poate ataşa cardinalitatea şi
rolul specific elementului respectiv.
* *
*
0..1
Doc_insotire
-Numar : Char
-Data : Date
-Doc_anterior : Doc_insotire -corespunde
+Get_Valoare_fara_TVA() : Decimal
+Get_TVA() : Decimal
+Get_Valoare_cu_TVA() : Decimal 0..1
Asocierea reflexivă din figura 8.11 arată faptul că unele documente însoţitoare (cum ar fi
avizele de expediţie) pot corespunde altor documente justificative (cum ar fi facturile). Tot
asocieri reflexive s-ar obţine şi la prezentarea asocierilor dintre un angajat şi şeful său ierarhic,
sau la asocierea dintre un document justificativ şi documentul său de stornare.
Când o asociere are caracteristicile unei clase ea este denumită clasă de asociere. De
exemplu, asocierea dintre clasa ce defineşte notele de recepţie şi clasa ce defineşte materialele
dintr-un sistem de gestiune a materiilor prime, poate avea propriile atribute (cantitatea şi preţul
fiecărui material) şi propriile operaţii (calcularea cantităţii rămase de consumat dintr-un anumit
material şi o anumită notă de recepţie necesară într-un sistem ce foloseşte metoda FIFO, ca
metodă de evaluare a stocurilor). Simbolul folosit în UML pentru reprezentarea unei clase de
asociere este cel al unei clase, unite de asocierea respectivă printr-o linie întreruptă.
Clasa de asociere
* *
O clasă de asociere poate uni mai mult de două elemente, caz în care ea este denumită
clasă de asociere n-ară.
Clasa de asociere
* *
*
1 *
Alt tip de asociere este comunicarea, care indică o asociere între un actor şi un caz de
utilizare, reprezentându-se grafic ca o asociere binară simplă, ce poate avea anumite
cardinalităţi şi anumite roluri.
Asocierea ce reprezintă trecerea unui obiect dintr-o stare într-o altă stare se numeşte
tranziţie. Ea se reprezintă grafic prin adăugarea la linia unei asocieri a unei săgeţi care arată
starea destinaţie.
8.1.3.2 Dependenţe
Dependenţa este o relaţie între două elemente prin care schimbările într-un element sursă
pot determina schimbări în elementul destinaţie. O dependenţă leagă elementele fără a fi
necesară o instanţiere, de aceea nu are cardinalităţi. Relaţia de dependenţă este unidirecţională,
un element fiind considerat independent, iar celălalt, dependent. Modificările asupra
elementului independent se vor reflecta şi asupra elementului dependent.
De exemplu, dependenţa apare în cazul relaţiilor dintre două clase între care există relaţii
de încredere, denumite clase prieten (friend), în care o clasă oferă altei clase accesul la
elementele protejate, chiar dacă între ele nu există asociere directă. Simbolul folosit în UML
pentru reprezentarea dependenţelor este o linie întreruptă care are la un capăt o săgeată ce arată
elementul dependent.
8.1.3.3 Derivări
Derivarea este o relaţie între două sau mai multe clase, prin care se modelează
similitudinile şi diferenţele specifice dintre acestea. Derivarea este capacitatea de a declara un
tip pe baza unor elemente (atribute şi operaţii) ale unui tip declarat anterior. Pornind de la o
clasă, se pot deriva noi clase ce adaugă diferenţe specifice.
Conceptul de derivare este probabil cel mai important concept al abordării orientate-
obiect, după conceptul de clasă. Aşa cum toate limbajele orientate-obiect sprijină conceptul de
clasă, toate aceste limbaje sprijină şi conceptul de derivare. Lipsa posibilităţii de derivare într-
un mediu de programare, ce foloseşte clase şi obiecte, împiedică folosirea în acest caz a
termenului de programare orientată-obiect, vorbindu-se doar de o programare bazată pe obiecte
sau, altfel spus, abstractizare a datelor.
Termenii de specializare, generalizare, moştenire se referă la relaţia de derivare.
Termenul de moştenire este folosit mai mult în legătură cu reutilizarea atributelor şi metodelor
clasei de bază. Prin intermediul acestei relaţii, obiectele unei clase derivate moştenesc atribute
şi metode ale clasei de bază la care se adaugă membrii clasei proprii.
Relaţia de derivare este reprezentată în UML printr-o linie dreaptă care are la un capăt un
triunghi gol, ce arată clasa generală ce este supusă specializării.
Un tip particular de derivare este extensia. Prin ea, un element (clasă, componentă sau caz
de utilizare) extinde comportamentul unui alt element prin adăugarea unor comportamente noi.
Extensia se reprezintă în UML prin specificarea stereotipului extends pe simbolul unei
derivări.
Termenul de ierarhie de clase desemnează clase între care există relaţii de derivare. Clasa
din care derivă o altă clasă poartă numele de metaclasă. După aceeaşi regulă morfologică, un
model din care derivă alt model poartă numele de metamodel. Clasa derivată dintr-o altă clasă
poartă numele de subclasă.
O clasă poate deriva dintr-o singură clasă, când apare moştenirea simplă, sau din mai
multe clase, vorbind de moştenire multiplă. Nu toate mediile de programare orientate-obiect au
implementată moştenirea multiplă, deoarece este dificil de utilizat şi dezvoltat în timp.
Problemele moştenirii multiple apar când metaclasele au atribute şi/sau operaţii cu acelaşi
nume, iar clasa specializată din acestea trebuie să facă referire numai la una sau la o
combinaţie a acestora. Când o clasă moşteneşte un element de la mai mult de o clasă, se
vorbeşte de generalizare suprapusă (overlapping). Opusul generalizării suprapuse poartă
numele de generalizare disjunctă (disjoint).
În funcţie de capacităţile de derivare, clasele pot fi clase rădăcină (root classes), în sensul
că nu pot avea predecesori, şi clase frunză (leaf classes), indicând faptul că nu pot avea
descendenţi.
Atunci când unei clase nu i se mai pot face alte specificaţii de subclase se vorbeşte de
generalizare completă. Generalizarea incompletă apare atunci când o clasă se mai poate
specializa şi în alte subclase.
Avantajele oferite de derivare sunt date de posibilităţile de reutilizare a codului şi de
extensibilitate a sistemului creat. O serie de resurse de bază, puse la punct în anumite aplicaţii,
pot fi uşor refolosite în alte aplicaţii, prin derivări succesive. Timpul de testare scade, aceste
162 PROIECTAREA SISTEMELOR INFORMAŢIONALE
resurse de pornire fiind probabil deja testate. Mai mult, pot fi refolosite resurse chiar şi fără o
înţelegere temeinică a implementării ce se ascunde în spatele lor.
O resursă existentă poate fi extinsă, atât prin versiune, adică prin adăugare de metode noi,
cât şi prin re-specializare, prin derivarea de noi ramuri în cadrul unei ierarhii de clase. Chiar şi
bibliotecile de clase, a căror implementare nu este disponibilă sub formă de fişiere sursă, pot fi
uşor extinse prin derivări (specializări) succesive.
Relaţia de derivare prezintă şi un dezavantaj: astfel de relaţii nu pot să apară pe parcursul
rulării unei aplicaţii.
are o implementare care nu trebuie schimbată sub nici o formă în subclasele ei, fiind critică
pentru consistenţa stării unui obiect.
Avantajul legării dinamice, faţă de legarea statică, constă în faptul că oferă un grad mare
de flexibilitate. Astfel, ierarhiile de clase sunt mai uşor de realizat şi de întreţinut.
Dezavantajul legării dinamice constă în diminuarea performanţei de viteză. Legarea
dinamică presupune un efort suplimentar de alegere dintr-un tabel de funcţii, pe când o funcţie
legată static se apelează direct.
De obicei, se foloseşte legarea statică şi numai unde este esenţial se recurge la legarea
dinamică, dacă respectivul limbaj permite ambele tipuri.
Nici noţiunea de polimorfism nu aparţine întru-totul tehnologiei orientate-obiect. În
programarea structurată există operatori care lucrează în exact acelaşi mod pe mai multe tipuri
de date.
Pachet
Dacă elementele de modelare specifice UML nu fac referire şi la informaţii mai greu de
structurat, ce se concretizează doar în note explicative sau comentarii, în cadrul reprezentărilor
grafice pot fi adăugate elemente pentru adnotări, redate prin simbolul utilizat în figura 8.21.
Nota explicativa:
*
* *
Pentru o înţelegere mai uşoară a termenilor, propunem în tabelul 8.2 o paralelă între
termenii folosiţi în abordarea structurată şi termenii folosiţi în cea orientată-obiect.
Tabel nr. 8.3 –Reguli ale afacerii într-un sistem de gestiune a comenzilor clienţilor
Clase
Reguli ale afacerii Relaţii identificate
identificate
Clienţi pot fi anumite persoane (fizice sau juridice) Persoane Generalizare
Clienţi
Clienţii pot realiza tranzacţii, dar persistenţa Clienţi Agregare fixă partajată
clientului nu este strâns legată de o anumită Tranzacţie
tranzacţie
Un tip de tranzacţie este comanda Tranzacţie Generalizare
Comandă
O comandă conţine unul sau mai multe produse, iar Comandă Agregare variabilă
datele despre produsele conţinute într-o anumită Produs compozită
comandă nu pot avea o existenţă mai scurtă sau mai
lungă decât a comenzii din care fac parte
Despre fiecare produs conţinut într-o comandă Linie_Comanda Clasă de agregare
trebuie memorate anumite date şi chiar pot exista
prelucrări specifice
După cum se observă din tabelul 8.3, fiecare regulă ne ajută să identificăm clasele folosite
în cadrul sistemului şi relaţiile dintre acestea. Regulile pot fi modelate obiectual şi reprezentate
grafic, ca în diagrama claselor din figura 8.22.
Realizarea diagramei claselor în etapa de analiză orientată-obiect este un efort asemănător
realizării diagramei entitate-relaţie specifică abordării structurate.
Asemănarea dintre diagrama claselor şi diagrama entitate–relaţie provine din existenţa
unui model conceptual comun, bazat pe analiza directă a elementelor din lumea reală. Practic,
diagramei entitate–relaţie îi pot fi adăugate elementele de comportament specific obiectelor şi
relaţiile de generalizare pentru începerea procesului de construire a diagramei claselor.
Adăugarea modelului conceptual al unor elemente de comportament presupune
identificarea pentru fiecare clasă a unui set de operaţii, prin stabilirea principalelor acţiuni ce
pot fi atribuite claselor.
«metaclass» «metaclass»
Persoana Tranzactie
+CUI : Char +Tip_Document : Char
+Nume : Char +Numar_Document : Char
+Tip : Char +Data_Document : Date
+Adresa : Char +Operator : Char Linie_Comanda
+IBAN : Char +Observatii : Char +Cantitate : Double
+Telefon : Char +Aprobata : Boolean +Pret : Double
+Client : Client +Cantitate_Onorata : Double
-realizeaza * Produs
Tranzactie:: Comanda
Persoana:: Client * * +Cod : Char
+Stare : Char
+Limita_Credit : Double +Denumire : Char
1 +Valoare : Double
+Incert : Boolean +UM : Char
+Produs : Produs -contine +Cont : Char
cazuri, nevoia adăugării unor metode pentru citirea şi actualizarea propriilor atribuite se face
simţită numai în cazul atributelor calculate.
Atributele derivate (calculate, nenormalizate) ale unei entităţi din diagrama entitate-
relaţie, specifică modelului structurat, pot fi exprimate, în abordarea orientată-obiect, ca
mesaje read-only (numai citire). De exemplu, atributul Valoare_cu_TVA al entităţii
Doc_insotire poate fi exprimat ca mesajul Valoare_cu_TVA al obiectului Doc_insotire, iar
metoda care îl implementează poate obţine valoarea prin citirea atributelor Cantitate, Preţ şi
Procent_TVA din toate obiectele instanţiate din clasa Produs incluse în obiectul Doc_insotire.
În continuare, ne propunem să luăm un exemplu dintr-un model conceptual pe care să-l
transformăm atât cu elementele specifice modelului relaţional, cât şi cu cele specifice abordării
orientate-obiect.
Stoc curent
Firma
CodFirma Gestiune Material
DenFirma CodGestiune CodMaterial
CUI (1,1) (1,M) DenGestiune (0,M) Este în (0,M)
DenMaterial
Adresa stoc UM
IBAN PretUnitar
Firma Material
+ CodFirma + CodMaterial
+ DenFirma + DenMaterial
+ CUI + UM
+ Adresa + PretUnitar
+ IBAN
+ Actualizeaza_StocCurent
+ Actualizeaza_StocCurent + Citeste_StocCurent
+ Citeste_StocCurent
După înţelegerea cerinţelor (în modelul cazurilor de utilizare) şi a conceptelor (în modelul
domeniului), se poate trece la etapa de proiectare a sistemului, respectiv realizarea modelului
proiectării, prin introducerea de concepte specifice programării. Acest model descrie atât
structura internă a sistemului (clase, obiecte şi relaţii), cât şi colaborările care intervin când
obiectele transmit mesaje pentru a realiza funcţionalitatea dorită. Structura statică este descrisă
în diagrame de clase, iar dinamica sistemului este descrisă prin diagramele de comunicare sau
de secvenţă.
Descrierea dinamicii sistemului poate să înceapă tot printr-o descriere narativă a
secvenţelor de activităţi identificate, ce vor ajuta nu doar la realizarea diagramelor de
interacţiune (diagramele de secvenţă şi diagramele de comunicare), dar vor fi folosite şi la
rafinarea diagramei claselor.
168 PROIECTAREA SISTEMELOR INFORMAŢIONALE
1: Creare:=Creare()2: Informeaza(Raport:Char)
3 Aprobare: Set_Stare:=Set_Stare(Stare:Char)
{OR}
3 Respingere: Set_Stare:=Set_Stare(Stare:Char)
4: Informeaza(Raport:Char)
5: Expeditie()
8: Documente de plata
Rezumat
Prezentul capitol încearcă să facă o incursiune în abordarea orientată-obiect şi în influenţele ei
asupra procesului de analiză şi proiectare a aplicaţiilor economice, în speranţa acumulării noţiunilor de
bază.
Capitolul începe cu prezentarea principalelor concepte ale abordării orientate-obiect, concepte
valabile în orice metodă de analiză şi proiectare orientată-obiect, folosind, pentru reprezentarea grafică a
acestora, standardul UML.
Clasa de obiecte reprezintă un tip abstract de date care defineşte structura obiectelor din acea clasă.
Pentru a asigura funcţionalitatea aplicaţiilor, între elementele specifice orientării obiect se stabilesc o
serie de relaţii, şi anume: asocieri, dependenţe, derivări.
Plecând de la aspectele fundamentale ale abordării orientate-obiect, se poate trece la modelarea
specifică fiecărei etape de dezvoltare a unui sistem informaţional.
Întrebări recapitulative
1. Care sunt elementele ce definesc un obiect? Dar pentru o clasă?
2. Ce relaţii pot exista între clase şi prin ce se particularizează ele?
3. Realizaţi o comparaţie între modul de redare a unei relaţii în modelul relaţional şi cel obiectual.
Probleme
1. Prezentaţi diagrama claselor pentru un sistem informaţional al unei firme despre care deţineţi
informaţii.
2. Prezentaţi exemple din fiecare tip de relaţie posibilă în abordarea orientată-obiect, folosindu-vă de
componentele cunoscute ale sistemului informaţional abordat în problema anterioară.
3. Transformaţi diagrama entitate-relaţie a unui sistem informaţional într-o diagramă a claselor şi
motivaţi fiecare modificare.
4. Prezentaţi diagrama de secvenţă specifică unui sistem informaţional şi argumentaţi rolul acesteia în
rafinarea diagramei claselor.
Bibliografie generală
1. Airinei, D., ş.a. – Medii de programare, Ediţia a IV-a, Editura Sedcom Libris, Iaşi, 2004
2. 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.
3. Bachenski, B. – „GUI Builders Pay Price for User Productivity”, in Software Magazine, April 1992;
4. Beizer, B. – Personal Computer Quality: A Guide for Victims and Vendors, Van Nostrand Reinhold
Company, New York, 1986.
5. 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.
6. Bidgoli, H. (editor) – Encyclopedia of Information Systems, vol. 4, Academic Press, Amsterdam,
2003.
7. Blattner, M., Schultz, E. – „User Interface Tutorial”, Proceedings of the International Conference
on System Sciences, Kona, Hawaii, January 1988.
8. Bloor, R. – „The Disappearing Programmer”, in DBMS 7(9) (august), 1994.
9. Booch, G. – Object-Oriented Analysis and Design with Applications, Addison Wesley, New York,
1994.
10. Booth, P. – An Introduction to Human-Computer Interaction, Lawrence Erlbaum Associates,
Londra, 1989.
11. Budd, T. – An Introduction to Object-Oriented Programming, Second Edition, Addison Wesley,
Reading, Massachusetts, 1998.
12. Carliner, S. – Industry Report: Overview of the Technical Communication Industry, 2002,
www.stc.org (accesat 2.01.2006).
13. Caroll, J.M. – Designing Interaction, Cambridge University Press, Cambridge, 1991.
14. Connoly, T.M., Begg, C.E. – Database Systems. A Practical Approach to Design, Implementation,
and Management, Third Edition, Addison Wesley, Harlow, 2002.
15. Coulouris, G., Dollimore, J., Kindberg, T. – Distributed Systems. Concepts and Design, Pearson
Education Limited, Addison Wesley, Reading, Massachusetts, 2001.
16. 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.
17. Crowley, A. – „The Help Desk Gains Respect”, in PC Week, no. 10, November 15, 1993.
18. Cushing, B.E., Romney, M.B. – Accounting Information Systems, Addison Wesley Publishing
Company, New York, 1994.
19. Date, C.J. – An Introduction to Database Systems, Seventh Edition, Addison Wesley, Reading,
Massachusetts, 2000.
20. 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.
21. Davenport, T.H. – Process Innovation: Reengineering Work through Information Technology,
Harvard Business School Press, Boston, 1993.
22. Dollinger, R. – Baze de date şi gestiunea tranzacţiilor, Editura Albastră, Cluj-Napoca, 1999.
23. Dumas, J.S. – Designing User Interface for Software, Prentice Hall, Englewood Cliffs, 1988.
24. Elmasri, R., Navathe, S.B. – Fundamentals of Database Systems, Third Edition, Addison Wesley,
Reading, Massachusetts, 2000.
25. Fînaru, L., Brava, I.M. – Visual Basic. Primii paşi… şi următorii, Editura Polirom, Iaşi, 2001.
26. Flynn, D. – Information System Requirements: Determination & Analysis, McGraw-Hill, London,
1998.
27. Forward, A. – Software Documentation – Building and Maintaining Artefacts of Communication,
University of Ottawa, Ontario, Canada, 2002.
28. Fotache, M. – Proiectarea bazelor de date. Normalizare şi postnormalizare. Implementări SQL şi
Oracle, Editura Polirom, Iaşi, 2005.
29. Gliedman, C. – Thirty-one Best Practices for the Service Desk, June 28, 2005,
http://i.i.com/cnwk.ld/itp (accesat 25.10.2005).
30. Greenbaum, J. – „The Evolution Revolution”, in Information Week, March 14, 1994.
31. Haarind, R. – „Software’s New Object Lesson”, in Technology Review, February-March, 1992.
INDEX 171
32. Hall, G., Rosenthal, J., Wade, J. – „How to make reengineering really work”, in Harvard Business
Review, November-December 1993.
33. Halpin, T. – Information Modeling and Relational Databases, Kaufmann Publishers, Inc, San
Francisco, 2001.
34. Hammer, M. – „Re-engineering work: don’t automative, obliterate”, in Harvard Business Review,
July-August 1990.
35. Hayley, K., Plewa, J., Watts, M. – „Reengineering Tops CIO Menu”, in Datamation, vol. 38., nr.
6, April 15, 1993.
36. Hicks Jr., J.O. – Management Information Systems: A User Perspective, Second Edition, West
Publishing Company, St. Paul, 1987.
37. Hoffer, J.A., Prescott, M.B., McFadden, F.R. – Modern Database Management, Sixth Edition,
Pearson Education, Inc., Prentice Hall, Upper Saddle River, New Jersey, 2002.
38. Hoffer, J.A., George, J.F., Valacich, J.S. – Modern Systems Analysis and Design,
Benjamin/Cummings Publishing Company, Inc., Sand Hill Road, Menlo Park, 1996.
39. Hughes, B. – Practical software measurement, McGraw-Hill, London, 2000.
40. Jalics, P.J. – „COBOL on a PC: A New Perspective on a Language and Its Performance”, in
Communications of ACM 30, nr. 2, February 1987.
41. Jones, T.C. – Programming productivity: Issues for the 80s, IEEE Computer Society Press, 1981.
42. Kendall, K.E., Kendall, J.E. – Systems Analysis and Design, Fifth Edition, Prentice Hall, Upper
Saddle River, New Jersey, 2002.
43. Koval, J. A. – Analyzing Systems, Prentice Hall, Upper Saddle River, New Jersey, 1988.
44. Langer, A.M. – Analysis and Design of Information Systems, Second Edition, Springer – Verlag,
New York, 2001.
45. Madison, J. – Five “T’s” of Database Availability, www.standishgroup.com (accesat 20.10.2004).
46. Mandel, T. – The Elements of User Interface Design, John Wiley & Sons, New York, 1997.
47. Mandelkern, D. – „Graphical User Interfaces: The Next Generation”, in Communication of ACM
36, nr. 4, April 1993.
48. Marakas, G. – Systems Analysis and Design. An Active Approach, Prentice Hall, New Jersey, 2001.
49. Marchesi, M. – Object-Oriented Programming with Smalltalk/V, Prentice Hall International Ltd,
London, 1994.
50. Martin, J. – Information Engineering: Book II – Planning & Analysis, Prentice Hall, Englewood
Cliffs, New Jersey, 1990.
51. Martinsons, M.G., Revenaugh, D.L. – „Re-engineering is Dead; Long Live Re-engineering”, in
International Journal of Information Management, vol. 17, nr. 2, 1997.
52. May, J.C. – Extended the Macintosh Toolbox: Programming Menus, Windows, Dialogues and
More, Addison Wesley, Reading, Massachussetts, 1991.
53. McFadden, F.R., Hoffer, J.A. – Data Base Management, Second Edition, The
Benjamin/Cummings Publishing Company, Inc., Menlo Park, 1988.
54. McFadden, F.R., Hoffer, J.A. – Modern Database Management, Benjamin/Cummings Publishing
Company, Inc., Redwood City, 1994.
55. McLeod, Jr., R., Jordan, E. – Systems Development. A Project Management Approach, John
Wiley & Sons, Inc., New York, 2002.
56. Meşniţă, G. – „Reproiectarea proceselor economice (BPR)”, în Analele Ştiinţifice ale Universităţii
„Al. I. Cuza” Iaşi – Seria Ştiinţe Economice, Tomul XLVI, Editura Universităţii „Al. I. Cuza”, Iaşi,
2000.
57. Morris, D., Brandon, J. – Re-engineering Your Business, McGraw-Hill, New York, 1993.
58. Morse, A., Reynolds, G. – „Overcoming Current Growth Limits in UI Development”, in
Communications of ACM 36, nr. 4, April 1993.
59. Mosley, D.J. – The Handbook of MIS Application Software Testing, Yourdon Press, Englewood
Cliffs, New Jersey, 1993.
60. Naumann, J.D., Jenkins, A.M. – „Prototyping: The New Paradigm for Systems Development”, in
MIS Quarterly, 6 (3), 1993.
61. Nelson, R.R., Cheney, P.H. – „Training End Users: An Exploratory Study”, in MIS Quarterly 11,
December 1987.
62. Norman, K.L. – The Psychology of Menu Selection, Ablex, Norwood, New Jersey, 1991.
172 PROIECTAREA SISTEMELOR INFORMAŢIONALE
63. Oprea, D., Airinei, D., Andone, I. – Bazele informaticii economice, Editura Universităţii „Al. I.
Cuza”, Iaşi, 1990.
64. Oprea, D., Andone, I., Airinei, D. – Limbaje de programare şi bănci de date, Editura Universităţii
„Al. I. Cuza”, Iaşi, 1990.
65. Oprea, D. – Analiza şi proiectarea sistemelor informaţionale economice, Editura Polirom, Iaşi
1999.
66. Oprea, D. – Premisele şi consecinţele informatizării contabilităţii, Editura Graphix, Iaşi, 1994.
67. Oprea, D. – Protecţia şi securitatea informaţiilor, Editura Polirom, Iaşi, 2002.
68. Oprea, D. – Protecţia şi securitatea sistemelor informaţionale, Editura Polirom, Iaşi, 2002.
69. Oprea, D. – Managementul proiectelor. Teorie şi cazuri practice, Editura Sedcom Libris, Iaşi, 2001.
70. Oprea, D., Meşniţă, G. – „Documentaţia sistemelor informaţionale – problemă a managementului
proiectelor?”, în vol. Societatea informaţională: Educaţie, Cercetare, Sisteme informaţionale,
Tehnologii Informaţionale, Editura ETP Tehnopress, Iaşi, 2004.
71. Ozsu, M.T., Valduriez, P. – Principles of Distributed Database Systems, Second Edition, Prentice
Hall International, Inc., Upper Saddle River, New Jersey, 1999.
72. Page, J., Hooper, P. – Accounting and Information Systems, Fourth Edition, Prentice Hall,
Englewood Cliffs, New Jersey, 1992.
73. Porter, A. – C++ Programming for Windows, McGraw-Hill, Berkeley, 1993.
74. Post, G.V. – Database Management Systems. Designing and Building Business Applications,
McGraw-Hill, Boston, 1999.
75. Powers, M.J., Cheney, P.H., Crow, G. – Structured Systems Development: Analysis, Design,
Implementation, Boyd & Fraser Publishing Company, Boston, 1990.
76. Pressman, R.S. – Software Engineering. A Practitioner’s Approach, Fifth Edition, McGraw-Hill
Publishing Company, London, 2000.
77. Richard, L.K. – Testing Requirements, www.gantthead.com (accesat 18.01.2006).
78. Riordan, R.M. – Designing Relational Database Systems, Microsoft Press, Redmond, Washington,
1999.
79. Rodgers, U. – „Denormalization: Why, What and How?”, in Database Programming & Design,
2(12), December 1989.
80. Roman, D. – Ingineria programării obiectuale, Editura Albastră, Cluj-Napoca, 1996.
81. Satzinger J.W., Jackson, R.B., Burd, S.D. – Systems Analysis and Design in a Changing World,
Course Technology, Thomson Learning, Boston, 2002.
82. Schach, S. – Object-Oriented and Classical Software Engineering, Fifth Edition, McGraw-Hill,
Boston, 2002.
83. Schiesser, R. – IT Systems Management. Designing, Implementing, and Managing World-Class
Infrastructures, Prentice Hall PTR, Upper Saddle River, New Jersey, 2002.
84. Schulteis, R., Sumner, M., Bock, D. – Management Information Systems: The Manager’s View,
Second Edition, IRWIN, Homewood, Boston, 1992.
85. Shelly, G.B., Cashman, T.J., Rosenblatt, H.J. – Systems Analysis and Design, Fourth Edition,
Course Technology, Thomson Learning, Boston, 2001.
86. Shneiderman, B. – Designing the User Interface, Addison Wesley, 1998, Third Edition,
http://www.cs.utexas.edu/users/almstrum/cs370/elvisino/rules.html
87. Shneiderman, B. – Designing the User Interface: Strategies for Effective Human-Computer
Interaction, Addison Wesley, Reading, Massachusetts, 1992.
88. Sia, C.-L., Ian, B.C.Y., Teo, H.-H., Wei, K.-K. – „Applying Total Quality Concepts to Continuous
Process Redesign”, in International Journal of Information Management, vol. 17, nr. 2, 1997.
89. 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.
90. Simsion, G.C. – Data Modeling Essentials. Analysis, Design, and Innovation, Second Edition, The
Coriolis Group, Scottsdale, Arizona, 2001.
91. Tanenbaum, A.S., van Steen, M. – Distributed Systems. Principles and Paradigms, Prentice Hall,
Inc., Upper Saddle River, New Jersey, 2002.
92. Teorey, T.J. – Database Modeling & Design, Morgan Kaufmann Publishers, Inc, San Francisco,
1999.
93. van Vliet, H. – Software Engineering. Princples and Practice, Second Edition, John Wiley & Sons,
LTD, Chichester, 2002.
INDEX 173
94. Văduva, I. ş.a. – Ingineria programării, Editura Academiei, Bucureşti, 1985 (vol. I), 1986 (vol. II).
95. Voss, G. – Object-Oriented Programming. An Introduction, Osborne McGraw-Hill, Berkeley, 1991.
96. Wiederhold, G., Wegner, P., Ceri, S. – „Toward Megaprogramming”, in Communications of ACM
35, nr. 11, November 1992.
97. Wilkie, G.– Object-Oriented Software Engineering, Addison Wesley, Reading, Massachusetts,
1993.
98. Yourdon, E. – Decline & Fall of the American Programmer, Englewood Cliffs, New Jersey,
Yourdon Press, 1993.
99. Zwass, V. – Management Information Systems, WCB-Wm, C. Brown Publishers, Dubuque, 1992.
100. *** – Foundation of Business Systems, Second Edition, Andersen Consulting – Arthur A. Andersen
& Co. S.C., Dryden, 1989.
101. *** – Software Process Engineering Metamodel, version 1.1, OMG, 2005.
102. *** – Unified Modeling Language (UML) Specification: Infrastructure, version 2.0, OMG, 2004, p.
10.
103. *** – Project Management – Guidelines, www.projectmanagement.tas.gov.au (accesat 06.07.2004).
104. *** – Oracle® Database Performance Tuning Guide 10g Release 2 (10.2), www.oracle.com.
105. *** – Incident Description Report, www.gantthead.com (accesat 12.01.2006).