Noţiuni de program şi produs program

31
Noţiuni de program şi produs program. Clasificarea PP. 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 si proceduri de operare, implementare si întreţinere; acest ansamblu constituie un sistem de prelucrare automata 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 consta din programe, proceduri, reguli si documentatia asociata 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 si interacţiunea cu utilizatorii. Componentele software-ului sunt produsele program. Orice produs program este constituit din :

Transcript of Noţiuni de program şi produs program

Page 1: Noţiuni de program şi produs program

Noţiuni de program şi produs program. Clasificarea PP.

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 si proceduri de operare, implementare si întreţinere; acest ansamblu

constituie un sistem de prelucrare automata 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 consta din

programe, proceduri, reguli si documentatia asociata 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 si 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 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

funcţioneaza pe baza de instrucţiuni (program). Considerând că esenţial raportul

dintre utilizator şi maşina, produsele program se pot stratifica în urmatoarele

categorii (figura 1.1).

Page 2: Noţiuni de program şi produs program

Figura 1.1 Stratificarea produselor program

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 gestiunea datelor dintr-o bază de date, care asigură

independenţa programelor faţa de modul de structurare a datelor, o

redundanţă minimă în memorarea acestora precum şi timp minim de răspuns

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 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, medicină etc.)

6. Instrumente pentru realizarea produselor program - sunt entităţi

software care prelucrează/acţionează asupra altor entităţi software, fie ca

Page 3: Noţiuni de program şi produs program

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 si 5) folosesc facilităţile oferite de cele de nivel

inferior. Produsele program orientate pe metodă/domeniu (categoriile 4 si 5)

formeaza softwareul de aplicatie. 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 sa fie sub controlul

utilizatorului;

4. independenţa între intrari şi iesiri;

5. portabilitate - produsul să poată fi implementat pe diferite tipuri de

calculatoare fără modificări prea mari;

6. robusteţe, siguranta în execuţie - dispun de o bază matematică solidă,

convergenţa algoritmului să fie demonstrată etc.;

7. fiabilitate ridicată - numarul de erori în faza de execuţie să fie foarte mic.

Page 4: Noţiuni de program şi produs program

Utilizarea produselor program orientate prezintă următoarele avantaje:

reducerea efortului si costului realizarii programelor/sistemelor informatice;

reducerea timpului total de implementare a aplicaţiilor/sistemelor; reducerea

erorilor în fazele de implementare şi execuţie; asigură o legatură directă om-

maşina; asigură performanţe de timp de calcul şi precizie.

Dintre dezavantaje amintim: numărul mare de instrucţiuni, slabă 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ţioneaza doar cu sistemul de operare şi

lucreaza cu date de intrare /ieşire proprii.

Modulul (la nivel de program) este un element de structura al programului,

rezultat din divizarea acestuia în parti disjuncte, astfel încât 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 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 anumita clasă şi sunt folosite de programatori ca instrumente de

Page 5: Noţiuni de program şi produs program

dezvoltare a aplicaţiilor, obţinând astfel un înalt grad de standardizare si

modularizare. Subprogramele nu efectuează operaţii de intrare/iesire, datele şi

rezultatele fiind transmise prin listă de parametrii sau zona comună.

Orice program (figura 1.2.) este compus din trei părţi principale: date,

algoritm şi structură. Interacţ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ă părţi, operaţii de intrare/iesire, operaţii logice,

atribuiri, etc.

Structura programului defineşte pe mulţimea datelor diferite tipuri de

structuri de date necesare prelucrarilor cuprinse în algoritm.

Figura 1.2 Părţile componente ale unui program

De asemenea structura programelor induce asupra algoritmului diferite tipuri de structuri fundamentale de control.

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

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

secventei s2 în funcţie de 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.

Page 6: Noţiuni de program şi produs program

Când aceste structuri sunt aplicate asupra datelor, rezultă structuri de date iar când se aplica 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 si interactiunile dintre acestea.

1.2. Generaţii de produse program

Daca în domeniul echipamentelor se vorbeşte de generaţii 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 conducătorii acestora - nu se

pot identifica jaloane la fel de precise şi marcate.

Cu toate acestea, prin analogie şi în strânsa legatura cu generaţiile de

calculatoare, se poate vorbi şi de generaţii de produse program, evoluţia si

performanţele 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

raspândire a informaticii, au existat si exista înca decalaje între nivelele de

dezvoltare sau generatii. Faţă de situaţia limita ideala, când nivelul de dezvoltare a

