Sunteți pe pagina 1din 18

Noiuni de program i produs program. Clasificarea PP. 1.

1 Produse program, componente ale software-ului n vederea ndeplinirii unor funciuni de prelucrare a informaiilor, informatica pune la dispoziia utilizatorilor, un ansamblu de echipamente, programe si proceduri de operare, implementare si ntreinere; acest ansamblu constituie un sistem de prelucrare automata a datelor sau un sistem informatic, dac colectarea, stocarea, prelucrarea i distribuirea informaiilor se face n special cu mijloace automate. Sistemul informatic are deci n componena sa ansamblul de echipamente (hardware), ansamblul de programe (software) i ansamblul de personal. Prin noiunea de software se nelege produsul intelectual ce consta din programe, proceduri, reguli si documentatia asociata pentru funcionarea 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, ntreinere, documentaia asociat acestora, precum si interaciunea cu utilizatorii. Componentele software-ului sunt produsele program. Orice produs program este constituit din : - programul propriu-zis (codul sau instruciunile); - datele asociate prelucrrilor prevzute n program; - documentaia asociat produsului. Produsele program (produse software) sunt asemntoare produselor rezultate dintr-o activitate de producie tradiional, ele trecnd prin etapele de analiz, proiectare, realizare, testare, experimentare si utilizare. Deosebirea const n faptul c produsele program rezult dintr-o activitate intelectuala i sunt destinate punerii n valoare a produselor de tip calculator sau echipament, care funcioneaza pe baza de instruciuni (program). Considernd c esenial raportul dintre utilizator i maina, produsele program se pot stratifica n urmatoarele categorii (figura 1.1).

Figura 1.1 Stratificarea produselor program 1. Sisteme de operare - programe de baz, cu caracter universal; un sistem de operare este o colecie de elemente software care controleaz execuia 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, faciliti speciale cerute numai de anumite aplicaii; ca exemplu, amintim sistemele de operare pentru reele de calculatoare, mesagerie electronic, teleconferine, sisteme de operare pentru conducere de procese tehnologice etc. 3. Sistemele de gestiune a bazelor de date (SGBD) - sunt sisteme de programare pentru gestiunea datelor dintr-o baz de date, care asigur independena programelor faa de modul de structurare a datelor, o redundan minim n memorarea acestora precum i timp minim de rspuns la solicitarile 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 aplicatii ce au la baza acelai model sau metod matematic etc. 5. Produse program orientate pe domenii sau pe specificul domeniului de aplicaie sunt produse destinate rezolvrii aplicaiilor din diferite domenii de activitate uman (industrie, agricultur, transporturi, medicin etc.) 6. Instrumente pentru realizarea produselor program - sunt entiti software care prelucreaz/acioneaz asupra altor entiti 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 clasificrii date i se regsesc la orice nivel al piramidei. De asemenea unele dintre ele constituie calea prin care componentele de nivel superior (de exemplu cele de nivel 4 si 5) folosesc facilitile oferite de cele de nivel inferior. Produsele program orientate pe metod/domeniu (categoriile 4 si 5) formeaza softwareul de aplicatie. Ele sunt uor de utilizat, au o structur modular (care le confer un grad nalt de flexibilitate n implementare precum i faciliti de extindere i modificare) i dispun de documentaie adecvat sub form de manuale de prezentare, utilizare i operare. Precizm faptul c acelai produs program poate fi clasificat att dup domeniul de aplicaie n care este utilizat ct 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. eficiena algoritmului - durata execuiei s fie mic iar memoria intern utilizat s fie redus; 3. parametrizare complet - parametrii algoritmului sa fie sub controlul utilizatorului; 4. independena ntre intrari i iesiri; 5. portabilitate - produsul s poat fi implementat pe diferite tipuri de calculatoare fr modificri prea mari; 6. robustee, siguranta n execuie - dispun de o baz matematic solid, convergena algoritmului s fie demonstrat etc.; 7. fiabilitate ridicat - numarul de erori n faza de execuie s fie foarte mic.

