Cap 1 Elemente de Baza

11
Elemente de bază 1-1 Capitolul 1 : Elemente de bază 1.1 Produse program, componente ale software-ului În vederea îndeplinirii unor funcţiuni de prelucrare a informaţiilor, informatica pune la dispoziţia utilizatorilor, un ansamblu de echipamente, programe şi proceduri de operare, implementare şi întreţinere; acest ansamblu constituie un sistem de prelucrare automată a datelor sau un sistem informatic, dacă colectarea, stocarea, prelucrarea şi distribuirea informaţiilor se face în special cu mijloace automate. Sistemul informatic are deci în componenţa sa ansamblul de echipamente (hardware), ansamblul de programe (software) şi ansamblul de personal. Prin noţiunea de software se înţelege produsul intelectual ce constă din programe, proceduri, reguli şi documentaţia asociată pentru funcţionarea unui sistem de prelucrare a datelor. Software-ul nu trebuie redus numai la sistemul de programe propriu-zis ci cuprinde procedurile de operare, implementare, utilizare, întreţinere, documentaţia asociată acestora, precum şi interacţiunea cu utilizatorii. Componentele software-ului sunt produsele program. Orice produs program este constituit din : - programul propriu-zis (codul sau instrucţiunile); - datele asociate prelucrărilor prevăzute în program; - documentaţia asociată produsului. Produsele program (produse software) sunt asemănătoare produselor rezultate dintr-o activitate de producţie tradiţională, ele trecând prin etapele de analiză, proiectare, realizare, testare, experimentare şi utilizare. Deosebirea constă în faptul că produsele program rezultă dintr-o activitate intelectuală şi sunt destinate punerii în valoare a produselor de tip calculator sau echipament, care funcţionează pe bază de instrucţiuni (program). Considerând ca esenţial raportul dintre utilizator şi maşină, produsele program se pot stratifica în următoarele categorii (figura 1.1). 1. Sisteme de operare - programe de bază, cu caracter universal; un sistem de operare este o colecţie de elemente software care controlează execuţia programelor şi furnizează servicii altor componente ale software-ului 2. Extensii ale sistemelor de operare - sunt sisteme de operare cu caracter dedicat, care asigură, la nivelul echipamentelor, facilităţi speciale cerute numai de anumite aplicaţii; ca exemplu, amintim sistemele de operare pentru reţele de calculatoare, mesagerie electronică, teleconferinţe, sisteme de operare pentru conducere de procese tehnologice etc. 3. Sistemele de gestiune a bazelor de date (SGBD) - sunt sisteme de programare pentru Fig.1.1. Stratificarea produselor program SISTEME DE OPERARE EXTENSII ALE SISTEMELOR DE OPERARE SISTEME DE GESTIUNE A BAZELOR DE DATE PRODUSE PROGRAM ORIENTATE PE METODĂ SAU MODEL PRODUSE PROGRAM ORIENTATE PE DOMENIU I N S T U R M E N T E Om Calculator

description

m

Transcript of Cap 1 Elemente de Baza

Page 1: Cap 1 Elemente de Baza

Elemente de bază 1-1

Capitolul 1 : Elemente de bază

1.1 Produse program, componente ale software-ului

În vederea îndeplinirii unor funcţiuni de prelucrare a informaţiilor, informatica pune la dispoziţia utilizatorilor, un ansamblu de echipamente, programe şi proceduri de operare, implementare şi întreţinere; acest ansamblu constituie un sistem de prelucrare automată a datelor sau un sistem

informatic, dacă colectarea, stocarea, prelucrarea şi distribuirea informaţiilor se face în special cu mijloace automate.

Sistemul informatic are deci în componenţa sa ansamblul de echipamente (hardware), ansamblul de programe (software) şi ansamblul de personal.

Prin noţiunea de software se înţelege produsul intelectual ce constă din programe, proceduri, reguli şi documentaţia asociată pentru funcţionarea unui sistem de prelucrare a datelor. Software-ul nu trebuie redus numai la sistemul de programe propriu-zis ci cuprinde procedurile de operare, implementare, utilizare, întreţinere, documentaţia asociată acestora, precum şi interacţiunea cu utilizatorii.

Componentele software-ului sunt produsele program. Orice produs program este constituit din : - programul propriu-zis (codul sau instrucţiunile);

- datele asociate prelucrărilor prevăzute în program; - documentaţia asociată produsului.

Produsele program (produse software) sunt asemănătoare produselor rezultate dintr-o activitate de producţie tradiţională, ele trecând prin etapele de analiză, proiectare, realizare, testare, experimentare şi utilizare. Deosebirea constă în faptul că produsele program rezultă dintr-o activitate intelectuală şi sunt destinate punerii în valoare a produselor de tip calculator sau echipament, care funcţionează pe bază de instrucţiuni (program). Considerând ca esenţial raportul dintre utilizator şi maşină, produsele program se pot stratifica în următoarele categorii (figura 1.1).

