Sunteți pe pagina 1din 41

Zatca Tamara

Zatca Alexandru

Ministerul Educaiei al Republicii Moldova


Colegiul Financiar Bancar din or. Chiinu
Catedra Informatica

Elaborarea Produselor Program


Meserie sau art?

Chiinu 2012
CUPRINS
Preliminarii.................................................................................................................. 4
1. Noiuni de program i produs program. Clasificarea PP.................................
2. Etapele de realizare a produselor program.
3. Modele de dezvoltare a a produselor program
4. Tehnici de reprezentare al algoritmilor
5. Dezvoltarea metodelor de programare
6. Norme i reguli de redactare a codului surs
7. Calitatea produselor program
8. Proiectarea produselor program
9. Organizarea procesului de dezvoltare a proiectelor
10.Codificarea i depnarea programelor
11.Testarea produselor program
12.Documentarea etapelor de realizare al produselor program
13.Expluatarea i ntreinerea aplicaiilor i informaiilor utile
14.Estimarea efortului de realizare al proiectelor

Preliminarii
Elaborarea produselor program este o activitate compus din analiza, proiectarea,
implementarea, testarea si ntreinerea aplicatiilor software ce sunt utilizate n diferite
domenii de activitate, de la operatiuni bancare si pn la functionarea sistemelor n timp real
din industria nuclear sau aerospatial, reprezint un intens efort de inteligent asistat de
unul organizatoric si financiar; aceste eforturi sunt de dimensiuni apreciabile si aflate ntr-o
continu crestere, ca pondere n totalul resurselor umane si materiale utilizate.
n vreme ce tehnica de calcul devine din ce n ce mai performant ca urmare a
utilizrii tehnologiilor de vrf (prin miniaturizare si ieftinire), la elaborarea si ntretinerea
aplicatiilor software, n special a celor complexe, resursele consumate ajung s reprezinte
70-80% din costul total al sistemului (hardware si software) si chiar cu posibilitatea de
crestere pn la 90% n unele cazuri.
Volumul mare al activitii necesare pentru a dezvolta si ntreine programele (si deci
implicit nivelul nalt al costurilor asociate), justific interesul din ce n ce mai larg pentru
asigurarea unei calitti corespunztoare aplicatiilor precum si minimizarea costurilor de
elaborare a acestora. Sunt utilizate metode si instrumente adecvate analizei n detaliu a
cerintelor software si de elaborare sau testare a programelor, ce asigur un minimum de erori
admisibile si o productivitate ct mai mare.
Aceste aspecte specifice ce nsotesc elaborarea programelor au dat natere unor
ncercri de abordare sistemic a problematicii elaborrii aplicatiilor, conducnd n mod
firesc la formularea unor noi concepte, principii, metode si instrumente de construire a
programelor, cunoscute si sub denumirea de inginerie software. Ingineria software urmreste
n esent rezolvarea unor probleme specifice legate de analiza, proiectarea, implementarea,
testarea si ntretinerea programelor si anume:
-stabilirea etapelor si a sub-etapelor prin care trece secvential un produs software pe
3

durata ciclului su de via, definirea continutului acestor sub-etape precum si a


parametrilor de demarcare ntre sub-etapele si etapele succesive.
-abordarea formal prin elaborarea unor metode riguroase si a unor instrumente
asociate acestora, destinate asistrii proiectrii produsului software. Ele trebuiesc
adaptate diferitelor sub-etape din ciclul de via ale unui program, diferitelor tipuri de
programe precum si complexitii variate a programelor ce se realizeaz.
-elaborarea unor proceduri clare de organizare si conducere a diferitelor activiti
legate de realizarea programului (calitate, performant). Obiectivul final al ingineriei
software este trecerea de la o activitate de elaborare a programelor, n care domina
stilul artizanal, de intuitie si improvizatie, la o activitate sistematic care s asigure
nalta calitate a programelor si un cost ct mai sczut al elaborrii si ntretinerii
acestora. Ingineria software se refer la utilizarea n mod riguros, sistematic si cu
profesionalism a unor metode si instrumente software adecvate, avnd n vedere
anumite obiective si principii de baz.
Scopul instruirii de elaborarea al produselor program n nvmntul mediu de specialitate
(colegiu) presupune:
formarea deprinderilor practice de elaborare a programelor i aplicaiilor la nivel
profesional;
formarea deprinderilor practice de proiectare al produselor program;
formarea deprinderilor practice de documentare i ntreinere al aplicaiilor;
studierea mijloacelor elaborrii produselor programprogram, care contribuie la
formarea

competenelor generale de baz: elemente de algoritmizare, modelare,

programare, gndire logic, acumularea, pstrarea i prelucrarea digital a informaiei.

1. 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).
5

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 om-maina; 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
8

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

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

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, s-a
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 client-server. 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,
11

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
12

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 :
13

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:
14

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.

15

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
16

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
17

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;

18

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

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