Utilizarea produselor program orientate prezint urmtoarele avantaje: reducerea efortului si costului realizarii programelor/sistemelor informatice; reducerea timpului total de implementare a aplicaiilor/sistemelor; reducerea erorilor n fazele de implementare i execuie; asigur o legatur direct ommaina; asigur performane de timp de calcul i precizie. Dintre dezavantaje amintim: numrul mare de instruciuni, slab eficien sub aspectul utilizrii echipamentelor de calcul, documentaie deficitar. Elementele constitutive ale software-ului de aplicaie sau ale produselor program orientate pot fi de urmtoarele tipuri: programe, module, pachete sau sisteme de programe, biblioteci de programe, biblioteci de subprograme etc. Programul este o combinaie de instruciuni de calcul i definiii de date care permit calculatorului s execute calcule i funcii de control, reprezentnd deci codificarea ntr-un limbaj accesibil mainii sau ntr-un limbaj de nivel nalt a unor algoritmi sau a unor funcii de prelucrare a informaiei. Programul constituie o unitate de sine stttoare care interacioneaza doar cu sistemul de operare i lucreaza cu date de intrare /ieire proprii. Modulul (la nivel de program) este un element de structura al programului, rezultat din divizarea acestuia n parti disjuncte, astfel nct fiecare parte sa aiba independenta functionala, iar interactiunea dintre parti sa fie minima. Modulul este caracterizat de urmatoarele elemente: functia, logica, interfata si ponderea sau taria modulului. Mentionam ca termenul de modul este utilizat la orice nivel n ierarhia sistem informatic, subsistem, aplicatie, program, modulele unui sistem fiind subsistemele, ale unui subsistem fiind aplicatiile, ale unei aplicatii fiind programele. Modularitatea la nivel de programe se numeste micromodularitate. Pachetul/sistemul de programe reprezint o mulime de programe/module, constituit ntr-o structur de tip liniar, arborescent sau reea, care rezolv izolat sau mpreun probleme de un anumit tip, aparinnd unei aceleai clase de probleme. Bibliotecile de (sub)programe sunt colecii de (sub)programe care rezolv probleme dintr-o anumita clas i sunt folosite de programatori ca instrumente de

dezvoltare a aplicaiilor, obinnd astfel un nalt grad de standardizare si modularizare. Subprogramele nu efectueaz operaii de intrare/iesire, datele i rezultatele fiind transmise prin list de parametrii sau zona comun. Orice program (figura 1.2.) este compus din trei pri principale: date, algoritm i structur. Interaciunea acestora este prezentat n figura 1.3. Algoritmul specific un set de operaii ce se aplic asupra mulimii datelor, rezultnd la intersecia acestor dou pri, operaii de intrare/iesire, operaii logice, atribuiri, etc. Structura programului definete pe mulimea datelor diferite tipuri de structuri de date necesare prelucrarilor cuprinse n algoritm.

Figura 1.2 Prile componente ale unui program De asemenea structura programelor induce asupra algoritmului diferite tipuri de structuri fundamentale de control.

Figura 1.3 Interaciuni ntre prile unui program Se mai poate spune c structura unui produs program este echivalent cu modul de organizare folosind secvena, selecia, iteraia i ierarhia. Secvena este un grup de enunuri care se execut liniar. Selecia este o structur care alege ntre executarea secvenei s1 sau secventei s2 n funcie de realizarea sau nerealizarea unei condiii c. Repetiia este structura care const n executarea, de un anumit numr de ori, a unui grup de enunuri. Ierarhia este un mod de organizare dup un anumit criteriu dominant.

