Sunteți pe pagina 1din 31

CALITATEA PRODUSELOR SOFTWARE

1.

Aspecte generale

Produsele software au devenit o parte esentiala a multor sisteme moderne si n general tind sa transforme decisiv mediul de lucru cotidian prin automatizarea activitatilor zilnice. De fiecare data cnd sistemele software gresesc consecintele sunt foarte grave si conduc la scaderea productivitatii, pierderi importante de bunuri de orice natura, pierderea clientilor si scaderea vnzarilor, potentiale amenintari la siguranta vietii oamenilor, brese n asigurarea securitatii informatiilor, pierderi importante de date si informatii, cheltuieli mari pentru recuperarea datelor si repunerea n functiune a sistemelor. Ca urmare a aderarii Romniei la Uniunea Europeana a aparut necesitatea dezvoltarii de produse si servicii care sa fie compatibile si conforme cu standarde specifice pentru acceptarea lor pe diverse piete. Mai mult, datorita noilor cerinte globale privind calitatea produselor au capatat o importanta tot mai mare acordurile internationale referitoare la procedurile de evaluare a calitatii produselor software. Prin acest proiect partenerii si propun dezvoltarea unei platforme de cercetare care sa implementeze functiile unui laborator de testare a produselor software, avnd ca referinta un cadru conceptual metodologic bazat pe standarde internationale. Conform standardului ISO 9000 -3 produsul software este definit ca fiind: o creatie intelectuala care cuprinde programe, proceduri, reguli si orice documentatie asociata referitoare la functionarea unui sistem de prelucrare a datelor. Produsul software reprezinta un ansamblu complet format din programe, proceduri si documentie asociata, pentru calculator precum si datele destinate sa fie livrate unui utilizator. Deci un produs software include si documentatia de instalare si operare, documentatia de utilizare si intretinere, proceduri de utilizare si materiale de instruire.
1

Fiecare generaie de calculatoare a imprimat particulariti specifice procesului de dezvoltare software. De la programele monolit scrise n limbaje de nivel sczut la programele structurate pe module sau care includ definiri de componente, saltul este vizibil. Odat cu creterea complexitii produsului program sunt implementate diferite procese de management. Acestea gestioneaz calitatea produsului sau cantitatea resurselor necesare, se implic n etapele ciclului de via al produsului final i se confrunt cu un numr foarte mare de factori primari i agregai, ale cror niveluri trebuie urmrite. Situaia impune modularizarea produsului program n mai multe componente, fapt ce prezint avantaje prin: reutilizarea acestora, incluzndu-le n alte produse; mai bun gestiune a proceselor de analiz, proiectare i implementare; obinerea unei imagini clare a componentelor funcionale; specializarea analitilor, designerilor i programatorilor.

2.

Calitatea produselor software

Realizarea unui produs software de nivel calitativ ct mai ridicat, este obiectivul principal n activitatea de obinere a acestuia i este urmrit pe toat durata ciclului su de realizare. Atingerea acestui obiectiv trebuie evaluat i probat n final. Calitatea sistemelor de programe se creeaz n procesul de realizare i se manifest n procesul de utilizare. Ca urmare apare calitatea funcional modul n care sistemul de programe rezolv cerinele beneficiarului i calitatea tehnic - performanele tehnico-economice sau cu ce consum de resurse se realizeaz funciunile globale ale sistemului. Asigurarea unei eficiene globale a activitii de dezvoltare software are ca scop minimizarea costurilor prin:
2

folosirea unor mijloace adecvate de elaborare i testare a sistemelor de programe care s asigure minimul de erori admisibile n momentul livrrii acestora; utilizarea unor metode de analiz detaliat a cerinelor utilizatorilor care s anticipeze cerinele ulterioare; elaborarea sistemelor de programe ntr-un mod care s permit modificarea i adaptarea uoar la cerinele impuse. Calitatea produsului final se realizeaz treptat, pe msur ce se avanseaz n procesul de obinere a acestuia. Procesul de elaborare este structurat pe etape i faze i astfel se obin o serie de subproduse intermediare care constituie: parti din documentatia finala a etapei care fac obiectivul avizarii la sfarsitul acesteia; documentatii de lucru destinate comunicarii interne in cadrul echipei care realizeaza sistemul de programe; parti din sistem realizate intr-o forma preliminara.

Controlul calitatii pe parcursul realizarii sistemelor de programe se efectueaza atat in cadrul fiecarei etape din ciclul de realizare control interfazic, cat si la sfarsitul fiecarei etape control final. Obiectivul controlului calitatii este de a depista erorile, ambiguitatiile, omisiunile intr-un moment cat mai apropiat de aparitia lor. Astfel se elimina propagarea acestora la etapa sau faza urmatoare. Controalele se realizeaza cu ajutorul unor grile si liste de verificari specifice acestei activitati. Pentru caracterizarea calitatii sistemelor de programe se recurge la metode care imbina ideile si practicile statistice, cu cele din ingineria si managementul proiectelor. Un sistem de programe trebuie sa intruneasca o serie de caracteristici de calitate, care depind de natura problemelor rezolvate, de aria de aplicabilitate, de suportul tehnic si de dinamica conditiilor de folosire. Asemanator altor domenii si pentru dezvoltarea software se manifesta aceeasi concentrare pe produs, a
3

activitatiilor de conceptie, executie, asigurare si verificare a calitatii , ca si in faza preindustriala. Datorita insa complexitatii sistemelor de programe care rezulta, exista grupul de executanti impartit in colective sau indivizi specializati ce actioneaza pe parcursul diferitelor faze ale procesului de dezvoltare software. Una din particularitatile productiei de software, consta in faptul ca activitatile desfasurate sunt specifice unei anumite faze din cadrul ciclului de viata, sau independente de fazele ciclului de viata. Astfel, modelul de productie in industria software este un model de productie a proiectelor. Atunci cand se pune problema importantei calitatii software intervin trei aspecte majore: exista domenii in care vietile oamenilor depind de buna functionare a unor sisteme de programe si in care erorile care apar sunt uneori fatale; erorile provoaca pierderi de natura materiala, financiara si chiar umana; domeniul hardware este caracterizat de o tendinta de scadere a costurilor, aspect care nu este valabil si in domeniul software unde, desi a crescut productivitatea ca urmare a noilor metode de proiectare si realizare, costurile nu urmeaza o tendinta de scadere. Particularitatiile prin care se manifesta calitatea in domeniul industriei software si modul in care ele influenteaza costurile sunt: comportamentul instructiunilor nu se deterioreaza in timp; erorile care apar sunt provocate de folosirea sau combinarea incorecta a componentelor elementare, si nu de aceste componente in sine; interactiunile dintre componentele unui program sunt mai complexe, mai ales daca acesta ruleaza in cadrul unor sisteme de programe complexe; erorile exista deja in programe; ele sunt eliminate cu timpul, ca urmare a activitatii de depanare, deci programul se imbunatateste prin trecerea timpului; eliminarea unei erori nu ofera certitudine asupra faptului ca numarul total de erori s-a redus cu o unitate;
4