20

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
Autorul are dreptul exclusiv de a realiza si de a autoriza:
o reproducerea permanent sau temporal, integral sau parial a unui program,
prin orice mijloc sau form
o traducerea, adaptarea, rearanjarea i alte transformri ale unui program precum
i reproducerea acestor transformri, far a prejudicia drepturile persoanei care
face transformrile
o difuzarea originalului sau a copiilor, sub orice forma, inclusiv prin 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
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
Utilizatorul autorizat are dreptul de a realiza copii de arhiv sau de
siguran far acceptul autorului
21

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.

22

2. Etapele de realizare a produselor program


La nceputul erei calculatoarelor se purtau numeroase discuii n jurul procesului de
programare, el fiind considerat mai mult o art dect o meserie. ntre timp s-au fcut multe
cercetri [1], s-au scris multe cri i s-au elaborat standarde (vezi bibliografia), au aprut noi
instrumente, medii de automatizare a dezvoltrii SI [19], cele mai multe fiind n domeniul
programrii, mai corect n domeniul generrii de cod. Calitatea programului n mai mare
msur depinznd de concepere, i nu de codificare, discuia poate continua. Cert este faptul
c una i aceeai sarcin de programare realizat de 100 de programatori poate constitui, i
ca regul va constitui, 100 de caliti diferite. Comentariile sunt de prisos. Semnificaia
programrii rmne a fi decisiv pentru calitatea final a produsului, produsele program
fiind considerate produse intelectuale.
Unul i acelai PP poate avea mai multe versiuni i variante de realizare, care sunt
legate de necesitile funcionale, subiectele de realizare, tradiiile, gusturile i realizrile
profesionale particulare.
Din cauza c PP este un produs nou, fiecare caz de implementare a lui este la fel un
proces de creaie, un proces n urma cruia se atinge ceva nou. Beneficiarul PP trebuie educat
foarte insistent pentru a-l deprinde cu ceva nou. Iar pentru a implementa ceva nou, aproape
n toate cazurile trebuie un impuls de ncepere, un interes viu, o comand social etc.
La etapa de realizare a PP rmne de ales anume acele modaliti, care rspund
cerinelor utilizatorului, fixate la etapele precedente de dezvoltare a SI. Deci, etapa de
realizare a programelor va beneficia de rezultatele tuturor etapelor anterioare, n care au
fost specificate cerinele fa de sistem n ntregime, structurarea funcional a SI (pe
23

subsisteme), au fost definite soluiile de principiu, complexul programo-tehnic, ealonarea1


dezvoltrii SI.
n cadrul etapei de realizare a programelor se termin construirea sistemului informatic,
dup care urmeaz implementarea2 lui. Iar pentru SI tipice, realizate pentru un grup de
obiecte i conform anumitor standarde de calitate, se face omologarea3, stocarea i
distribuirea prin uniti specializate. Activitatea principal la etapa de programare este
legat de proiectarea, codificarea, depnarea, integrarea i testarea programelor, care pot fi
definite prin trei componente:
a) Programul propriu-zis, definit prin:

Structura programelor;

Algoritmii de prelucrare;

Transcrierea

algoritmilor

ntr-un

limbaj

de

programare

(codul

programului).
b) Datele asociate prelucrrilor prevzute n program prin instruciuni.
c) Documentaia asociat produsului care permite nsuirea i punerea lui n
funciune [6-15].
n continuare vom examina la mod general subetapele realizrii produselor program, diferite
modaliti i paradigme de programare, programarea propriu-zis constituind obiectul altor
cri, cursuri, discuii.
Explicaiile de subsol ale unor cuvinte rar ntlnite, precum i ale unor termeni specifici de
informatic sunt aduse conform [4] i [18].

2.1.Caracterizare general a procesului de realizare a programelor


Procesul de elaborare a programelor unui SI (PP) poate fi descompus ntr-o secven de
activiti, ntrunite n subetape ale ciclului de via (Fig.7.1, [17]).
1

A ealona - a dispune, a repartiza lucrrile proiectului n mai multe pri la intervale succesive, dinainte
stabilite, numite etape, subetape, activiti; este vorba de planificarea proiectului.
A implementa - a pune n practic, n funciune; include un ir de lucrri de pregtire iniial a obiectului,
a bazei de date, a personalului ctre utilizarea sistemului.
A omologa - a pune n coresponden produsul cu cerinele de proiect, cu standardele; este caracteristic
pentru produse program generalizabile.

24

Se fac cel puin trei presupuneri:

Fiecare subetap se termin printr-o activitate de verificare i validare,


avnd drept scop eliminarea anomaliilor din produs chiar n momentul n
care au fost introduse. n funcie de rezultatul validrii, se trece la
subetapa urmtoare sau se revine la cea precedent;

25

Cerinte de realizare
PROIECTARE DE
ANSAMBLU

PROIECTARE DE
DETALIU

de dezvoltare

CODIFICARE SI DEPANARE
COMPONENTE

INTEGRARE COMPONENTE SI
TESTARE PRODUS

Sugestii