1. Sisteme de operare - programe de bază, cu caracter universal; un sistem de operare este o colecţie de elemente software care controlează execuţia programelor şi furnizează servicii altor componente ale software-ului

2. Extensii ale sistemelor de operare - sunt sisteme de operare cu caracter dedicat, care asigură, la nivelul echipamentelor, facilităţi speciale cerute numai de anumite aplicaţii; ca exemplu, amintim sistemele de operare pentru reţele de calculatoare, mesagerie electronică, teleconferinţe, sisteme de operare pentru conducere de procese tehnologice etc.

3. Sistemele de gestiune a bazelor de date (SGBD) - sunt sisteme de programare pentru

Fig.1.1. Stratificarea produselor program

SISTEME DE OPERARE

EXTENSII ALE

SISTEMELOR DE OPERARE

SISTEME DE GESTIUNE A

BAZELOR DE DATE

PRODUSE PROGRAM ORIENTATE PE

METODĂ SAU MODEL

PRODUSE PROGRAM ORIENTATE PE DOMENIU

I

N

S

T

U

R

M

E

N

T

E

Om

Calculator

Page 2: Cap 1 Elemente de Baza

1-2 Elemente de bază

gestiunea datelor dintr-o bază de date, care asigură independenţa programelor faţă de modul de structurare a datelor, o redundanţă minimă în memorarea acestora precum şi timp minim de răspuns la solicitările utilizatorilor

4. Produse program orientate pe metodă sau model matematic - sunt produse program de tipul bibliotecilor de (sub)programe matematice, pachete şi sisteme de programe pentru rezolvarea unor clase de aplicaţii ce au la bază acelaşi model sau metodă matematică etc.

5. Produse program orientate pe domenii sau pe specificul domeniului de aplicaţie - sunt produse destinate rezolvării aplicaţiilor din diferite domenii de activitate umană (industrie, agricultură, transporturi, sănătate etc.)

6. Instrumente pentru realizarea produselor program - sunt entităţi software care prelucrează / acţionează asupra altor entităţi software, fie ca instrumente de programare, fie ca o componentă transparentă a sistemului de programare sau a sistemului de operare. Ele pot fi simple instrumente dispersate sau integrate în medii de programare, sisteme de dezvoltare complexe, produse de tip CASE (Computer Aided Software Engineering).

După cum se observă din figura 1.1, instrumentele pot opera asupra tuturor componentelor clasificării date şi se regăsesc la orice nivel al piramidei. De asemenea unele dintre ele constituie calea prin care componentele de nivel superior (de exemplu cele de nivel 4 şi 5) folosesc facilităţile oferite de cele de nivel inferior. Produsele program orientate pe metodă /domeniu (categoriile 4 şi 5) formează software-

ul de aplicaţie. Ele sunt uşor de utilizat, au o structură modulară (care le conferă un grad înalt de flexibilitate în implementare precum şi facilităţi de extindere şi modificare) şi dispun de documentaţie adecvată sub formă de manuale de prezentare, utilizare şi operare.

Precizăm faptul că acelaşi produs program poate fi clasificat atât după domeniul de aplicaţie în care este utilizat cât şi după metoda / modelul pe care se bazează.

Caracteristicile generale întrunite de produsele program orientate sunt: 1. generalitate - produsul program rezolvă toate problemele din clasa respectivă; 2. eficienţa algoritmului - durata execuţiei să fie mică iar memoria internă utilizată să fie redusă; 3. parametrizare completă - parametrii algoritmului să fie sub controlul utilizatorului; 4. independenţă între intrări şi ieşiri; 5. portabilitate - produsul să poată fi implementat pe diferite tipuri de calculatoare fără modificări

prea mari; 6. robusteţe, siguranţă în execuţie - dispun de o bază matematică solidă, convergenţa algoritmului

să fie demonstrată etc.; 7. fiabilitate ridicată - numărul de erori în faza de execuţie să fie foarte mic.

Utilizarea produselor program orientate prezintă următoarele avantaje: reducerea efortului şi costului realizării programelor / sistemelor informatice; reducerea timpului total de implementare a aplicaţiilor / sistemelor; reducerea erorilor în fazele de implementare şi execuţie; asigură o legătură directă om-maşină; asigură performanţe de timp de calcul şi precizie.

Dintre dezavantaje amintim: numărul mare de instrucţiuni, slaba eficienţă sub aspectul utilizării echipamentelor de calcul, documentaţie deficitară.