lipsa de calitate a sistemelor de programe este atribuita in intregime greselilor umane legate de activitatile de proiectare, conceptie, programare si documentare. Calitatea produselor software este definita ca masura in care acestea satisfac cerintele utilizatorilor prin caracteristici tehnice, economice si psiho-sociale. Definitia porneste de la doua concepte fundamentale: cerintele utilizatorilor si caracteristicile produsului. Considerate impreuna, acestea ofera o viziune clara asupra calitatii sistemelor de programe. In industria software o importanta deosebita o are relatia de dependenta dintre specificul si calitatea procesului generator, calitatea proiectului si calitatea produsului. Pe baza acestei interdependente, se deosebesc doi factori esentiali pentru calitatea sistemelor de programe si anume: modelul specificat proiectul si fidelitatea reproducerii modelului conformanta fata de proiect. Produsul final al activitatii de dezvoltare software nu este perceput prin simturile umane obisnuite si de aceea exista un numar mare de instrumente proiectate pentru a face software-ul vizibil. Utlizarea acestora scoate in relief aspecte ca: logica software exprimata prin scheme logice, diagrame si listinguri ale codului sursa a programelor; calitatea software urmareste reprezentarea sau calculul volorilor unor metrici ce exprima nivele ale unor caracteristici de calitate, sau alre calitatii globale; utilizarea unor modalitati de facilitare a comunicatiei reprezentarea informatiilor despre logica sau calitate software se face in mod particular pentru fiecare element participant la realizarea sistemelor de programe; modul de reprezentare a informatiilor este diferentiat in functie de beneficiarul acestor informatii; astfel programatorii inteleg mai usor o schema logica in timp ce managerii asimileaza mai bine aceleasi informatii daca sunt prezentate sub forma unei diagrame; controlul distorsiunilor si redundantei - utilizarea unor indicatori statistici precum numarul mediu de erori per modul reprezinta numai
5

primul pas al procesului de eliminare a cauzelor disfunctiilor in ingineria software; in procesul de elaborare a sistemelor de programe si implicit de realizare a calitatii lor, sunt necesare informatii despre fiecare element implicat: logica programelor, schema fluxului de date, schema bazelor de date, rezultatele testarii, asa cum au evoluat ele in dinamica procesului de dezvoltare. Aceste aspecte influenteaza in mod diferit fiabilitatea. Astfel, logica software permite inlantuirea corecta a instructiunilor si contribuie la diminuarea probabilitatii de aparitie a erorilor si implicit la cresterea fiabilitatii. Plasarea componentelor redundante in cadrul unui sistem de programe reprezinta o modalitate eficienta de obtinere a structurilor tolerante la erori. Acestea elimina situatiile de blocare a sistemelor de programe in cazul aparitiei unor erori si contribuie la obtinerea unui nivel ridicat al fiabilitatii.

3. Masurarea calitatii produselor software


Realizarea de produse software pentru aplicatii complexe presupune repartizarea unor programatori cu experienta si utilizarea unor sisteme de calcul performante. In acest scop, trebuie sa se specifice cati programatori sunt necesari si cat timp vor lucra. De asemenea, trebuie specificate cate posturi de lucru se vor aloca, ce resurse sunt necesare (compilatoare, periferice, memorie, etc) si pe ce durata. Dezvoltarea de aplicatii complexe presupune analiza, proiectare, testare, implementare, toate necesitand forta de munca si resurse hardware. Devizul de cheltuieli care precede elaborarea unui produs software reflecta valoric consumurile de resurse necesare realizarii produsului, iar stabilirea costurilor presupune efectuare de masurari. Cumparatorul (utilizatorul) alege dupa diferite criterii un anumit produs. Dominanta este corelatia cost-calitate. Atat costul, cat si calitatea, trebuie

exprimate cantitativ, pentru a evidentia marimea avantajului pe care o determina alegerea facuta. Efectele noilor tehnologii sunt cele care determina aplicarea lor, numai in masura in care, prin cuantificare, conduc la rezultate superioare. De exemplu, programarea structurata, prin sistematizarile determinate, a condus la reducerea complexitatii, la cresterea productivitatii si facilitarea mentenantei software-ului. Toate acestea au fost puse in evidenta cantitativ, printr-o serie de indicatori. Programarea orientata spre cresterea gradului de reutilizabilitate determina economie de munca, chiar daca nivelul de complexitate a problemelor ce se rezolva este mult mai mare. Aceste tehnologii se implementeaza cu ajutorul unor produse software dedicate. Studiul profitabilitatii, necesar achizitionarii acestor instrumente, trebuie sa raspunda la intrebarea in cat timp se recupereaza investitiile de achizitionare. Acest raspuns este posibil numai prin efectuarea unor cuantificari ale avantajelor generate de programarea structurata. Prezentarea n paralel a unor programe destinate rezolvrii aceleiai probleme, scoate n eviden ceea ce au ele n comun, precum i ceea ce le difereniaz. Trsturile importante care lipsesc vor determina perfecionri ulterioare. Cnd se proiecteaz o nou variant, se caut eliminarea inconvenientelor i preluarea tuturor elementelor pozitive. Noul produs trebuie caracterizat n mod riguros, att prin costurile implicate ct i prin nivelul caracteristicilor de calitate obinute. n prezent marii productori de hardware i software recunosc importana testrii i evalurii nivelurilor calitii. nc din anul 1986 compania Siemens a fcut deosebiri ntre categoriile de observare, evaluare i estimare. Astfel observarea este un proces prin care se apreciaz valoarea caracteristicilor unui produs n timpul utilizrii. De exemplu, timpul de rspuns al programelor este observat. Scopul acestei msurri este de a evalua conformitatea cu proiectul. Prin evaluare, raportarea unui tip de caracteristic ateptat are loc folosind un produs n diferite faze de dezvoltare ct i ntr-o aplicare simulat.