DEFINITIVARE DOCUMENTATII

EXPERIMENTARE SI
RECEPTIONARE
Produs program documentat
catre etapa "Producere"

Figura 7.1. Schema procesului de realizare a programelor

Teoretic i ca regul, este bine ca revenirile s se limiteze doar la


subetapele imediat anterioare (linii continue n Fig.7.1). Adic, n mod
ideal subetapele se succed strict secvenial, fr retururi semnificative la
subetapele anterioare;

26

n practic ns subetapele realizrii unui SI sau PP se suprapun, se


interptrund i se repet iterativ, formnd numeroase bucle (linii punctate
n Fig.7.1).

Proiectarea de ansamblu i de detaliu a PP nu trebuie confundat cu proiectarea de


ansamblu i de detaliu a SI. Realizarea propriu-zis a PP are la baz proiectul logic i
proiectul tehnic de detaliu ale SI, materializate ntr-o documentaie numit Cerine de
realizare, n care sunt specificate: cerinele; arhitectura sistemului (echipamente i
programe); concepia privind exploatarea sistemului, inclusiv repartiia de sarcini i resurse
umane i echipamente; resurse prevzute; funcii i operaii principale.
Specificaia cerinelor de realizare la etapele anterioare descrie doar ceea ce trebuie
s fac produsul program. Modul concret cum trebuie s se fac pentru fiecare din funcii
constituie obiectul etapei de realizare a programelor.
Spre deosebire de SI, care este definit printr-un unic proiect de ansamblu i de detaliu
(viziune integr SI), pentru fiecare subsistem al acestui SI poate fi definit i realizat propriul
su produs program cu proiectele sale de ansamblu i de detaliu.
2.2. Proiectarea de ansamblu a produsului program
n baza cerinelor de realizare se efectueaz proiectarea de ansamblu a PP, al crei
scop const n definirea i structurarea componentelor de program, care vor forma un tot
unitar (cerine funcionale i de calitate, arhitectura funcional a produsului [1, 2]).
n procesul proiectrii de ansamblu a programelor se cere a gsi, a stabili funciile prin
intermediul crora intrrile pot fi transformate n ieiri, a determina utilajul necesar,
software-ul de baz, SGBD utilizat etc.
Noiunea de ansamblu se refer la viziunea integr, de ansamblu, asupra produsului,
i nu la gradul de detaliere a proiectrii. Obiectivele acestei subetape sunt:

Identificarea i structurarea transformrilor pe care le suport datele,


precum i fluxurile lor n sistem;

27

Partiionarea (structurarea, divizarea) optim a funciilor sistemului n


componente/module, a cror complexitate s poat fi controlat de
programatori;

Definirea interfeelor;

Selectarea algoritmilor i a procedurilor de calcul.

Analiza sistemului informaional existent este prima etap n dezvoltarea sistemului


informaional i are ca obiectiv principal stabilirea cerinelor informaionale ale conducerii
n vederea realizrii unui sistem informatic.
Esena studiului i analizei sistemelor este de a observa, pe ct se poate de complet,
mediul unei probleme, a formula obiectivele sistemului, i de a evalua diferite opinii posibile
n termeni de eficacitate i eficien. n rezultatul analizei se ajunge la obiective, criterii i
alegeri posibile, etc.
Evaluarea performanelor i limitelor sistemului existent se face pe baza urmtoarelor
criterii:
1. msura n care SIF asigur realizarea obiectivelor ndeplinirii funciilor i
sarcinilor de baz ale unitii i exercitarea atributelor de conducere;
2. gradul de asigurare cu informaii necesare i suficiente a unitii;
3. operativitatea n culegerea i transmiterea informaiilor i datelor, ceea ce
caracterizeaz timpul de rspuns al SIF;
4. calitatea informaiilor obinute din prelucrare;
5. calitatea i sigurana legturilor informaionale, a fluxurilor
informaionale.
Studiul sistemului existent cuprinde un grup de activiti care urmresc cunoaterea
performanelor tehnico-funcionale ale SIF i presupune:
estimarea cantitativ i calitativ a informaiilor de intrare ieire, modul de
culegere i prelucrare;
cunoaterea principalelor restricii ale SIF;
28

performanele i limitele SIF existent.


Funcionarea unui SI decizional presupune desfurarea urmtoarelor activitii:
culegerea datelor despre starea sistemului i a mediului su nconjurtor;
transmiterea datelor n vederea conlucrrii;
prelucrarea datelor n scopul informaional;
adoptarea deciziilor;
transmiterea deciziilor spre prelucrare de executare;
asigurarea controlului i a urmririi nfptuirii deciziei.
Obiectivele funcionrii SIF sunt:
1. creterea vitezei de rspuns a sistemului la solicitrile beneficiarelor;
2. creterea exacticitii i preciziei n procesul de prelucrare a datelor i informarea
a conducerii;
3. reducerea costului informaional;
4. raionalizarea fluxurilor informaionale;
5. raionalizarea circulaiilor informaionale.
Analiza sistemului informaional existent este prima etap n dezvoltarea sistemului
informaional i are ca obiectiv principal stabilirea cerinelor informaionale ale conducerii
n vederea realizrii unui sistem informatic.
Esena studiului i analizei sistemelor este de a observa, pe ct se poate de complet,
mediul unei probleme, a formula obiectivele sistemului, i de a evalua diferite opinii posibile
n termeni de eficacitate i eficien. n rezultatul analizei se ajunge la obiective, criterii i
alegeri posibile, etc.
Un lucru important n cadrul acestei subetape l constituie alegerea metodelor de
29