Cnd aceste structuri sunt aplicate asupra datelor, rezult structuri de date iar cnd se aplica asupra algoritmilor se obin structuri de control ale produsului program ce corespund n diferite limbaje de programare unor construcii specifice. Folosind aceste considerente, n capitolele urmtoare se vor trata distinct fiecare dintre prile componente ale produsului program precum si interactiunile dintre acestea. 1.2. Generaii de produse program Daca n domeniul echipamentelor se vorbete de generaii de calculatoare, determinate mai ales de inovari tehnologice radicale (de la tub electronic, tranzistor, circuit integrat, la microelectronica), pentru celelalte domenii - produse program, personal de specialitate, utilizatori finali i conductorii acestora - nu se pot identifica jaloane la fel de precise i marcate. Cu toate acestea, prin analogie i n strnsa legatura cu generaiile de calculatoare, se poate vorbi i de generaii de produse program, evoluia si performanele echipamentelor de calcul fiind determinante pentru evolutia produselor program. Referindu-ne la cele patru domenii ale prelucrarii automate a datelor, amintite anterior, n anumite perioade si n functie de locul si de gradul de raspndire a informaticii, au existat si exista nca decalaje ntre nivelele de dezvoltare sau generatii. Fa de situaia limita ideala, cnd nivelul de dezvoltare a echipamentelor, programelor, personalului de specialitate si utilizatorilor ar trebui sa fie ct mai apropiat, se opune situaia n care ntre acestea exist decalaje, exist o "discrepant a generaiilor". O astfel de situaie se apreciaz c a existat atunci cnd echipamentele erau de generaia a treia, programele de generaia a doua, personalul de specialitate de generatia nti, iar conducatorii/utilizatorii de generaia zero. Generaia a treia de calculatoare a nsemnat, printre altele, si un nou mod de lucru, acela n regim de teleprelucrare. Sistemele de operare care nsoeau aceste echipamente nu erau orientate spre un astfel de regim de lucru sau n versiuni ulterioare rezolvau numai parial aceste probleme; de asemenea, maniera de proiectare i realizare a programelor aplicative (maniera "artizanala") nu era la

nivelul hardware-ului folosit, acest lucru avnd urmri att asupra calitii produselor program, ct si sub raportul utilizrii echipamentelor. Formarea personalului de specialitate necesar, att ca pregatire ct si ca specialiti si numar, a reprezentat un proces continuu, marcat de faptul c, aa cum s-a mai amintit, se desfura o dat cu dezvoltarea echipamentelor si programelor. n acelasi timp utilizatorii, mai ales conducatorii acestora, nu erau pregtii pentru introducerea i utilizarea tehnicii de calcul. Pentru atenuarea diferentelor de nivel (generaii) ntre cele patru domenii, sa evideniat necesitatea unor masuri 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 cuvnt produse program aplicative generalizabile, corespunzatoare din punct de vedere calitativ si cantitativ. 3. Automatizarea procesului de realizare a produselor program. 4. mbuntirea programelor de formare si perfecionare n mod unitar a specialitilor i utilizatorilor (inclusiv conducatori). Avnd n vedere gradul crescut de interconectare ntre calculatoare, n prezent iau o amploare tot mai mare aplicaiile distribuite bazate pe arhitecturi clientserver. La ora actual dezvoltrile n domeniul tehnologiei informaiei si deci i n realizarea de software, sunt legate de Internet i Intranet. ntre evoluia produselor program, a limbajelor de programare i a generaiilor de calculatoare exist o legtur absolut explicabil. Astfel privit n timp evoluia principalelor limbaje de programare i raspndirea lor n utilizare poate fi reprezentat ca n figura 1.4. Dac la nceputurile informaticii, programarea se facea numai n limbaj main (aportul omului era de peste 90%), apariia urmtoarelor generaii este nsoit de cteva dezvoltri semnificative ale limbajelor. ntre evoluia limbajelor si generaiile de calculatoare este o oarecare concordan, n sensul c n generaia a doua predomina limbajul de asamblare, generaia a treia nseamna mai ales folosirea limbajelor procedurale de nivel nalt, generaia a patra - raspndirea

sistemelor pentru gestiunea bazelor de date, a limbajelor de interogare, generatoarelor de rapoarte i a limbajelor specializate pentru diverse domenii. Generaia a cincea se pare c va fi nsoit de proliferarea limbajelor neprocedurale apropiate de limbajul uman i n care aportul programatorului n scrierea programului va fi sub 5%. Caracteristic deci generaiilor de produse program delimitate dupa tipul limbajului de programare utilizat este i raportul dintre munca efectuat de om si cea efectuat de calculator pentru realizarea produselor program (figura 1.5.).