Estimarea permite evaluarea valorii anticipate a unei caracteristici cu ajutorul descrierii unui model al produsului sau al contextului aplicaiei. De exemplu, timpii de rspuns ntr-un sistem informaional pot fi estimai folosind predicii pe un model simulat. Dezavantajul folosirii observaiei const n faptul c dezvoltarea produsului este deja terminat, iar erorile pot deja s existe. Prin estimare pot fi evitate parial aceste dezavantaje, din moment ce vorbim aici de o observare ipotetic asupra tipurilor de caracteristici. Una dintre diferenele dintre predicie (estimare) i observare const n faptul c, condiiile implementrii produsului sau aplicaiei produsului sunt numai parial cunoscute. O alt diferen este aceea c n cazul prediciei ideile se aplic pe un model de produs abstract. Pentru procesul de dezvoltare al produselor software, se poate aplica postulatul lui Galileo numr ce este numrabil, msoar ce este msurabil i dac ceva nu este msurabil, ncearc s-l faci msurabil. n comparaie cu tehnicile clasice de msurare, tehnicile de msurare n domeniul dezvoltrii produselor software au fcut doar primii pai. Prin msurare, n domeniul IT, se nelege obinerea unei mulimi de valori ale unei metrici a unui proces de dezvoltare, a unui proces de mentenan sau a unui produs software prin intermediul unor instrumente (de exemplu: prin analize statice, colectare de date de proiectare i prin sisteme de evaluare a proiectului). Procesul de masurare implica parcurgerea urmatoarelor etape: Determinarea obiectelor masurarii; Fixarea metricilor masurarii si a scalelor masurarii; Alocarea metodelor de masurare si a instrumentelor de masurare; Determinarea valorilor; Interpretarea rezultatelor.

Masurarea caracteristicilor software presupune elaborarea unei descrieri cantitative adecvate, prin cuantificare, care sa faciliteze si sa pregateasca masurarea propriu-zisa. Cuantificarea constituie operatia de introducere a conceptelor cantitative, de trecere in studiul unui fenomen de la aprecieri atributive la concepte cantitative. In urma operatiilor de cuantificare numerica se obtin metricile. Msurarea unui atribut care nu depinde de msurarea altui atribut se numete msurare direct. Rezultatul msurrii directe caracterizeaz atributele simple, cu preponderen atributele interne ale produsului. Msurarea unui atribut care necesit msurarea unuia sau mai multor atribute ale aceleiai entiti sau ale entitilor din alte clase se numete msurare indirect. Rezultatul msurrii indirecte se utilizeaz preponderent pentru caracterizarea atributelor externe ale produselor, n scopuri de evaluare, control i predicie. n acest context, numeroase lucrri de specialitate descriu experimente ale cror rezultate evideniaz existena unor relaii de dependen i de interdependen ntre atributele interne i atributele externe ale software-ului fapt foarte important pentru domeniul msurrii i estimrii calitii softwareului, deoarece este mult mai uor s avem msurri directe ale atributelor interne dect ale atributelor externe.

4. Ansamblul caracteristicilor de calitate


Costurile ridicate ce caracterizeaz activitatea de construire a sistemelor de programe, impun analiza corelaiei dintre performanele acestora i efectele pe care le are utilizarea curent a lor. Performantele se stabilesc prin luarea in considerare a dutatei in care se obtine solutia finala si a consumului de resurse necesare, pentru rezolvarea integrala a problemelor curente. Nivelul performantei este influentat de modul in care sistemlui de programe i s-au asigurat calitatea de conceptie-proiectare, calitatea de executie, calitatea de conformitate, capacitatea de
9

utilizare curenta si capacitatea de mentenanta. Caracteristicile si atributele de calitate formeaza un sistem dinamic complex; cresterea nivelului unei caracteristici conduce atat la cresterea nivelurilor unei caracteristici, cat si la scaderea nivelurilor pentru altele. Programatorii trebuie sa cunoasca modul in care interactioneaza caracteristicile si atributele de calitate, pentru a asigura realizarea echilibrului necesar incadrarii sistemului de programe intre limite de performante admise. Caracteristicilor globale ale unui produs software, care confera calitatea acestuia, le sunt asociate criterii de calitate: Utilitatea satisfacerea cerintelor impuse in conditii de eficienta economica ridicata; Operationalitatea functionarea corecte intr-un mediu de utilizare prestabilit, fara modificari si la nivelul performantelor specificate; Adaptabilitatea folosirea sistemelor de programe intr-un mediu de utilizare prestabilit, prin operarea de modificari cu un efort minim; Transferabililitate folosirea fara modificari, sau cu modificari minime, in alt mediu de utilizare decat cel prestabilit. Utlitatea este un criteriu de calitate functionala, iar celelalte sunt criterii de calitate tehnica. Fiabilitatea este influentat in mod direct de nivelul acestor caracteristici. Astfel, in cazul produselor software destinate evidentei contabile s-a constat ca daca cerintele utlizatorilor sunt satisfacute in conditii de eficienta economica ridicata, dispare necesitatea efectuarii de modificari. Implicit se micsoreaza probabilitatea de introducere a unor noi erori; acest aspect conduce la reducerea efortului de programare si testare, cu consecinte directe asupra nivelului costurilor si premite cresterea fiabilitatii sistemelor de programe. Intre caracteristicile de calitate exista o multime de relatii de subordonare, interdependenta, ierarhizare, agregare sau de compozitie, iar complexitatea acestor relatii face ca ansamblul caracteristicilor de calitate sa alcatuiasca un sistem, care se bazeaza pe urmatoarele considerente:

10

Conexiunea elementelor interne ale sistemului sa fie mai puternica decat legaturile sistemului cu mediul; Indiferent de complexitatea unui sistem, el este la randul sau un subsistem al altuia mai cuprinzator; Unitatea si complexitatea unui sistem presupune o anumita ordine in asezarea si functionarea elementelor sale; Structura reprezinta o caracteristica definitorie a fiecarui sistem in parte, ce trebuie privita sub forma de reunire a tuturor subsitemelor sau prin urmarirea diferitelor structuri componente; Orice subsitem este alcatuit dintr-o multime de bucle de reactie care se inchid pe anumite portiuni de proces, pe anumite portiuni de sistem, sau chiar la nivelul intregului sistem; la nivelul sistemului caracteristicilor de calitate acest lucru se traduce prin interdependentele si contradictiile existente intre caracteristici. Caracteristicile de calitate constituie agregri ale atributelor de calitate ce sunt corespunztoare unor proprieti concrete pe care trebuie s le posede sistemele de programe. O enumerare a acestora cuprinde acurateea, completitudinea, personalizarea sau individualizarea, stabilitatea, conciziunea, simplitatea, claritatea, integritatea, confidenialitatea, consistena, operabilitatea, generabilitatea, extensibilitatea, modularitatea, eficiena utilizrii resurselor. Ordinea de prioritate trebuie specificat nc din etapele iniiale ale ciclului de dezvoltare software, ntruct asigurarea lor influeneaz soluiile adoptate n etapele urmtoare. Se face distincie ntre controlul calitii unui sistem de programe i controlul calitii proiectului de realizare a lui. Acestea constituie aspecte diferite ale procesului de control al calitii ce se desfoar pe ntregul ciclu de dezvoltare a sistemului de programe. Exista mai multe criterii de clasificare a caracteristicilor de calitate: Faza ciclului de viata a sistemului de programe pune in evidenta faptul ca exista caracteristici de calitate evidentiate in etapele de elaborare a sistemului, iar altele apar in etapele de efectuare a
11