proiectare i a unor tehnici i/sau limbaje pentru reprezentarea proiectului.


Documentaia rezultant este specificaia de definire a produsului program, care conine:

Descrierea problemei de baz de soluionat i a criteriilor de acceptare de


ctre utilizator;

Destinaia produsului;

Specificaia cerinelor i a restriciilor;

Arhitectura produsului program.

Sfritul acestei subetape presupune:

Verificarea proiectului de ansamblu privind

ierarhia unitilor de

realizare i interfeele dintre ele i structura logic a datelor;

Planificarea integrrii i testrii, a testului de recepie i a manualului de


utilizare;

Estimarea resurselor necesare.


2.3. Proiectarea de detaliu a programelor

Scopul acestei subetape este proiectarea structurii fizice a produsului i pregtirea


testrii lui. Documentaiile rezultate sunt: specificaia de realizare a produsului i
specificaia de testare.
Aceast faz demareaz realizarea propriu-zis a produselor program. Din acest
moment, la realizarea proiectului particip cea mai mare parte a forei de munc alocat.
Pentru fiecare din componentele produsului, definite n faza de proiectare de ansamblu, se
realizeaz o descompunere n uniti mai mici, numite module. Pentru fiecare modul se
ntocmete specificaia extern, intern i de testare.
Specificaia extern cuprinde:

Descrierea interfeelor externe, arborele de structur (numele, funcia,


modul de apel,

interaciunea cu mediul utilizator, cu alte produse

program, cu suportul hardware i software);


30

Descrierea fiecrei componente a arborelui (funciuni, intrri, ieiri);

Descrierea datelor (structuri fizice, moduri de reprezentare);

Condiiile i restriciile tehnice de realizare.

Specificaia intern descrie:

Logica intern (algoritmul) modulului;

Descrierea interfeelor interne (flux de control, flux de date, flux de


comunicaii).

Specificaia de testare conine:

Planul de testare (resurse, termene, responsabiliti);

Cazurile de test (date de intrare, rezultate posibile);

Mediul de testare (hardware, software);

Procedurile de testare.

Separarea fizic a acestor specificaii este foarte important, deoarece specificaia intern
poate fi modificat fr a avea influen asupra specificaiei externe, n timp ce modificarea
specificaiei externe atrage dup sine modificarea specificaiei interne i de testare. Sfritul
acestei subetape presupune:
a) Verificarea proiectului detaliat al fiecrei componente privind:

Completitudinea i coerena4 specificaiei ntocmite,

Exactitatea definirii datelor utilizate,

Necesitatea revenirii asupra specificaiei de realizare ntocmit n faza de


proiectare de ansamblu;

b) Aprobarea planului pentru testul de recepie;


c) Verificarea versiunilor provizorii pentru planurile de integrare i testare, precum i a
manualului de utilizare.
Codificarea i depnarea programelor
Faza are ca scop realizarea modulelor, programelor i a unitilor de execuie n
4

Coeren legtur strns (i armonioas) ntre prile sau elementele unui ntreg.

31

conformitate cu specificaiile de realizare i testare individual a acestora. Scrierea codului


surs pentru fiecare modul din specificaia de realizare, verificarea funcionrii lui corecte
pe calculator i, eventual, depnarea i corectarea lui constituie esena acestei subetape.
O calitate principial a codului scris este claritatea lui reflectat prin uurina cu care acesta este
citit i neles de orice programator. n acest scop sunt recomandate comentariile, codurile i identificatorii
mnemonici ca surs de autodocumentare.
Codul surs realizat trebuie validat. Procedeele curente de validare se axeaz, n special, pe
testare, adic pe verificarea funcionalitii codului, prin execuie pe calculator, folosind date de test.

Mai recent, au fost introduse i alte metode de verificare care ncearc s elimine erorile
nainte ca ele s fie transportate n cadrul programului. Din aceast categorie fac parte
verificrile de tip: inspectare cod, metode de demonstrare a corectitudinii programelor etc.
Sfritul acestei subetape presupune:
a) Verificarea rezultatelor testrii fiecrui modul;
b) Verificarea respectrii normelor de programare folosite n redactarea modulului;
c) Documentaia pentru fiecare component.
Rezultatele subetapei sunt:
a) Fiierele i bibliotecile cu programe i module testate individual;
b) Rapoartele de testare individual i listingurile de confirmare;
c) Documentaia de ntreinere, care conine:

Specificaia structurii produsului i a documentaiei;

Descrierea produsului program pe componente individuale;

Textele programelor n limbajul surs autodocumentate [9].


Integrarea i testarea programelor

Etapa de programare se ncheie cu testarea progresiv i integrarea modulelor n ansamblul


sistemului pe baza specificaiilor elaborate anterior, precum i cu finalizarea unei documentaii complexe de
realizare format din: manualul de prezentare, manualul de utilizare, manualul de exploatare (documentaia
de exploatare) [10].

n cadrul acestei subetape se vor optimiza elementele de interfa cu utilizatorul (formate


video, dialoguri, sisteme de help), se vor pune la punct procedurile de prentmpinare i
32

corectare a erorilor involuntare la operare, se elaboreaz documentaia de realizare, manualul


de prezentare i manualul de utilizare i exploatare.
Sfritul acestei subetape presupune:
a) Trecerea cu succes a testului de recepie, verificnd respectarea cerinelor incluse
n specificaia de definire;
b) Recepionarea elementelor ce nsoesc produsul (rapoarte, manuale, documentaie,
fiiere de date etc.).
Testarea n aceast faz este orientat spre funciile generale ale produsului i ale
performanelor specificate, ale interfeelor dintre programe - programe, programe echipamente i programe - utilizator.
Rezultatul testrii este consemnat n raportul de testare a integrrii, care conine:

Descrierea pe scurt a funciunilor produsului;

Condiiile n care are loc testarea;

Rezultatele acestei activiti;

Performanele obinute.

Pe msur ce componentele produsului sunt validate, ele sunt asamblate ntr-un sistem,
printr-un proces de integrare. Integrarea poate avea loc:

Ascendent, de jos n sus, de la module spre aplicaii (bottom-up);

Descendent, de sus n jos (top-down).

n cazul integrrii ascendente, procesul ncepe dup ce modulele situate pe cel mai de jos nivel al
ierarhiei au fost realizate. n cazul integrrii descendente, procesul de integrare ncepe cu modulele din
partea de sus a ierarhiei.
Ctig de cauz se d realizrii i integrrii descendente, deoarece sistemul n ansamblu prinde contur
chiar din primii pai ai integrrii. Unele din funciile sale fiind realizate la un moment dat, subetapele de
proiectare, codificare, integrare i testare pot derula paralel.

Prin compararea rezultatelor propuse a fi obinute cu cele efectiv furnizate de aplicaia


informatic, sunt verificate sintactic i funcional modulele din program. Dac se realizeaz
identitatea ntre cele dou categorii de rezultate, operaia de testare se consider ncheiat.
33

Testarea top-down este aplicabil asupra programelor cu structura modular i se pornete de


la modulul director ctre modulele funcionale, apoi ctre cele operaionale astfel: se testeaz
modulul director i cele funcionale; se testeaz individual modulele operaionale; se testeaz
relaiile dintre module prin ncercri cu seturi de date asupra programului asamblat 5 pe
diferite variante funcionale.
Pentru prima faz, testele se pot efectua asupra modulelor video, aceste module
asigurnd practic funcionalitatea produsului.
Testarea nu se consider ncheiat dect atunci cnd se efectueaz lansarea prelucrrii de
ctre ntreaga aplicaie informatic a unui set complet de date.
Un set complet de date va include toate datele posibile, corecte i eronate, pentru a
urmri reacia de rspuns a sistemului. n aceast ultim testare, numit global, se vor
urmri: validarea corectitudinii datelor primare i a rezultatelor; rspunsurile i mesajele
sistemului informatic; modul de operare n timpul execuiei programului.
Operaiile de testare se vor materializa n urmtoarele: compilarea6 programelor surs
i corectarea erorilor de sintax; constituirea modulelor obiect, a legturilor funcionale ntre
acestea i corectarea erorilor de legtur; lansarea n execuie a aplicaiei cu un set de date de
test i corectarea erorilor de concepie i a altor erori de legtur i comunicaie ntre module;
catalogarea modulelor integrate n biblioteca utilizatorului i eventuala corectare a erorilor de
catalogare.
Definitivarea documentaiei aferente unui program
Indiferent de modul de ealonare n timp i amploarea sistemelor informatice, modul de
realizare a programelor, pentru fiecare program (complex) realizat se ntocmete
documentaia de realizare i ntreinere.
n aceast faz se aduc completri la documentaia de realizare i ntreinere i se aprob
forma definitiv a manualelor produsului program, dup cum urmeaz:
Documentaia de realizare i ntreinere ce va conine:
5

A asambla a reuni, a fixa, a mbina dou sau mai multe componente ale unui sistem. Este sinonim
cuvntului integrare pentru produse finale, ce asambleaz succesiv toate componentele.
Compilarea programului procesul de obinere a programului n limbajul mainii din programul scris n
orice alt limbaj de programare.

34

Structura general a produsului program;

Descrierea fiierelor separate i a bazei de date;