Figura 1.4. Evoluia limbajelor de programare

Figura 1.5. Evoluia efortului uman n raport cu generatiile de limbaje O data cu aceast evoluie se constat o scadere permanent a raportului dintre munca efectuata de om si cea realizat de sistemul de calcul. Facnd o extensie, de la tip de limbaj la produs program, se poate vedea foarte clar modul de evoluie al acestora din urma. Nu ne putem limita nsa la

aceast stratificare a generaiilor de produse program numai dupa limbajele n care au fost scrise. Trebuie s inem seama i de evoluia mijloacelor tehnice, evoluie 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 urmatoarea evoluie: a. Produse program care prelucreaza date/informatii: produse program monolit (nchise); produse program modular-structurate; produse program conversaionale (evoluia programului este liniar, determinat de dialogul de tip ntrebare-rspuns dintre produsul program i utilizator); produse program interactive; b. Produse program care prelucreaza cunostine: sisteme de asistare a deciziei; sisteme expert. ntre aceste ultime dou categorii exist unele deosebiri att de natur arhitectural ct si funcionala. n ultimul timp, tot mai muli autori consider c sistemele de asistare a deciziei fac parte din clasa sistemelor expert, care incorporeaz o baz de date, o baz de cunostine, un mecanism inferenial i o interfa de I/E care faciliteaz interaciunea decidenilor cu sistemul. 1.3. Clasificarea produselor program orientate pe metod i pe domeniu Regsirea produselor program n cataloage si biblioteci de programe este facilitat de stabilirea apartenenei lor la o anumit mulime de programe. Aceasta apartenen este stabilit printr-o multitudine de criterii dintre care numai unele vor fi enumerate n continuare. Produsele program orientate pe metod / model se pot clasifica astfel: 1. dupa complexitatea lor, produsele program pot fi :

independente - programe distincte care realizeaz cte o funcie precis si pot fi utilizate independent sau n cadrul unor colecii de programe; biblioteci de programe/subprograme - colecii create pentru a fi folosite independent sau n cadrul aciunii de dezvoltare a altor produse program; pachete/sisteme de programe; 2. dup funcia ndeplinit n cadrul sistemelor de prelucrare automat a datelor: programe de exploatare a datelor - sisteme de gestiune a fisierelor, sisteme de obinere automat a unor anumite tipuri de rapoarte; sisteme de gestiune a bazelor de date; programe de aplicaie - programe care asigura informatizarea unor funcii la nivelul unuia sau mai multor utilizatori finali; programe utilitare - faciliteaza programarea/ realizarea unor operaii de rutin ca editare texte, introducere - extragere de date, sortare, interclasare etc.; programe auxiliare - realizeaz unele operaii auxiliare n exploatarea echipamentelor. 3. dup natura modelului matematic rezolvat - produse program orientate pe programare matematic, alocare - nivelare resurse, teoria deciziei, simulare, planificare optim a produciei, gestiunea tiinific a stocului, econometrie etc. Produsele program orientate pe domeniul sau specificul aplicaiei se pot clasifica dupa urmatoarele criterii: 1. dupa gradul de generalitate produsele program pot fi: de uz general - realizeaza funcii de uz general; generalizabile - informatizeaza funcii specifice la nivel de grup tipologic de uniti sau activiti; refolosibile - elaborate pentru o aplicaie sau pentru un anumit utilizator, pot fi preluate i de ali utilizatori;