Elementele constitutive ale software-ului de aplicaţie sau ale produselor program orientate pot fi de următoarele tipuri: programe, module, pachete sau sisteme de programe, biblioteci de programe, biblioteci de subprograme etc.

Programul este o combinaţie de instrucţiuni de calcul şi definiţii de date care permit calculatorului să execute calcule şi funcţii de control, reprezentând deci codificarea într-un limbaj accesibil maşinii sau într-un limbaj de nivel înalt a unor algoritmi sau a unor funcţii de prelucrare a informaţiei. Programul constituie o unitate de sine stătătoare care interacţionează doar cu sistemul de operare şi lucrează cu date de intrare /

Page 3: Cap 1 Elemente de Baza

Elemente de bază 1-3

ieşire proprii.

Modulul (la nivel de program) este un element de structură al programului, rezultat din divizarea acestuia în părţi disjuncte, astfel încât fiecare parte să aibă independenţa funcţională, iar interacţiunea dintre părţi să fie minimă. Modulul este caracterizat de următoarele elemente: funcţia, logica, interfaţa şi ponderea sau tăria modulului. Menţionăm că termenul de modul este utilizat la orice nivel în ierarhia sistem informatic, subsistem, aplicaţie, program, modulele unui sistem fiind subsistemele, ale unui subsistem fiind aplicaţiile, ale unei aplicaţii fiind programele. Modularitatea la nivel de programe se numeşte micromodularitate.

Pachetul / sistemul de programe reprezintă o mulţime de programe / module, constituită într-o structură de tip liniar, arborescent sau reţea, care rezolvă izolat sau împreună probleme de un anumit tip, aparţinând unei aceleaşi clase de probleme.

Bibliotecile de (sub)programe sunt colecţii de (sub)programe care rezolvă probleme dintr-o anumită clasă şi sunt folosite de programatori ca instrumente de dezvoltare a aplicaţiilor, obţinând astfel un înalt grad de standardizare şi modularizare. Subprogramele nu efectuează operaţii de intrare / ieşire, datele şi rezultatele fiind transmise prin listă de parametrii sau zonă comună.

Orice program (figura 1.2.) este compus din trei părţi principale: date, algoritm şi structură. Inter-acţiunea acestora este prezentată în figura 1.3. Algoritmul specifică un set de operaţii ce se aplică asupra mulţimii datelor, rezultând la intersecţia acestor două parţi, operaţii de intrare / ieşire, operaţii logice, atribuiri, etc.

Structura programului defineşte pe mulţimea datelor diferite tipuri de structuri de date necesare prelucrărilor cuprinse în algoritm. De asemenea structura programelor induce asupra algoritmului diferite tipuri de structuri fundamentale de control. Se mai poate spune că structura unui produs program este echivalentă cu modul de organizare folosind secvenţa, selecţia, iteraţia şi ierarhia. • Secvenţa este un grup de enunţuri care se execută liniar. • Selecţia este o structură care alege între executarea secvenţei s1 sau secvenţei s2 în funcţie de

DATE STRUCTURĂ

ALGORITM

PROGRAM

Fig. 1.2. Părţile componente ale unui program

DATE STRUCTURĂ

ALGORITM

Structuri de date

Structuri de control

Operaţii logice, de I/E, atribuiri

PROGRAM

Fig. 1.3. Interacţiuni între părţile unui program

Page 4: Cap 1 Elemente de Baza

1-4 Elemente de bază

realizarea sau nerealizarea unei condiţii c. • Repetiţia este structura care constă în executarea, de un anumit număr de ori, a unui grup de

enunţuri. • Ierarhia este un mod de organizare după un anumit criteriu dominant.

Când aceste structuri sunt aplicate asupra datelor, rezultă structuri de date iar când se aplică asupra algoritmilor se obţin structuri de control ale produsului program ce corespund în diferite limbaje de programare unor construcţii specifice.

Folosind aceste considerente, în capitolele următoare se vor trata distinct fiecare dintre părţile componente ale produsului program precum şi interacţiunile dintre acestea.

1.2. Generaţii de produse program

Dacă în domeniul echipamentelor se vorbeşte de generaţii de calculatoare, determinate mai ales de inovări tehnologice radicale (de la tub electronic, tranzistor, circuit integrat, la microelectronică), pentru celelalte domenii - produse program, personal de specialitate, utilizatori finali şi conducătorii acestora - nu se pot identifica jaloane la fel de precise şi marcate.

Cu toate acestea, prin analogie şi în strânsă legătură cu generaţiile de calculatoare, se poate vorbi şi de generaţii de produse program, evoluţia şi performanţele echipamentelor de calcul fiind determinante pentru evoluţia produselor program.