Documentaia pentru fiecare program, modul (arborele de structur,


funciunile, textul surs autodocumentat cu comentarii etc.);

Situaiile i rezultatele finale.

Manualul de prezentare ce va conine:

Destinaia produsului program;

Condiiile de utilizare;

Descrierea produsului program i a metodelor de realizare;

Tipurile de intrri/ieiri;

Lista manualelor produsului;

Performanele i caracteristicile de calitate;

Informaiile tehnico-comerciale.

Manualul de utilizare ce va conine:

Destinaia produsului program;

Condiiile de utilizare;

Caracteristicile produsului program;

Procedurile de apelare, ncrcare i lansare n execuie;

Datele de intrare/ieire;

Interaciunea utilizator-produs;

Alte informaii necesare utilizatorilor produsului.

Manualul de exploatare ce va conine:

Informaiile generale despre produs;

Structura fizic a produsului;

Procedurile de instalare, adaptare, generare;


35

Procedurile de verificare a instalrii corecte;

Modurile de execuie a programelor.

n cazul n care produsul program dispune de un limbaj propriu, specializat, se ntocmete i un


manual al limbajului.
Manualele se vor organiza modular, pe categorii de utilizatori i executani ce vor asigura
exploatarea.
Componena instruciunilor operaionale, a grupelor de proceduri i informaiile coninute n
instruciunile tehnologice operaionale se stabilete la proiectarea de ansamblu a SI n conformitate cu
cerinele de proiect i a standardelor.

Experimentarea i recepionarea programului


Scopul acestei subetape este verificarea n condiii reale a performanelor produsului
program. Numrul de experimentri difer n funcie de complexitatea i natura produselor
program. Aceast faz pregtete toate elementele necesare recepionrii sistemului de ctre
beneficiari i intrarea lui n exploatarea curent.
Se verific respectarea specificaiei de definire a sistemului i existena efectiv a
condiiilor necesare exploatrii sistemului (echipamente, amenajri, personal instruit
etc.).
Dac toate aceste condiii sunt ndeplinite, sistemul se instaleaz efectiv i se trec testele de
recepie la beneficiari n cazul unor SI unicate, sau se face pregtirea ctre omologare,
producere i implementare: n cazul unor SI tipologice (vezi Capitolul 8).

6. Norme i reguli de redactare a codului surs


Aplicarea metodei programrii modulare presupune, n primul rnd, elaborarea PP n echipe de
programatori. Aici se stabilesc reguli de scriere a programelor, deoarece un programator la orice etap de
dezvoltare a PP poate fi nlocuit prin alt programator i respectarea regulilor devine obligatorie n caz
contrar prelungirea proiectului devine anevoioas iar uneori chiar imposibil.
Cu uurin putem deosebi un modul scris de un elev sau un amator de unul elaborat de un

36

programator profesionist. Programele scrise de profesioniti sunt de cteva ori mai mari dup volum, se
citesc uor, conin mesaje de diagnosticare, prevd toate situaiile excepionale, etc.
Regulile i principiile de scriere profesional a programelor surs pot fi grupate dup cum urmeaz:
Descrierea tipurilor de date;
Reglarea constantelor;
Alegerea numelor de identificatori;
Divizarea datelor de intrare n seturi independente de date;
Identificarea modulului i al versiunii lui de dezvoltare;
Verificarea datelor de intrare i afiarea mesajelor despre erori;
Diagnosticarea ramificat a situaiilor excepionale;
Aranjarea textului programului surs ;
Scrierea comentariilor;
Descrierea tipurilor de date
Esena noiunii de tip rezid n tentativa de grupare a unor obiecte dup caracteristici comune. Conceptul
de tip de date este vzut ca o mulime de valori posibile, care formeaz domeniul acestuia i o mulime de
operaii, funcii, relaii care opereaz cu aceste valori. n grupul de reguli Descrierea tipurilor de date se
includ urmtoarele restricii:
a) toate variabilele i tipul lor se descriu la nceput de program;
b) tipul variabilei corespunde mulimii minime necesare de valori;
c) nu se admite descrierea implicit a tipului;
d) se interzice existena variabilelor, care nu sunt utilizate n modul.
6.2. Reglarea constantelor
Utilizarea ne reglat de constante are ca rezultat pstrarea aceleiai constante n mai multe locaii din
memoria operativ, lucru inadmisibil n situaia deficitului de memorie. Din acest motiv, se recomand ca
toate constantele din program s fie declarate explicit la nceput de program. n situaia cnd limbajul de
programare nu permite acest lucru, n loc de constante se utilizeaz variabile crora li se atribuie valoarea
respectiv la nceput de program i n aa mod se evit faptul utilizrii multiple a aceleiai valori constante.
Tot aici menionm c unele constante se utilizeaz ca valori prestabilite pe o perioad ndelungat, dar care
cu timpul trebuie nlocuite. Spre exemplu salariul minim, % de impozit, % de asigurare social, etc. Evident
c pstrarea lor n form de constante reglate este mult mai convenabil dect apariia lor n algoritm n
form de valori numerice.
6.3. Alegerea numelor de identificatori
Numele identificatorului se alctuiete dup regulile stabilite de limbajul de programare. Majoritatea
limbajelor accept identificatori numele crora ncepe din liter i este continuat de litere, cifre i unele
semne speciale. Recomandrile la alegerea numelui identificatorului sunt urmtoarele:
a) Numele exprim sensul valorilor pstrate, prelucrate sau transmise de modul
b) Lungimea numelui variaz n diapazonul 3-6 caractere mai ales n cazurile utilizrii frecvente.
c) Abrevierea utilizat n calitate de nume trebuie s se pronune uor.
d) Se oblig utilizarea unor nume de identificatori unici discutai i aprobai de echipa elaboratorilor.
Exemple de identificatori: ARIA B12 i j A_32
6.4. Divizarea datelor de intrare n seturi independente de date
Datele de intrare de obicei sunt compuse din setul de baza i un set de parametri de gestiune cum ar fi :