unicat - elaborate numai pentru un anumit tip de utilizator sau aplicaie. 2. dupa natura funciilor utilizator informatizate, produsele program pot fi pentru: informatizarea proceselor de conducere; informatizarea principalelor funcii ale ntreprinderii; automatizarea activitilor de birou - administrative (birotica); informatizarea cercetrii tiinifice, documentrii, proiectrii; robotica industriala; automatizarea activitilor de programare; inteligena artificial etc. 3. dup tipul de domeniu (ramura, subramura) caruia i aparine utilizatorul final produsele program pot fi pentru uniti industriale, agricole, silvicultura, construcii, transporturi, telecomunicaii, nvatamnt, cultur i art, ocrotirea sntii, 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. Precizam c aceleai 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 performanelor acestora La alegerea unui produs program se iau n considerare cerinte ca: Dimensiunea maxima a problemei ce trebuie rezolvata n raport cu dimensiunea maxima planificata de produsul program.

Resursele

configuratiei

sistemului

de

calcul

necesare

implementarii produsului program n raport cu resursele configuratiei sistemului la care are acces utilizatorul. Flexibilitate, usurinta n vehicularea datelor de intrare/iesire, modul de ntelegere (nvatare) a utilizarii produsului program si de interpretare care sa conduca la un anumit numar redus de rulari cu erori. Costurile implicate de utilizarea curenta si de mentinere n exploatare sa se situeze la nivele care sa nu afecteze negativ eficienta economica a unitatii beneficiare. Produsul program sa poata incorpora noi componente pentru functii de prelucrare identificate ulterior si/sau sa poata fi adaptat tehnicilor de prelucrare ce corespund dezvoltarii ulterioare a configuratiei sistemului de calcul. Nivelul de tratare a erorilor sa conduca la reducerea numarului de rulari incomplete ale produsului program; produsul poate pune n evidenta totalitatea erorilor existente n date, poate realiza corectarea sau ignorarea unora din acestea, iar mesajele de eroare trebuie sa stabileasca ct mai exact locul, cauza si modalitatile de eliminare a erorilor. Nivelele de fiabilitate si metenabilitate trebuie sa fie astfel dimensionate nct ponderea erorilor ce necesita modificarea de secvente n program sa fie ct mai redusa. Implicatiile algoritmului utilizat n realizarea produsului program asupra preciziei, vitezei, consumului de resurse. Criteriile de alegere sunt dupa cum rezulta din cele semnalate anterior, strns legate de caracteristicile de calitate, asigurate n toate etapele de elaborare a produsului program. Vom aminti ca putem vorbi, ca n cazul oricarui produs, de calitatea la elaborator si calitatea la beneficiar sau de calitatea procesului de realizare si calitatea produsului final.

Din punct de vedere al beneficiarului evaluarea performantelor si limitelor unui produs program presupune examinarea unor elemente cum sunt: configuratia minima (maxima) necesara implementarii; necesarul de memorie interna pentru program sau corelatia dintre elementele care definesc dimensiunile problemei n raport cu disponibilul de memorie interna; precizia pe care o pot avea rezultatele n raport cu durata rezolvarii problemei; optiuni pentru obtinerea rezultatelor intermediare; modul de tratare al erorilor; nivelul fiabilitatii produsului program etc. Evaluarea performantelor produsului program mai poate fi nteleasa ca o comparare a nivelelor caracteristicilor sale de calitate si cele planificate. n acest sens evaluarea se realizeaza de catre echipa de realizatori lund n considerare exemple de control proprii sau unele probleme de rezolvat de catre beneficiarii potentiali ai produsului program. Valorile atribuite nivelelor caracteristicilor de calitate au n acest caz caracter orientativ. Evaluarea performantelor se efectueaza si de fiecare utilizator n parte, incluznd particularitatile specifice ale fiecarui tip de problema pe care o rezolva. Valorile obtinute n acest caz au menirea de a corecta sau de a confirma nivelele existente n documentatia care nsoteste produsul program. Pentru evaluarea performantelor se ntocmeste un plan de observatii statistice si se nregistreaza informatii cu privire la: descrierea problemei (dimensiuni, volum de date semnificative, elemente de structura a problemei); numarul de rulari, tipul si numarul erorilor nregistrate pentru fiecare rulare; consumurile de resurse (ore programare, asistenta, timp calculator); momentele de timp n care se efectueaza masuratorile. Constituirea seriilor de date se realizeaza n timp si la evaluarea performantelor sunt utilizate metode statistice (calculul mediei, dispersiei, corelatiei, testarea ipotezelor privind egalitatea mediilor/dispersiilor, analiza dispersionala etc.). Pe masura completarii seriilor de date cu noi nregistrari se procedeaza la recalcularea nivelelor pentru caracteristicile ce definesc performantele produsului program. Studierea caracteristicilor cu nivele mai scazute creeaza premizele