Referindu-ne la cele patru domenii ale prelucrării automate a datelor, amintite anterior, în anumite perioade şi în funcţie de locul şi de gradul de răspândire a informaticii, au existat şi există încă decalaje între nivelele de dezvoltare sau generaţii. Faţă de situaţia limită ideală, când nivelul de dezvoltare a echipamentelor, programelor, personalului de specialitate şi utilizatorilor ar trebui să fie cât mai apropiat, se opune situaţia în care între acestea există decalaje, există o "discrepanţă a generaţiilor". O astfel de situaţie se apreciază ca a existat atunci când echipamentele erau de generaţia a treia, programele de generaţia a doua, personalul de specialitate de generaţia întâi, iar conducătorii/utilizatorii de generaţia zero.

Generaţia a treia de calculatoare a însemnat, printre altele, şi un nou mod de lucru, acela în regim de teleprelucrare. Sistemele de operare care însoţeau aceste echipamente nu erau orientate spre un astfel de regim de lucru sau în versiuni ulterioare rezolvau numai parţial aceste probleme; de asemenea, maniera de proiectare şi realizare a programelor aplicative (maniera "artizanală") nu era la nivelul hardware-ului folosit, acest lucru având urmări atât asupra calităţii produselor program, cât şi sub raportul utilizării echipamentelor.

Formarea personalului de specialitate necesar, atât ca pregătire cât şi ca specialităţi şi număr, a reprezentat un proces continuu, marcat de faptul că, aşa cum s-a mai amintit, se desfăşura o dată cu dezvoltarea echipamentelor şi programelor. În acelaşi timp utilizatorii, mai ales conducătorii acestora, nu erau pregătiţi pentru introducerea şi utilizarea tehnicii de calcul.

Pentru atenuarea diferenţelor de nivel (generaţii) între cele patru domenii, s-a evidenţiat necesitatea unor măsuri ca: 1. Introducerea unor metodologii, tehnici, metode de lucru standardizate pentru realizarea produselor

program. 2. Realizarea cu ajutorul mijloacelor amintite a unor subprograme/pachete de programe, într-un cuvânt

produse program aplicative generalizabile, corespunzătoare din punct de vedere calitativ şi cantitativ. 3. Automatizarea procesului de realizare a produselor program. 4. Îmbunătăţirea programelor de formare şi perfecţionare în mod unitar a specialiştilor şi utilizatorilor

(inclusiv conducători).

Page 5: Cap 1 Elemente de Baza

Elemente de bază 1-5

Având în vedere gradul crescut de interconectare între calculatoare, în prezent iau o amploare tot mai mare aplicaţiile distribuite bazate pe arhitecturi client-server. La ora actuală dezvoltările în domeniul tehnologiei informaţiei şi deci şi în realizarea de software, sunt legate de Internet şi Intranet.

Între evoluţia produselor program, a limbajelor de programare şi a generaţiilor de calculatoare există o legătură absolut explicabilă. Astfel privită în timp evoluţia principalelor limbaje de programare şi răspândirea lor în utilizare poate fi reprezentată ca în figura 1.4.

Limbaje procedurale Limbaj

asamblare

Limbaj maşină

SGBD, generatoare, limbaje specializate, limbaje de interogare

100

%

Răspândire %

1950 1960 1970 1980

Limbaje neprocedurale

Fig. 1.4. Evoluţia limbajelor de programare

1990 2000

?

Limbaje orientate obiect

Dacă la începuturile informaticii, programarea se făcea numai în limbaj maşină (aportul omului era de peste 90%), apariţia următoarelor generaţii este însoţită de câteva dezvoltări semnificative ale limbajelor. Între evoluţia limbajelor şi generaţiile de calculatoare este o oarecare concordanţă, în sensul că în generaţia a doua predomină limbajul de asamblare, generaţia a treia înseamnă mai ales folosirea limbajelor procedurale de nivel înalt, generaţia a patra - răspândirea sistemelor pentru gestiunea bazelor de date, a limbajelor de interogare, generatoarelor de rapoarte şi a limbajelor specializate pentru diverse domenii. Generaţia a cincea se pare ca va fi însoţită de proliferarea limbajelor neprocedurale apropiate de limbajul uman şi in care aportul programatorului in scrierea programului va fi sub 5%. Caracteristic deci generaţiilor de produse program delimitate după tipul limbajului de programare utilizat este şi raportul dintre munca efectuata de om şi cea efectuata de calculator pentru realizarea produselor program (figura 1.5.).

10 %

MUNCA EFECTUATĂ DE OM

MUNCA EFECTUATĂ DE CALCULATOR

25 %

55 – 60 %

80 - 85 %

Limbaj maşină

Limbaje de asamblare

Limbaje procedurale

Limbaje specializate

Limbaje neprocedurale

Fig. 1.5. Evoluţia efortului uman în raport cu generaţiile de limbaje

Page 6: Cap 1 Elemente de Baza