37

a) numrul elementelor unui tablou


b) un caracter din poziia meniului
c) o decizie Yes/No
Parametrii de gestiune intr-un program sunt un numr nu prea mare de variabile de diferite tipuri valorile
crora apar n mesajele de gestiune i cer a fi introduse n formatul propus de program.
Setul de baz poate avea diferite surse i n acest caz se procedeaz astfel: pentru fiecare surs se
elaboreaz cte un modul, aceasta faciliteaz modificarea programului n caz dac se schimba formatul de
prezentare a datelor.
Utilizarea produsului program tot este mai comod deoarece nu cere prelucrarea concomitent a mai
multor surse.
Datele n funcie de suport pot cere codificri i decodificri. Elaborarea modulelor respective permite s
nu fie afectat modulul principal de prelucrare.
6.5. Identificarea modulului i al versiunii lui de dezvoltare
Orice program sau modul trebuie n primul rnd sa afieze pe ecran sau s tipreasc la imprimant
denumirea sa oficial i numrul versiunii precum i data modificrii modulului. Excepie din regul o
prezint modulele apelate de mai multe ori. n aceste module denumirea oficial i numrul versiunii se
nscrie n comentariul de baz al programului.
La orice modificare al modulului numrul versiunii se mrete cu o unitate iar data se modific prin data
introducerii modificrilor.
6.6. Verificarea i diagnosticarea datelor de intrare
Verificarea datelor de intrare trebuie s fie efectuat n fiecare modul pentru asigurarea fiabilitii i
robusteii PP. Aceast regul este numit principiul nencrederii totale.
n primul rnd se verific toi parametrii de gestiune, pentru a evita utilizarea incorect a modulului. Uneori
aceti parametri sunt inclui n modulul de apelare i verificarea lor se dubleaz de fapt din acelai motiv.
Verificarea datelor i afiarea erorilor pot fi realizate prin diverse metode cu un grad diferit de detaliere.
Putem discuta despre cteva tipuri de verificri frecvent utilizate i anume:
a) aparinerea domeniului de valori posibile;
b) ne contrazicerea reciproc a valorilor parametrilor;
c) asigurarea comoditii introducerii datelor de ctre utilizator.
Mesajele de eroare trebuie s fie scurte, clare i nsoite de denumirea modulului care a depistat eroarea.
Dup prelucrarea situaiilor care au provocat erori neaprat dup afiarea mesajelor sunt posibile
urmtoarele variante de aciune n program:
a) introducerea datelor se repet de cteva ori(3-5);
b) controlul este transmis la sfrit de program (STOP);
c) ntoarcerea n modulul de apel ;
d) corectarea automat a erorii i continuarea execuiei modulului.
Corectarea automat se recomand numai n caz dac eroarea este absolut evident i nu va provoca
funcionarea incorect a modulului.
Evident c exist situaii cnd datele de intrare nu este nevoie s fie verificate i anume:
a) datele de intrare sunt pe suporturi magnetice i corectitudinea lor este asigurat de verificrile
precedente;
b) datele de intrare sunt date finale al altui modul corectitudinea crora este garantat;
c) volumul datelor de intrare este foarte mic, uor se verific vizual i nu influeneaz funcionarea altor
module.
Recomandri suplimentare:

38

1) La prelucrarea seturilor mari de date ntreruperea programului nu se efectueaz la fiecare eroare