modificarii produsului program sau proiectarii de noi versiuni care conduc la mbunatatirea nivelelor si pentru aceste caracteristici. Gestionarea unica a produselor program are menirea de a selecta dupa criteriul performantei si de a generaliza implementarea lor. n acelasi timp cererile formulate de beneficiar au ca efect perfectionarea produselor program existente si influenteaza lansarea n realizare de noi produse program. 1.5. Stocarea si difuzarea produselor program Progresul n domeniul programrii, pn la ceea ce se numeste industrializarea programrii 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. Dupa cum produsul industrial este obinut prin prelucrarea unor materii prime si semifabricate pe fluxul tehnologic, strile intermediare fiind stocate n depozite de flux, iar produsul finit n magazia de produse finite, tot astfel i produsul program pleaca de la problema concret, de la o serie de programe de sistem (compilatoare, programe utilitare etc.), care fac obiectul unei elaborri, strile i componentele intermediare fiind stocate n biblioteci ce pot fi numite biblioteci tehnologice, iar produsul finit este depus n biblioteca unitaii de informatic si eventual este naintat spre difuzare unei biblioteci de distribuie. Din punct de vedere al rolului lor n fluxul tehnologic i de utilizare a produselor program, bibiotecile de programe pot fi: tehnologice si de distribuie. Bibliotecile tehnologice constituie premize de crestere a productivitii si calitii produciei de produse program si conin: bibiotecile de sistem, bibliotecile proiectelor si bibliotecile personale ale programatorilor. Bibliotecile tehnologice pot fi de patru tipuri: biblioteci centrale ale unitilor 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 aplicaie sau de sistem informatic i conin programe sau

module, componente finite ale unui produs program complex, ale unei aplicaii sau ale unui sistem, deja testate si acceptate; biblioteci individuale - sunt organizate si ntreinute de programator pentru nevoi ce apar pe parcursul activitii curente de programare si conin module si programe n curs de elaborare sau programe finite; biblioteca de sistem conine instrumentele cu ajutorul crora se realizeaz produsele program aplicative, adica programele utilitare, compilatoarele, translatoarele, interpretoarele etc.; n unitaile de informatic pot apare ierarhii de biblioteci de programe, la nivelul cel mai nalt fiind biblioteca central care conine toate produsele program finite elaborate n cadrul unitii sau n alte uniti de informatic i exploatate n unitatea n cauza. Pe nivelul urmtor pot fi considerate bibliotecile de proiect care conin toate modulele i programele elaborate de catre toi programatorii care lucreaz la proiectul respectiv. La rndul lor, programatorii au biblioteci individuale, organizate pe proiecte, care conin programe elaborate de catre acetia i n curs de finisare i programe/module preluate din biblioteca sistem. Bibliotecile de distribuie 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 elimina posibilitatea elaborrii de produse program cu funcii identice. n unele cazuri, bibliotecile de programe ale unitilor de informatic departamentale au rolul de biblioteci de distribuie pentru produse program specifice prelucrrii informaiei din ramura respectiv. Bibliotecile de distribuie au urmatoarele funcii: colectarea de produse program de uz general i generalizabile de la elaboratori si difuzarea acestora la utilizatorii interesai; evidena 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 muli 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; urmrirea n exploatare a produselor program; colectarea de la utilizator de informaii cu privire la comportarea n exploatare a produselor, precum i de cerine pentru noi produse program. Existena bibliotecilor de programe si organizarea lor conform anumitor principii poate constitui un mijloc important de ordonare si disciplinare a procesului de realizare a produselor program. Ele contribuie la mbunatairea productivitii activitii de programare prin furnizarea de module si programe gata elaborate, prin nlturarea paralelismelor i constituie un spaiu de depozitare pentru produsele program i componentele acestora n curs de elaborare sau produse finite. n concluzie, bibliotecile de programe contribuie la cresterea indicilor cantitativi si calitativi ai activitii de elaborare a produselor program. n prezent, datorit accesului rapid la o mare cantitate de informaie i a facilitilor crescute de comunicare oferite de Internet, utilizatorii au posibilitatea de a cunoate, evalua, compara, selecta i achiziiona produse program oferite de diverse firme producatoare de software. Comunicarea direct dintre producatori i utilizatori, asigur cresterea calitii produselor program prin realizarea de mbuntiri si dezvoltri de noi versiuni n concordan cu cererile utilizatorilor. 1.6. Aspecte legislative privind protecia produselor program Protecia produselor program a fost reglementata prin Legea privind dreptul de autor i drepturile conexe, aprobata n februarie 1996 de ctre guvernul Republicii Moldova. Aceast lege definete obiectul i coninutul dreptului de autor, avnd o serie de dispoziii speciale referitoare la produsele software. Astfel, obiectul dreptului de autor l reprezinta operele originale de creaie intelectual, indiferent de modalitatea de creaie, modul i forma concreta de exprimare i independent de valoarea si destinaia lor.