echipamentelor, programelor, personalului de specialitate si utilizatorilor ar trebui

sa fie cât mai apropiat, se opune situaţia în care între acestea există decalaje, există

o "discrepantă a generaţiilor". O astfel de situaţie se apreciază că a existat atunci

când echipamentele erau de generaţia a treia, programele de generaţia a doua,

personalul de specialitate de generatia întâi, iar conducatorii/utilizatorii de

generaţia zero.

Generaţia a treia de calculatoare a însemnat, printre altele, si 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 "artizanala") nu era la

Page 7: Noţiuni de program şi produs program

nivelul hardware-ului folosit, acest lucru având urmări atât asupra calităţii

produselor program, cât si sub raportul utilizării echipamentelor.

Formarea personalului de specialitate necesar, atât ca pregatire cât si ca

specialităţi si numar, a reprezentat un proces continuu, marcat de faptul că, aşa

cum s-a mai amintit, se desfăşura o dată cu dezvoltarea echipamentelor si

programelor. În acelasi timp utilizatorii, mai ales conducatorii acestora, nu erau

pregătiţi pentru introducerea şi utilizarea tehnicii de calcul.

Pentru atenuarea diferentelor de nivel (generaţii) între cele patru domenii, s-

a evidenţiat 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 cuvânt produse program aplicative generalizabile,

corespunzatoare din punct de vedere calitativ si cantitativ.

3. Automatizarea procesului de realizare a produselor program.

4. Îmbunătăţirea programelor de formare si perfecţionare în mod unitar a

specialiştilor şi utilizatorilor (inclusiv conducatori).

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 si 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 raspândirea lor în utilizare poate fi reprezentată ca în figura 1.4.

Dacă la începuturile informaticii, programarea se facea 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 si

generaţiile de calculatoare este o oarecare concordanţă, în sensul că în generaţia a

doua predomina limbajul de asamblare, generaţia a treia înseamna mai ales

folosirea limbajelor procedurale de nivel înalt, generaţia a patra - raspândirea

Page 8: Noţiuni de program şi produs program

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 că va fi însoţită de proliferarea limbajelor neprocedurale

apropiate de limbajul uman şi în care aportul programatorului în scrierea

programului va fi sub 5%. Caracteristic deci generaţiilor 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. Evoluţia limbajelor de programare

Figura 1.5. Evoluţia efortului uman în raport cu generatiile de limbaje

O data cu această evoluţie se constată o scadere permanentă a raportului

dintre munca efectuata de om si cea realizată de sistemul de calcul.

Facând o extensie, de la tip de limbaj la produs program, se poate vedea

foarte clar modul de evoluţie al acestora din urma. Nu ne putem limita însa la

Page 9: Noţiuni de program şi produs program

această stratificare a generaţiilor de produse program numai dupa 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 urmatoarea evoluţie:

a. Produse program care prelucreaza date/informatii:

produse program monolit (închise);

produse program modular-structurate;

produse program conversaţionale (evoluţia programului este

liniară, determinată de dialogul de tip întrebare-răspuns dintre

produsul program şi utilizator);

produse program interactive;

b. Produse program care prelucreaza cunostinţe:

sisteme de asistare a deciziei;

sisteme expert.

Între aceste ultime două categorii există unele deosebiri atât de natură

arhitecturală cât si funcţionala. Î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 cunostinţ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 si biblioteci de programe este

facilitată de stabilirea apartenenţei lor la o anumită mulţime 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ă câte o funcţie precisă si

pot fi utilizate independent sau în cadrul unor colecţii de programe;

Page 10: Noţiuni de program şi produs program

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 fisierelor, sisteme

de obţinere automată a unor anumite tipuri de rapoarte;

sisteme de gestiune a bazelor de date;

programe de aplicaţie - programe care asigura informatizarea unor funcţii la

nivelul unuia sau mai multor utilizatori finali;

programe utilitare - faciliteaza 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 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 dupa urmatoarele criterii:

1. dupa gradul de generalitate produsele program pot fi:

de uz general - realizeaza funcţii de uz general;

generalizabile - informatizeaza 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. dupa natura funcţiilor utilizator informatizate, produsele program pot

fi pentru:

Page 11: Noţiuni de program şi produs program

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 industriala;

automatizarea activităţilor de programare;

inteligenţa artificială etc.

3. după tipul de domeniu (ramura, subramura) caruia îi aparţine