1-6 Elemente de bază

O dată cu această evoluţie se constată o scădere permanentă a raportului dintre munca efectuată de om şi cea realizată de sistemul de calcul.

Făcând o extensie, de la tip de limbaj la produs program, se poate vedea foarte clar modul de evoluţie al acestora din urmă. Nu ne putem limita însă la această stratificare a generaţiilor de produse program numai după limbajele în care au fost scrise. Trebuie să ţinem seama şi de evoluţia mijloacelor tehnice, evoluţie care trebuie privită din punctul de vedere al harware-ului (de la calculatoarele mari la calculatoarele personale) şi al software-ului (de la limbaje suport, sisteme de operare, la SGBD-uri).

Astfel, produsele program au avut următoarea evoluţie: a. Produse program care prelucrează date/informaţii:

• produse program monolit (închise); • produse program modular-structurate; • produse program conversaţionale (evoluţia programului este liniară, determinatǎ de dialogul de

tip intrebare-răspuns dintre produsul program si utilizator); • produse program interactive;

b. Produse program care prelucrează cunoştinţe: • sisteme de asistare a deciziei; • sisteme expert.

Între aceste ultime două categorii există unele deosebiri atât de natură arhitecturală cât şi funcţională. În ultimul timp, tot mai mulţi autori consideră că sistemele de asistare a deciziei fac parte din clasa sistemelor expert, care incorporează o bază de date, o bază de cunoştinţe, un mecanism inferenţial şi o interfaţă de I/E care facilitează interacţiunea decidenţilor cu sistemul.

1.3. Clasificarea produselor program orientate pe metodă şi pe domeniu Regăsirea produselor program în cataloage şi biblioteci de programe este facilitată de stabilirea apartenenţei lor la o anumită mulţime de programe. Această apartenenţă este stabilită printr-o multitu-dine de criterii dintre care numai unele vor fi enumerate în continuare.

Produsele program orientate pe metodă / model se pot clasifica astfel: 1. după complexitatea lor, produsele program pot fi :

• independente - programe distincte care realizează câte o funcţie precisă şi pot fi utilizate independent sau în cadrul unor colecţii de programe;

• biblioteci de programe/subprograme - colecţii create pentru a fi folosite independent sau în cadrul acţiunii de dezvoltare a altor produse program;

• pachete/sisteme de programe; 2. după funcţia îndeplinită în cadrul sistemelor de prelucrare automată a datelor:

• programe de exploatare a datelor - sisteme de gestiune a fişierelor, sisteme de obţinere automată a unor anumite tipuri de rapoarte;

• sisteme de gestiune a bazelor de date; • programe de aplicaţie - programe care asigură informatizarea unor funcţii la nivelul unuia

sau mai multor utilizatori finali; • programe utilitare - facilitează programarea/ realizarea unor operaţii de rutină ca editare

texte, introducere - extragere de date, sortare, interclasare etc.; • programe auxiliare - realizează unele operaţii auxiliare în exploatarea echipamentelor.

3. după natura modelului matematic rezolvat - produse program orientate pe programare

Page 7: Cap 1 Elemente de Baza

Elemente de bază 1-7

matematică, alocare - nivelare resurse, teoria deciziei, simulare, planificare optimă a producţiei, gestiunea ştiinţifică a stocului, econometrie etc.

Produsele program orientate pe domeniul sau specificul aplicaţiei se pot clasifica după următoarele criterii: 1. după gradul de generalitate produsele program pot fi:

• de uz general - realizează funcţii de uz general; • generalizabile - informatizează funcţii specifice la nivel de grupă tipologică de unităţi sau

activităţi; • refolosibile - elaborate pentru o aplicaţie sau pentru un anumit utilizator, pot fi preluate şi de

alţi utilizatori; • unicat - elaborate numai pentru un anumit tip de utilizator sau aplicaţie.

2. după natura funcţiilor utilizator informatizate, produsele program pot fi pentru: • informatizarea proceselor de conducere; • informatizarea principalelor funcţii ale întreprinderii; • automatizarea activităţilor de birou - administrative (birotica); • informatizarea cercetării ştiinţifice, documentării, proiectării; • robotica industrială; • automatizarea activităţilor de programare; • inteligenţa artificială etc.

3. după tipul de domeniu (ramura, subramura) căruia îi aparţine utilizatorul final produsele program pot fi pentru unităţi industriale, agricole, silvicultură, construcţii, transporturi, telecomunicaţii, învăţământ, cultură şi artă, ocrotirea sănătăţii, aprovizionarea tehnico - materială etc.

Există şi alte criterii de clasificare a produselor program dintre care mai importante sunt: natura problemei ce o rezolvă, modul de descriere a problemei sau datelor, forma de prezentare etc.