Coninutul dreptului de autor: autorul are dreptul exclusiv de a autoriza reproducerea integrala sau pariala, difuzarea, transmiterea prin fir, cablu, fibra optica, accesul public la bazele de date, daca 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 vieii autorului i se transmite prin motenire pe o durata de 50 ani. Dispoziii speciale referitoare la protecia produselor program: Protecia programelor pentru calculator include orice expresie a unui program, programele de aplicaie i sistemele de operare, exprimate n orice limbaj (cod sursa sau cod obiect), materialul de concepie pregtitor i manualele Nu sunt protejate ideile, procedeele, metodele de funcionare, conceptele matematice si principiile care stau la baza oricarui element dintr-un program, inclusiv cele care stau la baza interfeelor o o Autorul are dreptul exclusiv de a realiza si de a autoriza: reproducerea permanent sau temporal, integral sau parial a unui program, prin orice mijloc sau form traducerea, adaptarea, rearanjarea i alte transformri ale unui program precum i reproducerea acestor transformri, far a prejudicia drepturile persoanei care face transformrile o nchiriere Drepturile asupra programelor create de unul sau mai muli angajai, ca atribuii de servicii sau dupa instruciunile celui care angajeaz, aparin acestuia din urm. Prin contractul de utilizare al unui program o o o Utilizatorul are dreptul neexclusiv de utilizare a programului Utilizatorul nu poate transmite dreptul de utilizare unei alte persoane Cesiunea dreptului de utilizare al unui program nu implic transferul dreptului de autor asupra acestuia difuzarea originalului sau a copiilor, sub orice forma, inclusiv prin

Utilizatorul autorizat are dreptul de a realiza copii de arhiv sau de siguran far 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 deine dreptul de utilizare a unei copii a programului o Informaiile necesare interoperabilitii nu sunt uor si rapid accesibile o Actele se limiteaz la pri din program o Informaiile necesare interoperabilitii nu pot fi utilizate n alte scopuri dect pentru realizarea acesteia o Nu pot fi comunicate altei persoane o Nu pot fi utilizate pentru definitivarea, producerea sau centralizarea unui program a carui expresie este fundamental similara Se sancioneaza cu amend sau nchisoare urmatoarele fapte: Accesul public la bazele de date care conin sau constituie opere protejate, fara autorizarea titularului dreptului de autor nsuirea fr drept a calitii de autor Fr autorizarea titularului dreptului de autor se: o Reproduc, difuzeaza, comercializeaza programe o Pune la dispozitia publicului, prin vnzare, a mijloacelor tehnice destinate neutralizarii dispozitivelor de protectie a programelor Beneficiaz de protecie prin lege si programele create anterior intrrii n vigoare a acestei legi.