utilizatorul final produsele program pot fi pentru unităţi industriale, agricole,

silvicultura, construcţii, transporturi, telecomunicaţii, învatamâ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.

Precizam 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 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.

Page 12: Noţiuni de program şi produs program

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 cât mai exact locul, cauza si

modalitatile de eliminare a erorilor.

Nivelele de fiabilitate si metenabilitate trebuie sa fie astfel

dimensionate încât ponderea erorilor ce necesita modificarea de

secvente în program sa fie cât 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, strâns

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

Page 13: Noţiuni de program şi produs program

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 luând î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, incluzând 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.

Page 14: Noţiuni de program şi produs program

1.5. Stocarea si difuzarea produselor program

Progresul în domeniul programării, până la ceea ce se numeste 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. Dupa cum produsul

industrial este obţinut prin prelucrarea unor materii prime si 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 pleaca 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 unitaţii de informatică si 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 si de distribuţie.

Bibliotecile tehnologice constituie premize de crestere a productivităţii si

calităţii producţiei de produse program si conţin: bibiotecile de sistem, bibliotecile

proiectelor si 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 si acceptate;

biblioteci individuale - sunt organizate si întreţinute de programator pentru

nevoi ce apar pe parcursul activităţii curente de programare si conţin module

si programe în curs de elaborare sau programe finite;

Page 15: Noţiuni de program şi produs program

biblioteca de sistem conţine instrumentele cu ajutorul cărora se realizează

produsele program aplicative, adica programele utilitare, compilatoarele,

translatoarele, interpretoarele etc.;

În unitaţ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 cauza. Pe nivelul următor pot fi considerate bibliotecile de proiect care

conţin toate modulele şi programele elaborate de catre 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 catre 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 elimina 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 urmatoarele funcţii:

colectarea de produse program de uz general şi generalizabile de la

elaboratori si 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;

Page 16: Noţiuni de program şi produs 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.

Existenţa 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 îmbunataţirea

productivităţii activităţii de programare prin furnizarea de module si 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 cresterea

indicilor cantitativi si 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 producatoare de software. Comunicarea directă dintre producatori şi

utilizatori, asigură cresterea calităţii produselor program prin realizarea de

îmbunătăţiri si 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 reglementata prin “Legea privind dreptul de

autor şi drepturile conexe”, aprobata în februarie 1996 de către guvernul Republicii

Moldova.

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 reprezinta operele originale de creaţie

intelectuală, indiferent de modalitatea de creaţie, modul şi forma concreta de

exprimare şi independent de valoarea si destinaţia lor.

Conţinutul dreptului de autor: autorul are dreptul exclusiv de a autoriza

reproducerea integrala sau parţiala, difuzarea, transmiterea prin fir, cablu, fibra

optica, accesul public la bazele de date, daca ele sunt protejate, utilizarea,

închirierea, împrumutul originalului sau a copiilor.

Page 17: Noţiuni de program şi produs program

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 durata 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 sursa sau cod obiect), materialul de concepţie pregătitor şi

manualele

Nu sunt protejate ideile, procedeele, metodele de funcţionare, conceptele

matematice si principiile care stau la baza oricarui element dintr-un

program, inclusiv cele care stau la baza interfeţelor

Autorul are dreptul exclusiv de a realiza si 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, fară a

prejudicia drepturile persoanei care face transformările

o difuzarea originalului sau a copiilor, sub orice forma, inclusiv prin

închiriere

Drepturile asupra programelor create de unul sau mai mulţi angajaţi, ca atribuţii de servicii sau dupa 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 programuluio Utilizatorul nu poate transmite dreptul de utilizare unei alte

persoaneo Cesiunea dreptului de utilizare al unui program nu implică

transferul dreptului de autor asupra acestuiao Utilizatorul autorizat are dreptul de a realiza copii de arhivă

sau de siguranţă fară acceptul autorului

Page 18: Noţiuni de program şi produs program

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 si rapid

accesibile

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

o Informaţiile necesare interoperabilităţii 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 carui expresie este fundamental

similara

Se sancţioneaza cu amendă sau închisoare urmatoarele fapte:

Accesul public la bazele de date care conţin sau constituie opere

protejate, fara 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, difuzeaza, comercializeaza programe

o Pune la dispozitia publicului, prin vânzare, a mijloacelor tehnice

destinate neutralizarii dispozitivelor de protectie a programelor

Beneficiază de protecţie prin lege si programele create anterior intrării în

vigoare a acestei legi.