Precizăm că aceleaşi produse program pot fi cuprinse în mai multe clase, conform criteriului luat în considerare. De aceea, prezentarea lor se poate face numai într-o singură clasă, iar enumerarea lor poate fi semnalată în toate clasele în cauză.

1.4. Criterii de alegere a produselor program şi evaluarea performanţelor acestora La alegerea unui produs program se iau în considerare cerinţe ca: • Dimensiunea maximă a problemei ce trebuie rezolvată în raport cu dimensiunea maximă

planificată de produsul program. • Resursele configuraţiei sistemului de calcul necesare implementării produsului program în raport

cu resursele configuraţiei sistemului la care are acces utilizatorul. • Flexibilitate, uşurinţa în vehicularea datelor de intrare/ieşire, modul de înţelegere (învăţare) a

utilizării produsului program şi de interpretare care să conducă la un anumit număr redus de rulări cu erori.

• Costurile implicate de utilizarea curentă şi de menţinere în exploatare să se situeze la nivele care să nu afecteze negativ eficienţa economică a unităţii beneficiare.

• Produsul program să poată incorpora noi componente pentru funcţii de prelucrare identificate ulterior şi/sau să poată fi adaptat tehnicilor de prelucrare ce corespund dezvoltării ulterioare a configuraţiei sistemului de calcul.

• Nivelul de tratare a erorilor să conducă la reducerea numărului de rulări incomplete ale produsului program; produsul poate pune în evidenţă totalitatea erorilor existente în date, poate realiza corectarea sau ignorarea unora din acestea, iar mesajele de eroare trebuie să stabilească cât mai exact

Page 8: Cap 1 Elemente de Baza

1-8 Elemente de bază

locul, cauza şi modalităţile de eliminare a erorilor. • Nivelele de fiabilitate şi metenabilitate trebuie să fie astfel dimensionate încât ponderea erorilor ce

necesită modificarea de secvenţe în program să fie cât mai redusă. • Implicaţiile algoritmului utilizat în realizarea produsului program asupra preciziei, vitezei,

consumului de resurse.

Criteriile de alegere sunt după cum rezultă din cele semnalate anterior, strâns legate de caracteristicile de calitate, asigurate în toate etapele de elaborare a produsului program. Vom aminti că putem vorbi, ca în cazul oricărui produs, de calitatea la elaborator şi calitatea la beneficiar sau de calitatea procesului de realizare şi calitatea produsului final.

Din punct de vedere al beneficiarului evaluarea performanţelor şi limitelor unui produs program presu-pune examinarea unor elemente cum sunt: configuraţia minimă (maximă) necesară implementării; necesarul de memorie internă pentru program sau corelaţia dintre elementele care definesc dimensiunile problemei în raport cu disponibilul de memorie internă; precizia pe care o pot avea rezultatele în raport cu durata rezolvării problemei; opţiuni pentru obţinerea rezultatelor intermediare; modul de tratare al erorilor; nivelul fiabilităţii produsului program etc.

Evaluarea performanţelor produsului program mai poate fi înţeleasă ca o comparare a nivelelor caracteristicilor sale de calitate şi cele planificate. În acest sens evaluarea se realizează de către echipa de realizatori luând în considerare exemple de control proprii sau unele probleme de rezolvat de către beneficiarii potenţiali ai produsului program. Valorile atribuite nivelelor caracteristicilor de calitate au în acest caz caracter orientativ. Evaluarea performanţelor se efectuează şi de fiecare utilizator în parte, incluzând particularităţile specifice ale fiecărui tip de problemă pe care o rezolvă. Valorile obţinute în acest caz au menirea de a corecta sau de a confirma nivelele existente în documentaţia care însoţeşte produsul program. Pentru evaluarea performanţelor se întocmeşte un plan de observaţii statistice şi se înregistrează informaţii cu privire la: • descrierea problemei (dimensiuni, volum de date semnificative, elemente de structură a problemei);

• numărul de rulări, tipul şi numărul erorilor înregistrate pentru fiecare rulare; • consumurile de resurse (ore programare, asistenţă, timp calculator); • momentele de timp în care se efectuează măsurătorile.

Constituirea seriilor de date se realizează în timp şi la evaluarea performantelor sunt utilizate metode statistice (calculul mediei, dispersiei, corelaţiei, testarea ipotezelor privind egalitatea mediilor/dispersiilor, analiza dispersională etc.).

Pe măsura completării seriilor de date cu noi înregistrări se procedează la recalcularea nivelelor pentru caracteristicile ce definesc performanţele produsului program. Studierea caracteristicilor cu nivele mai scăzute creează premizele modificării produsului program sau proiectării de noi versiuni care conduc la îmbunătăţirea nivelelor şi pentru aceste caracteristici.