modificarilor in structura sistemului pentru a-i asigura mentinerea in functiune; Specificitatea sistemului de programe impune ca o caracteristica sa fie prioritara, iar celelalte caracteristici secundare; Persoana care elaboreaza, foloseste sau mentine in utilizare sistemul de programe evidentiaza prezenta sau absenta unei caracteristici de calitate. Caracteristicile de calitate reprezint punctul de vedere al utilizatorului i al efului de proiect asupra calitii, folosit la definirea cerinelor utilizatorului i la stabilirea obiectivelor de calitate pentru sistemul de programe. Subcaracteristicile au semnificaie tehnic i sunt relevante pentru personalul de specialitate. Ele faciliteaz comunicarea ntre eful de proiect i personalul de specialitate, pentru atingerea obiectivelor de calitate. Subcaracteristicile se definesc pentru componentele sistemului de programe i diferitele forme de reprezentare pe parcursul ciclului de via.

5.

Definirea caracteristicilor de calitate ale produselor software

Exista numeroase definiri si ierarhizari ale caracteristicilor de calitate. Abordarea acestora este facuta in mod diferit de catre autorii care s-au ocupat de acesta problema. Ei folosesc fie termenul de caracteristici de calitate, fie le grupeaza in caracterisitici si atribute, caracteristici si factori sau caracteristici si subcaracteristici. Conceptul de fiabilitate se defineste drept probabilitatea ca o functie data sa fie executata in mod corect de un sistem pe o perioada de timp impusa. Fiablitatea este privita ca masura increderii pe care o avem in conceptia si in capacitatea unui sistem de programe de a functiona corect in toate conditiile avute in vedere de la inceput. Definitia se refera mai mult la fibilitatea procesului decat la cea a
12

sistemului de programe. Este legata de probabilitatea ca o eroare din cadrul programelor componente ale sistemului sa fie activata de un set specific de date de intrare. In comparatie cu fiabilitatea produselor hardware, fiabilitatea produselor software exprima particularitatile industriei producatoare de software. Abordarile cantitative ale fiabilitatii software exprima probabilitatea ca un sistem de programe sa-si indeplineasca functiile cu anumite performante si fara erori intr-un interval de timp si in conditii de exploatare date. Abordarile calitative privesc fiabilitatea ca o capacitate a sistemului de programe. Standardul ISO/IEC 9126, defineste fiabilitatea ca un set de atribute bazat pe capabilitatea produsului software de a-si mentine nivelul de performanta, in conditii si pe o perioada de timp stabilite. Analiza acestei caracteristici pune accentul pe toleranta la defecte si corectitudine. Tehnicile de obtinere a tolerantei la defecte se aplica in special la componentele hardware si la sistemele de operare. Principala problema in programare este corectitudinea sistemelor de programe, in sensul ca acestea trebuie sa indeplineasca specificatiile functionale stabilite. Aprecierea fiabilitatii sistemelor de programe se face prin trei elemente: Disponibilitatea implica conservarea unei capacitati ridicate de prelucrare a unui sistem de programe, chiar daca apare o anomalie in textul sursa al componentelor acestuia; Integritatea impune ca rezultatele sa fie exacte; Reproductibilitatea prelucrarii urmareste obtinerea acelorasi rezultate, cu ajutorul unor seturi de date identice, la momente si conditii de executie diferite. Functionalitatea este definita in standardul ISO/IEC 9126 ca un set de atribute bazate pe existenta unui set de functii si pe proprietatile lor specificate. Functiile satisfac necesitatile stabilite sau implicite. Datorita acestui set de atribute care definesc functionalitatea se demonstreaza scopul caruia serveste sistemul de programe, pentru a indeplini cerintele. In acest timp, alte seturi arata momentul si
13

modul in care sistemul de programe corespunde nevoilor utilizatorilor. Pentru a face referire la nevoile stabilite sau implicite, se porneste de la definitia data calitatii in standardul ISO 8402, ca totalitatea trasaturilor si caracteristicilor unui produs sau serviciu bazat pe abilitatea sa de a satisface nevoile stabilite sau implicite. Utilizabilitatea este definita ca un set de atribute bazate pe efortul necesar pentru utilizarea produsului software si pe evaluarea individuala a utilizarii acestuia, de catre un grup stabilit sau implicit de utilizatori. Termenul utilizator are un inteles larg si include aici categorii diverse de persoane ca: operatori, utilizatori finali si indirecti, precum si toate categoriile care isi desfasoara activitatea dependent, sau sub influenta utilizarii produsului software respectiv. Eficienta este definita ca o corelatie optima intre consumul de resurse implicat de utilizarea produsului software si complexitatea problemei de rezolvat. Aici este introdusa si notiunea de iesire a produsului software, definita ca o relatie intre complexitatea datelor initiale si a rezultatelor finale. In standardul ISO/IEC 9126, definitia se refera la un set de atribute bazat pe relatia dintre nivelul de performanta al produsului software si cantitatea de resurse utilizate, in anumite conditii stabilite. Standardul ISO 8402 ofera un inteles mai larg termenului resurse consumate si include aici memoria, timpul de executie, precizia, serviciile de operare, mentenanta sau suport de personal. Mentenabilitatea este definita ca un set de atribute bazate pe efortul necesar de a face modificarile specificate in produsul software respectiv. Acestea include corectii, imbunatatiri sau adaptari la modificari ale platformelor de dezvoltare sau a celor carora le sunt destinate, modificari in cerinte si specificatii functionale. Un produs software este mentenabil in masura in care permite o rapida si usoara actualizare astfel incat sa se utilizeze in continuare, in bune conditii. Sensul in care sunt privite aceste actualizari este mult mai restrans, deoarece ele se refera la operatiile realizate la nivelul sistemului de programe, al programelor si modulelor componente, secventelor de instructiuni ale instructiunilor. Nivelul mentenabilitatii se stabileste pe baza datelor obtinute in etapele de proiectare, testare si utilizare curenta.

14

