Documente Academic
Documente Profesional
Documente Cultură
Informatică economică
Ediţie revizuită şi adăugită
I. Ariton, Viorel
004:33(075.8)
Introducere în informatică ...................................................................................................5
Informaţii şi prelucrări ........................................................................................................8
Date ............................................................................................................................9
Prelucrarea datelor ....................................................................................................... 11
Scopul prelucrării electronice a informaţiilor ................................................................ 13
Organizarea datelor ......................................................................................................14
Stocarea datelor (fişiere)............................................................................................... 16
Introducerea şi prezentarea datelor ...............................................................................18
Comunicaţii de date şi multimedia .................................................................................... 21
Sistemul informațional ....................................................................................................... 23
Sisteme de calcul ................................................................................................................. 24
Structura fizică a unui sistem de calcul ......................................................................... 24
Structura logică a unui sistemului de calcul .................................................................. 35
Principiul de lucru al unui sistem de calcul ................................................................... 35
Reprezentarea şi structurarea informaţiei ........................................................................ 37
Bit, octet şi multiplii acestora ............................................................................................. 39
Identificator, variabilă, constantă, literal ..........................................................................41
Secvenţe escape ................................................................................................................... 43
Tipuri de date simple ..........................................................................................................43
Reprezentarea numerelor întregi ................................................................................... 44
Reprezentarea numerelor reale ..................................................................................... 48
Tipul de date caracter ................................................................................................... 50
Tipul de date logic ........................................................................................................ 52
Tipuri de date structurate .............................................................................................. 54
Tipuri abstracte de date – Clase de obiecte ................................................................... 59
Structuri dinamice de date ................................................................................................. 60
Liste lineare ................................................................................................................. 61
Liste nelineare (arbori) ................................................................................................. 64
Prelucrarea informaţiei ......................................................................................................67
Expresii ............................................................................................................................... 69
Instrucţiuni simple ........................................................................................................ 74
Instrucţiuni structurate (structuri de control) ................................................................. 76
Programe şi subprograme ............................................................................................. 82
Algoritmi ............................................................................................................................. 87
Exprimarea algoritmilor ............................................................................................... 87
Elaborarea algoritmilor................................................................................................. 93
Exemple de algoritmi ................................................................................................... 94
Analiza şi complexitatea algoritmilor ...........................................................................98
Categorii de prelucrare şi prezentare a informaţiilor ..................................................... 101
Calcule matematice .................................................................................................... 101
Prelucrări de birou ...................................................................................................... 102
Prelucrări prin metode de Inteligenţă Artificială (IA) .................................................. 104
Realizarea programelor şi programe suport ................................................................... 107
Problematica programării................................................................................................ 110
Etape în ciclul de viaţă ale unui produs program......................................................... 111
Limbaje de programare .............................................................................................. 121
Sintaxa și semantica limbajelor de programare ........................................................... 130
Ingineria programării.................................................................................................. 131
3
Florin Postolache, Viorel Ariton Informatica economică
5
Florin Postolache, Viorel Ariton Informatica economică
7
Florin Postolache, Viorel Ariton Informatica economică
1. Informaţii şi prelucrări
1.1. Date
Fără a intra în studiul cunoaşterii, se poate conchide din consideraţiile
anterioare că, pentru manipularea pieselor de cunoaştere prin
intermediul Tehnologiei Informaţiei şi a Comunicaţiilor (TIC), acestea
trebuie să se refere la o formă: materială (substanţă sau câmp) ori
conceptuală (cuvânt). Constituie informaţie orice text, număr,
imagine, sunet, dar şi miros, rugozitate, căldură, sesizabile şi sunt utile
omului la un moment dat.
În cazul său cel mai simplu, informaţia se referă la apariţia (sau ne-
apariţia) unui eveniment, informaţia căpătată fiind de tip binar:
Adevarat/Fals, Da/Nu. Efectiv, informaţia apare după consumarea
evenimentului, adică atunci când piesa de cunoaştere este sigură şi
clară; spunem că informaţia s-a instanţiat – în sensul că a căpătat o
9
Florin Postolache, Viorel Ariton Informatica economică
11
Florin Postolache, Viorel Ariton Informatica economică
13
Florin Postolache, Viorel Ariton Informatica economică
1.1
2.1 2.2
2
3.1 3.2 3.3
3
4.1 4.2 4.3
4
a) Nestructurat c) Structură arborescentă
b) Structură înlănţuită
17
Florin Postolache, Viorel Ariton Informatica economică
Introduce Decizie
re date utilizato
r
19
Florin Postolache, Viorel Ariton Informatica economică
Aşa cum banul nu are valoare în sine, ci o capătă prin schimb, astfel şi
informaţia nu îşi dovedeşte utilitatea decât prin circulaţia sa. Era deci
firesc ca Tehnologia Informaţiei să înglobeze şi componenta de
schimb - Comunicaţia.
În denumirea acestui paragraf apare „comunicaţii de date”, aparent
excluzând comunicaţii uzuale interumane – prin voce, imagine sau
mesaje scrise. De fapt, aşa cum s-a arătat anterior, orice tip de
informaţie poate fi reprezentată digital şi astfel devine „date”. Ca
atare, împreună Tehnologia Informaţiei şi Comunicaţiilor se referă la
modalităţi prin care diverse informaţii sunt manipulate între oameni
(sau între maşini ce servesc omul), consumate local sau la distanţă.
Fuzionarea celor două mari domenii se datorează şi progresului
tehnologic, prin care tehnicile digitale s-au dovedit eficiente şi în
implementarea mecanismelor de comunicaţie, astfel prelucrarea
informaţiei şi transferul ei sunt realizate prin tehnici şi echipamente
compatibile.
Termenul multimedia priveşte varietatea şi modalităţile de
comunicare (imagine, sunet, date), prin care se combină canalele de
comunicare umane. Aşa cum un bun profesor combină formulele
înscrise pe tablă cu imagini, cu expresii verbale şi chiar cu tonalitatea
vocii sale, spre a se face înţeles de clasă, unele aplicaţii prezintă
informaţiile (în domenii ca cel comercial, de reclamă, de educaţie)
atacând mai multe canale de cunoaştere: sunete, imagini (animate sau
nu), texte, experimente filmate, etc. Informaţia este aşadar plasată pe
mai multe medii, pentru receptarea ei de către auditoriu - de aici
numele multimedia. Aceste tehnologii se referă atât la principiile şi
metodele de prezentare, cât şi la aparatura necesară pentru a obţine
prezentări de înalt nivel.
21
Florin Postolache, Viorel Ariton Informatica economică
23
Florin Postolache, Viorel Ariton Informatica economică
4. Sisteme de calcul
Unitate Centrală
PROCESOR MEMORIE
MAGISTRALĂ
(intrare/ieşire)
Imprimantă
Disc Optic
(intrare)
(intrare)
Scanner
(ieşire)
(ieşire)
Mouse
Ecran
25
Florin Postolache, Viorel Ariton Informatica economică
Dispozitive periferice
27
Florin Postolache, Viorel Ariton Informatica economică
Memoria internă
Programele şi datele se găsesc pe durata prelucrării în memoria de
lucru (RAM), care este şi locul în care se introduc datele (de intrare) şi
se pregătesc pentru afişare rezultatele (datele de ieşire). Pe lângă
aceasta există un modul de memorie de bază pentru intrare/ieşire, ce
poate fi numai citită ROM BIOS (Basic Input/Output System) (ROM),
care păstrează date şi programe de bază necesare pentru comanda
directă a perifericelor şi încărcării sistemului de operare de pe disc
Cele două părţi RAM şi ROM formează memoria internă. La
instalarea memoriei RAM se plasează pe placa de bază module cu
circuite integrate care au, uzual, capacităţi de memorie între 1 şi 8 GB.
Performanţele memoriei interne se referă la tipul memoriei ROM
BIOS şi la caracteristicile memoriei de lucru:
a. Capacitatea de memorie – indică volumul de date care se poate
stoca în memoria de lucru şi se măsoară în multipli de octeţi (Bytes);
uzual, capacitatea de memorie este 2-4 GB sau mai mare – pentru
lucrul cu performanţe suficiente sistemelor de operare şi aplicaţiilor
actuale, mari consumatoare de memorie.
b. Timpul de acces – se referă la durata de timp scursă de la cererea
unei date din memorie până la sosirea sa în procesor. Uzual, aceasta
este de 0.833 ns (între 0.833 ns și 2 ns). Timpul de acces depinde de
tipul memoriei şi de versiunea acesteia.
c. Verificarea erorilor – facilitate care indică dacă informaţia
memorată este sau nu corectă, unele tipuri de memorii făcând
verificarea erorilor (prin metode mai mult sau mai puţin sigure –
paritate, control ciclic polinomial), altele nu.
Magistralele sistemului
Sistemele de calcul actuale prezintă mai multe magistrale, unele
păstrate pentru compatibilitatea cu sisteme mai vechi, altele introduse
pentru transferul rapid de date cu perifericele. Conectarea
dispozitivelor (din UC şi periferice) la magistrale se face prin
conectori („slot”-uri), cu structură şi număr de pini specific
magistralei. Transferul datelor pe magistrale este sincronizat de un
ceas al magistralei, care indică şi rata sa de transfer (debitul în bit/sec).
Se vor prezenta pe scurt tipuri de magistrale cu caracteristici şi
utilitatea lor:
a. Magistrala ISA (pe placa de bază) – este tipul de magistrală provenit
din sistemele de generaţii mai vechi şi permite conectarea plăcilor
adaptor de periferic cum sunt placa de reţea, modem, etc.
b. Magistrala PCI (pe placa de bază) – este tipul de magistrală, mai
rapidă. Majoritatea dispozitivelor periferice se conectează la această
magistrală.
c. Magistrala AGP (pe placa de bază) – oferă o rată mare de transfer
(până la 21 GBps) la adaptorul de afişare grafică pe ecran (placa
video), pentru prelucrări grafice 3D.
d. Magistrala SCSI – este o facilitate de transfer date către periferice
rapide, cum sunt discul fix (hard disk), disc optic (compact disc) sau
alte periferice cu această facilitate, oferind o rată de transfer de la 10
MB/s până la 80 MB/s, putând să interconecteze până la 14 periferice
pe o lungime de cablu până la 12 metri.
e. Magistrala USB – este o magistrală serială de mare viteză, pentru
conectarea dispozitivelor periferice, oferind rate de transfer de 1MBps
sau 12MBps pentru varianta USB 1.0 şi până la 5 GBps pentru
varianta USB 3.0, de 10 ori mai rapida decât USB 2.0.
Placa de bază
Reprezintă suportul pentru dispozitivele electronice ce formează
partea cea mai importantă a calculatorului: unitate centrală (cu
microprocesor şi memorie de lucru), magistrale de comunicaţie cu
perifericele şi adaptoare pentru periferice uzuale (tastatură, mouse,
discuri, reţea şi sunet). Placa de bază prezintă cablajul electric - depus
printr-un procedeu similar celui galvanic, în care sunt montate: soclul
microprocesorului, generatoarele de impulsuri de ceas (pentru
sincronizarea operaţiilor din procesor dar şi pentru transferul de date
29
Florin Postolache, Viorel Ariton Informatica economică
33
Florin Postolache, Viorel Ariton Informatica economică
Procesor
Intrare Ieşire
Memorie
35
Florin Postolache, Viorel Ariton Informatica economică
0 1
39
Memoriile semiconductoare ale calculatoarelor numerice pot stoca biţi
în miliarde de condensatoare minuscule, numărul acestor biţi
reprezentând capacitatea de memorie a respectivului calculator.
Asemenea numere uriaşe nu sunt comod de utilizat, de aceea se
utilizează multipli de bit.
Octet (sau Byte) este un grup de opt biţi reprezentând, tradiţional, o
celulă de memorie.
Evident că evaluarea capacităţilor de memorie actuale, folosind ca
unitate de măsură octetul, nu rezolvă problema numerelor foarte mari
vehiculate. De aceea se folosesc multipli de octet, cu denumiri uzuale
ale multiplilor unităţilor de măsură, dar cu semnificaţie diferită -
conform tabelului de mai jos.
40
7. Identificator, variabilă, constantă, literal
42
8. Secvenţe Escape
43
simboluri de scriere (alfabetul, cifrele de la 0 la 9, semnele de
punctuaţie); ele sunt denumite generic caractere alfanumerice.
c) Informaţii de tip Adevărat sau Fals – pentru a desemna o situaţie sau
un eveniment funcţie de care se ia o decizie (de exemplu, dacă un
eveniment a avut loc se execută o anumită acţiune, altfel altă acţiune),
denumite informaţii logice (booleene).
d)
9.1. Reprezentarea numerelor întregi
Numerele utilizate curent pentru calcule (şi nu numai) se prezintă în
aşa-numita „scriere arabă”, în care cifrele sunt aranjate pe ranguri
... Mii Sute Zeci Unităţi
... 103 102 101 100
... 5 9 9 9
46
Rangul adăugat pentru indicarea semnului face parte din lungimea
cuvântului alocat pentru reprezentarea numerelor şi se numeşte uzual
bit de semn. Dacă lungimea cuvântului este 5, bitul de semn este în
poziţia rangului cel mai semnificativ.
+ 23 22 21 20 23 22 21 20
0 0 1 0 0 1 1 1 0 0
a) Numărul + 4(10) b) Numărul 4(10)
47
Operaţii cu numere întregi
Un tip anume de date permite un set bine definit de operaţii permise
asupra variabilelor declarate cu acel tip. Operaţiile sau operatorii se
aplică diferenţiat funcţiile de caracteristicile tipului de date, mai jos
fiind inventariate operaţii pe cele trei categorii.
Asupra numerelor întregi se pot efectua următoarele operaţii
aritmetice (în paranteze simbolul uzual al operaţiei): adunare şi
scădere (+ şi ), înmulţire (*), câtul împărţirii întregi (/), restul
împărţirii întregi (%). Ultimele două operaţii sunt specifice numerelor
întregi, rezultatul operaţiei de împărţire fiind tot un întreg.
Numerele întregi pot fi comparate privind magnitudinea prin operatori
relaţionali cu simbolurile <, >, <=, >=; simbolurile <> sau !=
realizează comparaţia de neegalitate , iar simbolurile = sau = =
comparaţia de egalitate.
Tipul de date ”întreg” este un tip ordinal cu ordine între valorile din
domeniu: numărul 1 este înaintea numărului 2 şi după numărul 0. De
aceea sunt posibile operaţii de tip predecesor – succesor; de exemplu
operatorul de succesiune din expresia succ(2) are ca rezultat 3.
49
Între numerele reale se pot efectua comparaţii prin operatori
relaţionali: <, >, <=, >=; comparaţia de neegalitate <> sau !=, apoi =
sau = = pentru comparaţia de egalitate.
Reprezentarea caracterelor
Pentru a se deosebi de identificatori (care pot fi litere singulare), la
manipularea caracterelor acestea se indică prin încadrarea simbolului
de scriere între apostrof-uri, adică se indică literali de tip caracter.
50
Exemplu ‘A’, ‘a’, ‘0’, ‘:’. Aceste simboluri nu au nici o semnificaţie
în sistemul de programe, ci ele au rol numai de a fi desenate pe
dispozitivele de ieşire (ecran, imprimantă) pentru a fi citite de om.
În oricare din tabelele de cod menționate, caracterelor li se asociază un
număr întreg (fără semn), astfel ca ordinea numerică a codurilor să fie
similară cu ordinea lexicografică a caracterelor în alfabetul ales.
Astfel, se dau mai jos exemple de coduri ataşate (identic) unor
caractere în tabela ASCII, IBM extins sau Unicode: ‘A’= 65 (10), ‘B’=
66(10), ‘C’= 67(10), ‘a’= 97(10), ‘\n’= 10(10) – cod ataşat acţiunii de salt la
nou rând, ‘\a’= 7(10) – cod ataşat sunetului „bell” produs pentru a
atrage atenţia sonor. După cum se observă, unele „caractere” sunt de
fapt acţiuni executate de la tastatură (de exemplul salt la o nouă linie),
dar au fost cazuri când caracterele au avut rol în comunicaţia de date –
de exemplu indicarea începutului şi sfârşitului de mesaj STX = 2 (10),
ETX = 3(10) sau încheierii transmisiei EOT = 4(10).
Ordonarea lexicografică a caracterelor se poate face pe baza
numerelor asociate drept cod acestora; astfel, literele majuscule sunt
înaintea literelor mici (adică primele au valori mai mici) iar cifrele
sunt înaintea literelor în tabela de cod.
Tipul caracter este utilizat ca atare dar şi în tipul structurat „şir de
caractere”.
~ z
a) x
NU
b)
c) ~ z
x
53
şi simbolurile grafice asociate celor trei operatori: pentru ŞI,
pentru SAU, pentru NU.
Operatorii logici apar în programe, cel mai adesea, pentru a exprima
condiţii complexe în urma cărora se ramifică fluxul de comenzi ce se
vor executa (vezi decizia binară).
y 0 1 y 0 1 x 0 1
x z x z
0 0 1 z
0 0 0
1 1 1 0 1
1 0 1
NU (NOT)
ŞI (AND) SAU (OR)
z=xy z=x
z=xy
56
Nume : V a s i l e Nume : I o n i l e
0 1 2 3 4 5 7 0 1 2 4 5 6 7
finalul şirului finalul şirului
de caractere de caractere
60
pe bandă este o structură dinamică (la care se adaugă succesiv
componentele necesare). Fără ordinea la locul de muncă nu se poate
lucra eficient, iar asamblarea ordonată a automobilului este scopul
prelucrărilor din secţie. Orice prelucrare se face cu organizarea
prealabilă a materialelor şi uneltelor de lucru, deci nu este de mirare
că şi în prelucrarea datelor organizarea este esenţială.
Între tipurile de date structurate prezentate, tabloul este similar trusei
de şurubelniţe iar articolul - panoului de scule (ex: explicaţi
dumneavoastră asemănarea), aşa cum s-a amintit acestea fiind
structuri statice de date. Automobilul este o structură în evoluţie, şi
poate fi asemănat cu una din structurile deja prezentate la (lista lineară
sau lista nelineară - arborele), acestea fiind structuri dinamice de date.
În concluzie, structurile de date sunt organizări ale datelor în scopul
realizării eficiente a unor categorii generale de prelucrări,
implementate prin tipul articol (iar operaţiile asupra lor prin programe
separate) sau, mai eficient, implementate prin obiecte ce conţin datele
din structuri şi metodele – ca posibile asupra lor, aşa cum se prezintă
în continuare.
61
Pascal) sau NULL (în C, C++ sau Java), valoare care indică spre
„nimic”.
Figura 14. Listă lineară simplu înlănţuită
62
… Ei Pi Ej Pj … En NULL
Ex Px a)
b)
Figura 15. Operaţii de inserare şi de ştergere a unui nod în lista lineară
simplu înlănţuită
E1
Nivel I P’1 P”1
E2 E3
Nivel II
P’2 P”2 P’3 P”3
E4 E5 E6 E7
Nivel III
NULL NULL NULL NULL P’6 NULL NULL NULL
E8
Nivel IV
NULL NULL
64
Figura 16. Arbore binar
4 5 6 7 Postordine: 4-5-2-8-6-7-3-1
8
Figura 17. Parcurgerea arborelui binar
66
11. Prelucrarea informaţiei
67
acţiunile se repetă la celelalte – conform unor instrucţiuni de control
al fluxului de operaţiuni.
(VI) În final, motorul este ambalat şi trimis la magazin – pentru a fi
prezentat utilizatorilor.
Noţiunile care intervin în modelul de mai sus vor fi explicate şi
descrise – cu specificul lor pentru domeniul TIC, în cele ce urmează,
însoţite de exemple sau de informaţii tehnice specifice unor limbaje de
programare uzuale (cum sunt Pascal, C, Java).
Identificatorul este numele ataşat unei piese sau colecţii de date, dar
şi a unei prelucrări anume, în general aflate în memoria de lucru.
Variabila este o locaţie de memorie referită printr-un identificator şi
poate conţine diverse valori ale unei date de tip specificat.
Constanta este o locaţie de memorie referită printr-un identificator şi
poate conţine doar o singură valoare a unei date de tip specificat.
Literal este o valoare concretă pentru un tip de date, indicată prin
simboluri specifice tipului respectiv.
68
12. Expresii
Operatori
Operatorii sunt simboluri ale unor acţiuni cu semnificaţie stabilită prin
tipul de date operat. Am folosit deja simbolul + ca operator de
concatenare (deci simbol al operaţiei de concatenare). Operatorul
poate fi format din unul sau mai multe caractere. Entitatea asupra
69
căreia se aplică operatorul se numeşte operand. După numărul de
operanzi, operatorii pot fi:
operatori unari, care se aplica unui singur operand, de ex.
operatorul ”-” in expresia ”-x”; utilizarea operatorului unar se face, de
regula, sub forma "prefix" operator operand (operatorul este pus în
faţa operandului) iar uneori sub forma "postfix" operand operator, în
care operatorul este pus după operand;
operatori binari, care se aplică asupra a doi operanzi, fiind situat
între aceştia; de exemplu operatorul de concatenare ”+” in expresia
"acesta este"+" un exemplu" sau operatorul de adunare a doua numere
”+” in expresia 17+28. Operatorii binari se folosesc sub forma "infix"
operand1 operator operand2 - în care operatorul este situat între cei
doi operanzi;
operatori ternari, care se aplica asupra a trei operanzi; de exemplu
în limbajele C şi Java există operatorul ternar (? : ) folosit în
expresiile condiţionale. Operatorul ternar se scrie sub forma (operand1
? operand2 : operand3 ) în care operand1 are o valoare logica (true sau
false), iar ceilalţi doi operanzi reprezintă acţiuni.
Pentru o privire completă asupra domeniului, se prezintă în continuare
categorii de operatori, cu simboluri uzuale pentru limbajele C şi Java.
Operatori aritmetici sunt operatorii utilizați pentru calculele numerice
și care se aplică funcţie de tipul operanzilor (întregi sau reali). Există o
ordine de precedenţă a operatorilor aritmetici: primii se aplică
operatorii unari apoi cei de înmulţire şi împărţire, ultimii de sumare
algebrică; această ordine poate fi schimbată prin grupări între
paranteze ‘(’ şi ‘)’ ale operanzilor şi operaţiilor în expresie.
Operatori relaţionali sunt operatori (binari) pentru comparaţie sau
incluziune: <, >, = =, != (simbol pentru ), <= şi >= (simboluri pentru
şi ), in (pentru apartenenţă).
Operatori logici sunt operatorii care produc un rezultat logic
(„adevărat ” sau „fals”). Ordinea de precedenţă este: primul negarea !
(NU), apoi conjuncţia && (ŞI), ultimul disjuncţia || (SAU); ordinea de
precedenţă se poate schimba prin grupare cu paranteze.
70
Tipuri de expresii
Prin rolul său în program, o expresie este o linie de cod care poate fi
redusă la o singură valoare. Se prezintă în continuare tipuri de
expresii, prin exemple, pentru cazuri de operatori şi precedenţă care
prezintă interes.
Expresii matematice
Fie declaraţiile de variabile:
int a=3, b=7, c=11, d;
care iniţializate cu valorile de mai sus, utilizate în expresii similare
celei de mai jos:
d=(a+c)*b - (a+b)
Expresii logice
Aceste expresii au rezultat logic (adevărat - true, sau fals - false).
Operatorii relaţionali dau ca rezultat o valoare de tip logic fiindcă în
urma relaţiei (comparaţiei) situaţia poate fi adevărată sau falsă.
Comparaţiile realizate cu operatori relaţionali precum şi agregările de
operatori logici sunt privite ca întrebări „este adevărat că … ?”
Evaluarea expresiilor
Evaluarea expresiei constă în aplicarea succesivă a operatorilor
asupra operanzilor corespunzători, într-o ordine care depinde de
precedenţa operatorilor.
Se pot da reguli riguroase de evaluare a expresiilor, dar sunt destul de
complicate. Preferăm să indicăm numai că expresia se parcurge de la
stânga la dreapta, aplicând operatorii în ordinea lor de precedenţă şi
luând în consideraţie parantezele.
Operaţiile se fac asupra valorilor operanzilor. Variabilele se
înlocuiesc prin valorile lor.
Imediat ce s-a aplicat un operator, subexpresia respectivă (formată din
operator şi operandul sau operanzii corespunzători) se înlocuiesc prin
valoarea rezultată din calcul. Se continuă astfel, până când întreaga
expresie este înlocuită printr-o singură valoare.
71
Precedenţa poate fi modificată prin utilizarea de paranteze, cu
convenţia că operatorii din interiorul unei paranteze se aplică înaintea
celor din exterior. De exemplu, în expresia „a+b*c” operatorul „*” se
va aplica înaintea operatorului „+”, deoarece are precedenţa
superioară. În consecinţă, aceasta expresie se va calcula ca şi când ar
fi scrisă sub forma a+(b*c).
Instrucţiuni
Pentru prelucrările simple – de genul calculelor matematice, este
suficient un calculator de buzunar. Dacă aceste calcule sunt combinate
pentru a determina un rezultat complex – de exemplu soluţionarea
generală a unei ecuaţii de gradul întâi, atunci sunt necesare acţiuni de
decizie: de exemplu „este coeficientul necunoscutei nul?” – atunci
ecuaţia este degenerată; asemenea acţiuni de control a desfăşurării
prelucrărilor propriu-zise trebuie realizate printr-un program de
72
calculator, pe baza unor comenzi specifice limbajului de programare
ales.
De fapt, pe lângă prelucrările variabilelor (care se realizează prin
expresii), mai sunt necesare două tipuri generice de acţiuni: de decizie
şi de repetiţie. Rezultă că un limbaj de programare trebuie să asigure
comenzi de:
a) Atribuire –obţinerea unui rezultat pentru o expresie şi încărcarea
valorii acestui rezultat în variabila ţintă (din stânga semnului =).
b) Decizie – pentru alegerea unei secvenţe de comenzi din mai multe
variante (uzual două) urmare a rezultatului unei expresii logice –
condiţia de decizie.
c) Repetiţie – pentru reluarea unei secvenţe de comenzi de mai multe
ori, până la îndeplinirea unei condiţii de oprire.
Între aceste acţiuni doar atribuirea este cea care priveşte formularea
expresiilor, rezolvarea şi păstrarea rezultatelor. Decizia şi repetiţia
modifică doar cursul de execuţie a atribuirilor. Tabloul comenzilor
posibile se completează cu:
d) Salturi şi reveniri – pentru întreruperea unei secvenţe de comenzi
şi preluarea controlului de către altă secvenţă de comenzi în cadrul
aceluiaşi bloc program sau într-un subprogram.
e) Operaţii de intrare / ieşire – pentru interacţiunea cu exteriorul,
prin periferice de intrare / ieşire (către om sau instalaţii, pentru
stocarea sau transferul datelor).
Comenzile din categoriile a) şi e) modifică valoarea sau suportul
datelor, iar comenzile din categoriile b) c) şi d) modifică controlul
asupra fluxul de comenzi. Uzual, operaţiile de intrare / ieşire nu fac
parte din limbajul de programare ci din biblioteci de funcţii ataşate
acestuia.
Cuvintele cheie care exprimă categoriile de acţiuni de mai sus precum
şi modul corect de exprimare al lor (adică sintaxa) constituie setul de
instrucţiuni a unui limbaj de programare. Dacă se cunosc modurile de
exprimare ale aceste acţiuni de bază într-un limbaj de programare, se
poate considera limbajul cunoscut în proporţie de 50%. Trebuie
73
remarcat că, în limbajele de programare moderne, operaţiile de intrare
- ieşire nu constituie instrucţiuni de limbaj ci sunt realizate prin
subprograme specializate – în afara limbajului.
Un program este un text ce cuprinde o secvenţă de instrucţiuni din
categoriile de mai sus, care sunt executate în ordinea în care apar în
text. Procesorul asigură preluarea şi executarea comenzilor în
secvenţă, aceasta fiind ideea centrală de funcţionare a maşinilor von
Neumann.
După cum se poate imagina, instrucţiunile de decizie şi de repetiţie au
o exprimare mai complexă – de exemplu pentru decizie trebuie
indicate acţiunile pentru ramura în care condiţia de decizie are rezultat
„fals” şi acţiunile pentru ramura cu rezultat „adevărat”. Instrucţiunile
pentru decizii şi repetiţii sunt mai complexe şi au nevoie de mai multe
linii de text pentru a le descrie, pe când pentru instrucţiunile de
atribuire este suficientă o linie de text ce descrie expresia vizată. De
aceea instrucţiunile din prima categorie se consideră „instrucţiuni
simple”, iar cele din ultimele două categorii „instrucţiuni structurate”.
74
F=m*a; // în C, respectiv
F:=m*a; /* în Pascal
În expresie intervin numai variabile ce au primit valori, iar variabila
stânga trebuie să aibă tipul de date reprezentând rezultatul expresiei.
Instrucţiuni de salt
Întreruperea forţată a executării unei secvenţe de instrucţiuni (şi saltul
la începutul altei secvenţe) se poate face condiţionat (dacă a fost
îndeplinită o condiţie logică) sau necondiţionat.
a) Saltul necondiţionat – provoacă părăsirea execuţiei secvenţiale a
comenzilor. „Ruperea” secvenţelor de comenzi din program prin
salturi necondiţionate, vădesc o proiectare defectuoasă,
nesistematizată, a descrierii prelucrărilor; ele fac programul greu
inteligibil şi dificil de depanat sau dezvoltat şi de aceea, acestea
trebuie eliminate. În limbajele Pascal şi C saltul necondiţionat există
doar pentru caracterul său istoric:
GOTO eticheta;
Secvenţei curentă este întreruptă şi execuţia se continuă de la eticheta.
Există instrucţiuni de salt care provoacă părăsirea secvenţei de
comenzi doar în condiţii bine precizate, impuse direct de prelucrări.
b) Saltul de revenire din subprogram la programul apelant:
return [expresie];
unde expresie produce ca rezultat o valoare care este „întoarsă”
(returnată) programului apelant de către subprogram, fiind folosită
direct în expresii. Parantezele drepte [ şi ] indică o parte opţională –
adică expresie poate lipsi în situaţia când nu este necesară o valoare
returnată. Saltul de la programul apelant la programul apelat se face
prin însăşi numele subprogramului .
Salturile de terminare abruptă a instrucţiunilor structurate sunt impuse
de prelucrări (în cazul repetiţiilor sau deciziilor multiple):
c) Întrerupere – încheie instrucţiunea curentă şi trece la următoarea:
break [eticheta];
75
d) Continuare – reia secvenţa curentă de la începutul ei înainte de
final:
continue [eticheta];
Cazuri de utilizare sunt la întreruperea unei bucle de repetiţie (şi saltul
în afara sa la secvenţa ce începe de la eticheta), respectiv reluarea unei
bucle de repetiţie de la început fără a se parcurge întreaga secvenţă din
buclă.
76
Instrucţiunea if este o instrucţiune condiţională, care are forma
generală
if(condiţie)
instrucţiune
în care condiţie - este o expresie logică, instrucţiune - este o
instrucţiune simplă sau compusă, care se execută dacă şi numai dacă
expresia condiţie are valoarea true.
77
înscrise mai sus una după alta, fără a fi necesară indicarea ordinii lor
prin numere – în acest exemplu au fost numerotate doar pentru a fi
referite. Similar, procesorul (construit după principiile enunţate de von
Neumann) execută operaţiile una după alta, în ordinea apariţiei lor în
textul programului; în exemplul nostru, după încheierea repetiţiei 3) se
execută direct 6) – în cazul vacanţei de vară şi în cazul vacanţei de
iarnă.
Instrucţiunea de decizie binară
Pentru indicarea a două alternative în desfăşurarea acţiunilor unui
program se foloseşte decizia sau ramificaţia binară „dacă .. atunci.
Instrucţiunea if-else este o instrucţiune condiţională, care are forma
generală:
if (expresie)
instrucţiune1;
else
instrucţiune2;
unde instrucţiune1 se execută atunci când condiţia expresie
are valoare logică „adevărat” (sau în limbajul C, are o valoare diferită
de 0), altfel (când condiţia este falsă sau 0) se execută
instrucţiune2. Când pe una din ramuri sunt mai multe
instrucţiuni de executat, atunci se foloseşte pe acea ramură
instrucţiunea compusă. Se observă că, prin modul de scriere a textului,
ies în evidenţă prin „indentare” (adâncire spre dreapta) ce se execută
pe ramura „adevărat” (imediat după if) şi ce se execută pe ramura
„fals” (imediat după else).
În cazul în care nu există o instrucţiune2, atunci ramura else
lipseşte şi se continuă cu secvenţa ce urmează după simbolul de sfârşit
;.
În diferite limbaje de programare (inclusiv în limbaje „script”) se
foloseşte pentru decizia binară construcţia de mai sus, cu diferenţe
minore de scriere (sintaxă): lipsesc parantezele după condiţie şi apare
cuvântul then (ca în Pascal) sau în loc de; este folosit endif.
78
Instrucţiunea de decizie multiplă
Decizia binară – prezentată mai sus, priveşte situaţii simple, cu două
alternative: Alb/Negru, Da/Nu, Adevărat/Fals. Pentru situaţii în care
decizia priveşte mai mult de două alternative, este dificil de aplicat
mai multe instrucţiuni de decizie binară. O asemenea situaţie apare
când expresia de selecţie nu are valori binare ci multiple – cum ar fi
cazul selecţiei opţiunilor unui meniu; fiecare opţiune devine un caz
selectat printr-un număr sau prin poziţia indicatorului pe ecran
(„mouse”). Ca exemplu, se prezintă instrucţiunea switch în limbajul
C, într-o secvenţă de program în care se alege o opţiune din trei
posibile la alegerile prezidenţiale, prin numărul acesteia – furnizat prin
NumarOptiune:
Instrucţiunea switch este o structură de control, care are forma:
switch (NumarOptiune)
{
case ‘1’: { “Candidat de stânga”};
break;
case ‘2’: { “Candidat de centru”};
break;
case ‘3’: { “Candidat de dreapta”};
break;
default: { „Exprimaţi-vă opţiunea”};
}
Se observă că pentru un alegător indecis (care alege NumarOptiune
diferit de 1, 2 sau 3) există posibilitatea de a fi atenţionat că doar
aceste opţiuni sunt disponibile – prin secţiunea default (care
înseamnă „implicit” în engleză); textele dintre {} la fiecare caz, apar
în loc de blocuri program prin care se afişează – de exemplu, sigla şi
numele candidatului. Instrucţiunile de salt break, sunt utilizate
pentru a încheia posibilitatea de selecţie după ce s-a exprimat o
79
opţiune, în scopul continuării cu secvenţa program ce urmează
instrucţiunii switch, adică după }.
80
{ „Prezintă legitimaţie şi primeşte bilet de examen” };
Exemplul priveşte verificarea legitimaţiei de student şi primirea de
către acesta a biletului de examen, la o grupă de 30 studenţi. Contorul
NrStud reţine câți studenți au intrat în sala de examen iar contorul
NrBilet reţine câte bilete au mai rămas examinatorului – din totalul
de 35; expresiile NrStud++ şi NrBilet—adună şi respectiv scad o
unitate din contoarele respective (aceasta înseamnă ++ şi respectiv --).
Instrucţiunea de repetiţie după condiţie
Atunci când nu se cunoaşte numărul de iteraţii, terminarea repetiţiilor
poate fi indicată de o condiţie cunoscută – care se aplică înainte sau
după efectuarea operaţiei în bucla de repetiţie. Ca urmare, se folosesc
una din cele două tipuri de instrucţiuni:
a) „cât timp (condiţie) adevărată – repetă {operaţie}” – prin care este
posibil ca operaţia să nu se execute nici măcar o dată, dacă de la
început condiţia nu este îndeplinită;
b) „repetă {operaţie} – cât timp (condiţie) adevărată” – prin care
operaţia se execută cel puţin o dată, indiferent dacă este adevărată
condiţia la intrarea în buclă.
Subprograme
În cazul unor prelucrări complexe, care sunt necesare repetat, este
indicată folosirea subprogramelor; acestea sunt secţiuni de cod scrise
o singură dată şi folosite de mai multe ori, prin apelarea lor ori de câte
ori este nevoie, separat sau în cadrul expresiilor. Apelarea
subprogramului se face prin intermediul identificatorului său
(numele), similar cu referirea unei variabile. Dacă un subprogram este
inclus unei biblioteci de subprograme el poate fi apelat de către
oricare alt program scris în limbajul respectiv sau în alte limbaje (dacă
la apelare se fac precizările de rigoare). Subprogramul este o
prelucrare care se poate efectua asupra unui set de date ale căror valori
sunt specificate la „apelarea” subprogramului.
83
Subprogramul este un program apelat (prin nume) în cadrul altui
program (programul apelant) pentru a executa acţiunile sale specifice.
Deci subprogramele nu sunt „de sine stătătoare”, adică nu pot fi
lansate direct de către utilizator din sistemul de operare ).
Subprogramul care, după execuţia acţiunilor sale, revine în programul
apelant cu o singură valoare (valoare „returnată”) ce poate fi folosită
direct în calculul unei expresii; se numeşte funcţie. Un exemplu clasic
este funcţia sin(x), care poate fi apelată într-o expresie – de
exemplu a+b+sin(x), sumele fiind realizate doar după calculul
sinusului pentru valoarea x furnizată. Structura textului de definire a
unei funcţii adaugă, la structura de principiu din deschiderea,
specificarea tipului valorii returnate şi comanda de revenire în
programul apelant:
tip_valoare_returnata nume_funcție (lista
parametri)
{
declarații variabile
corpul programului
return expresie; //nu apare obligatoriu la
final
}
unde tip_valoare_returnată specifică tipul de date al valorii
rezultate în urma calculelor din expresie şi care va fi adusă la
revenirea în programul apelant.
Execuţia programelor se face de către procesor, care poate funcţiona
doar secvenţial şi pentru o singură sarcină (un singur program) la un
moment dat. La apelul unui subprogram de către programul apelant,
acesta din urmă trebuie „părăsit” de către procesor iar contextul de
lucru (adică setul rezultatele parţiale) din memoria locală a
procesorului trebuie salvat în memoria internă – RAM. La revenirea
din subprogram, acest context se încarcă din memoria RAM în
memoria locală a procesorului iar programul apelant reia lucrul –
exact din punctul în care a fost întrerupt pentru execuţia
84
subprogramului, folosind valoarea „întoarsă” ca rezultat de către
subprogram (vezi instrucţiunea return.b), şi valoarea rezultat
pentru expresie.
Programul principal
Execuţia acţiunilor înscrise într-un program trebuie iniţiată la
comanda utilizatorului. Pentru aceasta sistemul de operare
interacţionează cu omul, primeşte comanda (care de obicei este chiar
numele programului) şi „lansează” execuţia acestuia.
Partea din textul unui program care poate fi lansată nemijlocit de
sistemul de operare (deci care poate funcţiona de sine stătător) se
numeşte program principal. Acesta este, în general, o succesiune de
acţiuni grupate în corpul programului pe trei secţiuni:
Introducerea datelor
Prelucrarea datelor
Afişarea rezultatelor
Pentru execuţia acestora, se face apel la subprograme din biblioteca de
subprograme sau din setul subprogramelor declarate în textul sursă al
programului ca ansamblu; în acest ultim caz, programul va fi
specificat astfel:
nume_program_principal (lista parametri)
{
declarații variabile
declarații subprograme
definire subprograme
{
corpul programului principal
}
}
unde declarații subprograme reprezintă secţiunea în care se
inventariază numele şi lista parametrilor specifice tuturor
85
subprogramelor apelate în textul programul. Secţiunea definire
subprograme reia declararea subprogramelor, de această dată cu
descrierea acţiunilor din fiecare subprogram aşa cum este prezentat.
86
13. Algoritmi
87
nomenclator ce specifică rolul variabilelor sau prelucrărilor
respective.
Există diferite metode de reprezentare a algoritmilor:
într-un limbaj natural (de exemplu, în limba română);
sub formă de schemă logică (reprezentare grafică);
în pseudocod.
Istoric, prima modalitate de exprimare a algoritmilor au fost
organigramele – cu avantajul descrierii grafice, intuitive şi uşor de
urmărit. Evoluţia către programarea şi proiectarea structurată a impus
exprimarea prin pseudocod – cu avantajele descrierii concise,
modularizate şi apropiate limbajelor de programare.
De exemplu, rezolvarea unei ecuaţii de gradul I de forma a·x + b = 0
presupune paşii:
i) se verifică dacă a = 0; dacă da – ecuaţia este degenerată;
ii) se verifică dacă b = 0; dacă da x = 0;
iii) altfel, x = -b/a.
Pentru prelucrări mai complexe, trebuie găsită o reprezentare
explicită, în amănunt, a operaţiunilor şi paşilor efectuaţi pentru a
rezolva problema. De exemplu, în cazul de mai sus, al ecuaţiei de
gradul I, nu s-a specificat nimic privind introducerea datelor (valorile
pentru a şi b) dar şi privind afişarea rezultatului x (care pentru un
calculator nu sunt subînţelese – aşa cum sunt ele pentru un om
obişnuit cu rezolvarea problemelor de matematică).
Programul principal:
#1 citeşte valorile pentru a şi b;
#2 soluţionarea ecuaţiei de gradul I;
#3 afişează soluţia.
Detalierea modulelor #1, #2, #3:
#1:
afişează pe rând nou: „Introduceţi valoarea pentru a: ”;
citeşte de la tastatură: a;
88
afişează pe rând nou: „Introduceţi valoarea pentru b: ”;
citeşte de la tastatură: b.
#2:
Dacă a=0 atunci
afişează pe rând nou: „Ecuaţie degenerată”;
altfel
x = - b/a.
#3:
afişează pe rând nou: „Soluţia este x = ”, x;
afişează pe rând nou: „Pentru reluare lansaţi din nou
programul”.
Exprimarea acţiunilor prin pseudocod este o modalitate eficientă de a
descrie operaţiunile ce urmează a fi implementate într-un program dar
poate fi folosită şi spre a descrie orice acţiune complexă ce apare în
activitatea umană. Pentru familiarizarea cititorului cu codificarea
specifică în informatică (prin limbaje de programare sau
macrocomenzi), algoritmii prezentaţi în continuare se vor exprima în
continuare în limba engleză şi nu în limba română, folosind
instrucţiuni specifice limbajelor C şi Java. Sperăm că dificultatea de
înţelegere a limbajului în engleză nu trebuie considerată ca dificultate
de înţelegere a algoritmilor în sine, acestea fiind uşor de disociat dacă
se face traducerea mentală conform convenţiilor.
a = b+c+sin(d)
START i=i+1 Da Nu
i<=n
Date de intrare 89
Subprogram
b, c, d “Maxim”
STOP
START
Citeşte valori
pentru a, şi b
(de la tastatură)
c
Da Nu
a=0
Afişează Da Nu
„Ecuaţie b=0
degenerată”
x = 0 x = -b/a
Afişează
„Soluţia este:”
x
STOP
90
blocurile (b) şi (e) indică efectiv prelucrările vizate prin
algoritm – descrise prin formule sau printr-un subprogram
predefinit ;
blocul (d) indică o intrare sau o ieşire de date (citire sau
afişare);
blocul (c) este necesar pentru specificarea ramificaţiilor de
decizie – eventual, implicate în operaţiuni repetate.
Succesiunea operaţiilor se indică prin linii şi săgeţi care leagă
blocurile grafice prezentate, astfel constituind aşa-numita
organigramă. Ca exemplu, se prezintă în Figura 19 organigrama
(schema logică) pentru rezolvarea ecuaţiei de gradul întâi.
Pseudocod
Atunci când se doreşte nu doar descrierea algoritmului ci şi
structurarea etapelor de rezolvare a problemei (prin modularizare),
este indicată utilizarea unui limbaj codificat care exprimă (în limba
maternă) operaţiunile de executat şi cele de control al fluxului de
comenzi (cum sunt decizia binară, repetiţia). Modularizarea (adică
separarea operaţiunilor pe secţiuni, fiecare cu un scop restrâns şi
specific) este singura modalitate de abordare a rezolvării problemelor
complexe şi cu soluţie puţin sau deloc cunoscută Pe de altă parte,
descrierea algoritmilor prin pseudocod este mult mai compactă decât
organigrama (care necesită mult spaţiu pe foaia de scris), este apropiat
de un limbaj de programare, fiind o replică exprimată în limba
maternă a programului structurat.
Ca exemplu, vom considera algoritmul de calculare a ariei şi
perimetrul unui dreptunghi cu laturile b (baza) şi i (înălţimea)
În limbaj natural, se poate descrie astfel:
Pasul 1: se introduc datele b şi i;
Pasul 2: dacă oricare din b sau i este număr negativ sau nul,
atunci:
Pasul 2.1: scrie “Date de intrare incorecte”.
Pasul 2.2: stop.
Pasul 3: Calculează A=b*i;
Pasul 4: Calculează p=2*(b+i);
91
Pasul 5: Scrie “Aria dreptunghiului este”, A
Pasul 6: Scrie “Perimetrul dreptunghiului este”, p
Pasul 7: Stop
94
Fie exemplul următor: se dă o listă (un tabel) cu date despre studenţi
(număr legitimaţie, nume, prenume, adresă, etc.) ordonate crescător
după numărul de legitimaţie; se doresc informaţii despre un student cu
număr de legitimaţie cunoscut (denumit Tinta). Trebuie remarcat că
înşiruirea de numere de legitimaţie în listă nu este continuă – unii
studenţi au rămas repetenţi, alţii s-au retras, deci secvenţa de numere
are „goluri”.
Metoda de lucru constă în compararea numărului Tinta cu numărul
de la jumătatea listei (element pivot), apoi selectează pentru căutare în
continuare jumătatea superioară sau inferioară – funcţie de rezultatul
comparaţiei. Căutarea se repetă prin înjumătăţire succesivă până la
găsirea liniei numărului Tinta (şi afişarea informaţiilor) sau se
constată inexistenţa lui în listă.
Pentru descrierea algoritmului se consideră Lista (ca depozitar al
informaţiilor despre studenţi) apoi Tinta (ca variabilă ce conţine
numărul de legitimaţie căutat) şi elementul Pivot (valoare aflată la
mijlocul listei). Subprogramul CautaLogaritmic se bazează pe
alte subprograme (funcţii) necesare prelucrărilor: Vida(Lista)
care indică dacă lista nu mai are elemente, adică este vidă;
Jumate(Lista) indică numărul aflat la jumătatea listei;
JumateInf(Lista) extrage jumătatea inferioară iar
JumateSup(Lista) extrage jumătatea superioară al listei.
95
if (Pivot == Tinta)
{Afișează „Informaţii despre studentul căutat ...” ;
return}
if (Pivot < Tinta)
{Lista = JumateInf(Lista);
CautaLogaritmic(Lista, Tinta)}
if (Pivot > Tinta)
{Lista = JumateSup(Lista);
CautaLogaritmic(Lista, Tinta)}
}
} // final CautaLogaritmic
98
Pentru un număr n de piese de date la intrare, ne interesează:
complexitatea temporală – notată T(n), care reprezintă numărul de
operaţii executate de algoritm asupra setului de intrare (considerând o
operaţie în unitatea de timp);
complexitatea spaţială – notată S(n), care reprezintă numărul de
locaţii de memorie folosite de algoritm (memoria de date, stiva,
regiştrii);
unde T(n) şi S(n) nu sunt funcţii ci relaţii, fiindcă pot avea pentru
acelaşi n rezultate diferite (dependente de modul în care algoritmi
diferiţi rezolvă o problemă).
Analiza unui algoritm se face pentru un număr generic de n date în
cele trei cazuri de interes:
cel mai defavorabil – indicând maximul numărului de operaţii
efectuate,
mediu – indicând media numărului de operaţii efectuate,
cel mai favorabil - indicând minimul numărului de operaţii
efectuate.
Uzual, se analizează cazul cel mai defavorabil, apreciat prin Ordinul
algoritmului, notat O (O mare), acesta corespunzând timpului cel mai
lung (sau spaţiului cel mai mare) necesar algoritmului pentru a
prelucra toate piesele n de date. Complexitatea algoritmului este
indicată de ordinul său.
În urma analizei unui algoritm rezultă un ordin al acestuia, care poate
fi încadrat în una din clasele de complexitate de mai jos în scopul
comparării la un nivel mai general a algoritmilor:
Clasa P pentru probleme polinomiale, ce se pot rezolva într-un
număr de operaţii exprimabil printr-un polinom de n – numărul de
piese de date, într-un mod determinist (adică cunoscut şi stabilit
perfect privind operaţiile şi rezultatul lor).
Clasa NP pentru probleme nedeterminist polinomiale, ce se pot
rezolva într-un timp polinomial într-un mod nedeterminst (de
99
exemplu prin „ghicirea” soluţiei folosind algoritmi genetici, apoi
se verifică dacă soluţia este corectă.
În clasa NP există o subclasă de probleme numite NP-complete care
nu se pot rezolva în timp polinomial dar măcar se poate verifica în
timp polinomial o eventuală soluţie. Soluţia propriu-zisă necesită un
timp de rezolvare cuprins între unul exprimat polinomial şi unul
exprimat exponenţial.
100
14. Categorii de prelucrare şi prezentare a
informaţiilor
101
Este deja evident că, prin caracteristicile lor, aceste prelucrări se
rezolvă algoritmic, pe baza unor modele matematice elaborate anterior
şi a căror validitate este demonstrată şi verificată.
Prelucrările matematice se întâlnesc în orice aplicaţie, fiindcă în orice
domeniu al realităţii se utilizează mărimi cantitative. Tocmai de aceea,
în general, limbajele de programare oferă – pe lângă operaţiile
generale de atribuire, decizie şi repetiţie (denumite instrucţiuni de
programare), un set de funcţii pentru prelucrări matematice uzuale
(cum sunt funcţiile trigonometrice, cele de aflare a părţii întregi sau
fracţionare a numerelor reale) – grupate în biblioteci de funcţii
matematice.
Pentru efectuarea de calcule foarte laborioase – cum sunt calcule
pentru modelarea fenomenelor în mecanica fluidelor sau pentru
volume foarte mari de date (în economie, administraţie, transport),
precum şi pentru calcule a căror rezultat este aşteptat imediat („cu
timp mic de răspuns”), se folosesc pentru prelucrarea datelor algoritmi
paraleli. Cu aceşti algoritmi se realizează programe care vor rula pe
„maşini paralele”, adică maşini de calcul cu mai multe procesoare în
care fiecare prelucrează o anumită parte a problemei; rezultatele
parţiale se preiau de la acestea şi se combină în rezultatul final ce va fi
prezentat omului. Algoritmii paraleli sunt elaboraţi pe baza unor
modele deterministe, rolul lor fiind în principal de a distribui sarcinile
de calcul şi a obţine o încărcare echilibrată a procesoarelor.
Astăzi, prelucrarea paralelă se poate efectua în reţele de calculatoare
obişnuite, de exemplu folosind calculatoarele PC dintr-o reţea locală şi
programe specializate care distribuie sarcinile de calcul pe acestea.
103
14.3. Prelucrări prin metode de Inteligenţă Artificială (IA)
În situaţiile din viaţa curentă, omul trebuie să le rezolve mai rar
probleme cantitative şi precise; adesea sunt de rezolvat probleme
calitative într-un mod aproximativ. De exemplu, la traversarea unei
străzi, în plin trafic, un om nu face calculul vitezelor maşinilor, a
distanţelor şi stării drumului (etc., etc.) spre a aprecia apoi viteza cu
care se va deplasa pentru a nu intra în coliziuni, ci procedează la un
raţionament aproximativ, bazat pe informaţii puţine, dar eficient:
traversează fără nici o zgârietură. De asemenea, nu efectuează calcule
spre a recunoaşte o altă persoană sau o marcă de maşină ci, pe baza
caracteristicilor lor cunoscute şi sesizate, decide spontan cine sau ce
este.
Domeniul care se ocupă cu simularea comportamentului fiinţelor vii
se numeşte Inteligenţă Artificială (IA). Implementarea tehnicilor IA se
poate face fizic (prin sisteme electronice) sau logic (prin programe pe
sisteme de calcul). Sunt vizate, în principal, tehnici pentru:
(1) Emularea raţionamentului simbolic – prin Sisteme Bazate pe
Cunoştinţe, în care se parcurge un set de cunoştinţe (exprimate ca
propoziţii) spre a obţine noi cunoştinţe.
(2) Reprezentarea şi inferenţa pentru informaţii aproximative – prin
Logică Fuzzy (Vagă), în care exprimări lingvistice aproximative
(relative la cantităţi) intră în reguli „dacă .. atunci”, spre a obţine noi
valori – aproximative sau precise, necesare unei decizii.
(3) Recunoaşterea formelor – prin Reţele Neuronale Artificiale, în care
se pun în relaţie un set de caracteristici ale unor obiecte (reale sau
abstracte) cu un set de decizii, pe baza unui model conexionist.
(4) Soluţionarea problemelor de optim cu tehnici evolutive – prin
Algoritmi Genetici, în care mulţimea soluţiilor este privită ca o
populaţie de cromozomi în care au loc mutaţii şi selecţii spre
adaptarea optimă la un set de restricţii date.
Cercetarea şi aplicaţiile Inteligenţei Artificiale se dezvoltă în principal
către următoarele arii de interes:
104
Demonstrarea teoremelor – ca modalitate de a valida un adevăr
(o teoremă) prin găsirea unei secvenţe deductive de alte adevăruri
de la cel iniţial nevalidat (al teoremei) la altul final validat
anterior sau prezentat axiomatic. Utilitatea demonstrării automate
a teoremelor este legată de evitarea rezolvării unor probleme
dificile doar pentru contexte sau date particulare – prin algoritmi
realizaţi ad-hoc de programatori „inteligenţi” sau prin păreri
exprimate de experţi umani.
Jocuri ale minţii – şah sau alte jocuri în care „campioni” umani
sunt provocaţi de maşini „inteligente” care de fapt rulează un
program dedicat jocului respectiv.
Analiză de tip Expert şi consultanţă în domenii aplicative – prin
care se prelucrează informaţii de tip simbolic şi se emulează
raţionamente în contexte complexe, cu cunoştinţe incomplete sau
variabile: diagnoză medicală şi tehnică, predicţie.
Planificarea comportării prin analiză scop-mijloc – pentru a crea
şi planifica secvenţe de acţiuni, privite ca mijloace, care servesc
unor scopuri direct legate de mijloace, de exemplu pentru
mişcarea şi comportarea roboţilor.
Înţelegerea şi utilizarea limbajului natural vorbit şi scris –
necesar sistemelor de traduce automată, comandă şi exprimarea
vocală în interacţiunea cu maşina, înţelesului conţinutului unui
mesaj.
Percepţie acustică şi vizuală, recunoaşterea formelor – pentru
identificare de către maşină a obiectelor şi fenomenelor pentru a
le comunica omului sau pentru asistarea sa în luarea deciziilor.
Auto-învăţare şi auto-reproducere – pentru comunicarea maşină-
mediu şi pentru replicarea unor obiecte (reale sau virtuale) în
scopul susţinerii unei utilităţi umane.
În continuare, se vor descrie pe scurt modalităţile de reprezentare şi
prelucrare a informaţiilor prin metode de lucru specifice celor patru
domenii IA, prezentate mai sus. Totuşi, înainte de a descrie în mod
tehnic domeniul Inteligenţei Artificiale, este indicat să lămurim
105
termenul de inteligenţă şi modul în care calculatorul se poate
comporta „inteligent”.
Nu vom da o definiţie a inteligenţei (care de fapt este foarte
controversată) ci, în susţinerea teoriilor inteligenţei artificiale, vom
aminti că dualism-raţionalismul Cartezian şi monismul materialist
consideră inteligenţa oarecum diferit, dar în esenţă simulabilă cu
calculatorul. Iniţial, inteligenţa era considerată capacitatea de a emite
judecăţi, iar de aici materialismul computaţional a emis următoarea
secvenţă practică:
(A) inteligenţă raţionament prelucrare simbolică
calculabilitate,
care fundamentează „Sistemele Bazate pe Cunoştinţe” (în engleză
Knowledge Based Systems - KBS). Totuşi, acţiunile „inteligente” ale
lumii vii nu se reduc toate la raţionament (improprie, după bunul simţ,
melcilor sau chiar pisicii spre exemplu). Fiinţele vii, în principal,
reacţionează la stimuli din mediu:
(B) inteligenţă reacţie prelucrare subsimbolică
calculabilitate,
care fundamentează prelucrările de „Soft-computing”, adică prin
tehnici Fuzzy, Reţele Neuronale Artificiale şi Algoritmi Genetici.
Am putea considera prima abordare (A) ca judecată emisă de om prin
„conştient”, iar a doua abordare (B) ca reacţie instinctivă sau intuitivă
a omului prin „subconştient”.
106
15. Realizarea programelor şi programe suport
107
întreţinerea sistemului, dezvoltarea sa. În principal, scopul tuturor
acestor acţiuni este realizarea programului de calculator, adică
programarea.
Programul este o secvenţă de comenzi exprimată într-un mod
codificat şi care poate fi interpretat şi executat de către calculator,
având ca scop prelucrarea informației. Practic, programul este un
ansamblu de instrucțiuni, scrise într-un limbaj de programare, pe care
calculatorul le executa pentru a îndeplini o anumită sarcină.
Programul conţine:
descrierea datelor de intrare, de ieşire şi intermediare cu care se
operează;
descrierea operaţiilor efectuate asupra datelor (a algoritmului de
prelucrare).
Pe scurt, Program= date + algoritm.
După cum s-a arătat, un program nu prezintă doar secvenţe
(succesiuni) de comenzi, ci şi ramificaţii sau repetiţii, iar secvenţa este
esenţială fiindcă reflectă modalitatea în care omul concepe rezolvarea
unei probleme – paşi succesivi, cu o singură operaţie la un moment
dat. Chiar şi procesorul este astfel realizat constructiv (indiferent cât
de perfecţionat ar fi) pentru a executa o singură comandă al un
moment dat, iar mai multe comenzi în serie (secvenţă). Un sistem de
calcul poate executa mai multe comenzi simultan doar dacă are mai
multe procesoare (este sistem multi-procesor sau maşină paralelă).
Pe de altă parte, la rezolvarea unei probleme cu ajutorul calculatorului
apar situaţii complexe, colaterale problemei de bază, ce trebuie şi
acestea rezolvate, cum sunt: condiţii limită ale contextului de lucru
sau ale valorilor de intrare, greşeli posibile pe care operatorul uman le
poate face (din necunoaştere sau neatenţie); apoi prezentarea
rezultatelor este importantă: tabele, grafice, sunete etc. Se constată
deci că rezolvarea unei probleme (chiar foarte simplă) implică, de
fapt, rezolvarea multora altor probleme pentru utilizarea de către om a
soluţiei.
108
Aplicaţia este un set de programe reunite şi interdependente, care se
prezintă într-un mod unitar şi oferă soluţii pentru o clasă de probleme
date.
Sistemul informaţional (engleză: information system, franceză:
système d'information) este un ansamblu organizat de elemente,
implicate în procesul de colectare, transmisie, stocare, prelucrare şi
diseminare a informaţiei. Nu este obligatoriu ca aceste operaţii să se
efectueze cu echipamente de calcul. De altfel, sistemele
informaţionale au existat cu mult înaintea apariţiei calculatoarelor.
Sistemul informaţional este compus din:
totalitatea informaţiilor cu care operează;
echipamentele folosite pentru operaţii asupra informaţiei;
personalul implicat în funcţionarea şi administrarea sistemului;
procedurile aplicate pentru funcţionarea sistemului.
Interacţiunea dintre elementele sistemului informaţional se realizează
prin transmiterea de informaţie.
Se numeşte sistem informatic acea parte a sistemului informaţional în
care operaţiile de culegere, transmitere, prelucrare, stocare şi regăsire
a informaţiei se realizează folosind echipamente de calcul şi alte
mijloace specifice tehnologiei informaţiilor şi comunicaţiilor. De
altfel, în alte limbi nu există un termen special pentru sistem
informatic, folosindu-se termenul de “sistem de tehnologia informaţiei
(şi comunicaţiilor)”.
Sistemul Informatic este un set de aplicaţii care funcţionează pe o
structură de echipamente interconectate, exploatate de un număr mare
de oameni către o utilitate complexă.
Ca exemple se amintesc sisteme informatice pentru: rezervarea
biletelor de avion sau tren, camerei de hotel, urmărirea stocurilor de
produse ale unei companii, evidenţa proceselor într-un tribunal. În
cele ce urmează vor fi prezentate chestiuni legate de programarea
calculatoarelor, vizând realizarea completă şi eficientă a aplicaţiilor şi
a sistemelor informatice.
109
16. Problematica programării
110
cuburi”, cu care realizează aplicaţii după dorinţa sa şi cu prelucrările
pe care le cunoaşte foarte bine – fiind parte din profesia sa.
Rezultatul programării este un produs program. Ca orice produs, el
are un ciclu de fabricaţie, o valoare de utilizare (şi de aici un preţ),
precum şi un proprietar. Spre deosebire de alte produse, un program
produs de o firmă este proprietatea acesteia şi nu a cumpărătorului
programului; cumpărătorul achiziţionează doar dreptul de utilizare a
programului şi ca atare nu îl poate modifica sau revinde. Un program
reprezintă implementarea unei idei (deci presupune o „tehnologie” de
implementare a ideii) şi, conform reglementărilor privind dreptul de
proprietate intelectuală (pentru orice creaţie), firma sau persoana care
l-a elaborat are drepturi de autor asupra lui, însă nu poate emite
pretenţii asupra ideii la care se referă programul. Produsele program
intră astfel pe piaţă, alături de alte produse, cu specificul lor – nu pot
deveni proprietatea cumpărătorului, iar multiplicarea lor neautorizată
este ilegală.
111
instrumente – ca mijloace de lucru software care ajută analiza
şi/sau proiectarea aplicaţiei.
FAZE ETAPE
4. Proiectarea aplicaţiei
Proiectare
5. Proiectarea programelor (şi structurilor de date)
Formularea cerinţelor
În această etapă se enunţă, de fapt, problema ce se doreşte rezolvată cu
ajutorul calculatorului şi constituie motivul pentru care este necesară
aplicaţia şi se enunţă o soluţie de principiu, care rezultă chiar din
formularea cerinţelor noului program sau sistem informatic. Adesea,
beneficiarul aplicaţiei nu ştie exact ce doreşte de fapt şi nici
posibilităţile pe care un program i le poate oferi. De aceea, ciclul de
viaţă se poate relua, chiar cu reformularea cerinţelor – spre a fi în
acord cu realitatea sau cu disponibilul financiar pentru produsul
program.
112
Specificaţii de
analiză
Cerinţe Analiză
validare
Specificaţii de
Cerinţe revizuite proiectare
validare
Specificaţii de
Cod sursă şi implementare
Documentaţie de utilizare
Implementare
Figura 21. Ciclul de realizare a unui produs program (aplicaţie sau sistem
informatic)
Analiza problemei
Această etapă începe cu „Studiu şi elaborarea soluţiei problemei”, prin
care se evaluează situaţia existentă, se parcurg metode sau soluţii deja
aplicate în situaţii similare, apoi se stabilesc acele metode (eventual şi
algoritmii) care permit rezolvarea conceptuală a problemei. Studiul
efectuat descrie problema (sau sistemul ţintă) din patru puncte de
vedere:
i) viziunea externă (specificaţia) – asupra scopurilor aplicaţiei;
ii) viziunea organizaţională (structurală) – asupra modului de
realizare a aplicaţiei;
iii) viziunea comportamentală (temporală) – asupra evoluţiei
dinamice a aplicaţiei;
iv) viziunea asupra resurselor – hardware (echipamente de
prelucrare şi transfer), software (alte programe necesare
aplicaţiei), resurse umane (implicate în operarea şi utilizarea
113
aplicaţiei), resurse financiare (sume estimate pentru realizarea
aplicaţiei).
Pentru realizarea unei analize precise şi complete, urmată de
elaborarea sistematică a soluţiei, se recomandă respectarea unei
metodologii de analiză, care este, de obicei, specifică modului de
proiectare şi dezvoltare a aplicaţiei. La baza celor mai multe
metodologii stă conceptul de diagramă „Entitate-Relaţie”, care constă
într-o reprezentare grafică, intuitivă, a obiectelor şi legăturilor dintre
ele în problema reală dată. De asemenea, abordările de analiză pot
evolua „de la mic la mare” (bottom-up, de jos în sus, de la amănunt la
general) sau „de la mare la mic” (top-down, de sus în jos, de la general
la amănunt).
Se amintesc pe scurt câteva metodologii, cu specificul lor:
a. MERISE – orientată spre aplicaţii pentru Baze de Date. Priveşte
sistematic trei niveluri: conceptual (CE se doreşte), Logic şi
Organizaţional (CINE, CE face şi UNDE), Fizic şi Operaţional (CUM
face). Prin această metodologie se elaborează modele conceptuale
pentru date şi pentru prelucrări, ce vor fi apoi detaliate la faza de
proiectare a aplicaţiei.
b. OMT (Object Modeling Technique) – orientată pe obiecte, prin care
se identifică în problema dată obiectele şi metodele asociate. Ca etape
parcurse se amintesc: modelarea obiectelor, modelarea dinamică (a
evoluţiei obiectelor), modelarea funcţională (a funcţiilor structurii de
obiecte).
c. UML (Unified Modeling Language) – orientată pe obiecte şi
aplicabilă în aproape orice domeniu. Obiectele utilizator şi cele din
structura sistemului se modelează prin: diagrame „use-cases” (scopul
actorilor), diagrame „class” şi „objects” (proprietăţi şi metode din
structura ierarhică a sistemului), diagrame „sequence” şi
„collaboration”(mesaje şi interacţiuni între obiecte), diagrame „state”
şi „activity” (tranziţii şi roluri ale obiectelor), ce vor fi urmate în
etapa de proiectare de diagrame „components” şi „deployment”
(implementare şi configurare efectivă).
114
Fiecare metodologie deține instrumente software adecvate, pentru
asistarea experţilor umani în modelarea soluţiei şi a programului sau
sistemului de informatizare. Prin aceste instrumente se pot elabora
sistematic structuri de obiecte conceptuale, care se reprezintă ca
diagrame şi scheme bloc fizice şi funcţionale ale viitoarei aplicaţii.
Persoanele implicate în această etapă: analişti în domeniul problemei
(adică specialişti cu experienţă şi suficiente cunoştinţe pentru a
elabora o soluţie viabilă şi în detaliu), analişti de sistem (adică
informaticieni cu experienţă în tipul de probleme din care face parte
problema de rezolvat), beneficiarul şi utilizatori obişnuiţi pentru
sistemul existent (care dau detalii asupra situaţiei existente şi
problemei de rezolvat, pretind un mod de funcţionare a aplicaţiei şi un
anume mod de prezentare a rezultatelor). Documentele care rezultă
din această etapă sunt „Specificaţia de proiectare” (descrierea de
principiu a informaţiilor şi prelucrărilor) şi „Strategia de testare” (care
prevede modurile în care se vor testa modulele şi întreg ansamblul,
precum şi datele de test – cu rezultatele aşteptate).
Proiectarea aplicaţiei
Etapa de proiectare („design”) se referă la structurarea efectivă a
blocurilor software cu indicarea rolurilor, interacţiunilor şi resurselor
fiecăruia. Activitatea de proiectare implică abstractizarea faptelor ce
au rezultat în etapa de analiză, pentru modelarea informaţiilor şi
acţiunilor necesare rezolvării problemei date. Procedura de
abstractizare elimină faptele irelevante şi le accentuează pe cele
esenţiale, iar procedura de modelare reprezintă informaţii şi acţiuni
într-un mod specific. Modelul obţinut priveşte doar aspectele care se
doresc rezolvate ale problemei (nu toate aspectele acesteia) şi va
conţine obiecte cu (şi asupra cărora) se acţionează. Pentru un produs
informatic, modelul poate fi formal (adică exprimat prin simboluri, de
exemplu prin formule) sau procedural (adică exprimat prin cuvinte ca
o reţetă de bucătărie).
Metodologia aplicată la etapa de proiectare este puternic dependentă
de modalitatea de programare. De aceea, etapele de proiectare şi
implementare sunt strâns legate, uneori chiar suprapuse iar această
legătură provine din modul cum este gândită, chiar de la etapa de
115
proiectare, realizarea efectivă (implementarea) aplicaţiei pe întregul ei
şi pe fiecare program în parte. Între metodologii se amintesc două mai
importante: proiectarea obiectuală (pentru aplicaţii în care se pot
discrimina obiecte din lumea reală ce sunt manipulate de aplicaţie) –
cu utilizare mai frecventă în domenii tehnice şi care simulează
realitatea și proiectarea cu baze de date (pentru aplicaţii de gestiune a
resurselor de orice fel) – cu utilizare frecventă în economie şi
administraţie.
Pe lângă partea software, la această etapă se proiectează şi structura
de echipament, privind: structura de calculatoare şi configuraţia
fiecăruia, structura de comunicaţie (reţea locală, echipamente de reţea,
conectarea la Internet) și structura de periferice partajate (adică
folosite în comun) de mai mulţi utilizatori (imprimante sau mese de
desen, interfeţe de proces pentru culegerea datelor sau comanda din /
către instalaţii). Se proiectează tipul şi configuraţia sistemelor de
operare - strâns legat de structura de echipamente şi de scopurile
aplicaţiei.
Persoanele implicate în această etapă sunt: analişti de sistem
(informaticieni cu pregătire specială în folosirea unui instrument de
proiectare şi implementare a programelor), ingineri hardware şi
ingineri de sistem (care proiectează structura de echipamente şi
programe), conducători de proiect (specialişti în domeniul ţintă sau în
informatică, care cunosc modul de organizare a activităţilor complexe
precum şi domeniul ţintă). Documentele elaborate la finalul etapei
sunt „Specificaţia de programare” (indică structura de module şi
acţiuni apoi datele necesare fiecărui program), „Planificarea lucrărilor
de implementare”și „Inventarul resurselor necesare” (financiare,
umane şi materiale) pentru realizarea noului program sau sistem de
informatizare,
Implementarea şi testarea aplicaţiei
Activitatea esenţială a acestei etape este programarea. Se vorbeşte
adesea de „programarea calculatoarelor” subînţelegând toate
activităţile implicate de aceasta, poate fiindcă programarea este
activitatea prin care efectiv echipamentul de calcul devine funcţional
(fără programe este „fier mort”). În sine, programarea constă în
116
codificarea operaţiunilor pe care calculatorul trebuie să le execute
către atingerea unui scop dat (calcul matematic, retuşarea şi afişarea
unei imagini, sau mişcarea braţului unui robot). După cum se constată,
programarea este doar partea de realizare efectivă a programului, care
însă necesită multe alte activităţi anterioare şi posterioare.
Fazele realizării unui program sunt:
(I) Înscrierea programului sursă – prin care se descriu acţiuni
(folosind un limbaj de programare) într-un text scris cu un editor de
texte. Atât limbajul cât şi modul de realizare a programului sursă sunt
apropiate obişnuinţelor umane (cum spre exemplu, o reţetă de
bucătărie este înscrisă ca text, într-o formă simplificată, uneori chiar
codificată).
(II) Compilarea – prin care textul sursă este „tradus” din limbajul
de programare (exprimat prin cuvinte – ) în limbajul maşinii (exprimat
prin coduri binare). Traducerea este realizată de un program special
pentru limbajul de programare ales – numit compilator, iar rezultatul
este codul obiect al programului.
(III) Editarea legăturilor – prin care în codul obiect se inserează
subprograme, preluate din biblioteci de subprograme, ce descriu
prelucrări uzuale, pe care programatorul le foloseşte fără a mai scrie
cod (fără a scrie programul ci doar a-l apela din bibliotecă). Astfel,
prelucrări care au fost doar amintite în programul sursă se înscriu
efectiv în codul obiect. Rezultatul fazei este codul executabil al
programului, adică forma binară ce poate fi încărcată direct în
memoria de lucru şi poate executa operaţiunile programate.
Cuvintele, ce exprimă comenzi, se combină în limbajul de programare
respectând o sintaxă strictă (ca reguli gramaticale); programatorul
poate greşi (din neatenţie, din necunoaștere), astfel că textul sursă
fiind greşit este posibil să nu poată fi interpretat de calculator. În acest
caz, este necesară:
(IV) depanarea programului – care constă în modificarea textului
sursă spre a fi eliminate erorile. Identificarea erorilor şi apoi
verificarea programului se realizează cu ajutorul unui depanator
(program de asistare a programatorului în activitatea de verificare a
117
corectitudinii programului). Corectarea efectivă a erorilor constă în
înscrierea corectă a cuvintelor sau a combinaţiilor de cuvinte în textul
sursă.
Depanatorul localizează erorile din program şi face chiar sugestii de
corectură, însă aceste erori sunt legate doar de „modul de exprimare”
în limbajul dat, nu de modul cum a fost rezolvată problema (soluţia
corectă sau nu); eliminarea erorilor de soluţionare a problemei se
poate face doar prin executarea de teste pe date şi în situaţii reale,
urmată de compararea rezultatelor cu cele aşteptate şi apoi
modificarea algoritmilor de prelucrare.
În general, editarea, compilarea şi depanarea programului se
realizează folosind un mediu integrat (un program complex cu toate
aceste instrumente), spre a spori eficienţa muncii de programare.
Astfel de instrumente sunt „mediile de programare” sau
„instrumentele de inginerie software” CASE. Scrierea efectivă a
programului se numeşte codificare. Această operaţiune complexă nu
se realizează doar înscriind textul în limbajul de programare ales ci se
includ date, obiecte sau prelucrări „prefabricate” din biblioteci ale
mediilor de programare utilizate pentru scrierea aplicaţiei. În variante
mai evoluate (utilizând instrumente CASE sau instrumente RAD), se
pot realiza programe prin „plasarea” unor obiecte virtuale ce
reprezintă date şi acţiuni necesare rezolvării diferitor aspecte ale
problemei (introducere de date, prelucrare, afişare).
Aplicaţia se implementează modular – fiecare subprogram rezultat la
proiectare (şi înscris în „Specificaţia de programare”) este codificat şi
testat separat. La realizarea programelor se respectă principii de
inginerie a programării, în scopul depanării facile şi apoi a dezvoltării
coerente a fiecărui modul şi aplicaţie. După ce modulele sunt
verificate, se face integrarea aplicaţiei, adică se instalează toate
piesele software şi hardware ale aplicaţiei. Se face testarea ansamblul
în condiţii de laborator şi se emit documentele de conformitate cu
cerinţele (dacă sunt respectate sau nu, care din cerinţe nu au fost
satisfăcute şi de ce).
118
Editare Program Compilare Program
program Sursă program Obiect
Editare Program
Legături Exec.
Depanare
program
Biblio.
programe
124
9. FORTRAN (FORmula TRANslation) este primul limbaj de nivel
înalt, creat de John Backus pentru a asigura independenţa de maşină,
utilizat mai ales pentru calcule ştiinţifice. Ca şi alte limbaje de
programare a evoluat, având şi facilităţi visuale.
10. COBOL (COmmon Business-Oriented Language) dezvoltat în
anii ’60 şi larg folosit pentru aplicaţii de gestiune economică şi
administrativă. Este un limbaj procedural, compilat, care în primele
versiuni era un bun exemplu de limbaj nestructurat; ulterior a fost
perfecţionat dar pe parcurs este eliminat de către mediile de baze de
date – instrumente simple şi puternice pentru aplicaţii de gestiune.
11. PERL (Practical Extraction and Report Language) este un
limbaj scriptural creat de Larry Wall ca o combinaţie între limbaj de
comandă (v. Bourne Shell) şi C, pentru extragerea informaţiei din
texte şi generarea de rapoarte. Este folosit în special pentru generare
pagini HTML, pentru programe de lucru pe servere Web (programe
CGI), pentru animaţie sau interacţiune cu utilizatorul prin formulare în
pagini web.
12. PHP este un limbaj scriptural similar cu PERL, ce poate fi
înglobat în codul HTML al paginilor Web. Este folosit pentru
aplicaţiile pe partea server web, pentru construirea paginilor web
dintr-o bază de date SQL (Oracle, MySQL). Prezintă una din cele mai
mari biblioteci „open-source” (cod public şi liber de a fi utilizat,
modificat sau distribuit).
13. LISP (LISt Processing) este primul limbaj funcţional, fiind
dezvoltat de John McCarthy de la MIT în anii ’50. de orientat pe
structuri de date (liste). Este folosit pentru aplicaţii de Inteligenţă
Artificială, în probleme ce implică raţionament calitativ sau multe date
eterogene – potenţial eronate dar care trebuie refăcute, probleme de
planificare şi antrenare (învăţare) a maşinii.
14. Prolog este un limbaj care exprimă premize (fapte de start într-
un raţionament – denumită „logica”), prin care interpretorul Prolog
(denumit „control”) încearcă să demonstreze o propoziţie declarată
peste premize.
125
15. Asamblare este limbajul maşinii într-o notaţie inteligibilă
omului. La compilarea unui program scris în limbaj de asamblare,
conversia se face direct în coduri binare, fiindcă instrucţiunile
limbajului se referă la acţiuni elementare ale procesorului (încărcare
de regiştri, salturi condiţionate, operaţii pe bit). Este utilizat pentru
scrierea programelor de control direct al perifericelor sau pentru
operaţii legate de echipament.
16. Bourne Shell este un limbaj scriptural care permite crearea de
fişiere de comenzi (în loturi - „batch”) pentru sistemul de operare
UNIX (alte limbaje similare sunt sh, bash, ksh, csh). În general, orice
sistem de operare prezintă limbajele de comandă (limbaje shell),
necesare lucrului imediat cu calculatorul, comenzile fiind executate de
un „interpretor de comenzi” furnizat cu sistemul de operare.
Se face observaţia că limbajul de „Asamblare”, înscris în lista de mai
sus, este o categorie de limbaje nu un limbaj anume, însă datorită
extinderii calculatoarelor de tip IBM PC se subînţelege, în general, ca
pentru limbajul familiei de procesoare Intel 80x86; există limbaje de
asamblare pentru diferite procesoare (de la diferiţi producători şi
pentru diferite generaţii): Intel 80x86, Motorola 680x0, PowerPC, etc.
Utilizarea unui limbaj de programare depinde de scopul şi tipul
programării (indicate succint în inventarul de mai sus) dar şi de
obişnuinţa sau preferinţele programatorului.
Clasificări ale limbajelor de programare
O primă clasificare a limbajelor se poate face după paradigma de
programare – adică după ideea generală de soluţionare a problemei.
Astfel, se deosebesc:
a. Programare procedurală – priveşte datele şi prelucrările ca entităţi
distincte (declarate separat) şi foloseşte conceptele de modul pentru
prelucrare şi orizont de vizibilitate pentru variabile. Un modul este
format din unul sau mai multe subprograme iar o variabilă (dată
declarată de anumit tip) este vizibilă (accesibilă) în cadrul unui modul
dar nu şi din afara sa; modulele pot fi preluate din biblioteci de
subprograme predefinite (prefabricate de producătorul
126
compilatorului). Programarea procedurală este realizată prin limbajele
C, Pascal, Delphi, FORTRAN, COBOL.
b. Programare imperativă – în care se furnizează calculatorului o listă
de instrucţiuni şi un context de memorie (considerat drept starea
programului la un moment dat) care este modificat printr-o comandă
în alt context (altă stare, cu alte valori de variabile în memorie).
Funcţionarea procesorului este de fapt imperativă, el urmărind pas cu
pas lista de instrucţiuni din program. Limbajele de programare uzuale
sunt imperative (FORTRAN, C, Perl), cele obiectuale (C++, Java)
adăugând doar noi facilităţi de lucru.
c. Programarea declarativă – diferă de cea imperativă prin faptul că
în program se descrie pentru calculator un set de condiţii, lăsând apoi
calculatorului sarcina să le satisfacă. În programarea declarativă, se
descriu relaţii între variabile în termeni de „reguli de inferenţă” (reguli
de obţinere a unor noi valori din cele existente). Calculatorul
(înţelegând aici un program complex de tipul unui motor de inferenţă
sau unui mediu de baze de date ce rulează pe calculator) aplică un
algoritm fixat şi interpretează relaţiile spre a produce un rezultat.
Limbaje uzuale din categoria declarativă sunt Prolog şi SQL.
d. Programarea funcţională – consideră prelucrarea drept evaluarea
funcţiilor matematice. Expresiile, în această paradigmă, sunt formate
din funcţii ce combină valori iar execuţia nu implică o secvenţă de
comenzi fiindcă programul defineşte CE şi nu CUM se prelucrează
datele. De fapt limbajele de programare nu pot fi pur funcţionale
pentru că rulează pe o maşină în paradigmă imperativă; se poate
aminti Lisp ca limbaj funcţional, în care prelucrările sunt structurate
similar structurării datelor (de obicei în liste).
O clasificare a limbajelor de programare des întâlnită, consideră
nivelul limbajului, relativ apropiat (sau depărtat) de formularea
limbajului maşinii (mai precis al procesorului, ca dispozitiv electronic,
binar).
Tabel 6. Clasificare a limbajelor de programare după nivel
Nivelul Caracteristici ale limbajului Exemple
limbajului uzuale
127
jos Instrucţiunile sunt apropiate de limbajul Asamblare
maşinii, fiind translatate direct în
instrucţiuni maşină de către asamblor (un
compilator simplu)
mediu Instrucţiunile sunt transpuse în limbaj de C, BASIC,
asamblare prin compilator, oferind în plus Pascal,
biblioteci şi servicii de configurare a COBOL
resurselor maşinii la execuţie
înalt – compilat Instrucţiunile sunt transpuse într-un cod Java, Visual
intermediar folosind un interpretor, Basic, Visual C
permiţând astfel controlul codului şi
portabilitatea sa pe orice maşină
înalt - scriptural Instrucţiunile pe linii de program sunt Bourne Shell,
interpretate şi executate fiecare în parte; HTML, Perl,
liniile se pot grupa în loturi şi executate ca
„fişier (text) de comandă”
foarte înalt Structura limbajului este apropiată SQL
limbajului uman, descrie o metodă de
implementare; sunt limbaje declarative sau
pentru Inteligenţa Artificială
128
realizarea codului ce va fi executat după traducerea sa în limbajul
maşină prin:
Compilare –traducerea are loc pentru întregul set de comenzi
(descrise ca un tot unitar, într-un „program”). Limbaje din această
categorie sunt C, C++, Java, Pascal, BASIC, FORTRAN, COBOL.
Interpretare – traducerea are loc linie cu linie (câte o comandă la un
moment dat), de la prima până la ultima din setul dat. Limbaje din
această categorie se numesc limbaje scripturale, iar textul cu
comenzile se numeşte script, „fişier de comenzi” sau „lot de comenzi”
(în engleză „batch”). Exemple de limbaje script sunt HTML, Perl,
PHP, limbaje de comandă ale sistemului de operare („shell” – Bourne
Shell, bash, csh).
Compilarea este traducerea (translatarea) unui program în limbaj de
nivel înalt, numit program sursă, într-un program în cod maşină, numit
program obiect.
129
programul. Se spune că programul sursă este portabil, dar nu şi
programul obiect.
Unele limbaje de programare, cum sunt Fortran, Cobol, Pascal, C,
C++ şi altele, sunt compilate. Avantaj: executarea programului obiect
se face cu viteza mare, respectiv cu viteza de lucru a procesorului
calculatorului pe care se execută.
Alte limbaje, cum sunt Basic, Python, Pearl, Ruby şi altele sunt
interpretate. Avantajul este că pot fi utilizate în regim interactiv:
imediat ce utilizatorul a introdus o instrucţiune de la consolă, ea poate
fi executată de către interpretor.
Există limbaje care pot fi executate în ambele moduri dar, de obicei,
au specific doar unul din ele. Limbajele script pot coexista pe aceeaşi
maşină; astfel, pentru selecţia tipului de limbaj efectiv utilizat, prima
linie din lotul de comenzi script conţine o directivă a sistemului de
operare ce indică în clar limbajul la care se referă fişierul de comenzi.
Avantajul compilatoarelor este acela că programul în cod executabil
poate fi rulat direct pe maşină, imediat după încărcarea lui în memorie
de pe suportul extern (disc).
Un caz special îl constituie limbajul Java, care este interpretat după ce
este „compilat” în aşa-numitul „cod de octeţi” numit bytecode, care
este apoi interpretat pe orice maşină ce prezintă maşina virtuală Java
(„Java Virtual Machine”). Acest program este executat de către un
interpretor, care converteşte instrucţiunile maşinii virtuale Java în
instrucţiuni ale procesorului calculatorului pe care se execută
programul. Avantaj: bytecode-ul poate fi executat pe orice calculator
pe care există JVM (portabilitate).
130
interpretată instrucţiunea respectivă. Este evident că, atunci când se
concepe un program, este necesar să se acorde atenţie atât sintacticii,
cât și semanticii.
Dacă într-un program nu sunt respectate regulile de sintaxă,
compilatorul sau interpretorul sesizează anomaliile şi le semnalează
sub forma unor mesaje de erori de sintaxă. În astfel de situații, codul
de octeţi al programului respectiv nu va mai fi generat. Programatorul
trebuie sa remedieze erorile de sintaxă semnalate şi să ceară repetarea
compilării sau, în cazul regimului interactiv, să reintroducă
instrucţiunea pentru interpretare. Acest procedeu se repetă, până când
nu vor mai fi constatate erori de sintaxă.
Insistăm asupra faptului că la compilare sau interpretare sunt
semnalate numai erorile de sintaxă. Dacă un program este corect
sintactic, dar este conceput greşit, va fi executat de către calculator,
dar rezultatul obţinut nu va fi cel scontat. Corectitudinea conceperii
programului este în întregime responsabilitatea programatorului.
131
necesare şi pentru software modalităţi de măsurare (metrici) și
evaluare a performanţelor şi de aici a calităţii produselor program.
Ingineria programării este abordarea sistematică, disciplinată şi
cuantificată a dezvoltării, operării şi întreţinerii produselor program.
Definiţia de mai sus subliniază că această abordare este o aplicare a
ingineriei în programare (de aici şi numele): aplicând tehnicile şi
practicile de inginerie a programării se creează programe de bună
calitate, cu mare productivitate, cu întreţinere şi dezvoltare facile.
Dezideratul ingineriei programării este satisfacerea cerinţelor
clientului produsului software, respectând restricţii de calitate, cost şi
durată, prin:
i) utilizarea unei metodologii clare începând cu faza de analiză, apoi
cea de proiectare şi de implementare a programelor;
ii) conducerea activităţilor, desfăşurate pe parcursul proiectul,
conform unor principii de management stricte („project
management”);
iii) analiza şi evaluarea performanţelor codului, a structurii de module,
funcţionării şi utilizării produsului;
iv) documentarea clară şi completă a funcţionării şi utilizării
produsului software;
v) urmărirea produsului livrat la beneficiari şi pe întreaga durată a
ciclului său de viaţă, pentru actualizarea cu versiunile noi şi
îmbunătăţite.
Factori de performanţă ale produselor software sunt:
funcţionalitatea (în ce măsură produsul îndeplineşte funcţiile
propuse), uşurinţa în utilizare (simplitatea de învăţare şi operare),
fiabilitatea (funcţionarea corectă şi robustă – tolerantă la operare sau
date greşite), eficienţa (privind resurse utilizate – memorie puţină,
viteză de execuţie), flexibilitate (uşurinţa de adaptare şi modificare
după cerinţe), portabilitate (posibilitatea de transfer pe alte maşini şi
sisteme de operare, respectarea standardelor), întreţinerea comodă
(acces la cod sursă şi compilare, modificare uşoară).
132
Ingineria programării oferă metrici (adică sisteme de măsurare) de
evaluare pentru:
produs – privind proiectarea, codul sursă şi cazurile de test ale
programului;
procesul de dezvoltare – privind activităţile de analiză,
proiectare şi programare;
persoanele implicate în proiect – privind eficienţa individuală a
proiectanţilor, programatorilor şi testorilor.
Pentru aplicaţii mari, organizarea proiectului implică un şef de proiect
(contribuie la proiectare şi dezvoltare în proporţie de 30%, distribuie
sarcini şi coordonează coechipierii), adjunct (planifică şi coordonează
programarea şi testele, asigură calitatea produsului), secretar de
proiect (execută sarcini administrative privind protocoale cu
beneficiarul, biblioteci, gestiunea termenelor şi costurilor),
programatori / dezvoltatori (specialişti în medii şi limbaje de
programare sau în instrumente de dezvoltare software).
Analiza, proiectarea şi implementarea respectă o metodologie
specifică (uzual din categoriile „structurată” sau „obiectuală”), iar
testarea se execută atât în condiţii de laborator cât şi pe cazuri reale.
Întreţinerea aplicaţiei este foarte importantă, aşa cum reiese din
proporţia uzuală a costurilor pentru software: Analiza – 10%,
Proiectarea – 10%, Implementarea – 10%, Testarea – 20%,
Întreţinerea – 50%.
O importanţă deosebită o are documentaţia, care trebuie întocmită pe
parcursul proiectului la fiecare etapă. Documentaţia se adresează
dezvoltatorilor, utilizatorilor şi personalului de întreţinere.
Documentaţia ce trebuie întocmită a fost deja amintită la fazele
ciclului de viaţă ale programului. De remarcat că programele trebuie
amplu documentate (comentate) chiar în codul sursă, unde algoritmul
trebuie explicat.
133
17. Tehnici şi instrumente de realizare a programelor
134
iii) Proiectarea / programarea orientată obiect – în care aplicaţia se
construieşte din obiecte care încapsulează proprietăţi şi metode –
adică informaţii (date) şi prelucrări (operaţii asupra datelor). În acest
mod, la analiză şi proiectare se concep clase de obiecte similare celor
din lumea reală a problemei de rezolvat, cu „modul lor de utilizare”,
iar rezolvarea problemei se face prin manipularea obiectelor create la
implementare. Abordarea se poate compara cu viziunea utilizatorului
de televizoare, în care clasa de obiecte „televizor” trebuie să deţină
ecran şi legătură prin cablu (ca informaţii - date) şi butoane de
acţionare pornit/oprit, reglaj volum, comutare canale, etc. Evident,
rămâne în sarcina producătorului să realizeze linia de fabricaţie a
clasei de televizoare (acesta este programatorul) şi apoi magazinului
să vândă utilizatorului un televizor anume (acesta este declararea unui
obiect a de tip „televizor” aşa cum se declară o dată iniţializată).
iv) Proiectarea / programarea cu componente – în care aplicaţia se
construieşte prin componente gata fabricate. Abordarea este similară
construirii televizorului din circuite integrate specializate, care doar se
asamblează în modul dorit spre a produce un televizor CRT, TFT sau
LED, cu teletext sau fără etc. Aşa cum componentele fizice vin de la
fabrică, componentele software vin de la producători software şi sunt
utilizate de programatori pentru a crea produsul dorit.
La ultimele două abordări, proiectarea decurge „bottom-up” (de la
mic la mare) adică se face inventarul de obiecte sau componente la
dispoziţie şi apoi se „construiesc” aplicaţii prin asamblarea acestora.
Datele şi programele nu mai au o delimitare evidentă: pentru
programator datele pot deveni programe şi programele – date.
Continuând similitudinea cu producţia de televizoare, generaţia iii)
reprezintă crearea de televizoare artizanale – fiecare producător
realizează televizoare în tehnologie proprie, pe când cu iv)
producătorii folosesc componente standard pentru părţi de televizor,
oferind înfăţişare şi performanţe speciale produselor proprii faţă de ale
altor producători. Ultimele două generaţii permit şi stimulează
industria software, fiindcă proiectantul şi programatorul nu mai sunt
implicaţi în atâtea amănunte de lucru la fiecare program în parte
(amănunte pe care nu le pot stăpâni perfect şi nici nu au productivitate
135
dacă sunt multe sau necesită mulţi coechipieri), ci se pot orienta pe
producţie, pe nevoile clienţilor şi pe cererea pieţei. Proiectantul şi
programatorul au „în spate” o industrie de componente pe care trebuie
doar să ştie să le asambleze pentru a face un produs la comandă.
v) Proiectarea / programarea cu agenţi – în care aplicaţia (ca agent)
evoluează de sine stătător şi comunică cu alte aplicaţii (alţi agenţi)
pentru a-şi îndeplini misiunea. Spre exemplu, există programe agent
de căutare care pot „călători” prin Internet, se pot stabili la anumite
site-uri şi comunica cu alţi agenţi spre a găsi informaţiile pentru care
au fost creaţi şi lansaţi în spaţiul cibernetic.
În timp ce pentru primele patru generaţii aplicaţia se lansa şi se
executa prin operarea directă a omului la program – adică iniţiativa
aparţine omului, generaţia v) introduce programe cu iniţiativă, adică
programe care după lansare au existenţă şi acţiuni independente de
omul în contul căruia execută prelucrările. Programul-agent se poate
multiplica, comunică cu alţi agenţi şi cu „baza”, formează grupuri şi
chiar stabileşte relaţii sociale şi limbaje de comunicare între agenţi; se
poate spune că din „obiecte” informatice aceste tipuri de date devin
„fiinţe” informatice.
La inventarul abordărilor prezentate mai sus pentru proiectarea
aplicaţiilor, este necesar să se adauge încă două – care nu aduc
metodologii conceptual noi ci doar specifice unor instrumente frecvent
folosite în realizarea aplicaţiilor:
vi) Proiectarea aplicaţiilor cu Baze de Date – în care datele se
structurează în tabele, adică mulţimi de articole. De fapt, un articol (ca
linie din tabel) reprezintă un obiect iar tabelul colecţia de obiecte de
acelaşi fel din problema de rezolvat – adică tabelul reprezintă o
entitate (o categorie conceptuală de obiecte). Structura de entităţi cu
relaţii între ele formează modelul problemei de rezolvat, iar aplicaţia
manipulează datele din tabele cu comenzi specifice acestei
reprezentări. Metodologiile de proiectare a aplicaţiilor cu baze de date
urmează etapei de analiză pentru aceste tip de aplicaţii, pentru care se
reamintesc două metodologii MERISE şi SSADM. Proiectarea datelor
şi prelucrărilor se realizează separat – datele ca tabele iar prelucrările
136
ca operaţii cu acestea, vizând direct instrumentele software cu care se
vor realiza aplicaţiile.
vii) Proiectarea aplicaţiilor Web (servicii Internet) – în care datele
sunt, de obicei, pagini cu informaţii ce trebuie vizionate de utilizatori
prin Internet sau datele provin de la utilizatori prin formulare
completate de către aceştia, iar prelucrările sunt operaţii de navigare,
afişare şi actualizare a datelor (stocate adesea în baze de date).
Proiectarea aplicaţiilor Web se bazează pe arhitectura Client-Server,
pe principii de marketing, impact estetic şi emoţional, precum şi pe
utilizarea sistematică a instrumentelor de proiectare şi editare de
pagini web (cu imagini, formulare, animaţii şi hiperlegături)
Ultimele două abordări de proiectare sunt preferate de către mulţi
producători de produse software (firme, profesionişti în informatică
sau chiar practicieni în informatică proveniţi din alte domenii) pentru
că cele mai multe aplicaţii privesc două activităţi umane foarte
frecvente:
gestiunea de resurse – fie ele bunuri de consum sau industriale,
resurse umane sau financiare, mijloace de transport sau documente,
care se pot stoca şi manipula folosind baze de date;
comunicarea informaţiilor şi interacţiunea prin Internet între
persoane, între firme şi persoane (B2C – „Business to Client”) sau
între firme (B2B – „Business to Business”) – pentru activităţi
economice, sociale, administrative sau educaţionale.
Din aceste abordări au rezultat tehnici şi instrumente specifice de
programare şi de realizare a aplicaţiilor, cu influenţe în toate etapele
ciclului de viaţă al programului.
137
Programarea orientată obiect (POO) se bazează pe clase, ca
abstractizări ce reunesc date şi prelucrări posibile asupra lor. Un
obiect realizat (instanţiat) într-o clasă dată, prezintă anumite valori
pentru date (identificate ca proprietăţi ale obiectului) şi o anume
comportare (identificată prin metode de modificare a proprietăţilor).
POO vizează, în principal, următoarele aspecte:
crearea şi manipularea de obiecte – prin care se modularizează
acţiunile programului încă din faza de analiză, atunci când se
identifică obiectele în problema reală;
refolosirea codului – prin care obiecte odată codificate se pot
reutiliza ori de câte ori este necesar, fiind grupate în colecţii (denumite
biblioteci sau pachete).
Aceste deziderate se obţin ca urmare a caracteristicilor programării
obiectuale, cele mai importante fiind:
a. Abstractizarea – prin care un obiect devine modelul unui „actor” ce
prezintă o stare (şi o poate modifica), execută acţiuni sau comunică cu
alte obiecte din sistem.
b. Încapsularea – prin care accesul la proprietăţile obiectului se poate
face numai prin metodele definite. Obiectul prezintă o interfaţă către
alte obiecte, prin care se specifică modalităţile sale de manipulare.
c. Moştenirea – prin care o clasă de obiecte poate fi baza altor clase
(denumite clase derivate), proprietăţi şi metode esenţiale ale primei
fiind preluate în întregime de celelalte. Se realizează astfel
specializarea claselor (şi obiectelor).
d. Polimorfismul – prin care o metodă a unui obiect din clasă derivată
produce o comportare diferită faţă de cea a clasei de bază.
138
În sine, o aplicaţie cuprinde un program principal care are rol de
„dispecer” pentru prelucrările efective ale aplicaţiei. Lansarea
aplicaţiei se realizează la iniţiativa utilizatorului, care înscrie o
comandă (în forma text – linie comandă) sau accesează o pictogramă
într-o interfaţă grafică. Execuţia aplicaţiei începe, în general, cu
prezentarea unei interfeţe de interacţiune cu omul (printr-un
interpretor de comenzi sau meniu). De obicei, o aplicaţie este un
program compilat şi stocat în forma executabilă, fiind lansat (adică
încărcat în memoria de lucru şi executat pe întreg lotul de instrucţiuni)
la iniţiativa utilizatorului.
Structura generică a unei aplicaţii cuprinde două părţi generice:
colecţiile de date („data” - adică valori cu care se lucrează) şi logica
de prelucrare („business logic” - adică acţiunile asupra datelor). De
exemplu, o aplicaţie bancară conţine o parte privitoare la conturi şi
valorile lor, o parte privitoare la operaţiuni de transfer între conturi.
Aplicaţii de Baze de Date
O categorie specială de aplicaţii sunt create şi funcţionează prin
intermediul Sistemelor de Gestiune a Bazelor de Date. Aceste aplicaţii
organizează datele în structuri de tip articol care apoi sunt grupate în
„tabele” ce pot fi stocate ca fişiere (pe suport extern – disc). Pentru
prelucrarea datelor, se folosesc programe scrise în limbaje proprii
SGBD sau în limbajul standard SQL. Conceptual, o aplicaţie cu baze
de date manipulează „obiecte” de tipurile:
tabel – structura pe linii (articole) şi coloane (câmpuri ale
articolelor) ce stochează datele, cu mijloace de modificare şi control a
valorilor acestora;
interogare – exprimarea cererii de extragere, după condiţii impuse, a
unui set de date din unul sau mai multe tabele, folosind un limbaj (de
ex. SQL) sau o grilă (un tabel generic prin care cererea este ilustrată
cu un exemplu);
raport – document text generat automat, conţinând date sintetice şi
analitice obţinute din tabele sau interogări, prezentate în mod
profesionist (cu antet, subsol, etc.);
139
formular – machetă de încărcare şi consultare a datelor, pentru
interacţiunea comodă cu utilizatorul (în mod grafic, prin câmpuri şi
indicaţii pe loc);
modul – secţiune de program (scris în limbajul de manipulare a
datelor) care realizează prelucrări complexe, eventual combinaţii de
interogări, formulare şi rapoarte generate conform logicii de
prelucrare a aplicaţiei.
Programele sunt interpretate sau compilate în cod intermediar, astfel
că execuţia lor nu poate avea loc decât în prezenţa mediului de baze de
date (SGBD) care este rezident în memorie şi coordonează toate
acţiunile din program.
O bază de date este constituită din mai multe tabele, cu legături între
ele, pe lângă care se prevăd module de prelucrare specifice aplicaţiei
vizate. Cele mai uzuale aplicaţii cu baze de date privesc gestiunea
resurselor într-un domeniu dat: contabil, financiar-bancar, mijloace
fixe, stocuri (magazii sau magazine), sisteme de vânzări, resurse
umane. Multe aplicaţii în Internet au în fundal un server de baze de
date (maşinile de căutare, magazine virtuale etc.).
Aplicaţii client-server
Există aplicaţii în reţele de calculatoare care trebuie să asigure
transferul de date şi prelucrarea acestora la distanţă. Datele sunt
stocate la un punct central, pe un calculator care le gestionează printr-
un program denumit server pentru că oferă servicii (de acces şi
prelucrare date) la distanță, rulând în permanenţă şi aşteptând cereri de
la utilizatori. Pe maşina locală a fiecărui utilizator, există un program
denumit client prin intermediul căruia utilizatorul poate solicita
servicii serverului distant; datele „se descarcă” („download”) de la
server pe maşina utilizatorului, unde sunt prelucrate local şi afişate
(prin interfaţa utilizator) de către programul client. Structura de
aplicaţie cu două părţi este denumită, în jargonul informatic, 2-tier.
Primele aplicaţii în reţea realizau toate prelucrările pe o maşină
centrală (numită gazdă), iar maşina locală era folosită doar pentru
afişare text şi preluarea datelor de la utilizator (terminal), adică aveau
„o parte” 1-tier. Avantajele modului de lucru 2-tier provin din faptul
140
că datele pot fi gestionate şi asigurate mai bine într-un singur punct
(nu distribuite în mai multe puncte), dar prelucrările nu încarcă doar
maşina centrală, ci şi maşinile locale (ele fiind mai multe şi încărcate
temporar). În această structură, partea client conţine programele de
prelucrare locală şi de prezentare a rezultatelor către utilizator,
complementar părţii server – care asigură prelucrări de acces şi
transfer a datelor centralizate. Cele două piese software, server şi
client, conlucrează şi comunică prin intermediul unui protocol (ca un
limbaj cu set de reguli pentru formularea şi servirea cererilor), iar
comunicaţia fizică se realizează prin infrastructura de comunicaţie
(reţea de calculatoare).
Un exemplu uzual de aplicaţie client-server este WWW, în care partea
server găzduieşte paginile web (şi programele de interacţiune cu
utilizatorul) iar partea client o constituie navigatorul Internet
(„browser” ca MS Internet Explorer, Mozilla Firefox, Safari sau
Google Chrome). Protocolul de comunicaţie între cele două piese
software server şi client este HTTP (HyperText Transfer Protocol) şi
apare indicat chiar în adresa de acces (URL) a serverului.
CLIENT SERVER
logica de logica de
prelucrare locală prelucrare centrală
interfaţa cu date stocate
utilizatorul structurat
Protocol şi infrastructură
de comunicaţie
141
CLIENT SERVER-P
logica de
prelucrare locală logica de
interfaţa cu prelucrare centrală
utilizatorul
SERVER-D1 SERVER-Dn-2
date stocate ... date stocate
structurat structurat
142
Miniaplicaţii
O categorie specială de program o constituia miniaplicaţia („applet”)
– ca program ce nu există de sine stătător, ci doar în cadrul unei (alte)
aplicaţii – de exemplu, o aplicaţie web cu pagini conţinând text şi
imagini. Miniaplicaţia „applet” poate rula doar când este lansată de un
eveniment extern – click pe o imagine, producând, spre exemplu,
animaţia unui obiect pe ecran. Miniaplicaţia „applet”, ca program, este
descărcată de pe maşina server pe maşina client şi rulează (de obicei
în mod interpretat) pe clientul web (navigatorul Internet).
Miniaplicaţia „applet”este un program script (adică scris într-un
limbaj scriptural) şi interpretat linie cu line din textul sursă, acţiunile
sale fiind astfel permanent controlate; din motive de securitate.
Miniaplicaţia „applet” nu are acces la sistemul de fişiere al maşinii
client, iar comunicaţia o poate realiza doar cu maşina server de pe care
provine.
Complementar miniaplicaţiilor „applet” există „servlet”, ce rulează pe
maşina server spre a asigura: acces securizat la baze de date, facilităţi
pe maşini de căutare în Internet, generarea de pagini web dinamice. Şi
acest tip de program se scrie în limbaj scriptural şi rulează interpretat,
în cadrul unei aplicaţii gazdă (de exemplu serverul web).
144
proprietară (de exemplu, cea pentru PlayStation a firmei Sony) sau
poate fi distribuită gratuit (cum este cea de la Microsoft Windows).
Sistemele de operare precum Windows şi Linux folosesc legarea
dinamică la încărcarea programului executabil („loadtime”).
Biblioteca de legare dinamică este uzual denumită prin acronimul
DLL (Dinamic Link Library) la Windows şi bibliotecă partajată
(„shared library”, ELF) la sisteme UNIX. Biblioteca conţine module
executabile pre-compilate şi este stocată pe disc ca fişier separat.
Atunci când mai multe aplicaţii utilizează aceeaşi bibliotecă dinamică,
sistemul de operare o poate încărca pentru fiecare în parte. Un mare
dezavantaj al legării dinamice este faptul că programele executabile
depind de existenţa fişierelor bibliotecă pe sistemul pe care rulează,
execuţia aplicaţiei întrerupându-se când aceste fişiere lipsesc, sunt
redenumite sau au altă versiune.
La unele sisteme de operare legarea dinamică are loc pe durata
execuţiei programului („runtime”), astfel: programul executabil
apelează o Interfaţă de Programare a Aplicaţiilor (API „Application
Programming Interface”), furnizând numele fişierului bibliotecă, un
număr de funcţie şi parametrii acesteia; sistemul de operare rezolvă
importul de fişier (îl încarcă în memorie) şi face apelul funcţiei
solicitate, în contul aplicaţiei. Datorită operaţiilor suplimentare
executate la fiecare apel de funcţie, se poate ca execuţia programului
să fie foarte lentă, deci să afecteze performanţa aplicaţiei. De aceea
legarea dinamică la momentul execuţiei nu este foarte utilizată în
sistemele de operare actuale.
Există diverse alte tipuri de biblioteci, cum sunt:
biblioteci pentru testare – care includ date de test dezvoltate specific
pentru un tip de aplicaţie anume, cu care se poate verifica comportarea
aplicaţiei în situaţii diverse – înainte de a fi dată în exploatare;
biblioteci grafice – care conţin diferite obiecte grafice gata de
utilizat la proiecte din diferite domenii;
biblioteci de programe pentru diferite limbaje (Perl, Java) şi diferite
utilizări (animaţii în pagini web, clase şi prelucrări uzuale).
145
Trebuie făcută o deosebire clară între „pachete de programe” (sau
clase) – ca biblioteci şi „pachete software” sau „pachete de aplicaţii” –
ca modalităţi de distribuţie şi instalare software achiziţionat de la
producători, de exemplu pachete pentru aplicaţii de birou – MS Office
al firmei Microsoft, sau Apache OpenOffice care provine din
StarOffice al firmei SUN.
Medii de programare
Dezvoltarea unui program scris într-un limbaj de programare ales,
decurge mai uşor dacă toate instrumentele necesare sunt integrate într-
unul singur, adică: editorul de text sursă, compilatorul, editorul de
legături şi chiar depanatorul. Un Mediu de Dezvoltare Integrat (IDE –
„Integrated Development Environment”) este un instrument software
care oferă aceste facilităţi, fiind utilizat atât la proiectarea cât şi la
implementarea aplicaţiei. Întrucât interfaţa grafică utilizator (GUI –
„Graphical User Interface”) este partea de program care necesită cel
mai mare efort de programare, acestor medii li s-a adăugat modalitatea
de proiectare şi implementare vizuală a interfeţei grafice. Prin
programarea vizuală, se plasează obiecte (de tipul fereastră, buton
grafic, casetă de text etc.) pe o suprafaţă de lucru – care, la final, va
deveni suprafaţa de lucru a utilizatorului, în fundal, mediul de
programare producând cod prin care rezolvă partea de program ce va
construi obiectele interfeţei. Exemple de medii (IDE) sunt popularele
Turbo C sa Turbo Pascal (ale firmei Borland), astăzi prezente şi pe
sistemul de operare Linux în mod gratuit. Medii moderne, cu
posibilităţi de lucru pentru obiecte diverse (grafice şi nu numai) sunt
MS Visual Basic şi MS Visual Studio (pentru mai multe limbaje –
C++, C#, Visual Basic), mediul Delphi (bazat pe limbajul Pascal),
medii pentru Java, etc.
Medii pentru Baze de Date
Pentru crearea şi utilizarea aplicaţiilor cu baze de date se folosesc
Sisteme de Gestiune a Bazelor de Date (SGBD, în engleză DBMS –
Data Base Management Systems). Acestea sunt medii integrate care
oferă instrumente de creare a obiectelor din aplicaţiile cu baze de date
– ca grile de proiectare tabele sau interogări, cu mijloace vizuale
pentru rapoarte şi formulare, dar şi limbaje de descriere şi manipulare
146
a datelor – prin care se creează tabele şi se formulează interogări.
SGBD este un mediu în care se creează obiectele de tip tabel,
interogare, formular, raport, iar aplicaţia – ca set de module program
scrise în limbajul de manipulare a datelor, care poate rula numai sub
mediul SGBD (adică în prezenţa acestuia – încărcat în memorie).
Fiindcă aplicaţiile cu baze de date sunt folosite de mai mulţi utilizatori
simultan, SGBD actuale oferă un nucleu de lucru multi-activităţi
(„multitasking”) şi multi-utilizator, precum şi mijloace de comunicare
în reţea – de obicei bazate pe servicii ale sistemului de operare de pe
maşina pe care mediul este încărcat, cu utilizare partajată (adică
simultană) a obiectelor SGBD. Aplicaţiile cu baze de date actuale (şi
de aici SGBD) integrează mecanisme de lucru în Internet, pentru
generare de pagini web, interogare, autentificare şi autorizare a
accesului.
SGBD sunt cele mai folosite medii de implementare a Sistemelor de
Informatizare – ca structuri complexe ce integrează aplicaţii în
multiple domenii de activitate din cadrul unei companii (de exemplu
conducere, gestiune, producţie).
Între produse SGBD actuale proprietare („closed source”) se numără:
Oracle, Informix, Microsoft Access, Microsoft SQL Server, iar cu cod
liber („open source”) MySQL, PostgreSQL, SQLite.
Instrumente de asistare a dezvoltării software
Complexitatea aplicaţiilor şi timpul scurt disponibil pentru a le
proiecta şi implementa, au impus noi modalităţi de dezvoltare
software. Conceptul de Dezvoltare Rapidă a Aplicaţiilor (RAD –
Rapid Application Development) este o soluţie productivă de
proiectare şi implementare rapidă a aplicaţiilor, bazată pe instrumente
vizuale şi asistenţi („wizards”). Programarea foloseşte limbaje de
generaţia a 4-a (denumite 4GL - în timp ce 3GL sunt Pascal, C,
COBOL) şi decurge ca o proiectare a aplicaţiei elaborată cu ajutorul
calculatorului; codul propriu-zis este generat de către mediul RAD, în
fundal. Exemple de instrumente RAD sunt Visual Basic şi similarul
lui Oracle PowerObjects, apoi C# de la Microsoft – ca limbaj, precum
şi medii de baze de date ca CA Visual Objects sau MS Visual FoxPro.
147
Într-un instrument RAD de tipul VisualBasic se folosesc programarea
orientată pe evenimente („event driven programming” – prin care
acţiunile din program sunt ataşate butoanelor grafice) şi componentele
puse la dispoziţie de către mediu.
O altă categorie de instrumente eficiente sunt instrumentele CASE
(„Computer Aided Software Engineering” sau „Computer Automated
System Engineering”), care oferă asistenţă în una sau mai multe etape
de dezvoltarea a produsului (sau întregului sistem) software dar în
special pentru etapele de analiză, proiectare şi testare. Există medii
CASE ce permit crearea modelelor apoi arhivarea şi utilizarea lor
partajată. Funcţiile instrumentelor CASE pot fi:
editarea sau alegerea de modele pentru interfeţe utilizator grafice
(GUI);
generarea automată de cod;
generarea automată a documentaţiei;
verificarea consistenţei între diagramele de proiectare şi modelele
rezultate;
asistenţă pe durata întregului ciclu de viaţă a programului.
Un instrument CASE rulează ca un program care conduce analistul
prin etapele obligatorii de dezvoltarea a produsului software, după o
metodologie de analiză / proiectare aleasă din mai multe – oferită de
instrument. Pentru aceasta, se pun la dispoziţie modele şi mijloace de
creare a modelelor pentru sistemul ţintă, cum sunt: Diagrame Entitate-
Relaţie, Diagrame de flux („data flow diagrams”), Diagrame Use-
Cases, apoi realizarea arhitecturii sistemului şi în final generarea
automată de cod (în limbaje de precum C++, Java) şi generarea
documentaţiei pentru sistemul proiectat. Un instrument CASE permite
„ingineria inversată” („reverse engineering”) adică obţinerea pe cale
inversă a modelelor de proiectare – dintr-un program deja
existent/realizat.
Dintre instrumentele CASE existente, se amintesc: Team-Trace (WA
Systems), Cradle (3SL) – pentru etapa de analiză a cerinţelor; CAE
Analyst (MacroProject), Cradle (3SL) – pentru analiză structurată;
148
Powerbuilder (Powersoft) – pentru aplicaţii client-server; DOORS
(Telelogic AB), Cradle (3SL) – pentru proiectarea de baze de date;
DocEXPRESS (Telelogic AB), Cradle (3SL) – pentru generare
automată de documentaţie; PacDesign (CGI Systems Inc.) Visual
Case (Artiso Corp) – pentru modelarea afacerilor.
149
18. Sisteme de operare şi programe utilitare
150
În general, operarea la un sistem de calcul se poate face în două
moduri:
regim comandă – (CLI - Command-line interface) în care comanda
se furnizează ca un cuvânt (sau o prescurtare), însoţită de parametri;
regim grafic/meniu – (GUI- Graphical user interface)în care
comanda şi parametrii se aleg grafic cu mouse-ul din liste şi subliste
de opţiuni (meniuri)-(TUI- Text user interface).
În regimul comandă, trebuie cunoscute cuvintele ce exprimă
comenzile şi parametrii, precum şi sintaxa și modul de combinare a
acestora – pentru ca o comandă furnizată să fie corect interpretată şi
executată; în plus, comanda trebuie tastată deci necesită un timp de
editare (eventual şi corectură). În regimul meniu, nu este necesară
cunoaşterea comenzilor ci doar recunoaşterea lor din listele de meniu,
iar execuţia lor se face prin selecţia din listă a opţiunii dorite (eventual
cu sub-opţiuni); în plus, se poate oferi şi ajutor pe loc („help”).
Sistemele de operare moderne au o interfaţă utilizator grafică şi
programe utilitare eficiente de lucru. În al doilea regim, se spune că un
programul este „prietenos”.
Sistemele de operarea moderne (cum sunt Windows ori LINUX şi alte
sisteme UNIX) oferă facilităţi multitasking – de execuţie a mai multor
programe simultan (sau activităţi – „tasks”), precum şi facilităţi multi-
utilizator – de lucru pentru mai mulţi utilizatori simultan, cu acces prin
reţele de calculatoare. Privind modul cum se planifică procesorul
pentru mai multe programe (procese) ce rulează „simultan”, se
deosebesc:
sisteme cu divizarea timpului („time sharing”) – în care
procesorul este alocat succesiv câte unui program, pentru o„felie” de
timp. Aparent, se execută mai multe programe simultan dar de fapt ele
se succed rapid şi folosesc pe rând procesorul.
sisteme preemptive – în care programul în curs poate fi întrerupt
(la momente întâmplătoare) prin evenimente ce provoacă lansarea în
execuţie (eventual reluarea) altor programe. Evenimentele sunt, în
general, cereri de introducere date sau anunţul finalizării unei afişări
de date.
151
Pentru funcţionarea multiutilizator, se creează şi se menţin contexte
specifice fiecăruia dar, ca şi pentru programe, fiecare este servit pe
rând, rapid, astfel că aparent lucrează simultan.
Tipuri de sisteme de operare
Există diverse categorii de sisteme de operare, după locul şi rolul pe
care îl ocupă:
Sisteme de operare „desktop” – care rulează pe calculatoare
personale (PC), pentru un singur utilizator sau un număr mic de
utilizatori, controlează puţine dispozitive periferice (de tip mouse,
ecran, tastatură) şi oferă un timp de răspuns convenabil.
Sisteme paralele –utilizează mai multe procesoare şi deci execuţia
programelor este într-adevăr simultană. Acestea pot fi cu
multiprocesare simetrică (SMP – „Symetrical MultiProcessing”) în
care fiecare procesor execută o copie identică a sistemului de operare,
respectiv cu multiprocesare asimetrică („Asymetrical
MultiProcessing)” în care unele procesoare sunt de tip stăpân
(„master” – au inițiativa) iar altele sunt de tip sclav („slave” – primesc
lucrări de la master).
Sistem în timp real – folosite pentru aplicaţii „de timp critic” – de
exemplu în industrie, unde trebuie executată o operaţiune în timpul şi
sincron funcţionării instalaţiilor conduse prin calculator.
Sisteme de operare distribuite – care rulează pe mai multe maşini
interconectate în reţea (locală sau largă ), asigurând partajarea
resurselor comune între mai mulţi utilizatori, precum şi sincronizarea
unor operaţiuni executate pe maşini distante.
Sisteme de operare „palmtop” – care rulează pe calculatoare PDA
(Personal Digital Assistant – ca un carnet ţinut în palmă), tablete sau
pe telefoane celulare – fiind specifice ca mod de interacţiune cu
utilizatorul şi folosind resurse reduse.
Sistemul de operare Windows
Sistemele de operare „descktop” de pe calculatoare personale (IBM
PC) au adoptat tehnologii dezvoltate pentru calculatoare puternice însă
cu performanţe mai slabe privind securitatea datelor sau sistemului şi
152
cu mijloace de administrare a resurselor mai reduse. Un exemplu este
sistemul de operare MS Windows, care în ultimele variante oferă:
nucleu multitasking preemptiv pe 32 și 64 biţi;
portabilitate – poate fi instalat pe diverse platforme (cu procesor
din familia Intel), codul dependent de procesor fiind izolat într-o
bibliotecă de tip DLL (denumită HAL – hardware abstraction layer);
securitate – foloseşte protecţie hardware pentru memoria virtuală
şi protecţie software pentru mecanismele sistemului de operare;
autentificarea utilizatorului prin „nume utilizator” şi parolă;
posibilităţi de lucru multiprocesor – pentru procesare simetrică
(SMP);
suport pentru internaţionalizare – pentru diferite limbi vorbite,
formate privind ora, moneda, etc. în diferite puncte pe glob;
suport pentru gestiunea discului cu sisteme de toleranţă la
defecte (masive de discuri RAID sau mai multe discuri pe magistrală
SCSI);
suport pentru lucrul în reţea: în mod client-server (server central
şi staţii de lucru care accesează resurse din reţea prin server) sau în
mod „peer-to-peer” (de la egal la egal, adică fiecare staţie de lucru
pune la dispoziţia celorlalte resurse proprii disc sau o imprimantă
locale);
conectare la Internet, rezolvarea numelor în Internet,
interconectare cu alte sistem de operare în aceeaşi reţea;
mecanisme de prelucrare distribuită (prin NetBIOS, Windows
Sockets, Remote Procedure Call), API pentru conectare în reţea prin
socluri (sockets), acces la alte sisteme de fişiere.
153
Programe utilitare
Configurarea resurselor sistemului de operare (de ex. pentru
periferice, reţea, limba şi ora locale), manevrele de gestionare a
resurselor (vizualizare, copiere, ştergere directoare şi fişiere) şi
comenzile de lucru pentru transferul datelor între periferice şi
memorie (tipărire, lansare programe, acces la reţea) sunt acţiuni
dificile, care se pot executa, în general, prin comenzi complicate.
Pentru a facilita aceste acţiuni, se folosesc programe utilitare –
programe considerate între programele de bază şi programele de
aplicaţii, ce asigură manevrarea comodă a setărilor şi resurselor
calculatorului.
Următoarele categorii de programe utilitare sunt mai des folosite:
1. Managere de resurse – care permit vizualizarea conţinutului
discurilor (fixe, flexibile, optice) şi manipularea directoarelor şi
fişierelor (copiere, mutare etc.). Exemple sunt Windows Explorer, sau
Windows Commander, care prezintă în panourile de lucru ale
ferestrelor acestor utilitare structura arborescentă de directoare şi
fişierele, apoi permit operaţii cu acestea.
2. Arhivatoare – care permit salvarea conţinutului directoarelor şi
fişierelor prin compactarea şi organizarea informaţiei în vederea
păstrării pe suport extern un timp îndelungat sau transmiterii prin
poșta electronică. Exemple: WinZip, WinRAR, WinAce.
3. Antiviruşi – care permit controlul şi eliminarea programelor de tip
virus, vierme, cal troian, bombă logică ce pot „infecta” un sistem de
calcul spre a reduce sau anula capacitatea de lucru sau a distruge date
şi chiar unităţi periferice. Exemple: Kaspersky, RAV (Romanian
AntiVirus – cumpărat de Microsoft), Bitdefender, MacAfee Antivirus.
Programele utilitare sunt parte a sistemelor de operare moderne, dar
pot fi şi produse de la firme specializate.
154
19. Interfeţe utilizator
156
19.1. Ecranul tactil
Reprezintă dispozitivul periferic de intrare-ieșire cu care puteți efectua
activități similare utilizând un mouse și o tastatură.
Funcții tactile: tragere cu degetul, atingere și altele (cf. Microsoft)
Denumire Acțiune Rezultat
Atingere Atingeți un element. Se deschide, selectează sau
activează oricând atingeți un
element. Similar cu clicul de
mouse.
157
pagina, apoi mutați-l
oriunde doriți. (De
exemplu, dacă ați defila la
stânga sau la dreapta,
trageți elementul în sus sau
în jos.) Atunci când un
element este mutat în noua
locație, eliberați-l.
Trageți Trageți cu degetul un Selectați un element și se vor afișa
pentru element cu o mișcare de multe ori comenzi de aplicație.
selecție scurtă, rapidă în direcția Un loc bun pentru a explora acest
opusă celei de derulare a gest este aplicația Mail.
paginii.
De exemplu:
Dacă pagina se defilează
la stânga sau la dreapta,
trageți elementul cu
degetul în sus sau în jos
pentru a-l selecta.
Dacă pagina se defilează
în sus sau în jos, trageți
elementul cu degetul la
stânga sau la dreapta
pentru a-l selecta.
Tragere cu Pornind din margine, Deschideți butoanele (Căutare,
degetul sau trageți cu degetul rapid sau Partajare, Start, Dispozitive,
glisare de la glisați transversal pe ecran Setări). Trageți cu degetul din
margine fără a vă ridica degetul. marginea din dreapta.
Deschideți o aplicație utilizată
recent. Trageți cu degetul din
marginea din stânga. Continuați să
trageți cu degetul pentru a comuta
între toate aplicațiile utilizate
recent.
Deschideți simultan o altă
aplicație. Glisați din marginea din
stânga fără a ridica degetul și
trageți aplicația până când apare un
separator. Apoi mutați aplicația
unde doriți și glisați separatorul
pentru a ajusta dimensiunea
158
aplicației.
Vedeți o listă cu aplicațiile
utilizate recent. Glisați din
marginea din stânga fără a ridica
degetul și împingeți înapoi
aplicația spre marginea stângă.
Afișați comenzile pentru
aplicațiile curente, cum ar fi Nou și
Reîmprospătare. Trageți cu degetul
din marginea de sus sau de jos.
Închideți o aplicație. Glisați în
jos, pornind din marginea de sus,
fără a ridica degetul, apoi glisați
aplicația spre partea de jos a
ecranului.
Rotire Puneți două sau mai multe Rotește elementele în direcția în
degete pe un element și care întoarceți mâna. Doar unele
rotiți mâna. elemente pot fi rotite.
159
1. Indicare – indicatorul atinge un obiect vizat; dacă zăboviţi asupra
obiectului, apare un mic mesaj (numit „tool tip”) care conţine o
descriere a obiectului.
2. Click – butonul stânga apăsat scurt (selectează un obiect vizat).
2
3. Dublu click - butonul stânga apăsat rapid de două ori (deschide
documentul sau lansează programul ataşat obiectului vizat).
4. Click dreapta - butonul dreapta apăsat (desfăşoară meniu
contextual, adică specific locului vizat).
5. Glisare – click pe un obiect vizat şi deplasare mouse cu buton
stânga menţinut apăsat spre un alt loc pe ecran (mutare obiect vizat
sau selectarea mai multor obiecte).
Când indicaţi anumite obiecte, indicatorul îşi schimbă forma, spre a
anunţa astfel că puteţi executa un anume tip de comenzi. De exemplu,
când indicatorul se transformă intr-o mână care arată cu degetul, vă
aflaţi deasupra unui obiect click-abil cum ar fi o hiperlegătură, o
săgeată cu doua capete permite modificarea dimensiunilor unui obiect
etc.
160
Figura 25. Structura unei ferestre şi a unei casete de dialog
La sistemele bazate pe ferestre, mijloacele prin care utilizatorul poate
comunica cu aplicaţia sunt furnizate de elementele ferestrelor şi
casetelor de dialog. Acestea sunt reprezentate, pe un exemplu, în
Figura 25, iar mai jos se oferă detalii lămuritoare.
Suprafaţa de lucru
Aşa cum tăblia mesei de lucru, la birou sau acasă, este ocupată cu
obiecte de uz curent (hârtii, cărţi, creioane, lampa de birou, etc.), tot
astfel ecranul este ocupat cu obiecte utile lucrului cu calculatorul.
Fiecare din obiecte este reprezentat printr-o pictogramă (vezi 1 în
Figura 25). Butonul „Start” 15 permite accesul la aplicaţiile instalate
pe maşină, precum şi la opţiunile de configurare pentru periferice şi
pentru întregul sistem. Suprafaţa de lucru („desktop”) poate fi
configurată, la rândul ei, prin includerea de noi obiecte sau prin
înlăturarea lor.
161
Bara de activităţi 14 indică aplicaţiile lansate în execuţie, prin butoane
grafice asociate; aceste butoane permit, totodată, activarea uneia din
aplicaţii (asupra căreia utilizatorul îşi va focaliza atenţia), precum şi
eliminarea ei de pe ecran (minimizarea ferestrei) prin click-uri
succesive pe butonul corespunzător aplicaţiei.
Ferestre aplicaţie
O fereastră aplicaţie este o reprezentare standard a instrumentelor
uzuale de lucru cu aplicaţia. Aceste instrumente sunt reprezentate
grafic în diverse moduri şi permit acţionarea lor cu ajutorul mouse-
ului sau al tastaturii. Figura 25 prezintă elementele generice ale unei
ferestre, rolul fiecăreia şi modul său de acţionare.
Tabel 7. Elementele ferestrei generice şi modul lor de acţionare
Element Mod de acţionare
Bara de titlu 2 prezintă numele aplicaţiei (în Figura 25 glisarea Barei
navigatorul local – „Windows Explorer”), precum şi de titlu mută
numele documentului sau, în cazul navigatorului, locul fereastra pe
vizat – disc (C:, D:, etc.), director pe disc („My suprafaţa de lucru .
Documents”), calculator din vecinătatea în reţeaua locală
(„Network Neighborhood”).
Bara de meniu 3 cuprinde categorii (opţiuni) accesibile click sau Alt-
în aplicaţia dată, din care trei sunt regăsite la orice Litera dă lista
aplicaţie: File (manipularea datelor specifice aplicaţiei), acţiunilor specifice
Edit (copiere, căutare, ştergere date) şi Help (ajutor aplicaţiei şi datelor
imediat - structurat pe conţinut, index şi căutare). sale
Bara de unelte 4 cuprinde comenzi uzuale ilustrate prin click buton grafic
desene intuitive, acţionate ca butoane grafice. Comenzi de execută comanda
editare, lucru cu fişiere şi cu ferestre au o replică în bara (ex. =
de unelte. decupare)
Butoane deschis / închis 9 aflate în colţul dreapta sus, minimizare
permit punerea în aşteptare a aplicaţiei (minimizarea ), maximizare
ocuparea întregului ecran activ (maximizarea) sau
restaurarea ferestrei pentru redimensionare, iar ultimul restaurare
închiderea aplicaţiei închidere
Bara de stare 16 prezintă informaţii privind setări numai vizionare
specifice aplicaţiei
162
Panouri de lucru 17 prezintă datele specifice aplicaţiei şi prelucrare specifică
permite manipularea lor conform metodelor specifice a datelor aplicaţiei
acestora.
Chenarul 18 permite redimensionare ferestrei (lăţire, glisare chenar
lungire şi reciproce, respectiv mărire / micşorare sau colţul dreapta-
proporţională ). jos
Casete de dialog
Prin casetele de dialog utilizatorul poate viziona setările curente ale
aplicaţiei şi poate modifica aceste setări prin acţionarea elementelor
casetei, după cum se prezintă în tabelul 8.
Tabel 8. Elementele casetei de dialog generice şi modul lor de acţionare
Element Mod de acţionare
Bara de titlu 5 prezintă numele casetei de dialog (în glisarea Barei
Figura 25 opţiunile fişierelor – „Folder Options”). de titlu mută caseta
Fişă 6 prezintă un set de setări posibile, de obicei click pe etichetă
împărţite pe cadre (secţiuni tematice) – în Figura 25 tipuri selectează fişa
de fişiere („File Types”)
Casete de bifă 7 permit selectarea mai multor opţiuni click sau
dint-un set dat „spaţiu” bifează
Butoane radio 8 permit selectarea unei singure opţiuni click sau
din setul dat „spaţiu” selectează
Butoane de derulare pas cu pas 10 permit derularea click derulează
informaţiei din panou în fereastra de vizitare (când în sensul dorit ,
aceasta este neîncăpătoare)
Butoane de derulare continuă 11 permit derularea în mod glisare
continuu a informaţiei în fereastra de vizitare
derulează conţinut
Bara de derulare 12 permit derularea pagină cu pagină a click pe zona liberă
informaţiei în fereastra de afişare a panoului derulează o pagină
Butoane grafice 13 permit efectuarea de acţiuni specifice click – execută !
(înscrise pe buton); uzuale sunt „OK”- confirmare şi
163
„Cancel” - abandon. (ex. )
Listă derulabilă – care prezintă un set de facilităţi ce pot derulează cu
fi selectate după derularea listei text până la reperul dorit.
click pe reper –
alege
(ex.
)
Casetă de text – care permite înscrierea unui text necesar introducere text
în contextul dialogului. dorit
(ex. )
Ajutor („Help”)
Posibilităţile de lucru ale aplicaţiilor actuale sunt multiple şi dificil de
reţinut (mai ales când se lucrează cu ele ocazional) dar interfaţa
utilizator oferă ajutor pe loc şi detaliat asupra acestora. Deci este
comod pentru om să lucreze cu aplicaţia chiar atunci când nu a
studiat-o în mod special, ci învaţă „văzând şi făcând”. Mai mult,
ajutorul poate fi dat de un asistent („wizard”) care aşteaptă întrebări în
clar de la utilizator şi oferă sugestii asupra opţiunilor (de meniu) sau
chiar asupra chestiunilor de principiu în ceea ce privește aplicaţia şi
posibilităţile ei. Facilităţile de ajutor şi cele de navigare prin
informaţia de ajutor sunt prezentate succint în Tabel 9.
Fereastra „Help” oferă, în general, trei modalităţi de căutare şi
prezentare a răspunsurilor, conform fişelor indicate în figura:
1. Cuprins 19 (de fapt întregul conţinut cu informaţii de ajutor –
„Contents”),
2. Index 22 (inventarul alfabetic al noţiunilor utilizate în aplicaţie –
„Index”),
3. Căutare 24 (după cuvinte cheie sau chiar aluzii la ele – „Search”).
164
Navigarea prin „informaţia de ajutor” se face în modul standard:
Revenire 21 (întoarcerea la ecranul şi informaţia precedente –
„Back”), Avans 23 (înaintare către ecranul şi informaţia curente –
„Forward”).Panoul de afişare 26 prezintă afişează informaţia căutată
ca text în care se află trimiteri 27 ce sunt legături („links”) către
noţiuni amintite în text (de ex. „frame” în figura); la finalul textului, se
indică chestiuni 28 legate de conţinutul informaţiei, tot ca legături.
19 20 21 22 23 24 25 26 27 28
165
informaţie.
166
20. Sisteme virtuale
20.1. Virtual
Termenul virtual este un concept aplicat în multe domenii, cu oarecare
conotaţii diferite şi, de asemenea, semnificaţii diferite. Termenul a fost
definit în filosofie ca „ceea ce nu este real, dar poate afişa calităţi
izbitor de reale”.
167
Astfel, numeroşi filosofi au lansat concepţii avansate cu privire la
virtual, cel mai proeminent din filosofia contemporană fiind Gilles
Deleuze, care a utilizat termenul „virtual” atunci când făcea referire la
un aspect al realităţii care nu este palpabil/material, dar care este totuşi
real.
În cea ce priveşte virtualul, conceptul lui Deleuze prezintă două
aspecte:
virtual este un fel de efect de suprafaţă produs de interacţiuni reale
de cauzalitate,
efectele sunt la nivelul materialului.
O definiţie însuşită de la scolasticii medievali şi din pseudo-latină
(„virtualis”) afirmă că termenul „virtual” nu se opune „realului”, dar
se opune „concretului/existentului”, în timp ce „realul” este opus
„posibilului”.
Recent, această concepţie de virtual a impulsionat cercetarea, astfel
Denis Berthier în studiul „Meditations on the real and the virtual” îi
conferă o altă conotaţie, pe baza utilizări în domeniul ştiinţei (imagine
virtuală; lumea virtuală), precum şi etimologic (derivare de la virtute –
„Virtus” în latină). La acelaşi nivel ontologic ca „posibil”, „real”, sau
„potenţial”, termenul „virtual” este definit ca cel care nu este real, dar
afişează din plin calităţi reale - într-un mod clar real (adică, nu
potenţiale).
În informatică şi în tehnologia informaţiei, cuvântul virtual este folosit
cu sensuri diferite pentru:
abstractizarea infrastructurii hardware, atunci când sistemele
software acţionează ca şi când ar fi sisteme hardware (maşină virtuală,
memorie virtuală, disc virtual);
simulări ale realităţii generate de calculator (realitate virtuala),
precum şi a mediilor de joc online unde o întreagă lume este creată
(lumea virtuală) sau acolo unde lumea reală este suplimentată cu
imagini virtuale (îmbunătăţirea realităţii).
168
Acest domeniu a căpătat o expansiune rapidă, astfel comunitatea
virtuală, biblioteca virtuală şi clasa virtuală reprezintă alte
întrebuinţări ale cuvântului „virtual” cu aplicabilitate în zilele noastre.
Motivaţiile timpurii pentru aplicarea „virtualului” în IT (de exemplu
virtualizarea) au vizat în principal partajarea dispozitivelor de către
mai mulţi utilizatori şi operaţiile de coordonare a proceselor multiple,
lucru confirmat de folosirea cu succes a abordării maşini virtuale.
În pus, aceste tehnologii construiesc mediul pentru lucrul virtual în
echipe, cu membrii care nu se pot întâlni în persoană. Comunicând cu
ajutorul multiplelor instrumente puse la dispoziţie, sincrone sau
asincrone, lucrând colaborativ cu produse comune pe cale electronică,
aceste echipe virtuale produc rezultate vizibile fără a fi co-localizate.
În mod similar, lumea virtuală reprezintă un tip de locuire/găzduire
fondată pe tehnologie Web, care permite diverse interacţiuni ale
participanţilor cu preocupări comune, cum ar fi cercetarea,
învăţământul, economia etc.
169
Figura 2.1. Virtualizare resurse hardware(VMware)
Astfel, pe un mediu „bare metal1” cu ajutorul unui soft de virtualizare2,
se pot crea mai multe maşini virtuale (Figura 2.1), acestea acţionând
ca entităţi distincte.
Figura 2.2 prezintă modalităţile de virtualizare a serverului şi diferenţa
dintre cele două metode.
Menţionăm că prin virtualizare, infrastructura hardware devine un
serviciu, maşinile virtuale instalate pe cele hardware devin
preponderente în cadrul infrastructurii astfel modul lor de funcţionare
poate fi afectat de anumite disfuncţionalităţi care pot fi la nivel fizic
sau software.
1
Un mediu „bare metal” este un sistem de calcul sau o reţea unde o maşină virtuală sau o
reţea virtuală este instalată direct pe hardware.
2
Software-ul utilizat în studiul nostru de caz a fost oferit de VMware prin licență academică.
170
Software-ul, ocupând locul cel mai important în viaţa de zi cu zi,
creşte în importanţă interacţiunea dintre om şi computer, prin urmare,
capacitatea de a sprijini interacţiunile, în vederea reutilizării eficiente
a experienţei anterioare, reprezintă o provocare majoră pentru
sistemele actuale.
3
http://en.wikipedia.org/wiki/Virtualisation .
171
emulare – sistemul de operare client este nemodificat, dar acesta
rulează pe CPU emulat software;
para-virtualizare - sistemul de operare client este modificat, ca şi în
Xen;
virtualizare completă – unde sistemul de operare client este
nemodificat şi rulează pe o maşina virtuală, crezând în acest timp că
rulează pe aceeaşi maşină hardware ca sistemul de operare gazdă;
Virtualizarea permite implementarea software-ului fără a modifica
sistemul de operare sau sistemul de fişiere concomitent cu reducerea
semnificativă a conflictelor dintre aplicaţii, permiţând astfel folosirea
unei singure aplicaţii pe multiple versiuni ale sistemelor de operare.
Cu alte cuvinte (conform Vmware), aplicaţiile sunt mai uşor de
asigurat, implementat, actualizat şi în cazul apariţiei nefuncţionalităţii
ei, se poate reveni la pasul anterior modificării ei (rollback).
172
Figura 2.3. Managementul lăţimii de banda în reţea (VMware ESX Server)
Cele trei componente ale virtualizării reţelei enunţate de Cisco sunt:
controlul accesului, izolarea caii, şi limitarea serviciilor. Concret, în
interiorul router-elor şi switch-urilor Cisco găsim serviciile de
securitate, stocare, VoIP, mobilitate, precum şi livrarea de aplicaţii,
ceea ce pentru Cisco reprezintă strategia lor privind îmbunătăţirea
infrastructurii de reţea, subliniind totodată importanţa dispozitivelor
de reţea şi modalitatea lor de a reprezenta o pârghie de acţionare
asupra infrastructurii reţelei.
Un alt furnizor de echipamente de reţea care are o iniţiativă la fel de
puternică privind virtualizarea reţelei este compania 3Com. 3Com
conţine un card de memorie care se introduce în router, pe acesta
aflându-se un server Linux complet funcţional care prezintă o
conexiune la coloana vertebrală a router-ului. Interesant este faptul că
pe acel server Linux, se pot instala aplicaţii cum ar fi un detector de
pachete de date, VoIP, aplicaţii de securitate, şi altele. Din 2010, pe
acest card ce conţine sistemul de operare Linux, poate rula servere
VMware sau Windows. Iniţiativa open-source privind virtualizarea
reţelei numită 3Com ON sau reţeaua liberă este încă în stadiu incipient
şi cu siguranţă adevăratele beneficii pentru profesionişti IT nu vor
întârzia să apară.
4
SV – Storage Virtualization
5
SAN - Storage Area Network
6
http://en.wikipedia.org/wiki/Storage_virtualization
174
Figura 2.5. Consolidarea serverului (VMware)
175
Totuşi, pentru a beneficia de toate aceste avantaje pe care le promite
virtualizarea este necesar să dispunem de o infrastructură care
întradevăr poate suporta virtualizarea fiecărei componente fizice din
cadrul infrastructurii IT şi implicit a centrului de date (Figura 2.7).
176
1. Utilizatori. Centrul de date furnizează aplicaţii utilizatorilor
conectaţi cu ajutorul oricăror dispozitive fixe sau mobile care le
permit acest lucru (notebook-urilor, desktop-urilor tradiţionale sau
virtuale, tablet PC-urilor, telefoanelor inteligente, PDA-urilor etc.).
2. Reţele client. Acestea, în general, sunt optimizate pentru reducerea
costului în detrimentul performanţei, de aceea, conectarea la
DataCenter prin intermediul reţelei trebuie să se facă indiferent de
tipul clientului şi de instrumentul folosit pentru conectare.
3. Sistem de operare şi aplicaţii. La nivelul sistemului de operare
accentul este îndreptat către managementul resurselor alocate
aplicaţiei, rata de transfer către HDD, pe numărul proceselor aflate in
background cât şi numărul de clienţi conectaţi simultan. La acest
nivel, funcţionalitatea aplicaţiilor reprezintă cel mai important obiectiv
ce trebuie atent urmărit.
4. Abstractizare DataCenter. Se face în principal pentru a beneficia pe
cât posibil de capacitatea maximă a resurselor disponibile dar şi de
avantajele oferite de stratul de virtualizare în relaţia dintre clienţi şi
aplicaţii.
5. Reţea DataCenter. Centrele de date necesită o reţea sigură şi
performantă pentru a suporta mobilitatea aplicaţiilor dintre ele,
asigurată de o conectivitate de viteză în cadrul reţelei.
6. Abstractizare server. Reprezintă stratul software instalat pe
platforma hardware, necesar furnizării serviciilor care asigură
managementul resurselor fizice şi a serverelor ce intră în componenţă
infrastructurii virtualizate sau a norul informatic.
7. Servere. Găzduirea pe platforme fizice, puternice a serverelor
virtuale reprezintă o condiţie necesară deoarece consolidarea
serverelor nu se justifică daca avem puţine maşini virtuale per
platformă.
8. Abstractizarea spaţiului de stocare. Este necesară atunci când
operaţiile nu trebuiesc întrerupte de un upgrade sau de o înlocuire a
unui dispozitiv de stocare.
177
9. Reţea spaţiu de stocare. Orice server trebuie sa aibă partajat spaţiul
de stocare şi să dispună de o conexiune redundantă cu SAN-ul în
vederea asigurării mobilităţii maşinii virtuale. Redundanţa impune ca
fiecare centru de date să dispună de cel puţin 2 SAN-uri fizice,
separate legare redundant prin reţele de mare viteză (fibră optică).
10. Spaţiu de stocare. Sistemul de stocare trebuie să fie capabil să
suporte orice tip de aplicaţie întrucât fiecare administrator dispune de
o strategie proprie.
11. Administrare infrastructură. Necesită coordonarea
comportamentului din LAN şi SAN indiferent dacă traficul se
desfăşoară pe acelaşi fir.
Administrarea resurselor disponibile ce intră în componenţa
straturilor/blocurilor, fie că sunt hardware sau software, se face cu
ajutorul unor interfeţe separate (Figura 2.8), interfeţe care permit cu
uşurinţă gestionarea, monitorizarea şi configurarea resurselor
disponibile de la o consolă unică.
De asemenea, există și o nouă viziune asupra modelului tradiţional
descris anterior, bazată pe experienţa din depanarea/utilizarea
sistemelor virtuale, în vederea asigurării unui management al
resurselor sau cunoştinţelor pentru o diagnoză a defectelor mai
eficientă. Totodată, infrastructura IT virtualizată structurată conform
noii viziuni ne permite o aprofundare în cunoaşterea şi înţelegerea
domeniului virtualizării, a componentelor sale şi a relaţiilor dintre
acestea.
178
cea a centrului de date (reţeaua fizică pentru traficul IP) eliminând
astfel separaţia fizică dintre blocurile aferente reţelelor, desigur fără o
îmbinare a serviciilor de reţea. Astfel, datorită virtualizării
componentelor reţelei existente administrăm mai bine următoarele
servicii: controlul accesului, izolarea caii şi limitarea serviciilor.
Similar s-a procedat la gruparea straturilor ce deservesc componentele
fizice şi a celor ce abstractizează componentele fizice (nu înseamnă ca
îmbinăm software-ul lor sau componentele hardware).
Această nouă abordare (Figura 2.10, Figura 2.11) privind
abstractizarea infrastructurii IT, pe lângă faptul că nu înlătură nici un
bloc din componenţa modelului standard, a permis gruparea anumitor
blocuri fără modificarea interfeţelor de administrare prevăzute pentru
gestionarea, monitorizarea şi configurarea serviciilor, asigurând
totodată o funcţionare în parametri optimi.
179
Figura 2.11. Model implementat
Astfel, pe infrastructura IT, norul informatic şi virtualizarea serverului
se completează reciproc datorită următoarelor considerente:
Ambele au necesitat o infrastructură fizică robustă, bazându-se
puternic pe reţea şi implicând o regândire a infrastructurii tradiţionale.
Serviciile norului informatic sunt implementate după ce
DataCenter-ul este virtualizat, altfel spus, doar stratul de virtualizare
suportă arhitectura Cloud.
Norul informatic adaugă un nou strat de virtualizare între
utilizatorul final şi întregul mediu informatic abstractizat.
Avantaje
Costul. Indiferent de condiţia economică a posesorului
infrastructurii, avem avantajul unui cost scăzut, deoarece că pe „un
singur cablu” vom avea tot traficul, eliminând necesarul de
echipamente suplimentare separării reţelelor. Datorită faptului că
echipamentele folosite de LAN şi SAN devin comune, administrarea
echipamentelor este mai convenabilă, conducând la o monitorizare
mai facilă a traficului.
Administrarea infrastructurii. Folosirea consolei unice de
administrare înlătură inconvenientele întâlnite în cazul arhitecturii
tradiţionale (multiple interfeţe de administrare, timpi de deplasare,
asigurarea funcţionalităţii și rezolvarea conflictelor, etc.).
180
Consolidarea serverului. Se observă o semnificativă diminuare a
numărului de servere fizice concomitent cu creşterea gradului de
utilizare a resurselor hardware existente.
Disponibilitatea resurselor. Reprezintă punctul forte al abordării
deoarece putem dispune oricând de o anumită resursă chiar dacă ea
este alocată iniţial unei alte maşini virtuale. Aici facem referire la
toate resursele fizice abstractizate (disk, reţea, memorie, procesor,
etc.) de care dispunem în cadrul infrastructurii.
Testarea noilor soluţii. Datorită timpului redus şi uşurinţei de a crea
noi servere se creează rapid premisele unui mediu propice testării
noului software, update-urilor, patch-urilor etc.
Securitatea. Tehnicile şi instrumentele hackerilor sunt în principal
destinate pentru IP sau intranet de aceea ele nu funcţionează în cazul
SAN-urilor Fiber Chanel. Fizic este imposibil să separăm aceste
reţele, în schimb administrarea lor se poate face separat. Existenţa
unui strat de separaţie dintre SAN şi sursele de ameninţare din reţelele
IP fac tehnicile de atac inutile.
Infrastructura verde. Conform VMware, pentru fiecare server
virtualizat se economisesc aproximativ 7KW/oră echivalentul a 4 tone
de dioxid de carbon/an. Acest aspect nu este deloc de neglijat din
punct de vedere economic, fiind concretizat prin diminuarea facturilor.
Dezavantaje
Constrângerile I/O. Acestea constituie un impediment în ceea ce
priveşte transportul informaţiilor deoarece un număr mic de
dispozitive I/O deservesc un număr crescut de maşini virtuale.
Configurările LAN sau SAN. Datorită faptului că fizic este
imposibil să separăm aceste reţele, ele se pot administra separat şi
tocmai acest lucru este posibil să afecteze procedurile operaţionale şi
de întreţinere ale infrastructurii. Un posibil dezavantaj îl constituie, în
modelul propus, momentul intervenţiei în configurările de LAN sau
SAN. Datorită unificării blocurilor, dacă intervenim în LAN, se
produc modificări implicit şi în SAN şi viceversa.
181
Funcţionalitatea aplicaţiilor. Un alt considerent pe care este posibil
sa îl întâlnim îl constituie faptul că nu toate aplicaţiile vor fi
funcţionale în modelul propus. Pot apare posibile întârzieri în cadrul
proceselor de instalare şi accesare a sistemului de operare şi implicit a
aplicaţiilor suportate de acesta.
Datorită conjuncturii economice actuale, dar şi problemelor impuse de
securitatea sistemelor informatice, companiile au început să utilizeze
tehnologii de virtualizare pentru a-şi proteja cât mai bine cele mai
valoroase active: datele stocate. Micşorarea costurilor implicate de
investiţiile în hardware, software şi de acordare a licenţelor precum şi
reducerea facturilor la utilităţi, minimizarea timpilor de nefuncţionare
ale echipamentelor precum şi simplificarea şi raţionalizarea proceselor
de administrare constituie obiective de care putem beneficia prin
virtualizare. Această tehnologie schimbă modul în care un centru de
date funcţionează, este gestionat şi administrat. De exemplu, înainte
de a implementa virtualizarea, se ştia în orice moment care sunt
aplicaţiile cele mai utilizate, pe ce maşini fizice sunt instalate, cât din
resursele maşinii sunt folosite, care sunt momentele de încărcare
maximă etc. Datorită virtualizării, aceasta legătură tradiţională dintre
hardware şi software este ruptă, iar acest lucru creează o mai bună
perspectivă privind funcţionalitatea şi rezolvarea conflictelor.
Virtualizarea are un impact major asupra infrastructurii fizice, datorită
puterii de calcul necesară dispozitivelor fizice ce suportă multiple
maşini virtuale, precum şi o anumită capacitate a reţelei pentru a
satisface cererile de transfer dintre maşinile virtuale şi cele fizice.
Datorită profilului ciclic de funcţionare a aplicaţiilor, administratorii
au o privire de ansamblu globală asupra sistemului, cunoscând modul
de funcţionare al acestuia şi care sunt aplicaţiile şi momentele ce
încetinesc performanţa sistemului. Punctul forte îl constituie
administrarea întregului sistem informatic virtual folosind o singură
consolă. Bineînţeles că ne lovim mereu de noi probleme şi
impedimente, de aceea trebuie să ţinem seama că este posibil ca o
aplicaţie pe care astăzi o virtualizăm să trebuiască mutată înapoi pe un
mediu fizic, ca urmare a necesarului de putere de calcul sau datorită
unor procese prioritare. Trebuie analizat în detaliu cu ce instrumente
182
operăm pentru migrarea maşinilor şi aplicaţiilor către un mediu
virtual, asigurându-ne că selecţia a fost corectă în cazul în care trecem
înapoi la un server fizic sau migram aplicaţia către o altă maşină
virtuală instalată pe o maşină hardware diferită.
183
21. Utilizarea calculatoarelor pentru aplicaţii de
birou
185
22. Procesoare de texte
187
b. Conţinut – text în care sunt inserate imagini, tabele, figuri, etc.
tratând ideile de interes.
c. Index – inventarul cuvintelor cheie ce apar în text, cu paginile în
care sunt explicate.
d. Listă de figuri – inventarul figurilor, cu numărul de ordine şi textul
lămuritor.
e. Listă de table – inventarul tabelelor, cu numărul de ordine şi textul
lămuritor.
f. Bibliografie – inventarul lucrărilor citate în textul documentului.
Cuprinsul este realizat prin intermediul denumirilor de modul şi
submodul („Heading”), etc. fiecare din acestea fiind declarate pe
nivelul ierarhic corespunzător Denumire (de nivel) 1 –modul,
Denumire (de nivel) 2 – submodul, Denumire (de nivel) 3 – submodul
inferior, etc.). Aceste denumiri sunt declarate la editare şi colectate
apoi automat la realizarea cuprinsului („Table of Contents” - TOC).
Indexul este realizat prin declararea, la editare, a cuvintelor cheie
(„index entry” - XE) care vor face parte apoi din index; ele sunt
colectate automat şi introduse în lista index („index”).
Lista de figuri şi lista de tabele se realizează automat dacă anterior s-
au declarat şi figuri cu număr de secvenţă automat şi tabele cu număr
de secvenţă automat („sequence - SEQ”). Evidenţa figurilor şi
tabelelor este ţinută de procesorul de texte care, la inserarea unei noi
figuri (sau tabel) între altele două existente, permite actualizarea şi
menţinerea ordinii corecte a acestor elemente.
Bibliografia se realizează prin mijlocirea referinţelor bibliografice
(„reference”, „Index and Tables” - câmp TA) introduse în text, iar
apoi colectate şi legate de titlurile cărţilor respective înscrise în
bibliografie ( „Tabel of Authorities” - TOA).
În general, un element cu legătura se numeşte referinţă („reference”)
şi se declară specific (prin meniul Insert Reference). Unor elemente cu
legătură, folosite în blocuri de informaţii, li se ataşează unui câmp prin
„captură” („caption”); captura se poate face de exemplu către: o
188
figură, un tabel, o denumire de modul sau submodul („Heading”), notă
de subsol („footnote”) sau relaţie de tip ecuaţie („equation” - EQ).
Structura de conţinut a documentului
Blocul cu informaţiile esenţiale ale unui document reprezintă
conţinutul său. Acesta cuprinde – pe lângă text, imagini, tabele, liste,
etc., ca forme de reprezentare a informaţiei - elementele de structură
ale conţinutului:
a. Denumire de modul sau submodul („Heading”) – exprimare
generică impersonală a ideilor din modul sau submodul, care nu se
încheie cu punct (chiar propoziţie fiind).
b. Secţiune – parte din conţinut separată prin marcaje speciale
(separator de secţiune – „section break”) şi de capetele de document
(început sau sfârşit).
c. Pagini – parte de conţinut tipărită pe o singură foaie, separată de
restul conţinutului prin curgerea naturală a textului sau prin separator
de pagină („page break”).
d. Coloană – aranjare a textului pe verticală, de obicei pe o lăţime mai
mică decât lăţimea paginii, pentru înlesnirea citirii rapide; este
declarată prin coloane multiple („column”).
e. Paragraf – parte de text, formată dintr-una sau mai multe fraze, pe
una sau mai multe linii de text, ce se referă la o singură idee sau un
singur obiect („paragraph”), cuprins intre două Enter-uri.
f. Notă de subsol – informaţie lămuritoare numerotată, înscrisă în
josul pagini (şi separată, în general, cu o linie de restul textului).
Conţine referinţe bibliografice, trimiteri sau note ce detaliază aspecte
particulare din text („footnote”).
Fiecare din aceste elemente trebuie declarate specific: denumirile prin
elemente de stil, secţiunile şi paginile prin separatori inseraţi în
conţinut, coloanele prin aranjarea textului folosind opţiuni „column”,
paragrafele ca text unitar înscris fără salt la o nouă linie („Enter” sau
„Return”), notele de subsol prin inserarea indicelui superior
(„footnote”).
Structura foii tipărite
189
Fiind destinat a fi tipărit pe hârtie, documentul trebuie pregătit pentru
a fi încadrat corect pe foaia de hârtie. În structura foii tipărite există:
a. Margini libere („Margins”) – la bordurile sus, jos, stânga, dreapta
ale foii. În aceste borduri nu este recomandat să se înscrie text, fiindcă
procesorul permite totuşi acest lucru, dar nu mai are sens declararea
marginii libere).
b. Rigolă („Gutter”) – bordură laterală (stânga – pe pagini impare,
dreapta - pe pagini pare) lăsată liberă pentru legarea foilor
documentului într-o carte.
c. Antet („Header”) – zonă de text pe marginea de sus a foii, în care se
înscriu, de obicei, informaţii referitoare la emitentul documentului:
numele firmei sau autorului, logo (mică imagine simbol a firmei),
adresa, numere de telefon, numărul de pagină (uneori).
d. Subsol („piciorul” paginii – „footer”) – zonă de text pe marginea de
jos a foii, în care se înscriu, de obicei, informaţii referitoare la
versiunea documentului, data şi ora emiterii, texte predefinite
(„autotext”), numărul de pagină (eventual „din numărul total” – de ex.
5/22) plasat în extrema dreaptă sau în centrul paginii pe bordura de
jos.
Aceste elemente se stabilesc din opţiunea referitoare la „încadrarea în
pagină” („Page Setup”), iar pentru antet şi subsol din opţiunea de
vizionare a documentului („View” sau „Insert”).
La tipărirea documentului pe foi faţă-verso, rigola se va plasa diferit
pe o faţă şi pe cealaltă – în oglindă („mirror margins”). Similar,
pentru antet şi subsol se pot stabili texte diferite pentru faţă şi pentru
verso (pagină pară şi impară) sau diferite doar pentru prima pagină din
modul.
Bamba,
b. Stilul caracterului („font style”) – evidenţierea caracterelor într-unul
din modurile:
Îngroşat (aldin – „bold”), Înclinat (cursiv - „italic”), Subliniat
(„underline”).
c. Dimensiunea caracterului – mărimea sa exprimată în puncte
tipografice (pt.):
8 pt, 10 pt, 14 pt, 18 pt, 28 pt, 36 pt, 48 pt.
d. Efecte – indicesuperior, indiceinferior, Majuscule Mici, Umbrit, Sculptat,
Tăiat
e. Culori – Roşu, Verde, Albastru, Gri.
f. Spaţiul între caractere: Normal, Expanadat, Condensat
g. Poziţia pe rând: pe Mijloc, Ridicat, Coborât
191
h. Animaţie: Clipire, „Las Vegas Lights” (firme luminoase), „Sparkle
Text” (Artificii)
192
Alinierile şi indentările sunt necesare pentru o înscriere codificată prin
poziţia textului. De exemplu, denumirile de modul sau submodul se
aliniază centrat, iar textul spre stânga sau justificat; numerele se
1 2 3 4 5 6 7 8
aliniază spre dreapta, pentru a avea ranguri de acelaşi ordin, unele sub
altele - chiar dacă lungimea numerelor de pe coloană diferă.
Figura 27. Marcaje de indentare şi Tabulatori
193
în chenar se poate face şi pentru întreaga pagină. Chenarele pot avea
efecte precum umbre, şerpuiri, culori, etc.
Paragrafele care încheie o pagină pot să aibă primul rând pe o pagină
şi restul pe cealaltă (rând văduv) sau ultimul rând să fie singur pe
pagina nouă (rând orfan). Fiindcă acest lucru nu este estetic, se poate
seta o opţiune de „paragraf fără rând văduv/orfan” („Widow/Orphan
control”) prin care liniile se menţin grupate (adică) pe aceeaşi pagină
şi se lasă rânduri libere pe pagina precedentă.
Tabulatori
Există caractere care nu sunt simboluri grafice ci execută acţiuni (cum
sunt „Enter”, caracterele asociate tastelor de ştergere Backspace” şi
„Delete”); între acestea, se află un caracter (Tab) care efectuează
salturi orizontale între marcaje prestabilite, denumite „Tab-stop”.
Fiindcă aceste salturi erau utilizate iniţial pentru parcurgerea
coloanelor unui tabel, aceste caractere sunt denumite tabulatori;
marcajele de tabulare (Tab-stop) se obţin prin apăsarea tastei Tab.
Tipuri principale de tabulatori sunt prezentate mai jos (v. şi Figura 27)
şi se obţin prin click succesiv pe colţul stânga sus al panoului de
afişare document:
tabulare stânga 6 („Left tab” – text aliniat stânga de la Tab-stop),
tabulare centru 5 („Center tab” – text aliniat centrat),
tabulare dreapta 4 („Right tab” – text aliniat dreapta),
Utilizarea tabulatorilor în procesoarele de texte este de mare folos în
linii de text cu structură complexă (alinieri diverse pe aceeaşi linie,
puncte sau linii „de urmărire” pentru linii cu spaţii libere mari în
interior).
Mere Mere
Pere Ionatan
Prune Golden
Banane Lucioase
Struguri Pătate
Ananas Pere
Prune
c) Bananed)
Struguri
Figura 28. Liste numerotate (a, b)
şiAnanas
ne-numerotate (c, d)
1 2 3 4 5 6
196
5 celulă comasată/îmbinată (opţiunea „Table-Merge Cells”) pentru
coloane cu subcoloane. Operaţia inversă, de scindare/despicare a
celulei, se face prin opţiunea „Table-Split Cells”).
6 este spaţiul unei celule care prezintă (la editarea sa) marcaje
specifice de indentare.
Modificarea dimensiunilor coloanelor şi rândurilor se poate face şi
prin glisare , când indicatorul este plasat pe liniatură şi ia forma
- pentru coloane sau - pentru rânduri.
Imagini şi plasarea lor în text
Imaginile care se pot introduce într-un document scris pot fi aduse din
biblioteca de clip-uri ataşată produsului („Clip Art”) sau din fişiere
aflate pe disc („From File”), ambele posibilităţi fiind accesibile din
meniu („Insert - Pictures”) sau din bara de unelte.
După inserare, se pot stabili diferite proprietăţi ale acestor obiecte
(meniul „Format Object”):
a. Culorile fundalului şi liniei, tipul de linie(„Colors and Lines”);
b.Dimensiunea imaginii („Size”) :poate fi redimensionată la scară
dată sau exprimată dimensiunea explicit în unităţi de măsură – ţoli sau
centimetri;
c.Plasarea imaginii în text („Layout”) - indicată sugestiv prin
pictograme ca în Figura 30, adică înconjurată de text (într-un cadru
depărtat „Square”, cadru strâns „Tight” sau direct înconjurată
„Through”), peste text (în spate „”Behind text” sau în faţă „În front of
text”) ori separată de text (în continuare „În line with text” sau singură
pe lăţimea paginii „Top and Bottom”).
199
22.5. Lucrul cu documente
Crearea textului şi modificarea sa necesită operaţii multiple, cum sunt
de exemplu copierea sau mutarea unor zone de text, căutarea unor
şiruri de caractere (frânturi de cuvinte, cuvinte sau chiar fraze) şi,
eventual, înlocuirea lor cu şiruri de caractere. După ce textul a fost
realizat este indicată salvarea lui în forma curentă (chiar ne-finalizată),
pentru ca lucrul să fie reluat mai târziu, pentru utilizarea formei
electronice sau pentru tipărirea ulterioară.
Manevre de Editare
O modificare în text cuprinde, de obicei, trei faze:
1. Selectarea zonei text de editat – prin care se face marcarea
(indicarea) zonei de editat, cu manevre descrise; la acestea se adaugă:
glisare peste zonă, parcurgerea ei cu Shift-săgeţi (taste , , ,
).
2. Manevra pregătitoare – prin care se face o copie a zonei de editat
într-o memorie anume („Clipboard”); de exemplu comanda „Edit –
Copy” sau „Edit – Cut” .
3. Manevra de modificare – prin care se face efectiv schimbarea
dorită; de exemplu mutarea cursorului clipitor şi comanda „Edit -
Paste” , schimbare font, etc.
Lucrul cu ferestre
Pentru operaţiuni efectuate cu mai multe documente, ferestrele
200
Se pot vizualiza mai multe ferestre prin opţiunea „Arrange All”, (v.
Figura 33) dar se pot vizualiza două părţi ale aceluiaşi document
simultan, prin opţiunea „Split” – care „despică” documentul şi permite
derularea independentă a fiecărei părţi, pentru vizionarea lor simultană
(de exemplu atunci când se doreşte consultarea uneia din părţi în timp
ce se lucrează la cealaltă).
După cum se observă în Figura 33, documentele deschise apar în lista
de meniu şi pot fi activate pe rând (cea activă indicată prin ).
Lucrul cu fişiere document
La încheierea lucrului cu documentul sau ori de câte ori este nevoie,
se face salvarea documentului într-un fişier pe disc (ce prezintă
extensia corespunzătoare – la MS Word .doc, .docx”), cu comanda
„File - Save” sau ; se recomandă salvarea cât de des posibil, pentru
a evita surprize neplăcute care pot apare în timpul lucrului, incidente
ce duc la pierderea de date. Salvarea documentului se poate face şi în
alte formate decât cel implicit, cum sunt formatele standard RTF
(„Rich Text Format” – extensia .rtf), pagină Web (format HTML -
extensia .html), sau text simplu (extensia .txt). Formatul RTF permite
portarea documentului pe alte procesoare de texte, iar formatul HTML
permite publicarea documentului ca pagină web pe o maşină server
Web (numită generic „site”).
Ulterior salvării, documentul se „deschide” prin comanda „File –
Open” sau .
Tipărirea documentului se face prin comanda „File - Print” sau prin
, în care se vor selecta diverse opţiuni privind modul cum va avea loc
tipărirea:
a.Parte din document care se tipăreşte (tot, pagina curentă, paginile
indicate);
b. Numărul de copii ale părţii tipărite, apoi dacă face tipărirea multiplă
la fiecare pagină sau repetă tipărirea întregului document pentru
fiecare copie;
201
c.Tipărirea paginilor impare (iar apoi pare) – pentru tipărire faţă-
verso;
d.Setări ale imprimatei – privind rezoluţia (în puncte pe inch - dpi)
sau culorile, dimensiunea foii (uzual A4).
e.Tipărirea se face într-un fişier care ulterior va fi listat pe
imprimantă; în acest caz, se pot obţine fişiere document de tip
PostScript (pentru imprimanta selectată corespunzător), ce pot fi
vizionate pe pagini web sau transferate în forma tipăribilă în alt loc.
Şabloane şi scrisori tip
Pentru documente uzuale, procesorul de text pune la dispoziţie
şabloane („Template”) care pot fi completate cu conţinutul dorit de
utilizator. Forma şablonului este preluată din biblioteca de şabloane,
uzual fiind oferite şabloane pentru scrisori, fax-uri, CV-uri, Agendă
etc.
Pentru realizarea de scrisori tip, ce trebuie transmise la mai mulţi
destinatari, acestea se pot personaliza folosind Asistentul de scrisori
multiple – „Mail merge Wizard” (meniu „Tools” sau „Mailings”).).
Astfel, se poate „construi” un text care să conţină şi o structură de
câmpuri în care se vor înscrie automat informaţii dintr-un tabel cu date
asupra persoanelor destinatare: apelativul (Dl., D-nă, Dr., etc.) numele
şi prenumele, adresa, şi altele. În final, scrisoarea tip va afişa în locul
câmpurilor datele concrete şi se va putea tipări. Se poate parcurge
printr-o opţiune de meniu (sau buton) întreaga lista de persoane,
tipărindu-se pentru caz toate sau pentru fiecare înregistrare,
exemplarul dedicat. În acest mod se îmbină date (despre persoane) şi
documente (scrisori) prin procesorul de texte.
202
Definirea stilurilor de formatare
Funcţie de destinaţia documentului se stabileşte o mulţime de stiluri
dorite (sau impuse) pentru structura şi modul cum vor apare pe hârtie.
Lista de stiluri disponibile este predefinită dar se poate completa cu
altele după trebuinţă. Stilurile de formatare se referă la:
a. Caractere – privind caracteristici precum: tipul, dimensiunea, stilul
caracterului pentru diferite părţi ale documentului (denumiri de modul
– „Headings”, textul „Normal”, note de subsol „Footnotes” etc.),
spațierea între caractere, etc.
b. Paragraf – aliniere, indentare, stop-uri Tab, spaţiul între linii/rânduri
și paragrafe, chenare, caracteristici ale literelor din paragraf. În acest
context se definesc efectiv denumirile de modul („Headings”)
indicând, spre exemplu, că denumirea de nivel 1 apare pe pagină nouă.
c. Tabel – privind îmbinarea sau scindarea celulelor, tipul de chenar,
umbriri pe coloane, culori, numele generic şi tipul de numerotare
automată.
d. Listă – privind modul de numerotare şi indentare a linilor, pentru
diferite tipuri de liste.
e. Figură – redimensionare, numele generic (prescurtat Fig.) şi tipul de
numerotare automată.
f. Cuprins – modul cum va fi indicat inventarul denumirilor de module
şi pagini de start.
Paşi în redactarea corectă şi eficientă a documentului
i) Se realizează structura de denumiri de modul pe niveluri ale
documentului, fiecare declarat de tip „Heading”1, 2, etc. Această
structură este vizibilă prin „Document map” sau „Navigation Pane”.
ii) Se înscriu informaţiile de antet şi subsol (logo, texte
lămuritoare), eventual antet diferit pe pagină pară şi impară, numere
de pagină (cu număr total sau nu), data emiterii documentului, etc.;
numerotarea paginilor se poate face şi în antet.
203
iii) Se folosesc corect semnele de punctuaţie: spaţiu obligatoriu după
semnul de punctuaţie dar niciodată înainte – excepţie parantezele ‘(‚ şi
‚)’.
iv) Alinierea şi indentarea paragrafelor se face doar utilizând
mijloacele oferite de procesorul de texte.
v) Se declară figuri şi tabele (cu stiluri stabilite anterior) folosind
captură („Caption”), pentru a iniţia numerotarea automată a acestora.
vi) Se fac trimiteri în text la figuri şi Tabele prin legarea acestora
cu ajutorul referințelor incrucișate („Cross-reference”). Trimiterile se
pot face pentru orice fel de element declarat anterior prin captură
(„Caption”). În acest mod, orice modificare în ordinea elementelor
capturate nu afectează şi legăturile din text.
vii) Se activează verificarea ortografică şi gramaticală.
viii) Se scrie conţinutul documentului fără a da mare atenţie formei,
pentru a se focaliza atenţia pe idei.
ix) Se verifică corectitudinea textului (urmărind sublinierile şerpuite)
şi formatarea conform stilurilor prestabilite.
204
23. Foi de calcul tabelar
206
1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19
207
număr – conţine numai cifre şi este aliniat la dreapta implicit.
Afişarea unui număr mare se poate face prin mantisă şi exponent –
dacă prin lungimea sa nu încape (deci nu este vizibil integral) în
celulă; de exemplu numărul 15.000.000.000 va apare 1.50E+10. Se
poate indica numărul de zecimale şi modalitatea de afişare a
numărului: număr obişnuit („Number”), însoţit cu simbol de monedă
(„Currency”), procent („Percentage”), în format ştiinţific
(„Scientific”), ca număr special („Special” de exemplu cod poştal,
număr de telefon, cod numeric personal).
șir de caractere („Text) – conţine orice simboluri de scriere şi
începe cu o literă, fiind aliniat la dreapta implicit. Într-o celulă se
poate înscrie un şir de maxim 256 caractere.
dată şi oră – reprezentate ca numere astfel: data ca întreg indicând
numărul zilei începând cu 31 Dec. 1899, iar ora ca număr zecimal
fracţie a zilei (de 24 ore) – de exemplu ora 12 la prânz reprezentată ca
0,5. Formatul de afişare a datei şi orei este însă ales după dorinţă de
utilizator: ex. 15.03.2003, 15 martie 2003, 15.03.03, etc.
formulă – expresie care începe cu semnul ‘=’, conţine operanzi,
operatori şi funcţii. Operanzii pot fi literali (valori directe) sau adrese
1 2 3 4 5 6 7 8 9
208
Conţinutul celulei C1 este vizibil în bara de formule iar în foaia de
calul (celula C1) apare valoarea rezultat a formulei.
Operanzii formulei sunt literalul 5 şi funcţia 6 (ROUND -
rotunjire) care are doi parametri: primul parametru este valoarea de
rotunjit - raportul între celulele A1 şi B1 - (vezi 7 şi 8 ) iar al doilea
9 este numărul de zecimale la care se face rotunjirea – în exemplul
209
Există şi situaţii în care adresarea relativă nu este avantajoasă, de
exemplu calculul valorii cu TVA indicată în Figura 36. Celula B10
conţine procentul de TVA şi apare ca operand în E2, cu denumirea
coloanei şi numărul liniei precedate de simbolul special $, care are ca
efect transformarea adresei B10 în adresă absolută.
Astfel, operandul indicat prin $B$10 nu va fi actualizat la copierea în
alte celule, adică va rămâne indicat în mod absolut. În acest fel se
poate evita înscrierea procentului TVA în mod explicit în fiecare din
formule – adică în E2 ar fi =D2*(1+0.19) – valoarea TVA înscrisă ca
literal, dar nici nu ar trebui înscrisă pentru fiecare din rânduri (spre a
folosi celule operand cu procent TVA – dedicat fiecăruia din rânduri).
210
literali, adrese de celule (de ex. D2) şi/sau adrese de blocuri (de ex.
D2:D7).
În Tabel 10 se prezintă categorii de funcţii comune accesibile în foi de
calcul electronic, cu câteva exemple de funcţii în fiecare categorie.
Tabel 10. Funcţii pe categorii şi rolul lor
Categoria Exemple de funcţii
ABS(număr) – furnizează valoarea absolută pentru număr.
SIN(număr) – furnizează valoarea sinusului pentru număr.
PI() – furnizează valoarea numărului .
RAND() – furnizează un număr subunitar aleator.
Matematice
ROUND(număr, nr_zec) – furnizează rotunjirea număr la nr_zec
zecimale.
EXP(număr) – furnizează e (Neper) la puterea număr.
COMBIN(n,m) – furnizează combinaţii de n luate câte m (Cnm).
AND(l1, l2, ... ) – furnizează valoarea logică TRUE dacă toate
valorile logice l1, l2, ... (maxim l30) sunt TRUE
OR(l1, l2, ... ) – furnizează valoarea logică FALSE dacă toate
valorile logice l1, l2, ... (maxim l30) sunt FALSE
Logice
NOT(l1) – furnizează valoarea logică TRUE dacă valoarea logică
l1 este FALSE şi reciproc
IF(expr_logica, val_DA, val_NU) – evaluează expresia logică
expr_logica şi la rezultat TRUE furnizează val_DA altfel val_NU.
AVERAGE(n1, n2, ...) – furnizează media aritmetică a numerelor
n1, n2, ... (maxim n30).
COUNT(v1, v2, ...) – furnizează numărul de valori numerice din
setul de valori v1, v2, ... (maxim v30); argumentul poate fi un bloc
de celule cu valori de orice tip pentru care se indică pe cele
Statistice numerice.
VAR(n1, n2, ...) – furnizează abaterea medie pătratică (varianţa)
pentru numerele n1, n2, ... (maxim n30).
CORREL(b1, b2) – furnizează corelaţia (măsura relaţiei) între
valorile a două blocuri de celule b1, b2, ca un număr subunitar în [-
1, 1].
211
MAX(n1, n2, ...) şi MIN(n1, n2, ...) – furnizează maximul respectiv
minimul numerelor n1, n2, ... (maxim n30).
AMORDEGRC(cost, data_ac, per1, val_r, per, rata, baza) –
furnizează amortizarea pentru numărul per de perioade, conform
ratei de amortizare rata pe o perioadă (lună, an), pentru bunul
achiziţionat la data_ac şi sfârşitul primei perioade de amortizare
per1 (la amortizări nelineare), cu baza de calcul baza (o valoare
între 0 şi 4 indicând sistemul de datare – pe 360 sau 365 zile).
IRR(valori, eval) – furnizează rata internă de revenire a unui flux
de capital (sumele predate la intervale fixe – lună, an), adică
dobânda pentru o investiţie cu depuneri periodice (sume negative)
sau un venit periodic (sume pozitive); eval este estimarea dobânzii
dorite.
FV(dob, nper, prima, pv, mom) – furnizează valoarea viitoare a
unei investiţii cu dobânda dob făcută prin plăţi periodice prima, pe
Financiare un număr nper perioade (pentru fiecare primind dobânda dob).
Parametrii pv şi mom sunt opţionali, indicând valoarea evaluată în
prezent a unei serii de investiţii respectiv momentul când se face
plata primei (la începutul sau sfârşitul perioadei).
PMT(dob, nper, pv, fv, mom) – furnizează valoarea ratei (ca sumă
plătită) pentru un împrumut cu plăţi periodice (v. parametrii mai
sus).
NPER(dob, pmt, pv, fv, mom) – furnizează numărul de perioade
pentru o investiţie cu plăţi pmt şi dobândă dob constante (v.
parametrii mai sus).
IPMT(dob, per, nper, pv, fv, mom) – furnizează valoarea dobânzii
plătite pentru o ipotecă cu plăţi periodice în perioada per (număr
între 1 şi nper – numărul total de perioade), pentru un împrumut pv
(fv şi mom sunt opţionali, cu semnificaţii de mai sus).
Toate funcţiile au ca argumente: blocul ce conţine baza de date,
coloana (câmpul) pentru care se doresc prelucrările şi blocul unde
se află criteriile de selecţie
Baze de
Date DGET(baza, coloana, criteriile) – furnizează valoarea din coloana
specificată din baza de date, care satisface criteriile.
(Tabele)
DAVERAGE(baza, coloana, criteriile) – furnizează media
valorilor din baza de date pentru coloana şi criteriile specificate.
DSUM(baza, coloana, criteriile) – furnizează suma valorilor din
212
baza de date pentru coloana şi criteriile specificate.
DMAX(baza, coloana, criteriile) – furnizează maximul valorilor
din baza de date pentru coloana şi criteriile specificate.
Figura 37. Caseta de dialog pentru definirea numelor de celule sau blocuri
Se pot defini mai multe nume pentru acelaşi bloc de celule; de
exemplu, o celulă cu valoarea unei sume de bani poate fi denumită
SumaDisponibila şi SumaImprumutata, pentru a fi folosită intuitiv
într-o funcţie, în contextul parametrilor acesteia.
213
23.4. Facilităţi de prezentare calitativă şi sintetică a informaţiilor
Volumele mari de date, ce se pot stoca şi prelucra într-o foaie de
calcul electronic, constituie o prezentare analitică a unei situaţii din
lumea reală. Pentru a manipula aceste date şi pentru a extrage
informaţii utile deciziilor, acestea trebuie prelucrate şi prezentate în
mod sintetic şi calitativ, pentru care foile de calcul electronic oferă
diferite modalităţi. Unele dintre acestea se prezintă succint în
continuare.
Structuri de tip listă şi tabel
Organizarea informaţiilor în liste şi tabele este foarte avantajoasă
vizionării şi prelucrării lor. În foile de calcul electronice, listele sunt
înşiruiri de obiecte cu o singură dimensiune (pe o linei sau pe o
coloană), iar tabelele prezintă linii (fiecare indicând un obiect) şi
coloane (fiecare indicând o proprietate generică). De fapt, o listă sau
un tabel ocupă un bloc de celule cu o singură dimensiune, respectiv cu
două dimensiuni.
Foile de calcul tabelar îşi trag numele de la facilitatea de bază a
acestora – crearea de tabele. Un tabel poate conţine date de tipuri
diferite şi poate reprezenta orice situaţie din lumea reală: se poate
referi la persoane şi date asupra lor, la un inventar de obiecte (de
exemplu în contabilitate, cu valori şi diverse rezultate prelucrate
asupra fiecărui obiect), se poate referi la informaţii tehnice şi calcule
ştiinţifice asupra lor. Tabelul realizat este posibil de utilizat în acelaşi
mod în care se lucrează cu baze de date.
Similar produselor de baze de date, se poate lucra cu fiecare coloană
prin numele său de câmp şi se pot face sortări şi apoi filtrări ale
datelor pe baza unor criterii specificate. De exemplu, pentru tabelul
din Figura 36 se definesc nume pentru coloane astfel: coloana A –
Produs, coloana B – Pret_unitar, coloana D – Valoare.
Pe acest exemplu, se poate face sortarea produselor după valoarea din
magazie, în sens crescător (ascendent), specificând prin meniu „Data-
Sort” numele câmpului şi modul de sortare – v. Figura 38. Urmare a
acestei comenzi, apar liniile ordonate crescător după câmpul Valoare
(denumit acum cheie de sortare). Se poate face sortarea după mai
214
multe chei, pentru cazul în care primul câmp cheie de sortare are
valori identice în unele rânduri – de exemplu pentru sortarea unui
tabel cu date despre persoane, întâi sortat după nume apoi după
prenume, fiindcă se pot găsi persoane cu nume identice şi este
necesară ordonarea acestora după altă cheie – prenumele.
Figura 38. Caseta de dialog pentru sortare în baza de date (tabel din Figura
36)
215
Figura 39. Baza de date pregătită pentru filtrare după valori ale coloanei
Preț unitar
Grafice
O altă facilitate foarte utilă în foile de calcul electronic o reprezintă
graficele. Acestea sunt folosite pentru a prezenta în mod calitativ şi
sintetic informaţia numerică, sub diferite forme, astfel că se pot
compara „dintr-o privire” situaţii cantitative. Graficele sunt o
reprezentare a uneia sau mai multor serii cantitative, relative la
momente sau situaţii discrete date. O serie cantitativă este o listă de
numere (înscrisă pe o linie sau pe o coloană) în care elementele indică
starea la un moment dat în evoluţia unei mărimi (de exemplu vânzări
lunare ale unui produs pe fiecare lună din an) sau valorile statice ale
mai multor mărimi (de exemplu proporţia – în procente, a vânzărilor
primelor 5 cele mai vândute produse). Privind reprezentarea grafică a
numerelor, se pot face uşor şi clar o comparaţii sau se pot stabili relaţii
calitative între mărimi cantitative – necesare în luarea deciziilor.
Reprezentarea grafică a seriilor de numere se poate face în diferite
sisteme de coordonate:
Carteziene – sistem de axe perpendiculare în două sau trei
dimensiuni (2D sau 3D). De obicei axa orizontală transversală (pe
lăţime) este denumită „Axa X” reprezintă situaţiile de referinţă (de ex.
momente de timp în evoluţia mărimii ilustrate grafic). Axa verticală –
„AxaY”, este cea pe care se reprezintă cantităţile (numerele efective
din serie). La graficele 3D există o a treia axă – „Axa Z”, orizontală în
216
profunzime, care indică fiecare serie atunci când se ilustrează mai
multe serii (mai multe mărimi) simultan pe acelaşi grafic.
Polare – sistem de reprezentare circulară în două dimensiuni, care
ilustrează intuitiv cantităţi comparative ce împreună fac un întreg (ca
de exemplu grafic „tort” în care fiecare felie reprezintă vânzarea unui
produs pe o lună anume din întregul an). Graficele polare au efecte 3D
dar numai pentru o ilustrare mai estetică.
218
Graficele pot fi realizate rapid şi apoi se pot completa cu toate
informaţiile utile folosind un asistent („wizard”) care conduce
utilizatorul prin paşi, fiecare prezentând o casetă de dialog:
a. Alegerea tipului de grafic – dintr-o listă de tipuri; în Tabel 11 se
prezintă aceste tipuri şi situaţiile în care sunt utile fiecare.
b. Indicarea seriilor de numere ca blocuri în foaia de calcul, pentru
axele X, Y şi Z. La graficele care prezintă mai multe serii de numere
în acelaşi sistem de coordonate este necesară denumirea fiecărei serii
în parte.
c. Completarea graficului cu informaţii suplimentare lămuritoare şi
plasarea acestora în imaginea finală: titlul şi subtitlul graficului,
denumirea axelor şi marcarea diviziunilor pentru mărimile cantitative
pe care le reprezintă, legenda, alte informaţii lămuritoare (valorile
numerice efective, etichete cu comentarii ataşate unor valori din
serie), culori şi modele grafice de haşură (linii paralele trasate oblic,
orizontal, vertical) sau poşare (umbrire sau culoare uniformă sau în
degradé).
d. Denumirea şi plasarea graficului în foaia de calcul sau într-o foaie
separată, dedicată (foaie de grafic).
221
Pentru obţinerea rezultatului urmărit se poate apela la mijloace de
analiză şi sinteză pe loc – prin tabele pivot, regresii sau analize
statistice, care ajută la găsirea metodei de soluţionare a problemei.
222
24. Reţele de calculatoare şi comunicaţii
223
25. Problematica reţelelor de calculatoare
224
mici (centimetri). Elementele de prelucrare se află în general în
aceeaşi carcasă.
Interconectare prin cuplaj slab, în care procesoare independente
schimbă date prin interfeţe specializate (interfeţe de comunicaţie) şi
prin medii de transfer exterioare, pe distanţe la nivelul clădirilor sau la
nivel global.
În general, se înţelege prin reţea de calculatoare un ansamblu de
elemente de prelucrare cuplate slab. Elementele de prelucrare pot fi
calculatoare (cu putere de calcul mai mare sau mai mică) dar şi
imprimante, arii de discuri, SAN sau NAS, instalaţii pentru
comunicaţie prin cablu, fibră optică sau instalaţii pentru comunicaţii
prin satelit.
225
Modul de lucru uzual în reţele de calculatoare este bazat pe
arhitectura client-server, în care programul de lucru este împărţit în
două părţi (client şi server) ce conlucrează între ele. Există însă şi
modalităţi de lucru în arhitectura gazdă-terminal („host-terminal”), în
care întreg programul se execută pe o maşina gazdă (care rulează
logica aplicaţiei şi găzduieşte datele) iar operaţiile de intrare / ieşire
spre utilizatorul uman se execută de terminal.
Mediu de transfer
Undele electromagnetice transportă date între echipamentele din reţea
dar ele necesită un suport de propagare care poate fi:
cablu – pentru propagarea undei electromagnetice în spectrul
invizibil (prin cupru) sau în spectrul vizibil prin (fibră optică);
eter7 – spaţiul deschis atmosferic sau cosmic (vid), asigurând
comunicaţii în spectrul invizibil (radio, infraroşu, microunde) sau în
spectrul vizibil (laser).
În oricare din situaţii, o secţiune de mediu neîntreruptă se numeşte
segment; acesta poate fi segment de cablu sau doar spaţiul dintr-o
încăpere prin care se face legătura directă între staţii interconectate
prin infraroşu sau Wi-FI.
Cablurile de cupru sunt de diferite tipuri, dependent de numărul de fire
şi modul lor de plasare în cablu (de exemplu prin împletire – fire
torsadate), de gradul de ecranare faţă de perturbaţii din exterior, de
tipul mantalei de izolaţie. Tipul de cablu folosit la realizarea unei
reţele se alege după cerinţele de performanţă ale reţelei în compromis
cu costul cablului - cat 5, 6, 7.
Echipamente de interconectare
Pentru direcţionarea pachetelor de date pe drumul către destinaţie, pe
unul din mediile de propagare din reţea, se folosesc echipamente care
au rol de dispecer – denumite echipamente de interconectare. Acestea
sunt adesea construite în jurul unui sistem de calcul dedicat, pe care
nu lucrează utilizatorul uman (eventual se poate conecta
7
Noţiune apărută în secolul al XIX-lea, indicând un suport material pentru propagarea
undelor în vid, care însă nu a fost susţinut de experimente.
226
administratorul de reţea doar pentru a realiza anumite configurări).
Echipamentele de interconectare pot fi de tipurile:
repetor („hub”) – care practic prelungeşte două sau mai multe
segmente ale mediul de transfer, realizând amplificare de semnal şi
intervenţii sumare în pachetele de date;
comutator („switch”) – care recepţionează, memorează şi înaintează
pachetele de date spre segmente conectate direct la alte echipamente
(de prelucrare sau interconectare);
punte („bridge”) – care interconectează reţele locale de tipuri
diferite, asigurând despachetarea şi reîmpachetarea datelor specific
fiecărui LAN.
dirijor („router”, numit impropriu „gateway” în jargonul Internet) –
care interconectează reţeaua locală (LAN) la reţeaua largă (WAN), de
obicei printr-un operator de servicii de comunicaţii;
releu de cadre („frame relay”) – care face interconectarea la reţele
de mare viteză, cu comutare (similare celor telefonice ca mod de
funcţionare), asigurând transfer de date, voce şi imagine, toate
digitizate.
Echipamentele de interconectare asigură canale de transfer a datelor
între echipamentele de prelucrare şi în plus pot mixa diverse medii de
propagare (cabluri de cupru, fibră optică, eter). Astăzi, aproape toate
tipurile de echipamente de mai sus asigură şi posibilităţi de
administrare a resurselor în reţea, adică: configurarea de la distanţă a
diverselor echipamente, auto-anunţarea defectului, locului şi
momentului în care a survenit, identificarea tipului de echipament şi
producătorul pentru generarea automată a schemei actuale de
configurare a reţelei. Aceste mijloace şi software-ul adecvat sunt
instrumente puternice în mâna administratorului de reţea, pentru
asigurarea funcţionării corecte şi neîntrerupte a reţelei.
229
dezavantajul major este lungimea mare de cablu necesară pentru
realizarea interconectării staţiilor. Este cea mai utilizată topologie în
reţelele locale actuale de tip Ethernet.
Topologia inel (v. Figura 40 b) – toate echipamentele sunt conectate
două câte două formând un inel. Pachetele de date parcurg întreg
inelul pentru a ajunge de la o staţie sursă la una destinaţie. Avantajele
majore sunt extensibilitatea reţelei (inelul se poate mări fără a
consuma cablu mult) şi disciplina de acces impusă prin chiar poziţia
staţiilor în reţea, fiind o topologie utilizată la reţele cu pasare de jeton.
Este o topologie utilizată în reţele locale, difuzarea asigurându-se prin
faptul că datele emise de o staţie parcurg întreg inelul spre a reveni la
staţia sursă, trecând astfel pe la staţia destinaţie dar pachetele fiind
„ascultate” de toate staţiile de pe parcurs.
Topologia inel în formă de stea – în care există un echipament
central de la care pleacă un cablu cu fire dus-întors către staţii;
combină avantajele celor două topologii.
Topologia magistrală – în care staţiile sunt conectate la o linie
comună pe care o împart la momentul emisiei. În Figura 41 a) se
prezintă o magistrală aşa cum este ea utilizată mai des astăzi, anume
pentru „coloana vertebrală” („backbone”) a unei reţele mari (de
exemplu reţea metropolitană MAN). Se observă că la magistrală sunt
conectate dirijoare, care apoi transmit datele la reţele locale. Se
asigură astfel o cale simplă şi relativ ieftină (pentru distanţe mari) în
care datele sunt transferate cu viteză mare, iar traficul pe magistrală nu
este încărcat decât cu date schimbate între reţelele locale (traficul din
interiorul lor fiind „ascuns” prin dirijorul propriu R). Avantajul major
îl constituie lungimea de cablu – minimă între toate tipologiile, dar şi
posibilitatea de emisie a unui pachet care poate fi „auzit” de toţi
abonaţii magistralei; dezavantajul major îl constituie fiabilitatea slabă
– un defect nu se poate localiza uşor, el blocând toată magistrala în
orice punct ar surveni (pe cablu, în conectori, etc.).
Topologia plasă – în care staţiile au legături multiple între ele (două
câte două). Este o topologie utilizată în reţele largi, în Figura 41 b)
fiind ilustrată o reţea largă cu interconectare plasă a mai multor
230
dirijoare, fiecare fiind o „poartă” către o reţea locală. În această
topologie importantă este redundanţa căilor pentru date între staţii
(adică existenţa mai multor trasee pentru transferul de date); prin
redundanţă, se poate menţine funcţionarea reţelei largi chiar la apariţia
defectelor pe o linie sau la un dirijor, pentru că se pot folosi trasee
ocolitoare – stabilite pe loc de către celelalte dirijoare în momentul
când cel implicat în defect nu mai răspunde.
a
) b
)
Figura 40. Topologia stea a) şi topologia inel b)
R R
a b)
)
Figura 41. Topologia magistrală a) şi topologia plasă b)
231
25.3. Comunicaţii prin reţele de calculatoare
Transferul de date în reţele de calculatoare presupune suportul fizic
(echipamente şi medii de comunicaţie), dar şi programe prin care se
asigură controlul comunicaţiei şi găsirea destinaţiilor şi prezentarea
comodă a informaţiilor la utilizatori.
Făcând o comparaţie cu serviciile poştale se poate considera că, lângă
clădirile şi mijloacele de transport ale poştei, sunt necesare persoane
care să realizeze înscrierea expeditorului şi destinaţiei pe plicuri,
cartarea şi distribuirea plicurilor pe destinaţii, efectuarea de servicii
speciale la cerere (transport rapid sau peste rând, confirmare de
primire), gestiunea codurilor poştale, apoi controlul şi rezolvarea
plicurilor rătăcite, etc. Aceste operaţiuni se realizează în serviciile
poştale de către personalul uman, dar pentru calculatoare asemenea
acţiuni se efectuează de către software.
Stratificarea în modelul de referinţă ISO/OSI
Aşa cum personalul uman din serviciile poştale este specializat pe
anumite activităţi, fiecare având un rol bine definit şi interacţiuni de
conlucrare (pe orizontală) cu colegii şi interacţiuni ierarhice (pe
verticală) sau cu şefii sau departamente de nivel superior, tot astfel
piesele software implicate în comunicaţia de date sunt stratificate şi
conlucrează între ele în cadrul unui strat şi comunică cu straturile
superioare şi inferioare.
Modelul de Referinţă ISO/OSI prezintă conceptele de stratificare a
prelucrărilor necesare în comunicaţia de date şi se bazează pe
noţiunile de mesaj – ca informaţie ce are o semnificaţie de sine
stătătoare (de exemplu fişier de date, mesaj de poştă electronică, etc.)
şi pachet – ca structură de date utile (fragment de mesaj – fără
semnificaţie) cu date de control al transportului de date. În modelul de
referinţă se consideră şapte niveluri (straturi), fiecare cu rol în
comunicaţia de date după cum urmează:
1. Nivel Fizic – cuprinde piesele fizice (hardware) prin care se
transformă succesiunea de biţi din pachetele de date în semnal
electromagnetic, care circulă apoi prin mediul de comunicaţie între
echipamente de interconectare şi de prelucrare.
232
2. Nivelul Legătură de Date – cuprinde piese software care asigură
informaţia de control al erorilor şi debitului de date, precum şi adresa
de direcţionare a pachetelor de date spre vecinul cel mai apropiat (pe
traseul către destinaţia mesajului), realizând şi controlul comunicaţiei
(verificarea erorilor şi controlul de flux); funcţionează în echipamente
de interconectare şi de prelucrare.
3. Nivelul Reţea – cuprinde piese software care asigură informaţia de
control a transferului de date între capete, precum şi adresa de
direcţionare a pachetelor de date spre destinaţia finală pe traseul
optim (în orice condiţii şi oricât de îndepărtată ar fi ea); funcţionează
în echipamente de interconectare şi de prelucrare.
4. Nivelul Transport – cuprinde piese software care asigură
fragmentarea mesajului (la sursă) şi defragmentarea sa (la destinaţie)
în pachete, precum şi indicarea tipului de serviciu (calitatea
serviciului, transport peste rând, etc.); funcţionează în echipamente de
prelucrare (sursă şi destinaţie).
5. Nivelul Sesiune – cuprinde piese software care asigură desfăşurarea
„discuţiei” bidirecţionale între cele două capete, cu rezolvarea
incidentelor care pot apare pe durata sesiunii de lucru (cum sunt
întreruperea comunicaţiei la defecte sau la iniţiativa unuia din
parteneri); funcţionează în echipamente de prelucrare (sursă şi
destinaţie).
6. Nivelul Prezentare – cuprinde piese software care asigură
compatibilizarea reprezentării datelor între cele două maşini sursă -
destinaţie (înţelegând aici şi partea hardware – tipul calculatorului, dar
şi partea software – tipul sistemului de operare) În plus, acest nivel
este responsabil de asigurarea confidenţialităţii transferului de date
(criptarea şi decriptarea datelor), de autentificarea emiţătorului şi
receptorului de mesaj (adică de certificare a identităţii lor), precum şi
de integritatea mesajelor (adică de anunţarea pierderilor sau
modificărilor de mesaj). Funcţionează în echipamente de prelucrare
(sursă şi destinaţie).
7. Nivelul Aplicaţie – care asigură piese software de prezentare şi
interacţiune standard cu utilizatorul uman pentru o utilitate anume. De
233
exemplu, toate aplicaţiile de poştă electronică prezintă câmpuri
similare pentru adresa destinatarului, subiect, mesaj, ataşamente.
Utilizatorul operează similar la aplicaţii de comunicaţie similare, iar
programele au protocoale de comunicaţie identice – indiferent de
producător.
Server FTP
FTP client
Nivel 4 TCP 4
Nivel 3 IP 3
Ethernet 2
Nivel 2
Nivel 1
235
diverse periferice speciale: mese de desen, interfeţe de comunicaţie,
echipamente multimedia, interfeţe de proces.
Fiind folosite în comun, resursele trebuie gestionate adică alocate pe
rând fiecărui utilizator care solicită accesul la resursă; de obicei,
sarcina de gestionare a unei resurse revine unui program server (care
lucrează permanent – este „rezident” în memoria de lucru) pe
calculatorul sau la dispozitivul unde se află resursa (de exemplu,
imprimanta de reţea are programul server instalat în memoria sa).
Resursele trebuie apoi administrate adică întreţinute periodic
(verificate şi eliminate erorile minore sau informaţiile inutile),
dezvoltate (perfecţionate sau completate cu noi facilităţi), asigurate
(protejate împotriva defectelor şi accesului neautorizat).
O resursă care se doreşte folosită în comun – partajată („shared”) în
reţea, se declară ca atare şi se indică pentru fiecare utilizator modul de
acces la resursă.
Utilizatori şi drepturi de acces la resurse
Lucrul în reţea a mai multor utilizatori presupune comunicaţie între
aceştia, folosirea în comun a unor resurse dar şi posibilitatea de a se
perturba reciproc – prin ştergerea voită sau accidentală a unor fişiere,
prin acces neautorizat la anumite informaţii etc. Pentru evitarea
acestor neajunsuri, utilizatorii se conectează („logon”, „login”) la
sistemul de calcul în reţea, indicând următoarele informaţii proprii de
anunţare şi certificare a identităţii:
nume de utilizator („user name”) – ce identifică persoana în lista de
utilizatori admişi la sistem şi permite acces acesteia la contul personal
(de obicei numele este prenumele persoanei sau o prescurtare a
numelui);
parola („password”) – care certifică identitatea utilizatorului, este
secretă şi cuprinde o combinaţie de caractere (litere mari/mici, cifre)
greu de ghicit (recomandat a fi schimbată din când în când);
grupul de utilizatori („user group” / „domain”) – autorizează
accesul utilizatorului la un lot de resurse (fizice – ca maşini în reţea,
sau logice – ca fişiere şi directoare).
236
Conform grupului din care face parte, utilizatorul are un set de
drepturi de acces la resursele disponibile în reţea – numite şi drepturi
de încredere („trustee rights”) sau permisiuni („permissions”). Aceste
drepturi indică pentru fiecare resursă sau lot de resurse operaţiile
permise utilizatorului, de exemplu pentru fişiere: „numai citire”,
„citire şi scriere”, „modificare drepturi de acces”. Un utilizator poate
indica, drepturi pe care la acordă altor utilizatori la resursele proprii -
de obicei diferenţiat după grupul din care fac parte („din grupul
propriu” şi „alţii”).
Există următoarele tipuri generice de utilizatori (clasificare după
drepturile de încredere şi după atribuţiile în funcţionarea reţelei):
utilizator obişnuit („user”) – persoană înscrisă în registrele
sistemului, care utilizează doar resursele permise, în perioadele de
timp permise şi la nivelul permis (privind volumul de date transferat,
spaţiul de stocare alocat etc.);
manager de grup („group manager”) – persoană desemnată din
cadrul grupului, care face operaţiuni de gestionare a resurselor proprii,
ale grupului şi ajută pe ceilalţi utilizatori la rezolvarea unor incidente
simple;
administrator de reţea („superuser”, „network administrator”) –
persoană care are ca atribuţii de lucru gestionarea tuturor resurselor
reţelei şi menţinerea acestora în bună funcţionare.
Între aceşti utilizatori doar administratorul de reţea este obligatoriu cu
calificare în domeniul informaticii, el fiind răspunzător de bunul mers
al reţelei (starea de funcţionare, tipul şi disponibilitatea resurselor,
dezvoltarea reţelei) dar şi de administrarea eficientă a resurselor şi
echipamentelor de interconectare în reţea. Pentru aceasta, el deţine
drepturi de acces complete la toate resursele, fiind totodată primul
răspunzător de integritatea şi confidenţialitatea lor.
Unele resurse au ataşate atribute ce indică modul de acces şi starea
lor, pentru a le proteja de manevre greşite ce pot veni din partea
oricărui tip de utilizator (simplu sau administrator) ori pentru a efectua
salvarea de siguranţă („backup”) a acestora pe suport extern (benzi
magnetice, CD, DVD etc.).
237
Tipuri de servicii în reţele locale şi largi
De obicei, accesul la o resursă partajată poartă numele de serviciu în
reţea (acordat unui utilizator). De obicei, serviciile în reţea sunt
realizate prin arhitectura client-server (două piese software legate: una
pe staţia de lucru alta pe server). După locul unde se află resursa şi
după modul de „proprietate” asupra ei, serviciul (accesul la resursă)
pot fi:
orientat server – în care resursa este „publică”, se află pe o maşină
dedicată care gestionează resursa şi care o alocă pe rând utilizatorilor;
de-la-egal-la-egal („peer-to-peer”) – în care resursa este
„proprietatea” unui utilizator, se află pe staţia sa de lucru şi este
oferită de acesta spre a fi partajată („shared”) cu alţi utilizatori prin
reţea.
Serviciile sunt oferite (şi gestionate) de programe care fac parte direct
din sistemul de operare sau sunt programe separate – ce sunt lansate şi
rămân rezidente în memoria de lucru, aşteptând cereri de la utilizatori
şi oferind date şi/sau prelucrări specifice.
În reţele locale (LAN) sistemul de operare oferă mai ales servicii de
acces la fişiere şi la periferice; serviciile sunt orientate server sau, cel
mai adesea, sunt de la egal la egal, caz în care resursele puse în comun
de către utilizatori sunt montate pe staţiile de lucru proprii.
În reţele largi (WAN), programele server se instalează peste sistemul
de operare– fiecare pentru un serviciu anume, acesta fiind accesat de
la distanţă prin intermediul unei adrese unice în toată reţeaua largă
(spre exemplu în Internet adresa IP şi numărul de port). Serviciile
uzuale în reţele largi vizează schimbul de informaţii, mai rar fiind
întâlnite servicii de partajare a resurselor sau lucru la distanţă. Aceste
servicii sunt realizate în arhitectură client-server, cu programul server
aflat la o locaţie („site”) cu adresa unică în reţeaua largă.
Exemple de servicii în reţeaua Internet sunt: căutare şi afişare de
informaţii sub formă de documente (pagini web sau documente scrise
în format electronic), tranzacţii comerciale sau financiare prin
238
Internet, vot prin Internet, discuţii în grupuri cu moderator, rețele de
socializare etc.
Un serviciu special (care se oferă implicit sau explicit) este „serviciul
de nume”, prin care se caută şi găseşte un nume de persoană sau
locaţie. Serviciul implicit (DNS) este utilizat pentru convertirea
adreselor Internet sub formă de nume în adrese sub formă de numere
(folosite apoi efectiv la căutarea locaţiilor în Internet) şi reciproc.
Oferta de servicii în reţele largi (în special în Internet) creşte şi se
diversifică continuu, în principal prin posibilităţile de interacţiune pe
care le prezintă limbajul XML ca standard de comunicare prin mesaje.
Serviciile Web sunt aplicaţii modulare, auto-descriptibile şi auto-
conţinute, reprezentând viitorul în schimbul de informaţii bazat pe
standarde deschise lucrând pe orice platformă, orice model de obiecte
şi orice limbaj de programare.
239
26. Internet şi Intranet
240
care se poate focaliza interesul şi registrul de căutare după
preocupările membrilor grupului.
242
În 1989 Tim Berners Lee de la Laboratorul European de Fizica
Particulelor din Geneva (CERN), a propus un sistem de informare
bazat pe hipertext pentru echipele de cercetători, acestea fiind situate
în zone geografice diferite, folosind calculatoare diferite şi documente
realizate în tehnologii diferite. Scopul sistemului era de a oferi o
interfaţă standard pentru operare şi prezentarea documentelor, precum
şi posibilitatea de integra diferite tipuri de servicii (existente la acel
moment în Internet). Sistemul a fost denumit „World Wide Web”
(reţea largă cât lumea), prescurtat www sau web. Această soluţie de
prezentare standard şi de integrare a serviciilor a revoluţionat Internet-
ul, astfel că astăzi – când se discută de Internet se subînţelege în cele
mai multe cazuri www.
Hipertextul („hypertext”) este un text electronic „în trei dimensiuni”:
pe lângă organizarea pe linii care se succed în pagină, există legături
(„hyperlinks”, „links”) cu alte pagini aflate pe maşina curentă sau pe o
maşină distantă. Legăturile sunt de fapt trimiteri (ce se regăsesc şi în
cărţile tipărite) care însă în pagina electronică permit „saltul” la
informaţia indicată şi vizualizarea documentului pe loc. Limbajul de
descriere a paginii web se numeşte HTML (Hyer Text Markup
Language) şi are caracteristic faptul că separă conţinutul documentului
(text şi imagini) de informaţia de formatare.
Paginile web reprezintă documente de informare către utilizator, cu
facilităţi de acces interactiv în preluarea de date de la utilizator. Pagina
web şi mijloacele de interacţiune sunt găzduite de o maşină într-o
locaţie anume („site”) pe glob. Publicarea paginii web se face prin
intermediul unui program server web, iar utilizatorul poate accesa şi
vizualiza pagina de la calculatorul propriu – prin intermediul unui
program client web denumit navigator („browser”).
Utilizarea web-ului constă în „navigarea” prin intermediul adreselor
web şi a legăturilor din hipertextul aflat în paginile web, pentru
vizualizarea şi, eventual, furnizarea informaţiilor de interes. Serviciile
oferite de web sunt foarte diverse, însă interfaţa generală de lucru şi
modul de navigare este standard.
Adrese Internet
243
Pentru a fi accesată, o maşină conectată la reţeaua de calculatoare
trebuie să aibă alocată o adresă unică în reţea, astfel ca la emisia
datelor să indice destinaţia fără echivoc iar la recepţie datele să fie
îndrumate către ea prin sistemele intermediare. În Internet, adresele
sunt specificate prin numere – „patru numere cu punct” în IPv4 (sau
cu 16 numere pentru IPv6), de exemplu 192.168.11.33. Este dificil
pentru om să reţină aceste numere; în locul lor se folosesc cuvinte,
care au semnificaţie pentru om şi sunt deci uşor de memorat şi utilizat.
Exprimarea locului şi obiectului ce se doreşte accesat în Internet se
face prin URL („uniform resource locator”) care este o înşiruire de
cuvinte separate cu puncte, fiecare cuvânt exprimând numele de
domeniu, organizaţie, maşină şi obiect – în ordinea invers ierarhică a
acestora. Structura generică a URL – denumit pe comun „adresă
Internet” este:
<protocol>://<maşină.organizaţie.domeniu>:<port>/<obiect>
unde <protocol> indică tipul aplicaţiei de acces la date ( şi convenţia
sa de lucru) iar <port> adresa pe maşina locală a programului (folosită
în unele cazuri). Un exemplu de adresă Internet este următoarea:
http://www.univ-danubius.ro/index.php
domeniul
protocol obiect
organizaţiei
server domeniul
geografic
prin care se accesează pagina de prezentare a universităţii „Danubius”
din Galaţi. Pe acest exemplu se indică rolul fiecărui cuvânt din
structura unui URL.
Fiindcă WWW integrează diverse tipuri de aplicaţii, fiecare din
acestea poate fi accesată indicând protocolul specific ei; de exemplu,
aplicaţia de transfer fişiere pe un site foarte cunoscut este
ftp://ftp.funet.fi. – în care s-a indicat protocolul şi serverul FTP de la
„reţeaua academică finlandeză”.
În cazul în care adresa Internet se referă la o căsuţă poştală („e-mail
box”), adresa va conţine un indicativ (nume) al persoanei sau
ionpop@univ-danubius.ro
244
domeniul
idicativ
organizaţiei
persoană domeniul
„at” geografic
departamentului, proprietare a căsuţei poştale:
Simbolul @ se pronunţă „at” (în engleză) indicând locaţia unde se află
contul de poştă electronică a persoanei; deseori acest simbol este
indicat prin expresia „a rond” când se citează adresa de poştă
electronică.
245
Diverse alte servicii, cum sunt educaţie de la distanţă („e-learning”),
teleconferinţe (video sau doar prin voce şi date), informaţii şi acţiuni
administrative sau vot la distanţă („e-government”), acţiuni de
informare şi ajutor în sănătate („e-health”), se bazează pe combinaţii
ale serviciilor de mai sus şi în special pe navigare („browsing”). De
obicei, serviciile sunt oferite de un program server aflat într-o locaţie
cunoscută („site”), în conexiune cu alte locaţii.
Aplicaţii uzuale care oferă serviciile enumerate mai sus:
a) Server şi navigator Web – client şi server pentru găzduirea,
respectiv afişarea paginilor web, în principal prin interpretarea
limbajului HTML pentru descrierea documentelor. Alte limbaje
utilizate pentru descrierea documentelor la partea client sunt
JavaScript şi XML, iar pentru implementarea operaţiunilor desfăşurate
la server pentru client (în scopul animaţiei şi interactivităţii) sunt PHP,
Perl. Exemple de produse uzuale pentru partea client sunt MS Internet
Explorer, Mozilla, Opera, Safari, Chrome, iar pentru partea server sunt
MS Internet Information Server (IIS), Apache, HomePage etc.
b) Maşini de căutare – program server care permite introducerea unei
expresii ce conţine cuvinte cheie de interes (folosind operatori de tipul
+, - sau AND, OR pentru restrângerea căutării). Maşinile de căutare
prezintă baze de date şi legături către locaţiile unde se pot găsi
informaţiile căutate şi sunt rezidente pe un site cunoscut – cum sunt
Google, Yahoo, Baidu, Bing, Ask etc.
c) Căutarea de persoane prin serviciile de nume sau prin server şi
client ICQ (ca pronunţie a expresiei în engleză „I seek you” – te caut).
Utilizatorul care doreşte să caute sau să fie căutat prin Internet (în
scopul unei discuţii pe loc – ca şi cea telefonică, dar în scris) se înscrie
ca abonat la un server ICQ. Clientul ICQ anunţă serverul atunci când
utilizatorul s-a conectat la sistem (la calculatorul personal conectat la
Internet) iar serverul anunţă persoanele care doresc să comunice cu
acesta; din acest moment, poate începe discuţia între doi abonaţi prin
intermediul clienţilor ICQ.
d) Programe CGI rezidente pe maşinile server web, care sunt lansate
prin intermediul navigatorului de către utilizatorul uman şi execută
246
operaţiuni specifice paginii (preluarea şi încărcarea cu date prin
formulare completate de utilizator, preluarea tipului şi cantităţii unui
produs cumpărat prin Internet etc.). Programele sunt foarte diverse,
dedicate unei funcţii anume şi realizate în diverse limbaje de
programare (de obicei script).
e) Server şi client FTP – care găzduiesc şi respectiv permit accesul la
fişiere cu conţinut divers (documente, programe, arhive). Serverele şi
navigatoarele web furnizează servicii FTP, dar există şi produse
dedicate (CuteFTP) sau servere FTP în sistemele de operare (de tip
UNIX, Windows).
f) Telnet – aplicaţie uzuală de lucru la distanţă în care partea server
este oferită de sistemul de operare iar partea client este un emulator de
„terminal virtual” standard, a căror funcţii privesc introducerea şi
afişarea datelor (de la tastatură şi respectiv pe ecran) – ca şi cum
maşina utilizatorului ar fi terminal la sistemul distant. Server-ul şi
clientul telnet fac parte din sistemul de operare în reţea (de tip UNIX,
Windows) – instalate pe maşina locală şi distantă.
g) Server şi client de poştă electronică – în care serverul are rolul de a
găzdui căsuţele poştale ale utilizatorilor la sistemul respectiv, de a
primi şi a distribui mesajele către căsuţele poştale ale utilizatorilor, de
a lua legătura şi a transmite mesajele de la utilizatori la destinaţiile
indicate (prin adrese de poştă electronică); partea client este un
program care face parte din navigatorul web sau poate fi un produs
dedicat (cum este Eudora, Pegasus Mail), care oferă o interfaţă cu
câmpuri standard pentru a indica destinaţia, subiectul, conţinutul
mesajului şi fişierele ataşate acestuia. Server-ul de poştă electronică
face parte din sistemul de operare în reţea pentru sisteme UNIX, sau
din IIS la sisteme Windows. Toate aceste implementări privesc poşta
electronică de tip SMTP. Pentru poşta tip MHS există produse
dedicate, în general scumpe.
h) Chat şi Forum sunt numele generice ale aplicaţiilor care permit
discuţii de grup în Internet. Chat (IRC – Internet Relay Chat) este
utilizat pentru discuţia sincronă – toţi cei implicaţi în discuţie sunt
prezenţi simultan, iar Forum permite discuţia asincronă, cei implicaţi
pot să citească mesajele şi să răspundă mai târziu, în momentul când
247
s-au conectat la sistem sau au găsit timp pentru aceasta. În Chat, există
un server care găzduieşte mai multe grupuri simultane (camere,
„rooms”), discuţiile fiind supravegheate de un moderator prezent la
server. Clientul Chat este ori un produs ca MS NetMeeting sau MS
mIRC ori este oferit de site-ul ce găzduieşte serverul. O variantă de
discuţie pe Internet este oferită de unele site-uri de poştă electronică
gratuită prin clienţi de tip „Mesenger” pentru discuţie între doi abonaţi
la site care se află conectaţi simultan în reţea.
Există multe alte aplicaţii care se bazează pe comunicaţii la mare
distanţă (de exemplu iChat, Viber, Hangouts, Google Apps etc.);
unele din acestea au ca scop prelucrarea distribuită în reţele largi,
bazându-se, de exemplu, pe standardul CORBA (Common Object
Request Broker Architecture) sau pe standardul DCE (Distributed
Computing Environment), prin care se integrează aplicaţii diverse, pe
maşini diferite şi de generaţii diferite, folosind interfeţe software
standard ce permit lansarea şi operarea cu aceste aplicaţii de pe maşini
distante.
249
prin cablu coaxial (pe canale de 6 MHz lărgime de bandă) sau prin
fibră optică (DQDB de la 50 Mbps la 600 Mbps) în reţele MAN.
Pentru fiecare categorie de conectare este necesar un modem special şi
plata serviciului.
Conectare prin reţeaua locală
Atunci când organizaţia dispune de o reţea (reţea locală LAN – dacă
organizaţia este mică, sau interconectare de reţele locale – la
organizaţii mari) fiecare calculator este conectat la mediul de transfer
în LAN prin intermediul unei plăci de reţea (sau „adaptor/controller
de reţea”). Mediul de transfer este de obicei cuprul - prin cablu
torsadat ne-ecranat (UTP) sau Wi-Fi, iar reţeaua locală prezintă
echipamente de interconectare, de obicei prin „switch”.
Uzual, reţelele locale sunt de tip Ethernet (pe cablu UTP) având rate
de transfer de 10 Mbps sau 1 Gbps. Efectiv, rata de transfer în Internet
este însă determinată de tipul de acces la Internet a organizaţiei: prin
linie telefonică (comutată sau închiriată) sau prin linie de bandă largă
(fibră optică şi servicii de bandă largă).
Dependent de tehnologia reţelei locale, placa de reţea prezintă o
adresă fizică (pentru nivelurile 1 şi 2) prin care este accesată în reţeaua
locală, precum şi o adresă Internet (adresă IP – pentru nivelul 3) prin
care este accesată în Internet. Adresa fizică este, de obicei, înscrisă fix
în placa de reţea iar adresa IP este înscrisă de administratorul de reţea
în sistemul de operare sau este furnizată pe loc – la conectarea în
Internet, de către un server specializat (RARP). Pentru conectarea
organizaţiei la Internet, este necesar un echipament de interconectare
de tip dirijor („router”), eventual fiind emulat prin sistemul de operare
al maşinii server pentru Internet (web, e-mail, etc.) al organizaţiei.
26.4. Intranet
Prin Intranet se înţelege aplicarea tehnicilor şi conceptelor Internet în
interiorul unei organizaţii, folosind protocoale TCP/IP şi tehnologii
WWW. Astfel Intranet devine un Internet privat în care utilizatorii pot
folosi navigatoare şi celelalte facilităţi de comunicare WWW pentru a
250
schimba informaţii între ei. În plus, Intranet-ul este separat de restul
reţelei Internet prin sisteme de protecţie de tip „firewall”, prin care se
urmăresc toate operaţiile de acces din afară către Intranet şi se
blochează operaţii nepermise sau care reprezintă un pericol pentru
datele şi programele organizaţiei.
Cum astăzi se tinde spre o integrare a tuturor tipurilor de comunicaţii,
Intranet permite utilizarea în interiorul organizaţiei a platformei
universale de comunicaţie (multimedia şi hipermedia) pe care
navigatoarele web le pun la dispoziţie. În fapt, este necesar ca în
fiecare loc din mediul organizaţional Intranet, de unde se doreşte să se
facă publice informaţii, să existe un server web, la care se pot conecta
prin clienţi web (navigatoare web) membrii organizaţiei.
251
27. Utilizarea aplicaţiilor de comunicaţie în Internet
252
Figura 44) care poate fi pagina de prezentare a organizaţiei proprii sau
o altă pagină preferată. Utilizatorul va executa „salturi” spre alte
locaţii („site”-uri) prin intermediul legăturilor oferite de hipertextul
din paginile pe care le vizitează sau poate înscrie direct, în bara de
adresă 6 , adrese (URL) cunoscute.
1 2 3 4 5 6 7 8 9 10
253
Figura 44. O pagină web de start („home page”)
254
Figura 44) conţine elemente necesare parcurgerii paginilor web – ce au
fost vizualizate: 1 „parcurgere înapoi” - vizionarea paginii
precedente, 2 „parcurgere înainte” - vizionarea paginii următoare
(dacă s-a revenit la una precedentă), 3 oprirea încărcării paginii cu
adresa curentă, 4 reîncărcarea paginii curente, 5 salt la pagina de
start, 6 casetă de text pentru înscrierea adresei URL ce se doreşte
vizitată, 7 colecţie de adrese (URL) preferate (păstrate ca
„favourites” sau semne de carte „bookmarks”), 8 acces la client de
poştă electronică disponibil în navigator, 9 pagina web vizualizată,
10 buton de iniţiere a saltului la pagina cu adresa indicată în 6 .
255
funcție de anumite criterii de prioritate, va crea și afișa o listă de
rezultate.
Interfaţa interactivă prezintă obligatoriu o casetă de text pentru
introducerea interogării - sub forma cuvântului sau combinaţiei de
cuvinte de căutat. În Figura 45 se indică elementele uzuale ale
interfeţei unei maşini de căutare, prin exemplificare pe maşina
www.google.com:
258
28. Securitatea datelor și informațiilor
28.1. Conturi
Protejarea unui cont trebuie sa constituie o prioritate pentru utilizator.
În stabilirea gradului de securitate a contului trebuie să aveți în vedere
următoarele:
1. Informații privind securitatea contului
a. Mențineți informațiile de securitate a contului la zi (up to date)
b. Informațiile privind securitatea unui cont (declararea unui număr de
telefon sau o adresă alternativă de e-mail) sunt solicitate pentru a
verifică adevărata identitate a posesorului de cont în cazul uitării
parolei sau în cazul furtului de identitate (altcineva încearcă să preia
contul). De obicei aceste date declarate de utilizator nu sunt utilizate
în alte scopuri.
2. Complexitate parolă. Utilizarea unei parole complexe, care să fie
schimbată la un interval scurt de timp sau la un anumit număr de
accesări ale contului și care să:
a. conțină cel puțin 8 caractere;
b. conțină o combinație de cifre, litere și simboluri;
c. nu conțină numele utilizatorului, al companiei sau numele real al
persoanei deținătoare;
d. nu conțină cuvinte întregi;
e. să fie total diferită de parola anterioară;
f. să fie diferită de parola utilizată pentru alte conturi web, mai ales
față de cele de e-mail sau online banking;
3. Activare autentificare avansată. Anumite aplicații/site-uri care
necesită logare oferă posibilitatea verificării identității prin doi pași
(two-step verification). Această măsură sporește securitatea contului,
259
îngreunând sarcina unui hacker de a fura identitatea unui utilizator,
chiar dacă ar avea o cât de mică idee referitoare la
cunoașterea/ghicirea parolei. Activarea acestei opțiuni va cere, pe
langă informațiile clasice ale unui logări, un cod suplimentar de
securitare, transmis pe telefon sau contul de e-mail
alternativ/suplimentar inserat la pasul 1.
4. Instalare /actualizare ultima versiune software (sistem operare,
browser, programe, etc.). Majoritatea dezvoltatorilor de aplicații și
servicii își îmbunătățesc continuu produsele cu ajutorul update-uri de
securitate, înlăturând totodată breșele de securitate descoperite. Aceste
actualizări blochează atacurile produse de viruși și malware.
5. Instalare antivirus. Fără știința utilizatorului, contul poate deveni
vulnerabil. Prin simpla accesare a diferitelor site-uri sau descărcând
anumite programe sau fișiere, hacker-ii pot afla parola contului, prin
intermediul malware (malicious software), care se instalează fără
știința utilizatorului pe calculator. Prin urmare, este important ca în
momentul schimbării parolei sau a informațiilor privind securitatea
contului, calculatorul să fie ”scanat și curățat” cu un program antivirus
pentru a fi în siguranță.
6. Preventivitate. Utilizatorul trebuie întotdeauna să fie atent la
mesajele și site-urile web care prezintă anumite elemente de îndoială.
a. Nu deschideți mesajele sau fișierele atașate lor, transmise de către
utilizatori necunoscuți;
b. Virușii atașați mesajelor se pot răspândi cu repeziciune odată cu
accesarea fișierelor;
c. Este recomandat sa nu deschideți un fișier atașat, decât dacă acesta
este transmis de către un cunoscut sau dacă vă așteptați să primiți acel
fișier;
d. Asigurați-vă ca sursa de unde faceți un download este de încredere;
e. Fiți prevăzători când descărcați aplicații sau fișiere din Internet.
7. Accesare nedorită. Urmăriți îndeaproape activitățile neobișnuite sau
suspecte din history sau recent activity (dacă aceste opțiuni sunt
disponibile). Aici aveți informații referitoare la logare și schimbările
260
aduse contului. Dacă observați ceva suspect, nu amânați schimbarea
parolei sau a informațiilor privind securitatea contului.
8. Setare browser. Browser-ul web poate identifica anumite site-uri
web care prezintă elemente de suspiciune sau malware, dacă versiunea
este actualizată. Totodată, este indicat să blocăm toate acele informații
care ne invadează spațiul de lucru prin activarea pop-up bloker-ului.
Chiar dacă majoritatea informațiilor pe care nu le dorim reprezintă
reclame, acestea pot conține coduri ascunse nesigure sau malware.
Prin activarea pop-up bloker-ului, aceste informații nedorite nu vor
mai fi afișate.
9. Secretizare date. Datele de logare trebuiesc ținte secrete. Acestea nu
se transmit. Este indicat, pentru a preveni eventualele inconveniente
produse de uitarea datelor de logare, ca acestea să fie notate și
depozitate într-un loc ferit, doar de noi știut.
10. Partajare PC. În cazul în care un calculator este utilizat de către
mai mulți utilizatori, este indicat ca fiecare să se logheze individual cu
propriile date de logare (user și parola). Pentru a evita neplăcerile
cauzate de partajarea tehnicii de calcul este indicat să:
a. vizualizați aplicațiile active imediat după logare;
b. blocați contul de utilizator de fiecare dată când părăsiți incinta unde
este amplasat calculatorul;
c. schimbați frecvent parola, ținând cont de complexitate;
d. salvați datele vitale/sensibile pe un alt mediu de stocare decât cel
intern;
e. asigurați backup-ul datelor cât de des posibil.
28.2. Servicii
Memorați Codul dumneavoastră de utilizator și parola și nu le
dezvăluiți nimănui, verbal, telefonic sau prin e-mail/formular, chiar
dacă persoanele respective sunt reprezentanți autorizați sau reprezintă
oricare altă autoritate.
261
Doar dumneavoastră trebuie să știți parola. Toate introducerile eronate
de parolă sunt înregistrate de unele site-uri. După 3 încercări nereușite,
accesul este blocat, deblocarea intervenind după 24 de ore, printr-o
procedura automată, în condițiile în care nu există alte tentative de
accesare în acest interval și parola introdusă este cea corectă. În caz de
pierdere, furt sau uitare a Parolei, puteți primi o nouă parolă, doar
dacă asigurați date suplimentare care să permită identificarea corectă a
posesorului contului.
Anumite servicii prevăd un anumit număr de conexiuni ce pot fi
efectuate cu aceeași Parola. După atingerea acestei limite, este
recomandată schimbarea Parolei prin intermediul site-ului accesând
opțiunea: "Schimbare Parola". Totodată, este indicat să schimbați
parola la intervale regulate de timp, cel puțin de 2 ori pe an.
Codul de utilizator și parola
Accesul dumneavoastră pe un site specializat se face doar pe baza
celor 2 elemente de securitate: cod de utilizator și parola, pe care le
introduceți în ecranul intitulat "Identificare/Login" (introducerea
acestor date este indicat să se efectueze în protocol securizat).
Codul de Utilizator și Parola sunt indispensabile utilizării oricărui
serviciu care utilizează autentificare și trebuie să fie cunoscute numai
de dumneavoastră. Le veți utiliza ori de cate ori vă veți conecta la
contul / conturile dumneavoastră. Din motive de securitate este
recomandat să schimbați Parola imediat după prima conexiune la
anumite servicii, în special ca cele care o generează automat.
Cod de utilizator, parola și SMS. Acest profil de utilizare folosește
cele 2 elemente de securitate: cod de utilizator și parola pentru
funcționalitățile de bază, iar suplimentar pentru funcționalitățile care
prezintă un grad mai ridicat de risc se utilizează o parolă unică primită
prin SMS. Parola unică este recepționată pe numărul de telefon
principal declarat de către utilizator și este utilizată pentru a semna
anumite tranzacții. Aceasta este transmisă în momentul inițierii
transferului și poate fi utilizată doar pentru acea tranzacție, având o
perioada de valabilitate limitată.
Cod de utilizator, parola și Digipass
262
Acest profil de utilizare folosește cele 2 elemente de securitate: cod de
utilizator și parola pentru funcționalitățile de bază, iar suplimentar
pentru funcționalitățile care prezintă un grad mai ridicat de risc se
utilizează Digipass-ul mobil sau hardware.
Digipass-ul (token) este o soluție avansată de semnare tranzacții,
utilizează un proces de autentificare bazat pe doi factori. Digipass-ul
mobil funcționează la fel ca cel hardware, însă nu mai este necesar un
dispozitiv suplimentar, generarea parolei și semnarea tranzacției se
face direct în cadrul aplicației de pe mobil.
Cod de utilizator și Digipass
Acest profil folosește 2 elemente de securitate: cod de utilizator și
parola generată prin intermediul Digipass-ului mobil sau hardware,
pentru toate funcționalitățile serviciului oferit de furnizor.
Acesta este o soluție avansată de semnare tranzacții, utilizează un
proces de autentificare bazat pe doi factori. Digipass-ul mobil
funcționează la fel ca cel hardware, însă nu mai este necesar un
dispozitiv suplimentar, generarea parolei și semnarea tranzacției se
face direct în cadrul aplicației de pe mobil.
263
trimiterea de e-mail-uri la diferite persoane, prin care potenţialele
victime sunt informate că pot câştiga sume fabuloase. Adresa de e-
mail conţine o listă de 5 persoane cu adresele complete, precum şi un
set de instrucţiuni pentru a intra în posesia premiului. Pentru
câştigarea premiului, cel desemnat câştigător trebuie să trimită pe
adresa primei persoane din cele 5 un plic sigilat cu o anumită sumă,
urmând ca e-mail-ul său să îl trimită la alte 10 persoane din adresa de
e-mail;
primirea de apeluri telefonice de la persoane necunoscute, prin care
potenţiala victimă este anunţată că a câştigat un concurs, cu produsele
unei mărci cunoscute, câştig condiţionat de transmiterea a 10 coduri
de cartele reîncărcabile ale unui anumit operator de telefonie mobilă în
valoare de 10 dolari fiecare;trimiterea de mesaje de tip text (sms) în
cadrul reţelelor mobile, cu promisiunea făcută potenţialei victime, că
va primi un premiu de 3000 Euro dacă va cumpăra cartele preplătite
de telefonie mobilă în valoare de 30 Euro şi va comunica seriile şi
numerele de cod ale cartelelor.
Pentru prevenirea acestor tipuri de fraude Poliţia de Investigare a
Fraudelor recomandă insistent să:
nu luaţi în considerare eventualele mesaje în care sunteţi desemnat
câştigător, fără temei, al vreunui concurs/sondaj organizat de o firmă
de renume şi cu o puternică reputaţie;
nu trimiteţi date personale sau copii după C.I., buletin, cărţi
credit/debit etc. pe mail/fax;
nu acceptaţi în niciun caz să trimiteţi persoanelor necunoscute bani
în avans pentru aducerea unui autoturism sau alt bun, la care aţi fost
anunţat câştigător;
nu furnizaţi date confidenţiale prin telefon dacă apelul provine de la
un număr ascuns sau un număr de mobil pe care nu-l cunoaşteţi;
niciodată o societate nu va solicita aşa ceva, garantat este o tentativă
de fraudare!
264
Bibliografie
265
13. Johnson, Steve (2008). Microsoft Office - Outlook 2007. Teora.
14. Johnson, Steve (2008). Microsoft Office - PowerPoint 2007.
Teora.
15. Johnson, Steve (2008). Microsoft Office - Word 2007. Teora.
16. Leete, Gurdy; Finkelstein, Ellen & Leete, Mary (2004).
OpenOffice.org for Dummies.Wiley Publishing. Inc.
17. Norton, Peter (2001). Irfan Chaudhry, Tom Burke, Microsoft
Windows 2000 Server. Teora.
18. Odăgescu, I.; Smeurean, I. & Ştefănescu, I. (1993).
Programarea avansată a calculatoarelor personale. București: Ed.
Militară.
19. Ogletree, Terry (2007). Reţele de calculatoare - depanare și
modernizare.Teora.
20. Ottino, J. (2009). Engineering Complex Systems and Complex
Systems Engineering. Northwestern University.
21. Popovici, P. (2006). Bazele Informaticii. Ed. Eurostampa.
22. Postolache, F. (2011). Teza de doctorat: Contribuţii la achiziţia
şi structurarea cunoştinţelor în sisteme inteligente pentru diagnoza
defectelor.
23. Postolache, F. (2012). Achiziţia și structurarea cunoştinţelor în
sistemele IT virtualizate. Galați: Zigotto.
24. Postolache, F. (2012). Diagnoza defectelor. Abordări privind
alocarea dinamică și echilibrarea încărcării resurselor în sistemele IT
virtualizate. Galați: Zigotto.
25. Postolache, F.; Bumbaru, S. & Ariton, V. (2010). Complex
systems virtualization in the current’s economical context.
EuroEconomica, Nr. 3(26)/2010 - ISSN 1582-8859, pp. 29-50.
26. Postolache, F.; Bumbaru, S. & Ariton, V. (2010). Knowledge
acquisition and structuring for diagnosis in complex virtual systems,
The 1st International Conference “Advances in Engineering &
Management” ADEM 2010 – Drobeta Turnu-Severin, ISBN 978-606-
510-899-8.
266
27. Postolache, F.; Bumbaru, S. & Constantin, F.A. (2010).
Framework on virtualisation applications and benefits, The 4th
International Workshop on Soft Computing Applications -
SOFA2010, Arad, Romania, IEEE Catalog Number: CFP1028D-
CDR, ISBN: 978-1-4244-7983-2.
28. Rumbaugh, J. et al. (1991). Object Oriented modeling and
design, Prentice Hall Int. Englewood Cliffs.
29. Sams, Greg Perry (2005). Teach Yourself OpenOffice.org All in
One (Sams Teach Yourself). Sams Publishing.
30. Sams, Greg Perry (2008). Microsoft Office 2007 - 5 in 1.
București: Teora.
31. Scholtz-Reiter, B. et al. (1996). Business Process Modelling.
Heidelberg, Springer.
32. Schreiber, G.; Wielinga, B & Breuker, J. (1993). KADS: A
Principled Approach to Knowledge-Based System Development.
Academic Press, London, UK.
33. Solveig, Haugland (2005). The OpenOffice.org Guidebook.
34. Stanciu, A. Pana, ş.a. (2003). Informatică generală. Bucureşti:
DualTech.
35. Stroustrup, B. (1991). The annotated C++ Reference manual.
Addison Wesley.
36. Tardieu, H. et al. (1986). La methode MERISE. Principes et
outils, Les editions d’organisation.
37. Weber, Jean (2004). OpenOffice.org Writer: The Free
Alternative to Microsoft Word [ILLUSTRATED]. O'Reilly.
38. Wilson, D. A. (1998). Managing Information. Butterworth-
Heinemann.
39. Zadeh, L. A. (1965). Fuzzy sets, Information and Control.
40. Zorkoczy, P. & Heap, N. (1995). Information Technology – an
introduction. Pitman Publishing.
267
Webografie
268