Gestionarea unică a produselor program are menirea de a selecta după criteriul performanţei şi de a generaliza implementarea lor. În acelaşi timp cererile formulate de beneficiar au ca efect perfecţionarea produselor program existente şi influenţează lansarea în realizare de noi produse program.

1.5. Stocarea si difuzarea produselor program Progresul în domeniul programării, până la ceea ce se numeşte industrializarea programării calculatoarelor s-a realizat în momentul în care s-a constatat paralelismul existent între produsele industriale în general şi produsul program, deosebit de precedentele prin faptul că este un produs abstract. După cum produsul industrial este obţinut prin prelucrarea unor materii prime şi

Page 9: Cap 1 Elemente de Baza

Elemente de bază 1-9

semifabricate pe fluxul tehnologic, stările intermediare fiind stocate în depozite de flux, iar produsul finit în magazia de produse finite, tot astfel şi produsul program pleacă de la problema concretă, de la o serie de programe de sistem (compilatoare, programe utilitare etc.), care fac obiectul unei elaborări, stările şi componentele intermediare fiind stocate în biblioteci ce pot fi numite biblioteci tehnologice, iar produsul finit este depus în biblioteca unităţii de informatică şi eventual este înaintat spre difuzare unei biblioteci de distribuţie.

Din punct de vedere al rolului lor în fluxul tehnologic şi de utilizare a produselor program, bibiotecile de programe pot fi: tehnologice şi de distribuţie.

Bibliotecile tehnologice constituie premize de creştere a productivităţii şi calităţii producţiei de produse program şi conţin: bibiotecile de sistem, bibliotecile proiectelor şi bibliotecile personale ale programatorilor.

Bibliotecile tehnologice pot fi de patru tipuri: • biblioteci centrale ale unităţilor de informatică în care sunt cuprinse toate programele aflate în

exploatare în unitatea respectivă; • biblioteci de proiect - sunt specifice unui anumit proiect de produs program, de aplicaţie sau de

sistem informatic şi conţin programe sau module, componente finite ale unui produs program complex, ale unei aplicaţii sau ale unui sistem, deja testate şi acceptate;

• biblioteci individuale - sunt organizate şi întreţinute de programator pentru nevoi ce apar pe parcursul activităţii curente de programare şi conţin module şi programe în curs de elaborare sau programe finite;

• biblioteca de sistem conţine instrumentele cu ajutorul cărora se realizează produsele program aplicative, adică programele utilitare, compilatoarele, translatoarele, interpretoarele etc.;

În unităţile de informatică pot apare ierarhii de biblioteci de programe, la nivelul cel mai înalt fiind biblioteca centrală care conţine toate produsele program finite elaborate în cadrul unităţii sau în alte unităţi de informatică şi exploatate în unitatea în cauză. Pe nivelul următor pot fi considerate bibliotecile de proiect care conţin toate modulele şi programele elaborate de către toţi programatorii care lucrează la proiectul respectiv. La rândul lor, programatorii au biblioteci individuale, organizate pe proiecte, care conţin programe elaborate de către aceştia şi în curs de finisare şi programe/module preluate din biblioteca sistem. Bibliotecile de distribuţie sunt destinate pentru difuzarea la utilizator a produselor program de uz general şi generalizabile, ceea ce permite scurtarea duratei de elaborare a sistemelor informatice şi elimină posibilitatea elaborării de produse program cu funcţii identice.

În unele cazuri, bibliotecile de programe ale unităţilor de informatică departamentale au rolul de biblioteci de distribuţie pentru produse program specifice prelucrării informaţiei din ramura respectivă. Bibliotecile de distribuţie au următoarele funcţii:

• colectarea de produse program de uz general şi generalizabile de la elaboratori şi difuzarea acestora la utilizatorii interesaţi;

• evidenţa produselor program elaborate şi în curs de elaborare aflate la autori; • selectarea de produse program de uz general şi generalizabile care prezintă interes pentru mai

mulţi utilizatori; • colectarea produselor program selectate şi repartizarea lor pe clase; • testarea produselor colectate, validare, omologare; • informarea utilizatorilor cu privire la produsele program aflate in fondul bibliotecii; • difuzarea la utilizator a produselor program; • urmărirea în exploatare a produselor program; • colectarea de la utilizator de informaţii cu privire la comportarea în exploatare a produselor,

precum şi de cerinţe pentru noi produse program.

Page 10: Cap 1 Elemente de Baza

1-10 Elemente de bază