Robustetea este cunoscuta si sub numele de toleranta la erori. Fiabilitatea sistemelor de programe este dependenta de toleranta la defecte hardware. Toleranta la erori are ca element specific usurinta diagnosticarii si este influentata de capacitatea de trecere peste defectiuni hardware minore. Totodata facilitati cum sunt detectarea erorilor de prelucrare si faptul ca atunci cand apar solicitari eronate, acestea nu sunt executate, iar sistemele continua sa ramana in executie, conduc la cresterea robustetei si implicit a fiabilitatii acestora. Pentru detectarea erorilor se folosesc verificari dinamice ale informatiei si proceduri care sa semnaleze incompatibilitati de date sau incercari de incalcare a restrictiilor de acces. Portabilitatea este definita ca o caracteristica de ordin calitativ a sistemelor de programe ce pot fi executate pe mai multe tipuri de calculatoare. Asigurarea portabilitatii sistemelor de programe contribuie la mentinerea fiabilitatii la nivel ridicat. Pentru unele sisteme de programe, varietatea mediilor de dezvoltare specifice fiecarui tip de calculatoare, precum si volumul modificarilor necesar adaptarii face ca in cele mai mutle cazuri sa se opteze pentru solutia rescrierii acestor programe. Cazurile in care se alege varianta modificarii sistemelor existente sunt cele in care acestea trebuie transferate intr-un timp scurt. In aceasta situatie s-a constatat insa ca nivelul fiabilitatii este scazut, iar costurile de exploatare sunt mari si nu se justifica din punct de vedere economic. Siguranta in utilizare, stabileste masura in care un sistem de programe nu permite efectuarea de modificari neautorizate sau nedorite in volumele de date, precum si distrugerea partiala sau totala a volumelor de date. Stabilitatea exprima rezistenta sistemului de programe fata de efectele generate de o modificare a datelor initiale, cat si a secventelor de instructiuni care compun programele si modulele componente ale acestuia. In functie de nivelul la care se efectueaza modificarea se definesc stabilitatea la nivel de instructiune, la nivel de secventa, la nivel de modul, la nivel de program si respective, stabilitatea globala a sistemului. Adaptabilitatea reprezinta capacitatea sistemului de programe de a permite integrarea de noi obiecte si de a include acele secvente de instructiuni care maresc
15

performanta sistemului si il aduc la nivelul eficientei de utilizare de la un moment dat, ulterior elaborarii. Adaptabilitatea influenteaza fiabilitatea sistemului de programe si este influentata de nivelul stabilitatii si de complexitate. Testabilitatea ofera utilizatorilor posibilitatea de a evidentia comportamentul sistemului de programe in situatii particulare. Prin asigurarea testabilitatii se urmareste descoperirea cat mai multor variante de probleme rezolvabile cu aceste sisteme de programe. n practic s-a observat c un sistem de programe cu robustee ridicat are un nivel de fiabilitate superior i este n acelai timp un sistem de programe testabil. n prezent, testarea se realizeaza utilizand fie strategia black box (cand se urmareste numai comportamentul functional al produsului), fie strategia white box (se analizeaza comportamentul programului avand la dispozitie codul sursa al acestuia). Nici o metoda de testare nu garanteaza corectitudinea produselor software, nsa creste probabilitatea ca acestea sa se ncadreze n limitele de calitate cerute. Initial, testarea se facea integral manual, fiind considerata singura solutie de a descoperi eventualele defecte. Ulterior, testarea manuala a fost ajutata si de testarea automata. Testele automate executa practic o secventa de actiuni cu interventie umana minima si pot simula utilizarea unei aplicatii n conditii reale, de simultaneitate ridicata. Exista o serie de controverse legate de alternativa manual sau automat. Unii specialisti considera ca testele automate sunt foarte costisitoare n raport cu utilitatea lor si, prin urmare, recomanda foarte putin utilizarea ei. Altii recomanda ca testarea sa se faca 100% automat. Adevarul este ca fiecare firma aplica mai mult sau mai putin testarea automata, n functie de specificul fiecarui proiect, dar si de disponibilitatile financiare. Aplicatiile de testare automata sunt destul de scumpe si putine firme ajung sa investeasca n achizitionarea lor. Complexitatea este caracteristica de calitate pentru care s-au dezvoltat cele mai multe sisteme de metrici, si se studiaza in corelatie cu alte caracteristici. Odata cu cresterea complexitatii s-a constatat o descrestere accentuata a fiabilitatii. Mai mult, complexitatea determina si cresterea cheltuielilor de exploatare a sistemelor
16

de programe, precum si eforturile de a dezvolta noi versiuni sau de a rescrie sistemele de programe sau numai anumite componente. Flexibilitatea determina volumul de restrictii impus utilizatorilor pentru a obtine rezultate complete si corecte prin folosirea sistemelor de programe. Flexibilitatea este relationata cu numarul optiunilor pe care aceste sisteme le pun la dispozitia utilizatorilor. Analiza datelor provenite din exploatare a condus la concluzia c sistemele de programe fiabile sunt n acelai timp flexibile.

6.

Managementul calitatii software

Managementul calitii software este o component a managementului general al calitii. Aceasta reprezint o subcomponent a funciei generale de conducere, care determin i implementeaz politica n domeniul calitii i deine responsabilitile pentru toate activitile care concur la ndeplinirea obiectivelor privind calitatea. Sunt definite trei functii pentru managementul calitatii software si anume: planificarea, asigurarea si imbunatatirea calitatii. Deoarece fiabilitatea este o caracteristic de calitate urmrit cu atenie de companiile care dezvolt software, ndeplinirea obiectivelor de fiabilitate necesit aciuni corespunztoare de planificare, asigurare i mbuntire a acesteia. Procesul de planificare urmrete dezvoltarea de produse i procese care s corespund cerinelor clienilor. Planificarea calitii cuprinde activitile prin care se stabilesc obiectivele i cerinele privind calitatea software precum i resursele umane, financiare i materiale necesare realizrii obiectivelor. La nivel strategic, sunt formulate principiile de baz i orientrile generale ale organizaiei n domeniul calitii software, care se regsesc n politica referitoare la domeniul calitii. La nivel operaional, planificarea extern are drept scop identificarea clienilor i a cerinelor acestora, iar prin planificarea intern se urmrete transpunerea cerinelor clienilor n caracteristici ale sistemelor de programe i dezvoltarea unor produse software adecvate.

17