depistat. Erorile se acumuleaz i dup prelucrarea ntregului set se indic numrul liniei (nregistrri)
cu erori i explicaii despre erorile depistate. Clar c aceste nregistrri cer s fie corectate i nc o dat
se introduc.
2) Metodele enumerate evident nu ntotdeauna asigur corectitudinea absolut a datelor. De exemplu, dac
cifra 6 a fost nlocuit cu 0 . a. Dac aceste erori nu permit obinerea rezultatelor n formulare se
introduc date suplimentare care permit verificare corectitudinii. Spre exemplu n sistemele contabile,
bancare toate formularele cu numere de mare valoare conin sume de control n care toate valorile
bneti din formular se nsumeaz. La introducerea datelor suma se verific repetat i dac se
depisteaz devieri prelucrarea datelor se repet. Dac suma de control nu poate fi pstrat n ntregime
se pstreaz o parte din numr de regul poziiile inferioare. Uneori aceast sum se mai nmulete cu
numrul liniei sau numrul formularului pentru a evita coincidena de valori din diferite linii sau
formulare.
6.7. Diagnosticul situaiilor excepionale
Prelucrarea situaiilor excepionale, dup cum a mai fost menionat, deosebete un program profesionist
de unul elaborat de amatori i asigur n mod direct robusteea modulului. Situaia excepional se definete
ca o eroare aprut n procesul funcionarii care nu permite continuarea corect al programului. De cele mai
dese ori acestea sunt erorile ne respectrii formatului de date sau erori aprute la transformarea datelor dintrun tip n altul. Diagnosticul acestor situaii se afieaz n form de mesaje ce conin descrierea cauzei
apariiei situaiei excepionale i sursa care a provocat situaia (numele fiierului, dispozitivul, numele
variabilei interne). Prelucrarea situaiilor excepionale coincide cu cea al erorilor n datele de intrare i
include urmtoarele variante de aciune n program:
introducerea datelor se repet de cteva ori(3-5);
controlul este transmis la sfrit de program (STOP);
ntoarcerea n modulul de apel ;
corectarea automat a erorii i continuarea execuiei modulul.
Exemple de situaii excepionale.
Exemplu 1 mprirea la zero
Exemplu 2 Deschiderea unui fiier inexistent
Exemplu 3 Convertirea nereuit a datelor cum ar fi convertirea unui ir n numr.
6.8. Aranjarea textului programului surs
Formatarea textului surs sau aranjarea lui pe foia de tipar dup anumite reguli duce la comoditatea
citirii programului uureaz verificarea i modificarea programului. Regulile de scriere a textului
programului pot fi stipulate astfel
n fiecare linie se plaseaz una-dou instruciuni
se aliniaz spre dreapta cu una dou poziii toate structurile imbricate
dup fiecare sfrit de structur imbricat se nscrie comentariul care indic numele
structurii ce se finalizeaz
toate cuvintele rezervate din limbajul de programare respectiv se evideniaz
Exemplu de aranjare corect.

39

program p123;
type vector=array[1..10] of integer;
var a,b:vector;
k,i,n,nmax:integer;
begin
writeln('n='); readln(n) ;
for i:=1 to n do readln(a[i]);
writeln('ai introdus');
for i:=1 to n do writeln(a[i]);
if a[i]=0 and a[i+1] then k:=k+1;
b[i]:=a[i];
if a[i]>0 then nmax:=a[i];
writeln('secventa c.m. lunga ',nmax);
end.
6.9. Comentarea programelor.
Comentariile se nscriu n programe pentru al face mai neles i nu pentru al suprancrca cu
informaii suplimentare puin informative care sunt clare oricrui programator. Un aspect esenial al
comentariul nereuite este o explicaie detaliat al realizrii. Comentariile reuite evideniaz
momentele importante n programul elaborat.
n comentariul de baz scris imediat dup antetul programului se nscrie enunul problemei
elaboratorul programului i data ultimei modificri.
n blocul declaraiilor de date se comenteaz variabilele rezervate pentru setul principal de date.
n blocul de subprograme se comenteaz n mod obligatoriu nceputul i sfritul fiecrui
subprogram.
n blocul algoritmic prin comentarii se descrie de fapt algoritmul general realizat n limbajul de
programare.

Bibliografie

1. Elaborarea programelor. Metode i tehnici moderne. Militon Freniu, Bazil Prv.


Editura PROMEDIA ,1994
2. Tehnologii de elaborare a proiectelor. Ovidiu Gheorghie, Adriana
Gheorghie Universitatea Al. I. Cuza, Iai, Note de curs, 2005
3. Turbo Pascal. Culegere de probleme. Andrei Braicov, Editura Prut Internaional,2005
4. Informatica de gestiune Manualul pentru licee economice clasa XII
5. Cursul IT Essentials Academia CISCO
6.

40

Bibliografie suplimentar

1.

***Elaborarea de tehnologii noi i modernizate pentru realizarea i ntreinerea


produselor program, Tema de cercetare, I.C.I., 1985-1986.

2.

***Indicaii metodologice pentru realizarea sistemelor informatice i a produselor


program, vol. I - III, I.T.C.I., 1987.

3.

Bragaru T. Tehnologii de realizare a informatizrii nvmntului i cercetrii n Republica Moldova: Tez de


doctorat.
- Chiinu-Bucureti, 1995. -200 p.

4.

DEX - Dicionarul explicativ al limbii romne, Academia Romn, Institutul de


lingvistic Iorgu Iordan, Ediia a II-a.

5-

Bucureti: Univers enciclopedic, 1998

41

S-ar putea să vă placă și