Existenţa bibliotecilor de programe şi organizarea lor conform anumitor principii poate constitui un mijloc important de ordonare şi disciplinare a procesului de realizare a produselor program. Ele contribuie la îmbunătăţirea productivităţii activităţii de programare prin furnizarea de module şi programe gata elaborate, prin înlăturarea paralelismelor şi constituie un spaţiu de depozitare pentru produsele program şi componentele acestora în curs de elaborare sau produse finite. În concluzie, bibliotecile de programe contribuie la creşterea indicilor cantitativi şi calitativi ai activităţii de elaborare a produselor program.

În prezent, datorită accesului rapid la o mare cantitate de informaţie şi a facilităţilor crescute de comunicare oferite de Internet, utilizatorii au posibilitatea de a cunoaşte, evalua, compara, selecta şi achiziţiona produse program oferite de diverse firme producătoare de software. Comunicarea directă dintre producători şi utilizatori, asigură creşterea calităţii produselor program prin realizarea de îmbunătăţiri şi dezvoltări de noi versiuni în concordanţă cu cererile utilizatorilor.

1.6. Aspecte legislative privind protecţia produselor program

Protecţia produselor program a fost reglementată prin “Legea privind dreptul de autor şi drepturile conexe”, aprobată în februarie 1996. Această lege defineşte obiectul şi conţinutul dreptului de autor, având o serie de dispoziţii speciale referitoare la produsele software.

Astfel, obiectul dreptului de autor îl reprezintă operele originale de creaţie intelectuală, indiferent de modalitatea de creaţie, modul şi forma concretă de exprimare şi independent de valoarea şi destinaţia lor.

Conţinutul dreptului de autor: autorul are dreptul exclusiv de a autoriza reproducerea integrală sau parţială, difuzarea, transmiterea prin fir, cablu, fibră optică, accesul public la bazele de date, dacă ele sunt protejate, utilizarea, închirierea, împrumutul originalului sau a copiilor.

Prin contractul de închiriere autorul permite folosirea pe un timp determinat a originalului sau a copiilor.

Durata dreptului de autor - tot timpul vieţii autorului şi se transmite prin moştenire pe o durată de 50 ani.

Dispoziţii speciale referitoare la protecţia produselor program: • Protecţia programelor pentru calculator include orice expresie a unui program, programele de

aplicaţie şi sistemele de operare, exprimate în orice limbaj (cod sursă sau cod obiect), materialul de concepţie pregătitor şi manualele

• Nu sunt protejate ideile, procedeele, metodele de funcţionare, conceptele matematice şi principiile care stau la baza oricărui element dintr-un program, inclusiv cele care stau la baza interfeţelor

• Autorul are dreptul exclusiv de a realiza şi de a autoriza: o reproducerea permanentă sau temporală, integrală sau parţială a unui program, prin orice mijloc

sau formă o traducerea, adaptarea, rearanjarea şi alte transformări ale unui program precum şi reproducerea

acestor transformări, fără a prejudicia drepturile persoanei care face transformările

o difuzarea originalului sau a copiilor, sub orice formă, inclusiv prin închiriere

• Drepturile asupra programelor create de unul sau mai mulţi angajaţi, ca atribuţii de servicii sau după instrucţiunile celui care angajează, aparţin acestuia din urmă.

• Prin contractul de utilizare al unui program

o Utilizatorul are dreptul neexclusiv de utilizare a programului o Utilizatorul nu poate transmite dreptul de utilizare unei alte persoane

o Cesiunea dreptului de utilizare al unui program nu implică transferul dreptului de autor

Page 11: Cap 1 Elemente de Baza

Elemente de bază 1-11

asupra acestuia

o Utilizatorul autorizat are dreptul de a realiza copii de arhivă sau de siguranţă fără acceptul autorului

• Reproducerea sau traducerea codului program pentru interoperabilitate cu alte programe trebuie autorizată de titularul dreptului de autor dacă

o Actele de reproducere sau traducere sunt realizate de o persoană care deţine dreptul de utilizare a unei copii a programului

o Informaţiile necesare interoperabilităţii nu sunt uşor şi rapid accesibile

o Actele se limitează la părţi din program

• Informaţiile necesare interoperabilităţii o Nu pot fi utilizate în alte scopuri decât pentru realizarea acesteia

o Nu pot fi comunicate altei persoane

o Nu pot fi utilizate pentru definitivarea, producerea sau centralizarea unui program a cărui expresie este fundamental similară

Se sancţionează cu amendă sau închisoare următoarele fapte: • Accesul public la bazele de date care conţin sau constituie opere protejate, fără autorizarea

titularului dreptului de autor • Însuşirea fără drept a calităţii de autor • Fără autorizarea titularului dreptului de autor se:

o Reproduc, difuzează, comercializează programe o Pune la dispoziţia publicului, prin vânzare, a mijloacelor tehnice destinate neutralizării

dispozitivelor de protecţie a programelor

Beneficiază de protecţie prin lege şi programele create anterior intrării în vigoare a acestei legi.