Planificarea fiabilitii software este o parte integrant a planificrii unui proiect software. Activitatea de planificare este concretizat n planul de fiabilitate. Acesta este corelat cu planul de dezvoltare a sistemelor de programe i cu planul de calitate software. Planificarea fiabilitatii software trebuie sa includa urmatoarele activitati: Alocarea cerintelor de fiabilitate software; Definirea strategiei pentru obtinea fiabilitatii software; Definirea strategiei pentru evaluarea fiabilitatii software obtinuta. Aceste activiti sunt interconectate i iterative. Ele presupun un proces de inginerie software adecvat, insuficient pentru obinerea fiabilitii software. Este necesar definirea unui proces care s asigure folosirea corect a metodelor i tehnicilor corespunztoare, n momente potrivite din ciclul de dezvoltare. Totui, procesul nu ofer predicii i nu demonstreaz nivelul fiabilitii software. Pentru a dovedi c sistemele de programe i ating cerinele de fiabilitate, evaluarea fiabilitii software trebuie planificat ca o activitate specific. Planul de fiabilitate software descrie: Cerintele de fiabilitate software derivate din cele sistem; Procesul de inginerie software; Tehnicile, metodele si instrumentele folosite pentru evaluarea fiabilitatii software obtinuta in cadrul fiecarei faze din ciclul de viata; Analiza riscului proiect pentru software; Procedurile pentru raportarea progresului inregistrat de fiabilitatea software; Documentele si datele care trebuie livrate; Structura organizationala care se refera la: stabilirea posturilor individuale implicate in dezvoltarea software; descrierea nivelurilor minime de competenta pentru posturile identificate; modalitatile de constientizare a managerilor fata de cerintele fiabilitatii software si de responsabilitatiile ce le revin; activitatile si cerintele de instruire.

18

Asigurarea calitii cuprinde activitile preventive prin care se urmrete, n mod sistematic, corectitudinea i eficiena activitilor de planificare i control, pentru a garanta obinerea unor produse software care s satisfac cerinele de calitate ateptate de clieni. Aceast funcie necesit att o abordare intern realizat prin prisma conducerii companiei care dezvolt software, ct i una extern efectuat prin prisma clienilor. Pentru asigurarea calitii sistemelor de programe se ntreprind i aciuni de control. Controlul calitii software include activitile de monitorizare a desfaurrii proceselor i de evaluare a rezultatelor referitoare la calitatea software, n raport cu obiectivele stabilite, n scopul eliminrii deficienelor i prevenirii apariiei acestora. n ceea ce privete fiabilitatea, ca una dintre principalele caracteristici de calitate software, ea a fost abordat indirect, prin standardele de asigurare a calitii software n ansamblu - ISO 9000 i ISO 9126 sau direct, prin standarde care vizeaz definirea terminologiei, precum i msurarea i evaluarea fiabilitii software pe ntreg ciclul de via. Asigurarea fiabilitii sistemelor de programe necesit implementarea unui set integrat de activiti care cuprind estimarea, predicia, alocarea i modelarea fiabilitii, precum i activiti de testare. Aceste activiti permit o evaluare continu att a fiabilitii globale a sistemului, ct i a componentelor sale. Activitile de estimare i predicie ale fiabilitii sistemelor de programe cuprind patru categorii fundamentale: stabilirea scopurilor de fiabilitate pentru componentele sistemelor prin modelare i alocare; estimarea fiabilitii designului software prin procesul de predicie a fiabilitii; creterea fiabilitii sistemelor de programe prin testarea profilului operaional; evaluarea fiabilitii sistemelor de programe obinute prin testarea calificrii formale.

19

mbuntirea calitii cuprinde activitile desfurate n fiecare etap a ciclului de via a unui sistem de programe, n scopul obinerii unui nivel calitativ superior celui planificat, n condiiile desfurrii corespunztoare a activitilor de planificare, control i asigurare a calitii. mbuntirea fiabilitii, ca urmare a asigurrii calitii, se face prin verificarea i validarea sistemelor de programe. Cea mai puternic reflectare a problemelor optimizrii i mbuntirii calitii la nivelul managementului, este apariia i dezvoltarea conceptului de management al calitii totale. Cele trei componente de baz ale managementului calitii totale sunt mbuntirea continu, satisfacerea clienilor i creterea organizaiei. mbuntirea calitii are, la rndul ei, trei componente: standardizarea, mbuntirea i inovaia. Managementul calitii software constituie responsabilitatea tuturor nivelurilor de conducere din companiile implicate n producia de software, ns rolul cel mai important revine conducerii de vrf. n implementarea managementului calitii software sunt implicai toi angajaii companiei. Managerii sunt responsabili cu: monitorizarea strii proiectelor software; predicia datei de livrare a sistemelor; determinarea momentului n care se permite efectuarea de modificri n sistemele operaionale; alegerea tehnicilor, metodelor i tehnologiilor de inginerie software ce se aplic unui proiect; luarea deciziei de acceptare a livrrii sistemelor de programe. Ajutai de inginerii de sistem, aleg i refac planificrile, bugetele, alocrile i scopurile fiabilitii componentelor unui sistem, precum i resursele necesare n dezvoltrile de proiect; supervizeaz personalul cu alte roluri n colectarea informaiilor i procesele decizionale. Inginerii de sistem au responsabilitatea esenial pentru nelegerea naturii sistemului n care se aplic msurarea fiabilitii software:
20

definesc ce nseamn o defectare pentru sistem; stabilesc tipurile de defecte i le indic pe cele critice n funcie de datele de defectare colectate; studiaz raportul dintre fiabilitate, resurse i planificri;analizeaz diferite opiuni pentru alocarea fiabilitii componentelor sistemelor i estimeaz impactul costurilor de exploatare. Responsabilii cu asigurarea calitii rspund de dezvoltarea procedurilor pentru colectarea datelor necesare msurrii fiabilitii sistemelor de programe. Primesc informaii de la inginerii de sistem i furnizeaz orientri pentru echipa de testare i depanatori. Membrii echipei de testare identific apariia defectrilor i nregistreaz timpul de execuie sau timpul calendaristic, precum i alte informaii utile. n categoria depanatorilor intr programatorii ce au scris codul i care realizeaz corecia defectelor. n cadrul companiilor mari de software se desemneaz un inginer cu fiabilitatea care face parte din colectivul responsabil cu asigurarea calitii. Lui i revine rolul cheie n acest proces; ine legtura cu personalul implicat n colectarea informaiilor despre defectri; este responsabil cu eliminarea defectelor i utilizarea instrumentelor care implementeaz modele de cretere i predicie a fiabilitii.

21

3. Studiul caracteristicilor de calitate software


Pentru aprecierea importanei care se acord caracteristicilor de calitate a fost efectuat un studiu n care au fost cuprini un numr de zece programatori i zece utilizatori. Acestora li s-au cerut sa specifice nivelul de semnificatie al caracteristicilor de calitate pe care le considera cele mai importante in procesul de evaluare a calitatii sistemelor de programe destinate evidentei contabile. Exprimarea s-a efectuat in format procentual, iar suma acestora nu trebuie sa depaseasca 100 de procente. Rezulatele obtinute sunt prezentate in tabelele 2.1 si 2.2.
Caracteristica Utilizabilitatea Functionalitatea Fiabilitatea Flexibilitatea Eficienta Siguranta in utilizare Complexibilitatea Portabilitatea Mentenabilitatea Testabilitatea Robustetea Adaptabilitatea Stabilitatea 12 9 13 10 9 7 8 7 7 6 5 3 4 16 13 9 9 6 10 8 6 5 6 6 3 3 10 12 11 9 10 6 9 6 6 5 7 5 4 13 15 12 8 9 7 7 5 6 4 7 5 2 15 10 13 8 7 9 5 7 5 5 6 5 5 11 12 10 7 9 8 6 5 6 8 6 6 6 Utilizatori U1 U2 U3 U4 U5 U6 U7 U8 U9 14 10 11 7 8 7 8 8 5 8 5 6 3 17 13 9 10 8 9 8 5 5 5 5 2 4 13 12 10 7 7 8 7 8 7 7 6 5 3 U10 11 13 10 12 9 8 6 7 9 4 3 3 5 Media(%) 13.2 11.9 10.8 8.7 8.2 7.9 7.2 6.4 6.1 5.8 5.6 4.3 3.9

Tabelul 2.1 - Semnificaia caracteristicilor de calitate ale sistemelor de programe pentru contabilitate n viziunea utilizatorilor

22

Caracteristica P1 Portabilitatea Fiabilitatea Complexibilitatea Robustetea Eficienta Mentenabilitatea Utilizabilitatea Functionalitatea Siguranta in utilizare Adaptabilitatea Flexibilitatea Testabilitatea Stabilitatea 10 14 12 9 11 7 7 6 5 5 6 3 5 P2 8 12 10 11 9 10 8 6 7 7 6 4 2 P3 16 9 13 8 7 9 5 7 5 6 4 5 6 P4 12 11 8 10 9 7 10 5 7 6 5 6 4 P5 13 15 12 9 8 7 7 5 6 4 2 7 5

Programatori P6 10 9 11 8 10 9 8 8 6 5 5 5 6 P7 14 10 7 9 9 12 10 9 5 4 3 4 4 P8 14 11 8 7 10 7 8 8 5 8 5 6 3 P9 12 13 7 10 8 7 7 8 6 7 7 5 3 P10 12 12 9 8 6 8 7 7 9 5 10 3 4 Media(%) 12.1 11.6 9.7 8.9 8.7 8.3 7.7 6.9 6.1 5.7 5.3 4.8 4.2

Tabelul 2.2 - Semnificaia caracteristicilor de calitate ale sistemelor de programe pentru contabilitate n viziunea programatorilor Caracteristicile de calitate au fost ordonate n tabele n funcie de media nivelurilor de semnificaie atribuite de utilizatori i programatori. Ordinea obinut reflect importana acordat fiecrei caracteristici n procesul de evaluare a calitii sistemelor de programe pentru contabilitate. Transpunerea acestor rezultate n format grafic este prezentat n figurile 2.3 i 2.4.

23

In figura de mai sus sunt reprezentate ponderile acordate de utilizatori. Din punctul lor de vedere factorii determinanti in aprecierea calitatii sistemelor de programe pentru contabilitate, acele caracteristici pe care le percep in mod direct. Astfel utilizabilitatea (13.2%), functionalitatea (11.9%) si fiabilitatea (10.8%) sunt caracteristicile principale pe care utilizatorii le urmaresc atunci atunci cand evalueaza calitatea unui astfel de sistem de programe. Caracteristicile care nu le confera o perceptie directa asupra sistemului sunt mai putin importante pentru utilizatori si de aceea ei le atribuie ponderi reduse. Astfel stabilitatea (3.9%), adaptabilitatea (4.3%) si robustetea (5.6%) sunt caracteristici de calitate, carora utilizatorii le acorda un nivel redus de importanta. Acest lucru se datoreaza si faptului ca utilizatorii nu inteleg bine semnificatia acestor caracteristici si de aceea nu au o viziune corecta asupra modului in care ele influenteaza calitatea generala a serviciilor oferite de sistemele de programe pentru compatibilitate. Utilizatorii acorda niveluri de imortanta medii unor caracteristici cum sunt eficienta (8.2%), siguranta in utilizare (7.9%) si complexitatea (7.2%). Astfel, rezulta ca ei inteleg relatia de dependenta dintre calitatea si complexitatea unui sistem de programe sau faptul ca acesta trebuie sa aiba un nivel de siguranta in exploatare corespunzator si deasemenea, o buna eficienta. Conform opiniei utilizatorilor aceste caracteristici contribuie la mbuntirea nivelului de calitate a sistemului de programe dar nu sunt factorii lui determinani. Analizate din punctul de vedere al programatorilor, rezultatele exprim viziunea diferit a acestora n raport cu utilizatorii, fa de nivelul de importan atribuit caracteristicilor de calitate. Astfel, acetia sunt interesai de acele caracteristici care produc efecte majore i imediate asupra activitilor pe care ei le desfoar. Sunt urmrite aspecte referitoare la reducerea volumului de munc vie, creterea productivitii i a eficienei programatorilor i nu n ultimul rnd, reducerea costurilor pe care le implic dezvoltarea sistemelor de programe pentru contabilitate.
24

Fig 2.4 : Ponderi acordate de programatori n acest context, programatorii au considerat ca factori determinani n evaluarea calitii acestor sisteme de programe, urmtoarele caracteristici: portabilitatea (12,1%), fiabilitatea (11,6%) i complexitatea (9,7%). O mai mic importan a fost acordat unor carateristici cum sunt flexibilitatea (5,3%), testabilitatea (4,8%) i stabilitatea (4,2%). A surprins nivelul redus de semnificaie pe care programatorii l-au atribuit testabilitii. O explicaie a acestui aspect este faptul c n majoritatea companiilor care dezvolt sisteme de programe pentru contabilitate, asamblarea componentelor n produsul final i testarea ntregului sistem este efectuat de aceleai persoane care au participat la activitile de analiz, proiectare i codificare. n aceste condiii, acetia au o viziune subiectiv asupra procesului de dezvoltare i implicit asupra nivelului de importan al fiecrei etape din ciclul de via al sistemelor de programe. Mai mult, utilizatorii sunt rareori implicai n procesul de dezvoltare a sistemelor de programe. Acest lucru este reliefat de diferenele existente n modul de apreciere a importanei acordate diverselor caracteristici de calitate
25

care influeneaz calitatea general a serviciilor furnizate de sistemele de programe pentru contabilitate. Datele furnizate de utilizatori i programatori au fost cumulate i s-a obinut o viziune global asupra importanei acordat diferitelor caracteristici de calitate n procesul de evaluare a calitii generale a sistemelor de programe destinate evidenei contabile. Aceasta a fost exprimat sub forma mediei generale a nivelurilor de semnificaie acordate de cei zece utilizatori i zece programatori pentru fiecare caracteristic de calitate urmrit. Media a fost nregistrat n format procentual, iar suma mediilor tuturor caracteristicilor este egal cu 100%. Rezultatele obinute sunt prezentate n tabelul 2.5.
Caracteristica Fiabilitatea Utilizabilitatea Functionalitatea Portabilitatea Eficienta Complexitatea Robustetea Mentenabilitatea Flexibilitatea Siguranta in utilizare Testabilitatea Adaptabilitatea Stabitabilitatea Media generala(%) 11.2 10.45 9.4 9.25 8.45 8.45 7.25 7.2 7 7 5.3 5 4.05

Tabelul 2.5: Nivelurile medii de semnificaie pentru caracteristicile de calitate ale sistemelor de programe destinate evidenei contabile n viziunea utilizatorilor i programatorilor.

26

Transpunerea acestor rezultate in format grafic este redata in figura 2.6 si 2.7.

Fig 2.6: Ponderi globale acordate de utilizatori i programatori

Fig 2.7: Ponderi globale acordate de utilizatori i programatori


27

Analiza acestor date reliefeaza tendinta generala in ceea ce priveste nivelul de importanta acordat caracteristicilor de calitate, in procesul de evaluare a calitatii serviciilor furnizate de sistemele de programe pentru contabilitate. S-a observant ca fiabilitatea reprezinta caracteristica determinanta in acest proces cu o pondere de 11.2%, urmata indeaproape de utilizabilitate cu 10.45% si functionalitate cu 9.4%. Ponderea ridicata atribuita fiabilitatii este justificata prin atentia sporita care este acordata acestei caracteristici de calitate, atat in literature de specialitate, cat si in practica evaluarii calitatii sistemelor de programe. Complexitatea (8.45%), robustetea (7.25%) si mentenabilitatea (7.2%) sunt plasate la mijlocul acestei scale de apreciere fapt care intareste convingerea ca atat utilizatorii, cat si programatorii le inteleg semnificatia si le urmaresc evolutia atunci cand evalueaza calitatea de ansamblu a sistemelor de programe pentru contabilitate. Astfel, rezulta ca ambele categorii de persoane sesizeaza relatia de dependenta dintre gradul de complexitate al unui sistem de programe si nivelul sau de calitate. Mai mult, este urmarita cu atentie robustetea si mentenabilitatea acestora, pentru a se face o estimare cat mai exacta a costurilor de exploatare. Caracteristicile de calitate carora le sunt atribuite nivelurile de importanta cele mai mici sunt: testabilitate (5.3%), adaptabilitatea (5%) si stabilitatea (4.05%). Aceasta lipsa de interes este justificata prin perceptia diferita pe care cele doua categorii de persoane o au fata de semnificatia caracteristicilor diferite. Trebuie mentionat faptul ca rezultatele care s-au obtinut au un anumit grad de subiectivitate. Intr-un alt context exista posibilitatea ca ele sa se schimbe. De aceea trebuie privite prin prisma specificului domeniului abordat evaluarea calitatii sistemelor de programe destinate evidentei contabile.

28

Concluzii
Produsele software au devenit componente esentiale ale multor sisteme si produse, precum si un nou factor major in comertul de produse si servicii. Imbunatatirea calitatii produselor software constituie una din principalele forme in care se materializeaza capacitatea de creatie. Valoarea economica a unui produs sotware rezulta din modul in care calitatea acestuia este perceputa de clientii sau utilizatorii finali. Din ce in ce mai mult, calitatea este perceputa ca un atribut critic al produsului software, deoarece, lipsa calitatii determina insatisfactia utilizatorilor, pierderi financiare si chiar pierderi de vieti omenesti. In scopul elaborarii produselor software avand un nivel ridicat al calitatii si asigurarii satisfactiei clientilor, producatori de software au adoptat cele mai bune practici si standarde refritoare la managementul calitatii in ciclul de viata al produselor software. Asa cum sunt prezentate si in lucrarea de fata, principalele caracteristici de calitate ale produselor software sunt: fiabilitatea, utilizabilitatea, functionalitatea, portabilitatea, eficienta, complexitatea, robustetea, mentenabilitatea, flexibilitatea, siguranta in utilizare, testabilitatea, adaptabilitatea si stabilitatea. Importanta acestor caracteristici este perceputa in mod diferit. Astfel utilizatori acorda o mai mare importanta utilizabilitati, functionalitatii si fiabilitatii in timp ce, pentru programatori mai importante sunt caracteristici precum: portabilitea sau complexitatea, precum si fiabilitatea. Aceasta din urma detine o pondere mare atat in conceptia utilizatorilor cat si in cea a programatorilor. Astfel, in conceperea produselor software trebuie luate in calcul si aceste caracteristici de calitate si in special fiabilitatea, adica capacitatea unui sistem de programe de a funciona corect n toate condiiile avute n vedere de la nceput. Asigurandu-se aceste proprietati ale produselor software, precum si respectarea regulilor existente in standardele dedicate calitatii, vom obtine produse software cu un nivel calitativ ridicat, avand o functionare corecta si fiind usor de utilizat si intretinut.

29

Bibliografie
Progres tehnic, calitate, standardizare Virginia Ciobotaru Metode statistice in analiza software Ion Ivan, Catalin Boja Asigurarea calitatii software-ului Radu Marinescu Managementul calitatii software Ion Ivan Calitatea si managementul calitatii Andrei Florin www.pegas.ro Proiectarea si implementarea sistemului calitatii D. Constantinescu 8. ISO 9000 Quality systems developmenthandbook Hoyle D. 9. Managementul calitatii Olaru M. 10. Managementul calitatii. Tehnici si instrumente. Olaru M. 1. 2. 3. 4. 5. 6. 7.

30

Cuprins
CALITATEA PRODUSELOR SOFTWARE .......................................................................................... 1 1. 2. 3. 4. 5. 6. Aspecte generale .............................................................................................................................. 1 Calitatea produselor software ........................................................................................................ 2 Masurarea calitatii produselor software ....................................................................................... 6 Ansamblul caracteristicilor de calitate.......................................................................................... 9 Definirea caracteristicilor de calitate ale produselor software ................................................. 12 Managementul calitatii software ................................................................................................. 17

3. Studiul caracteristicilor de calitate software ........................................................................................... 22 Concluzii ..................................................................................................................................................... 29 Bibliografie ................................................................................................................................................. 30

31