calitatesoft

21
Calitatea produselor software 9-1 Capitolul 9. Calitatea produselor software 9.1 Concepte generale privind calitatea Importanţa calităţii produselor software este justificată prin mai multe aspecte: erorile din programele de aplicaţie pot fi fatale în anumite domenii unde vieţile oamenilor depind de acestea (controlul traficului aerian sau feroviar, călătoriile în spaţiul cosmic, sistemele de menţinere a vieţii în condiţii vitrege - sub apă, la mare înălţime, la temperaturi sau presiuni improprii vieţii umane). Aceste erori pot provoca pierderi umane, financiare, materiale. Calitatea produselor software reprezintă totalitatea însuşirilor tehnice, economice şi sociale ale produselor software. Ea reprezintă ansamblul însuşirilor ce exprimă gradul în care acestea satisfac nevoia utilizatorilor, în funcţie de parametrii tehnico-economici, de gradul de utilitate şi de eficienţa economică în exploatare. Gradul de utilitate al produselor program cuprinde: a) calitatea de concepţie şi proiectare - măsura în care proiectul produsului program asigură satisfacerea cerinţelor utilizatorilor; b) calitatea de execuţie - măsura în care procesul de elaborare se desfăşoară conform fluxurilor stabilite, cu utilizarea resurselor adecvate; c) calitatea de conformitate - gradul de concordanţă dintre însuşirile reale ale produsului program şi cele prezentate în documentaţia finală; d) capacitatea de utilizare - comportamentul produsului program în rezolvarea curentă a problemelor aparţinând clasei pentru care a fost elaborat; e) capacitatea de mentenanţă - măsura în care pot fi eliminate anomaliile ce apar în timpul execuţiei sau pot fi puse de acord noi cerinţe de prelucrare cu efortul pentru implementare. Toate acestea se regăsesc în disponibilitatea produsului program, care este dată de capacitatea de utilizare curentă şi de capacitatea de mentenanţă în raport cu cerinţele specifice fiecărui beneficiar. Însuşirile calitative ale produselor program se crează în procesul de elaborare, dar se manifestă în procesul de utilizare. Calitatea procesului de elaborare reflectă modul de realizare, laturile activităţii de concepţie tehno- logică, măsurile organizatorice din unităţile de informatică şi oferă garanţia realizării de produse program performante. Calitatea produsului program este expresia finală a procesului de realizare, sintetizând nivelul tehnic, funcţional şi economic, caracteristic fiecărui program; calitatea este o noţiune complexă şi dinamică, întrucât conţinutul produsului program evoluează în timp - în funcţie de cerinţele practice ale utilizatorilor - atât extensiv, prin modificarea numărului de funcţii de prelucrare cât şi intensiv, prin îmbunătăţirea performanţelor acestuia. Utilizatorul este cel care verifică calitatea unui produs program, având drept criteriu satisfacerea cerinţelor sale. Producătorii de software trebuie să obţină, cel puţin, acel nivel al calităţii care să permită satisfacerea aşteptărilor utilizatorului. Un nivel mai scăzut, duce la alegerea produselor software concurente, care la acelaşi preţ oferă nivelul necesar al calităţii. Pe de altă parte, un nivel mult mai ridicat al calităţii antrenează costuri foarte mari, care se reflectă în preţul produsului. În acest caz, utilizatorul alege acele produse concurente care la un preţ mai scăzut, oferă un nivel suficient al calităţii. Este necesară, deci, utilizarea unor metode de evaluare a calităţii software astfel încât să existe

Upload: mardari-cristina

Post on 10-Jul-2016

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CalitateSoft

Calitatea produselor software 9-1

Capitolul 9. Calitatea produselor software

9.1 Concepte generale privind calitatea Importanţa calităţii produselor software este justificată prin mai multe aspecte: erorile din programele de aplicaţie pot fi fatale în anumite domenii unde vieţile oamenilor depind de acestea (controlul traficului aerian sau feroviar, călătoriile în spaţiul cosmic, sistemele de menţinere a vieţii în condiţii vitrege - sub apă, la mare înălţime, la temperaturi sau presiuni improprii vieţii umane). Aceste erori pot provoca pierderi umane, financiare, materiale.

Calitatea produselor software reprezintă totalitatea însuşirilor tehnice, economice şi sociale ale produselor software. Ea reprezintă ansamblul însuşirilor ce exprimă gradul în care acestea satisfac nevoia utilizatorilor, în funcţie de parametrii tehnico-economici, de gradul de utilitate şi de eficienţa economică în exploatare.

Gradul de utilitate al produselor program cuprinde: a) calitatea de concepţie şi proiectare - măsura în care proiectul produsului program asigură

satisfacerea cerinţelor utilizatorilor; b) calitatea de execuţie - măsura în care procesul de elaborare se desfăşoară conform fluxurilor

stabilite, cu utilizarea resurselor adecvate; c) calitatea de conformitate - gradul de concordanţă dintre însuşirile reale ale produsului program şi cele prezentate în documentaţia finală;

d) capacitatea de utilizare - comportamentul produsului program în rezolvarea curentă a problemelor aparţinând clasei pentru care a fost elaborat;

e) capacitatea de mentenanţă - măsura în care pot fi eliminate anomaliile ce apar în timpul execuţiei sau pot fi puse de acord noi cerinţe de prelucrare cu efortul pentru implementare.

Toate acestea se regăsesc în disponibilitatea produsului program, care este dată de capacitatea de utilizare curentă şi de capacitatea de mentenanţă în raport cu cerinţele specifice fiecărui beneficiar.

Însuşirile calitative ale produselor program se crează în procesul de elaborare, dar se manifestă în procesul de utilizare.

Calitatea procesului de elaborare reflectă modul de realizare, laturile activităţii de concepţie tehno-logică, măsurile organizatorice din unităţile de informatică şi oferă garanţia realizării de produse program performante.

Calitatea produsului program este expresia finală a procesului de realizare, sintetizând nivelul tehnic, funcţional şi economic, caracteristic fiecărui program; calitatea este o noţiune complexă şi dinamică, întrucât conţinutul produsului program evoluează în timp - în funcţie de cerinţele practice ale utilizatorilor - atât extensiv, prin modificarea numărului de funcţii de prelucrare cât şi intensiv, prin îmbunătăţirea performanţelor acestuia.

Utilizatorul este cel care verifică calitatea unui produs program, având drept criteriu satisfacerea cerinţelor sale. Producătorii de software trebuie să obţină, cel puţin, acel nivel al calităţii care să permită satisfacerea aşteptărilor utilizatorului. Un nivel mai scăzut, duce la alegerea produselor software concurente, care la acelaşi preţ oferă nivelul necesar al calităţii. Pe de altă parte, un nivel mult mai ridicat al calităţii antrenează costuri foarte mari, care se reflectă în preţul produsului. În acest caz, utilizatorul alege acele produse concurente care la un preţ mai scăzut, oferă un nivel suficient al calităţii.

Este necesară, deci, utilizarea unor metode de evaluare a calităţii software astfel încât să existe

Page 2: CalitateSoft

9-2 Calitatea produselor software

posibilitatea comparării nivelului planificat al calităţii cu cel obţinut efectiv.

Dacă în domeniul produselor hardware costurile au o tendinţă generală de scădere, în domeniul dezvoltării de software, deşi productivitatea a crescut substanţial, nu se înregistrează aceeaşi tendinţă.

Acest ultim aspect se datorează particularităţilor prin care calitatea se manifestă în domeniul produselor software: • producţia de software nu este o producţie de masă, fiecare produs software fiind un unicat.

Aceasta face ca activitatea de stabilire a standardelor din acest domeniu să fie mult mai dificilă. Pot fi standardizate procesele, metodele şi tehnicile de elaborare a software-ului astfel încât în final să se obţină produse software de un anumit nivel al calităţii;

• produsele software sunt reproductibile cu costuri aproape nule, ceea ce înseamnă că, odată realizat un produs, el este disponibil într-un număr nelimitat de exemplare. Calitatea copiilor este aceeaşi cu cea a originalului, deci o calitate necorespunzatoare se poate propaga cu efecte nefavorabile, antrenând costuri de remediere foarte mari şi afectând imaginea firmei producatoare;

• produsele software nu sunt supuse uzurii fizice, ele se erodează numai din punct de vedere moral, atunci când nu mai corespund noilor cerinţe sau când apar produse software mai performante care realizează aceleaşi funcţiuni. Un produs software depăşit poate fi înlocuit cu altul nou sau poate fi adaptat pentru a satisface noile cerinţe formulate de utilizator. Decizia se ia în raport de costurile fiecăreia dintre variante, iar dacă produsul software este usor modificabil, costurile aferente adaptării sale vor fi mult mai scăzute;

• pentru a putea utiliza produsele software este nevoie de un procesor care să le ruleze. Sistemele de calcul şi operare sunt supuse, de asemenea, uzurii morale, punându-se şi în acest caz problema transferării produsului software într-un alt mediu. Un produs software care posedă o portabilitate ridicată poate fi modificat cu uşurinţă, cu costuri mici.

• comportamentul instrucţiunilor este egal în timp, nu se deteriorează; • erorile sunt provocate de folosirea sau combinarea incorectă a instrucţiunilor sau altor componente

elementare, şi nu de aceste componente în sine; • interacţiunile dintre componentele unui program sunt, în general, mai complexe, mai ales dacă

acestea rulează în cadrul unor aplicaţii complexe; • erorile există deja în program, ele sunt eliminate cu timpul, prin depanare, deci programul nu-şi

pierde calităţile prin trecerea timpului, ci şi le îmbunătaţeşte; • eliminarea unei erori nu dă siguranţa că a diminuat numărul total de erori cu o unitate; • non-calitatea programelor poate fi atribuită în întregime greşelilor umane, de proiectare, concepţie,

programare, documentare.

Toate aceste aspecte sunt specifice produselor software şi trebuie reflectate în evaluarea calităţii acestora.

O importanţă deosebită în procesul de dezvoltare software o are dependenţa dintre specificul şi calitatea procesului generator, calitatea proiectului şi calitatea produsului. Definirea problemei la beneficiar şi clarificarea şi detalierea acesteia de către beneficiar şi producător prin elaborarea unor specificaţii are un impact deosebit atât asupra calităţii proiectului şi, ulterior, a produsului, dar şi asupra întregului ciclu de viaţă al produsului software.

9.2 Evaluarea calităţii produselor program

9.2.1 Sistemul caracteristicilor de calitate

Costurile ridicate care caracterizează activitatea de construire a produselor program impun analiza corelaţiei dintre performanţele acestora şi efectele pe care le are utilizarea curentă a programelor.

Page 3: CalitateSoft

Calitatea produselor software 9-3

Performanţele se stabilesc prin luarea în considerare a duratei în care se obţine soluţia finală şi a consu-mului de resurse necesare pentru rezolvarea integrală a problemelor curente. Nivelul performanţei este influenţat de modul în care produsului program i s-au asigurat calitatea de concepţie-proiectare, calitatea de execuţie, calitatea de conformitate, capacitatea de utilizare curentă şi capacitatea de mentenanţă.

Sistemul caracteristicilor de calitate este organizat pe patru nivele şi anume: caracteristici, atribute, metrici şi elemente de evaluare.

Caracteristicile de calitate ale produselor program sunt determinate de atributele de calitate. La rândul său, fiecare atribut se măsoară prin una sau mai multe metrici, iar unei metrici îi corespund unul sau mai multe elemente de evaluare.

Trebuie remarcată importanţa relativă a diferitelor caracteristici de calitate şi alegerea în mod flexibil a acestora pentru a aprecia calitatea unui produs program.

La realizarea unui produs program sunt alese, asigurate şi controlate acele caracteristici de calitate care să permită evaluarea calităţii produsului în funcţie de tipul acestuia, de domeniul de activitate în care va fi utilizat.

Caracteristicile şi atributele de calitate formează un sistem dinamic, complex. Creşterea nivelului unei caracteristici poate conduce automat atât la creşterea nivelurilor pentru unele caracteristici, cât şi la scăderea nivelurilor pentru altele.

Programatorii trebuie să cunoască modul în care interacţionează caracteristicile şi atributele de calitate pentru a asigura realizarea echilibrului necesar încadrării produsului program în limite de performanţă admise.

Caracteristicile de calitate sunt puse în evidenţă în diferite etape din ciclul de viaţă ale produsului program.

Caracteristicile de calitate ale produselor software sunt: 1. Fiabilitatea: un program posedă caracteristica de fiabilitate în măsura în care îndeplineşte funcţiile

de prelucrare cerute de beneficiar, pe un interval de timp dat, fără erori; 2. Corectitudinea: un produs program este corect dacă transformările pe care le efectuează conduc la

obţinerea de rezultate ce corespund calitativ şi cantitativ cu specificaţiile de programare; 3. Eficacitatea: realizează o corelaţie cât mai adecvată între consumurile de resurse (timp de

execuţie, memorie internă, tipuri şi număr periferice) şi complexitatea problemei ce se rezolvă; 4. Siguranţa în utilizarea curentă: stabileşte măsura în care un program aplicativ nu permite

efectuarea de modificări neautorizate sau nedorite în volume de date, precum şi distrugerea parţială sau totală a volumelor de date;

5. Stabilitatea: indică "rezistenţa" programului aplicativ faţă de efectele generate de o modificare a datelor iniţiale, cât şi în secvenţele de instrucţiuni care compun modulele care intră în componenţa sa;

6. Mentenabilitatea: măsura în care este permisă actualizarea rapidă şi uşoară a produsului program pentru a putea continua utilizarea acestuia chiar în condiţii modificate;

7. Adaptabilitatea: capacitatea produsului program de a permite integrarea de noi funcţii de prelucrare şi de a include acele secvenţe de instrucţiuni care măresc performanţa programului, aducându-l la nivelul eficienţei de utilizare de la un moment dat, ulterior elaborării;

8. Liniaritatea: măsoară gradul în care la elaborarea unui modul, a unei secvenţe sunt utilizate instrucţiuni care se execută una după alta sau măsura în care nu sunt utilizate instrucţiuni de salt condiţionat sau necondiţionat; liniaritatea conduce la creşterea nivelului redundanţei în program,

Page 4: CalitateSoft

9-4 Calitatea produselor software

dar utilizând echilibrat instrucţiunile de salt se poate obţine un nivel de liniaritate bun. 9. Claritatea: un produs program este considerat neclar atunci când secvenţele ce formează modulele

sale conţin instrucţiuni ce pot lipsi fără a fi afectată calitatea rezultatelor finale; 10. Reutilizabilitatea: reprezintă capacitatea unor module ale produsului program de a fi încorporate

în alte programe având rezultat direct economia de muncă; 11. Portabilitatea: este caracteristica de calitate care pune în evidenţă prin nivelul său, gradul în care

un produs program poate fi rulat pe mai multe tipuri de calculatoare; un program este cu atât mai portabil cu cât volumul de muncă necesar pentru a efectua modificări, adaptări impuse de rularea pe un alt calculator, este mai redus;

12. Integrabilitatea: este caracteristica de calitate care arată gradul în care produsele program pot fi incluse în sisteme complexe de prelucrare a datelor.

Atributele calităţii produselor program sunt: 1. testabilitatea: oferă utilizatorilor posibilitatea de a pune în evidenţă cât mai multe variante de

probleme ce pot fi rezolvate şi comportamentul programului aplicativ în situaţii particulare (fişiere vide, date incomplete, date neconsistente);

2. completitudinea: este atributul ce dă măsura în care modulele produsului software sunt parţial activabile şi fiecare realizează funcţia de prelucrare dată în specificaţii; stabilirea completitudinii se efectuează prin analizarea textului sursă în paralel cu documentaţia şi rezultatele obţinute prin rularea unui set de exemple de test; absenţa completitudinii este semnalată de utilizatorii care nu pot rezolva probleme pentru care documentaţia nu mentionează restricţii; un program pentru care s-a demonstrat corectitudinea este în acelaşi timp un program complet; completitudinea influenţează nivelul fiabilităţii întrucât problemele ce nu pot fi rezolvate sunt consemnate ca rulări fără succes, mărind nonfiabilitatea;

3. generalitatea: este atributul care pune în evidenţă aria de cuprindere a funcţiilor de prelucrare, variantele problemei ce pot fi rezolvate, cazurile particulare, dimensiunile maxime ce se iau în considerare; generalitatea este înfăţişată utilizatorilor prin multitudinea facilităţilor pe care le conţine explicit documentaţia produselor software; creşterea gradului de generalitate influenţează negativ fiabilitatea şi conduce la creşterea complexităţii produsului;

4. consistenţa: pune în evidenţă măsura în care modulele realizează funcţii de prelucrare necontradictorii şi se bazează pe uniformizare în folosirea simbolurilor, a regulilor de construire a identificatorilor, etichetelor şi în general a secvenţelor omogene; gradul de consistenţă internă a programului se evaluează analizând textul sursă, iar consistenţa externă este dată de comportamentul necontradictoriu al produsului; consistenţa externă se determină după ce produsul a fost testat; programul a cărui corectitudine a fost demonstrată este în acelaşi timp un program consistent;

5. complexitatea: fiecărui program aplicativ i se asociază o reprezentare sub formă de arborescenţă sau o altă formă grafică ce conţine noduri şi arce orientate. Complexitatea este un atribut care permite stabilirea diferenţelor dintre structurile programelor şi ierarhizarea programelor după noduri, arce şi modul de orientare a acestora din urmă. Complexitatea se evaluează luând în considerare frecvenţa de apariţie a instrucţiunilor. Evaluarea se efectuează fie direct folosind textul sursă, fie pornind de la graful asociat programului. Prin stabilirea unor clase de complexitate pentru module şi a resurselor necesare se pot pune bazele planificării necesarului de resurse pentru elaborarea unui program aplicativ pentru care se cunosc funcţiile de prelucrare şi încadrarea lor în clase de complexitate;

6. flexibilitatea: determină volumul de restricţii impus utilizatorilor pentru a obţine rezultate com-plete şi corecte prin folosirea unui program aplicativ, programul aplicativ este cu atât mai flexibil cu cât volumul restricţiilor este mai redus; flexibilitatea este pusă în legatură cu numărul opţiunilor

Page 5: CalitateSoft

Calitatea produselor software 9-5

la dispoziţia utilizatorilor; programele fiabile sunt în acelaşi timp flexibile; din punct de vedere al programatorilor, flexibilitatea programului aplicativ este capacitatea de a prelua cerinţe noi de prelucrare fără a necesita modificări;

7. modularitatea: este atributul de calitate care descrie ordinea din cadrul produsului format din module; programul aplicativ are un nivel de modularitate ridicat în cazul în care identificarea funcţiilor de prelucrare după reguli standard necesită un efort minim; nivelul modularităţii este stabilit din faza de proiectare, iar evaluarea efectivă se bazează pe textul sursă; modularitatea influenţează toate caracteristicile de calitate şi este influenţată de complexitatea programului aplicativ.

Există mai multe modele ale calităţii software, dintre care fac parte modelul Boehm şi modelul James McCall.

Modelul Boehm este unul dintre primele modele ale calităţii software elaborat de către un colectiv condus de B. W. Boehm. Acest model defineşte următoarele caracteristici de calitate:

• portabilitate, • fiabilitate, • eficienţă, • testabilitate, • uşurinţa înţelegerii - gradul în care obiectivele şi scopul produsului sunt clar definite, • modificabilitate - gradul în care produsul facilitează efectuarea schimbărilor.

Atributele de calitate, care permit cuantificarea acestor caracteristici sunt: • independenţa faţă de hardware, • completitudine, • acurateţe - gradul în care ieşirile furnizate de produs sunt suficient de precise pentru a satisface

cerinţele impuse, • consistenţă - gradul în care produsul conţine notaţii, terminologie şi simboluri unitare), • eficienţa utilizării hardware-ului (gradul în care produsul software utilizează în mod economic

hardware-ul), • accesibilitate - gradul în care produsul prezintă componentele sale într-o manieră organizată, • structuralitate - gradul în care produsul nu conţine informaţii excesive, • lizibilitate - gradul în care funcţiunile produsului pot fi identificate prin citirea codului sursă, • extensibilitate - gradul în care produsul facilitează extinderea sa cu noi funcţiuni de prelucrare.

Modelul James McCall Acest model îmbunătăţeşte modelul Boehm şi stă la baza elaborării standardului ISO 9126 din 1991. Factorii de calitate prevăzuţi de McCall sunt grupaţi în în trei categorii, cu referire la:

• exploatarea şi utilizarea produsului: o corectitudine; o fiabilitate; o eficienţă (volumul resurselor de calcul şi al codului utilizat de produs pentru realizarea

funcţiunilor); o integritate (gradul în care poate fi controlat accesul, de către persoanele neautorizate, la

produs şi la date); o utilizabilitate (efortul necesar pentru învăţarea produsului şi pentru pregătirea datelor de

intrare); • revizia produsului:

o mentenabilitate; o testabilitate;

Page 6: CalitateSoft

9-6 Calitatea produselor software

o flexibilitate • tranziţia produsului:

o portabilitate; o reutilizabilitate; o interoperabilitate (efortul necesar pentru a cupla produsul cu alte produse).

9.2.2 Măsurarea nivelului calităţii

Diversitatea şi numărul mare al caracteristicilor şi atributelor de calitate, faptul că nu toate pot fi măsurate cu aceeaşi acurateţe fac imposibilă stabilirea unei singure metode sau a unui singur indicator cu ajutorul căruia să se măsoare nivelul fiecarei caracteristici.

Deşi problema agregării informaţilor prezintă un grad de dificultate sporit, se consideră că depăşirea unui nivel superior al agregării conduce la pierderea semnificaţiei pe care trebuie să o posede indicatorul constituit. Se consideră în continuare neoportun modelul unui indicator global pentru calitate, fiind preferată luarea în considerare a sistemului de caracteristici, atribute de calitate, metrici şi elemente de evaluare.

Remarcăm că pentru fiecare produs program se defineşte sistemul său de caracteristici, atribute, metrici, elemente de evaluare odată cu proiectarea produsului. De asemenea, sistemul odată definit are diferite forme în diferitele etape ale ciclului de viaţă.

În literatura de specialitate este conturată o disciplină (software metrics – metrici software) destinată construirii şi analizei indicatorilor cu care se evaluează nivelul caracteristicilor de calitate.

Pentru o caracterizare concretă se consideră că trebuie respectate următoarele cerinţe: a. ierarhizarea caracteristicilor de calitate măsurabile, după importanţa pe care ele o prezintă la

beneficiar; b. evaluarea cât mai precisă a nivelului fiecărei caracteristici şi sporirea efortului pentru creşterea

preciziei; c. nivelul maxim al caracteristicii trebuie să fie asociat produselor program într-adevăr celor mai

bune; d. stabilirea modului în care se utilizează informaţia privind calitatea, pentru creşterea duratei

ciclului de viaţă al produsului program.

Evaluarea nivelului de calitate al unui produs program se face prin compararea valorilor indicatorilor de calitate, obţinute prin examinarea produsului software, cu valorile de bază existente sau estimate ale prototipului de bază asociat produsului respectiv (adică valorile corespunzând unui nivel programat pe plan mondial sau valori normative la nivelul clasei respective de produse program).

Indicatorii de calitate pentru caracteristici, atribute, metrici sunt caracterizaţi prin: valoarea şi ponderea indicatorului, relaţii de influenţare (conflictuale sau complementare) şi relaţii de ierarhizare (care se stabilesc între indicatorii ce se află în relaţii de subordonare).

În cazul relaţiilor de ierarhizare indicatorilor subordonaţi le sunt asociate ponderi care semnifică gradul de importanţă faţă de ceilalţi indicatori subordonaţi aceluiaşi indicator-părinte. De regulă suma ponderilor de pe un nivel inferior subordonat unei caracteristici de calitate este constantă şi egală cu 1 (cel mai utilizat sistem de ponderi).

11

=∑=

n

j

ijp

unde n – numărul de indicatori j de pe nivelul inferior subordonat indicatorului i, de nivel imediat superior.

Page 7: CalitateSoft

Calitatea produselor software 9-7

Valoarea E kq a unui element de evaluare se stabileşte astfel:

S

E

E

S

s

s

kq

kq

∑=

=1

k - numărul de ordine al metricii, q – numărul de ordine al elementului de evaluare, S – numărul total de evaluări ale aceluiaşi element de evaluare, s – numărul de ordine al evaluării elementului de evaluare, Es

kq – valoarea asociată elementului de evaluare q subordonat metricii k pentru evaluarea s

Valoarea absolută a metricii k, subordonată atributului j, notată Mj k se calculează astfel:

Q

E

M

Q

q

kq

jk

∑=

=1

Q - numărul total de metrici subordonate atributului de calitate

Valoarea absolută a atributului de calitate subordonat caracteristicii de calitate i este:

jk

n

k

jkij MpAj

∑=

=

1

pjk - ponderea ataşată metricii k subordonată atributului de calitate j, nj – numărul de metrici ale atributului de calitate j Valoarea relativă a atributului de calitate j subordonat caracteristicii i este:

baza

ij

ijrel

ijA

AA =

În cadrul politicii generale a unei organizaţii, în corelaţie cu celelalte politici sectoriale, orientările şi obiectivele organizaţiei privind calitatea, exprimate de conducerea de vârf, constituie politica în domeniul calităţii a organizaţiei respective. Pe baza principiilor enunţate de politica în domeniul calităţii se stabilesc obiective privind calitatea clare, realiste şi cuantificabile.

9.3 Managementul calităţii Managementul calităţii este componenta funcţiei generale de conducere care determină şi implementează politica în domeniul calităţii şi deţine responsabilităţile pentru toate activităţile care concură la îndeplinirea obiectivelor privind calitatea. În literatura de specialitate sunt definite patru funcţii principale pentru managementul calităţii: planificarea, controlul, asigurarea şi îmbunătăţirea calităţii (vezi figura 9.1).

Planificarea calităţii cuprinde activităţile prin care se stabilesc obiectivele şi cerinţele privind calitatea. La nivel strategic, sunt formulate principiile de bază şi orientările generale ale organizaţiei în domeniul calităţii, care se regăsesc în politica în domeniul calităţii.

La nivel operaţional, planificarea externă are drept scop identificarea clienţilor şi a cerinţelor acestora, iar prin planificarea internă se urmăreşte transpunerea cerinţelor clienţilor în caracteristici ale produsului sau serviciului şi dezvoltarea de procese adecvate.

Controlul calităţii include activităţile de monitorizare a desfaşurării proceselor şi de evaluare a rezultatelor referitoare la calitate, în raport cu obiectivele stabilite, în scopul eliminării deficienţelor şi/sau prevenirii apariţiei acestora.

Page 8: CalitateSoft

9-8 Calitatea produselor software

Asigurarea calităţii, internă (pentru conducerea organizaţiei) sau externă (pentru clienţi) cuprinde activităţile preventive prin care se urmăreşte, în mod sistematic, corectitudinea şi eficienţa activităţilor de planificare şi control, pentru a garanta obţinerea rezultatelor la nivelul calitativ aşteptat. Îmbunătăţirea calităţii cuprinde activităţile desfăşurate în fiecare etapă a ciclului de viaţă al produsului sau serviciului, în scopul obţinerii unui nivel calitativ superior celui planificat, în condiţiile desfăşurării corespunzătoare a activităţilor de planificare, control şi asigurare a calităţii.

Fig. 9.1 Activităţile implicate în asigurarea calităţii Managementul calităţii este responsabilitatea tuturor nivelurilor de conducere, însă rolul cel mai important revine conducerii de vârf. În implementarea managementului calităţii sunt implicaţi toţi angajaţii organizaţiei.

Conform definiţiei celei mai larg acceptate, Sistemul Calităţii reprezintă "ansamblul de structuri organizatorice, proceduri, procese şi resurse umane necesare pentru implementarea managementului calităţii".

Ceea ce fac sau ce nu fac organizaţiile producătoare de software pentru calitatea produselor lor, pentru îmbunătăţirea calităţii, determină aprecierea produselor software respective pe piaţă şi reuşita întregii organizaţii. Cea mai puternică reflectare a problemelor îmbunătăţirii calităţii la nivelul managementului este apariţia şi dezvoltarea conceptului de management al calităţii totale (TQM - Total Quality Management). Cele trei componente de bază ale TQM sunt îmbunătăţirea continuă,

satisfacerea clienţilor şi creşterea (avansul) organizaţiei. Îmbunătăţirea calităţii are, la rândul ei componentele de standardizare şi inovaţie.

9.4 Asigurarea calităţii produselor software

Asigurarea calităţii reprezintă un ansamblu de mijloace prestabilite şi sistematizate, utilizate de o firmă în toate compartimentele sale implicate în activităţi ce pot influenţa calitatea produselor şi serviciilor executate, astfel încât să exprime certitudinea realizării cerinţelor de calitate specificate.

Gestiunea calităţii constă în identificarea, analiza şi interpretarea tuturor anomaliilor apărute în timpul desfăşurării producţiei, precum şi în definirea acţiunilor corective sau de orientare a calităţii în toate etapele de realizare a produsului şi/sau de prestare a serviciului, inclusiv prin prisma costurilor calităţii. (figura 9.2)

Planificarea calităţii

Controlul calităţii

Organizarea calităţii

Coordonarea calităţii

Asigurarea calităţii

Page 9: CalitateSoft

Calitatea produselor software 9-9

Fig. 9.2 Gestiunea calităţii

Gestiunea calităţii acţionează pe baza principiului că, printr-o creştere relativ redusă a costurilor şi prevenirea apariţiei deficienţelor de calitate se obţine o dimensionare a cheltuielilor de resurse cu identificarea defectelor şi o scădere substanţială a cheltuielilor datorate defectelor de calitate şi remedierilor, astfel încât, pe ansamblu, cheltuielile totale cu calitatea se reduc, în condiţiile sporirii calităţii produsului.

De menţionat de la bun început că gestiunea calităţii nu poate avea coerenţă în organizaţii unde nu există definit un sistem al calităţii, proceduri pentru menţinerea, actualizarea şi îmbunătăţirea acestuia. Pentru a identifica în mod corect cerinţele majore ale gestiunii calităţii, se porneşte de la obiectivele acestei activităţi, care induc cerinţe specifice, astfel:

A. Identificarea, analiza şi interpretarea tuturor anomaliilor apărute în timpul desfăşurării producţiei • construirea unui sistem de caracteristici de calitate coerent, pe cât posibil necontradictoriu, care să

reflecte cât mai fidel calitatea de ansamblu a produsului; • stabilirea unui sistem ierarhic, de punctare sau de ponderare, precum şi evidenţierea legăturilor

dintre caracteristicile ce compun sistemul; • rafinarea sistemului de caracteristici construit, până la factori şi subfactori de calitate care pot fi

efectiv măsuraţi şi elaborarea modelului calităţii; • construirea, pentru fiecare factor sau subfactor de calitate a metricii sau sistemului de metrici cu

ajutorul cărora nivelul acestora să poată fi măsurat sau exprimat; • stabilirea seturilor de date care trebuie culese pentru calculul metricilor şi a costurilor; • analiza datelor şi calculul metricilor; • analiza şi măsurarea corelaţiilor ce pot apare între caracteristici, cu implicaţii asupra unor etape sau

asupra întregului proces de dezvoltare software; • agregarea, pe baza unei metodologii prestabilite, a rezultatelor măsurătorilor şi exprimarea

nivelului de calitate; • estimarea, pe baza specificaţiilor, a nivelului acceptabil de calitate al produsului; • compararea, analiza, interpretarea, stabilirea, localizarea şi explicarea cauzelor anomaliilor care au

putut conduce la neconformităţi - la nivelul proceselor, a mijloacelor utilizate, a personalului, a procedurilor, a beneficiarului etc.

B. Definirea acţiunilor corective sau de orientare a calităţii în toate etapele de realizare a produsului şi/sau de prestare a serviciului, inclusiv prin prisma costurilor calităţii • existenţa unei baze de date referitoare la proiecte anterioare, care să fie actualizată cu datele

proiectului curent, inclusiv în ceea ce priveşte costurile; • actualizarea continuă, pe baza unor contacte permanente cu managementul de nivel înalt şi cu

compartementele de marketing, a direcţiilor de acţiune viabile de urmat în ceea ce priveşte calitatea produsului, precum şi a tendinţelor apărute pe piaţă;

• analiza şi sistematizarea neconformităţilor apărute, a momentelor, proceselor şi cauzelor apariţiei

Costurile calităţii

Optimizarea calităţii

Gestiunea calităţii

Asigurarea calităţii

Sistemul calităţii

Page 10: CalitateSoft

9-10 Calitatea produselor software

acestora, precum şi a costurilor aferente; • stabilirea de scenarii corective şi elaborarea de diagrame de tip cauză-efect pentru fiecare tip

sistematic de neconformitate sau defecţiune; • punerea de acord, din punct de vedere practic, a tendinţelor generale ale pieţei produsului, a

tendinţelor generale în ceea ce priveşte calitatea, cu posibilităţile concrete de care dispune organizaţia (firma) producătoare de a produce o anumită calitate;

• propuneri de actualizare a strategiei şi politicii firmei cu privire la calitate.

Fig. 9.3 Factorii care influenţează gestiunea calităţii

Dezvoltarea accentuată a Internet-ului produce modificări în ceea ce priveşte problema produselor software cu surse libere - "free software" - pornind tocmai de la considerente legate de calitate şi gestiunea calităţii.

Gestiunea calităţii nu poate fi efectivă şi eficientă atâta timp cât, indiferent de modelul şi căile de a dezvolta un produs software, nu este prezentă la nivelul tuturor proceselor şi activităţilor implicate, ca modalitate de analiză şi, pe această bază, furnizate de soluţii.

9.5 Standarde de calitate 9.5.1 Standarde pentru managementul calităţii Există o serie de reglementări generale cu privire la managementul calităţii, reglementări valabile şi în cazul realizării produselor software, precum şi alte reglementări privind calitatea produselor program. Reglementările privind managementul calităţii pot fi deosebite ca:

• Reglementări specifice firmei • Reglementări specifice ramurii • Standarde naţionale • Standarde internaţionale

Sistemele de management al calităţii, sau sistemele de asigurare a calităţii - trebuie întotdeauna înţelese ca nişte sisteme specifice unei organizaţii. Ele nu sunt unitare şi de aceea nu pot fi standardizate.

În schimb, pot fi standardizate recomandări şi directive generale pentru sistemul de management al calităţii şi elementele sale.

Dezvoltarea reglementărilor managementului calităţii a început în 1963, o dată cu norma MIL Q 9858 şi s-a răspândit în toate ţările occidentale.

Pe plan internaţional, domeniul managementului şi asigurării calităţii este reglementat prin standardele ISO seria 9000, care descriu cerinţele pentru sistemul calităţii într-o organizaţie, fără a specifica însă

Sistemul calităţii

Strategia de dezvoltare software, strategiile calităţii

Gestiunea calităţii

Viziunea managerială asupra costurilor, a raporturilor cost-

calitate şi valoare-calitate

Managementul proceselor de dezvoltare

Page 11: CalitateSoft

Calitatea produselor software 9-11

modalitatea de implementare a acestuia.

Standardele ISO seria 9000 pot fi utilizate în următoarele situaţii: • Asigurarea internă a calităţii, la iniţiativa conducerii organizaţiei; • Cerinţe contractuale între furnizor şi client referitoare la sistemul calităţii pentru furnizor; • Evaluare secundă parte, caz în care furnizorul este evaluat de către client pentru conformitatea

sistemului calităţii cu un standard de referinţă; • Certificarea sistemului calităţii de către o terţă parte (un organism de certificare) în raport cu

cerinţele unui standard de referinţă.

Colecţia de standarde a fost preluată de Uniunea Europeană sub denumirea de EN ISO 9000 şi în urma directivelor UE a căpătat caracter de lege în toate ţările membre UE.

Mai jos sunt prezentate standardele din seria ISO, traduse în limba romană. • SR ISO 8402: 1995; Ediţia a 2-a: Managementul calităţii şi asigurarea calităţii - vocabular • SR ISO 9000-1: 1996; Ediţia a 2-a: Standarde pentru managementul calităţii şi asigurarea calităţii -

Partea 1: Ghid pentru selecţie şi utilizare • SR ISO 9000-2 : 1995; Ediţia 1: Standardele pentru conducerea calităţii şi asigurarea calităţii -

Partea 2: Ghid pentru aplicarea ISO 9001, ISO 9002 şi ISO 9003 la dezvoltarea, livrarea şi mentenanţa software-ului

• SR ISO 9000-3: 1995; Ediţia 1: Standardele pentru conducerea calităţii şi asigurarea calităţii - Partea 2: Ghid pentru aplicarea ISO 9001 la dezvoltarea, livrarea şi mentenanţa software-ului

• SR EN ISO 9001: 1995; Ediţia a 2-a: Sistemele calităţii - Model pentru asigurarea calităţii în proiectare, dezvoltare, producţie, montaj şi service

• SR EN ISO 9002: 1995; Ediţia a 2-a: Sistemele calităţii - Model pentru asigurarea calităţii în producţie, montaj şi service

• SR EN ISO 9003: 1995; Ediţia a 2-a: Sistemele calităţii - Model pentru asigurarea calităţii în inspecţii şi încercări finale

• SR EN ISO 9004-1: 1996; Ediţia 1: Managementul calităţii şi elemente ale sistemului calităţii - Partea 1: Ghid

• SR ISO 9004-2:1991; Ediţia 1 : Conducerea calităţii şi elemente ale sistemului calităţii - Partea a 2-a: Ghid pentru servicii

• SR ISO 9004-3:1993; Ediţia 1: Conducerea calităţii şi elemente ale sistemului calităţii - Partea a 3-a: Ghid pentru materiale procesate

• SR ISO 10011-1:1994; Ediţia 1: Ghid pentru auditarea sistemelor calităţii- Partea 1: Auditare • SR ISO 10011-2:1993; Ediţia 1: Ghid pentru auditarea sistemelor calităţii- Partea a 2-a: Criterii de

calificare pentru auditorii sistemelor calităţii • SR ISO 10011-3:1994; Ediţia 1 : Ghid pentru auditarea sistemelor calităţii- Partea a 3-a:

Conducerea programelor de audit • SR ISO 10013:1996; Ediţia 1 : Ghid pentru elaborarea manualelor calităţii Alte standarde netraduse în limba română sunt: • ISO 9000-4:1993 Dependability Management • ISO 9004-4:1993 Quality Improvement • ISO 9004-5 Quality Assurance Plans • ISO 9004-6 Project Management • ISO 9004-7 Configuration Management • ISO 9004-8 Quality Principles • ISO 10012-1:1992 Management of Measurement Equipement • ISO 10012-2 Control of Measurement Processes

Page 12: CalitateSoft

9-12 Calitatea produselor software

Cerinţele ISO 9000 privind sistemele de calitate sunt prezentate în figura 9.4 :

Fig. 9.4. Cerinţele ISO 9000 privind sistemele de calitate

9.5.2 Standardele calităţii produselor software

Standardele de calitate din seria ISO-9000 se referă la orice domeniu de activitate economică. Elementele specifice produselor software sunt detaliate de alte două standarde: ISO/IEC 9126 şi ISO/IEC 14598.

Standardul 9126 propune utilizarea unui set de şase caracteristici de calitate: funcţionalitate, fiabilitate, utilizablitate, performanţe, mentenabilitate, portabilitate. Pentru fiecare caracteristică se detaliază un set de subcaracteristici, dar ultimul nivel reprezentat de metrici nu este standardizat. Modelul ISO/IEC 9126 mai este denumit şi modelul caracteristică-subcaracteristică-metrică.

Standardul ISO/IEC/9126 - Caracteristici de calitate software şi metrici – are următoarele componente: • 9126/1 – Caracteristici şi subcaracteristici de calitate;

• defineşte caracteristicile şi subcaracteristicile de calitate; • se utilizează pentru specificarea cerinţelor de calitate, evaluarea calităţii produsului, proiectarea

listei de verificare pentru revizuirea proiectării şi testare. • 9126/2 – Metrici externe;

• defineşte un set de metrici externe pentru măsurarea unei caracteristici sau subcaracteristici de calitate;

• se utilizează pentru specificarea cerinţelor de calitate, evaluarea calităţii produselor în fazele de testare şi acceptare, dezvoltarea de noi metrici.

• 9126/2 – Metrici interne; • defineşte un set de metrici interne utilizabile la măsurarea atributelor interne ale produselor

software; • se utilizează pentru definirea scopurilor proiectului, revizuirea produselor intermediare,

dezvoltare de noi metrici.

21 Considerente financiare referitoare la calitate 22 Securitatea proceselor

ISO 9004

20 Controlul proiectării ISO 9001

17. Aprovizionare 18. Controlul proceselor 19. Service

ISO 9002

1. Responsabilitatea managementului 2. Sistemul calităţii 3. Analiza contractului 4. Controlul documentelor şi datelor 5. Controlul produsului furnizat de client 6. Identificarea şi trasabilitatea produsului 7. Inspecţii şi încercări 8. Controlul echipamentelor de inspecţie, măsurare şi încercare 9. Stadiul inspecţilor şi încercărilor 10. Controlul produsului neconform 11. Acţiuni preventive şi corective 12. Manipulare, depozitare, conservare şi livrare 13. Controlul înregistrărilor calităţii 14. Audituri interne ale calităţii 15. Instruire 16. Tehnici statistice

ISO 9003

Page 13: CalitateSoft

Calitatea produselor software 9-13

Standardul ISO/IEC 14598 – Evaluarea Produselor Software – are următoarele componente: • 14598/1 - defineşte termenii utilizaţi şi prezintă cerinţe şi recomandări generale privind

specificarea şi evaluarea calităţii produselor software; • 14598/2 - defineşte cerinţe privind managementul proceselor suport în evaluarea produsului

software şi face recomandări privind dezvoltarea şi utilizarea unui plan de măsurare; • 14598/3 – este destinat fazei de dezvoltare a produsului software şi conţine criterii de selectare a

metricilor şi recomandări privind verificarea şi validarea caracteristicilor de calitate, analiza măsurării, ameliorarea procesului de evaluare;

• 14598/4 – defineşte un proces de evaluare a calităţii unui produs software utilizabil pentru selectarea unui produs din mai multe produse sau de acceptare a unui produs utilizându-se caracteristicile de calitate şi metricile din standardul 9126 şi modelul de evaluare 14589-1;

• 14598/5 – defineşte cerinţe şi face recomandări privind evaluarea produselor software aflate în faza de livrare-implementare;

• 14598/6 – defineşte cerinţele privind documentaţia ce însoţeşte evaluarea produsului software şi face recomandări privind dezvoltarea şi validarea evaluării.

9.5.3 Standarde de calitate a procesului de realizare a produselor software -

Software Capability Maturity Model (SW-CMM) SW-CMM a fost dezvoltat de Software Engineering Institute de la Universitatea Carnegie Mellon, S.U.A. ca modalitate de evaluare a maturităţii procesului de dezvoltare software la nivelul unei întreprinderi. Scopul urmărit este asistarea dezvoltatorilor pentru îmbunătăţirea progresivă a gradului de maturitate. Focalizarea este pe procesul în sine, iar nu pe produsele rezultate. CMM prevede cinci nivele de maturitate:

1. Initial. Procesul de dezvoltare poate fi caracterizat ca ad-hoc şi ocazional chiar haotic. Un număr mic de procese sunt definite, iar succesul depinde de eforturile individuale ale lucrătorilor.

2. Repeatable. Sunt stabilite procese de bază ale managementului de proiect pentru urmărirea costurilor, planului de lucru şi a funcţionalităţii. Disciplina existentă asigură repetabilitatea succesului în proiecte cu aplicaţii similare.

3. Defined. Atât procesul de management cât şi cel de dezvoltare este documentat, standardizat şi integrat într-un proces standard al organizaţiei. Toate proiectele folosesc o versiune ajustată şi aprobată a procesului standard.

4. Managed. Are loc colectarea datelor care măsoară calitatea procesului şi a produsului. Ambele procese (management şi dezvoltare) sunt gestionate şi controlate în plan cantitativ.

5. Optimizing. Procesele pot fi continuu îmbunătăţite cu ajutorul feedback-ului cantitativ şi a ideilor şi tehnologiilor novatoare.

Pentru a atinge un nivel superior sunt necesare eforturi concentrate în anumite zone-cheie (key process

areas):

Pentru nivelul 2: managementul cerinţelor, planificarea proiectelor, urmărirea proiectelor, gestiunea subcontractărilor, asigurarea calităţii software, managementul configuraţiei software.

Pentru nivelul 3: focalizarea procesului la nivel de organizaţie, definirea procesului la nivel de organizaţie, programe de instruire, management integrat, ingineria produselor software, coordonare între grupuri, peer reviews.

Page 14: CalitateSoft

9-14 Calitatea produselor software

Pentru nivelul 4: managementul cantitativ al proceselor, managementul calităţii software.

Pentru nivelul 5: prevenirea defectelor, managementul modificărilor tehnologice, managementul modificărilor procesului. 9.5.4 Aplicarea ISO 9001 pentru industria software

Interpretarea strictă a clauzelor ISO 9001 este relativ dificilă pentru organizaţiile care dezvoltă software, având în vedere particularităţile domeniului de aplicare a cerinţelor standardului.

Atât pentru organizaţiile software care doresc să implementeze un sistem al calităţii în conformitate cu ISO 9001, cât şi pentru organismele de certificare (auditori), se recomandă utilizarea standardului ISO 9000-3 care contine un ghid de aplicare a cerinţelor ISO 9001 pentru dezvoltarea, livrarea şi mentenanţa software-ului.

Factorii de succes pentru îmbunătăţirea proceselor software prin ISO 9001 sunt: • definirea şi documentarea stării curente • identificarea celor mai bune practici • identificarea proceselor lucrative • simplificarea procedurilor de rutină • audituri interne • spirit de echipă • ateliere de lucru (workshop-uri) • definirea unui limbaj comun • studii ale percepţiei clienţilor

Numai doi dintre aceşti factori sunt ceruţi explicit în ISO 9001: definirea şi documentarea stării curente şi auditurile interne. Lista factorilor de succes relevă faptul că, în companiile software, pentru îmbunătăţirea proceselor software se practică o abordare mai cuprinzătoare decât cerinţele minime din ISO 9001.

În ceea ce priveşte beneficiile certificării ISO 9001, pentru majoritatea cormpaniilor software, în timpul implementării sistemului calităţii, s-au constatat îmbunătăţiri substanţiale. Studiile efectuate asupra percepţiei clienţilor furnizează un feedback obiectiv, referitor la calitatea produselor şi serviciilor.

Auditurile interne ale calităţii îmbunătăţesc satisfacţia în muncă şi furnizează o oportunitate pentru personal de a discuta punctele slabe şi tari ale sistemului. Aceste beneficii, împreună cu ghidurile, listele de verificare, modelele de documente şi instrumentele utilizate, conduc la concluzia că certificarea ISO 9001 contribuie la creşterea eficienţei, reducerea duratei ciclurilor de dezvoltare şi a costurilor.

Beneficiile ISO 9001 pentru companiile software sunt: • Productivitate crescută • Reducerea costurilor • Marketing mai eficient • Proiectare mai bună Elementele considerate esenţiale pentru implementarea cu succes a sistemului calităţii în companiile

software care au obţinut certificarea ISO 9001, sunt:

A. Implicarea managementului - Este foarte important angajamentul conducerii de vârf, deoarece proiectul de implementare şi procesul de certificare presupune un consum de timp şi bani.

B. lnfrastructura sistemului calităţii - Procesele şi modelele de documente trebuie standardizate

Page 15: CalitateSoft

Calitatea produselor software 9-15

pentru utilizarea lor în cadrul întregii organizaţii. Pe măsură ce sunt dezvoltate, se aplică proceduri noi sau actualizate pentru proiectele de dezvoltare software. În acest sens, asigurarea mecanismelor de modificare şi control pentru versiunile software reprezintă un punct de pornire.

Documentaţia şi procedurile trebuie scrise în aşa fel încât să nu fie percepute ca o complicare a activităţii curente. Un volum mare de documente poate fi un obstacol în calea eficienţei, de aceea fluxul de documente trebuie raţionalizat. Fiecare document trebuie să aibă un obiectiv clar şi să adauge valoare sistemului calităţii. Scopul final este de a dezvolta un sistem al calităţii care să servească, în primul rând, organizaţiei şi personalului.

Documentaţia trebuie împărţită pe departamente sau funcţii manageriale în manuale uşor de utilizat (sunt recomandate Manualele Calităţii în formă electronică).

Pentru a corela documentele organizaţiei cu cerinţele ISO 9001 se poate utiliza o matrice de identificare a documentelor în succesiune logică. Această matrice ar trebui să identifice cerinţele ISO 9001 care sunt complet acoperite de documentele şi procedurile existente în organizaţie, cerinţele parţial acoperite şi pe cele neacoperite.

Definiţiile metricilor utilizate trebuie să fie riguroase şi inteligibile, pentru a fi înţelese corect şi pentru a nu cauza dificultăţi ulterioare.

C. Managementul proiectelor - Implementarea sistemului calităţii trebuie să urmeze o abordare graduală, etapizată, de la procesele generale la cele specifice.

Managerul de calitate are atribuţii legate de : • dezvoltarea modelelor de documente la nivel de departament, • urmărirea circuitului documentelor şi procedurilor de amendare, • furnizarea datelor • monitorizarea în mod continuu a progresului înregistrat la toate nivelurile organizaţiei.

D. Audituri interne - Auditurile interne furnizează feed-back pentru sistemul calităţii, informaţii referitoare la gradul în care organizaţia este conformă cu propria sa documentaţie şi în ce măsură acest lucru reflectă activităţile organizaţiei. Auditurile interne vizează identificarea atât a punctele tari, cât şi mai ales a punctele slabe ale sistemului calităţii. Sunt supuse unui proces de analiză şi inspecţie toate documentele sistemului calităţii.

E. Îmbunătăţirea continuă a proceselor - Implementarea sistemului calităţii are două scopuri principale: îmbunătăţirea procesului şi certificarea. Trebuie conştientizat faptul că dezvoltarea disciplinată a software-ului, îmbunătăţirea proceselor şi interesul pentru calitate sunt benefice pentru organizaţie, iar certificarea aduce avantaje tuturor angajaţilor, organizaţiei şi clienţilor.

Clienţii şi dezvoltatorii software reprezintă interfaţa principală cu sistemul calităţii. De asemenea, ei constituie cea mai importantă sursă de informaţii pentru îmbunătăţirea proceselor, care trebuie să fie o prioritate.

F. Personalul extern implicat - Auditorii implicaţi trebuie să fie calificaţi pentru companiile software. De asemenea, poate fi important sprijinul consultanţilor externi, mai ales dacă au şi cunoştinţe de inginerie software.

G. lnstruirea - Trebuie avute în vedere următoarele tipuri de instruiri: • instruire generală şi de conştientizare; • explicarea standardului ISO 9001 şi a recomandărilor standardului ISO 9000-3; • instruirea auditorilor;

Page 16: CalitateSoft

9-16 Calitatea produselor software

• instruirea pentru implementare; • instruirea pentru audit.

În industria software se manifestă un interes din ce în ce mai mare în ceea ce priveşte certificarea ISO 9001, deşi există opinii diferite referitoare la valoarea acesteia. Astfel, conform opiniei predominante, certificarea măreşte avantajul competitiv şi poate contribui la menţinerea poziţiei pe piaţă. De asemenea, este puternic susţinută ideea potrivit căreia certificarea conduce la îmbunătăţirea calităţii software-ului şi a utilizării resurselor umane. Există însă şi opinii conform cărora certificarea este un proces costisitor, birocratic şi mare consumator de timp. Aceste critici evidentiază următoarele aspecte: documentarea proceselor şi activităţilor existente, cerinţă de bază a unui sistem al calităţii, nu influenţează în mod obligatoriu calitatea produsului final, iar aplicarea standardelor poate cauza reducerea sau pierderea creativităţii şi flexibilităţii. 9.5.5 Proiectarea şi implementarea sistemului calităţii în organizaţii producătoare

de software

Introducerea unui sistem al calităţii este o decizie a conducerii de vârf a organizaţiei. Conducerea de vârf are responsabilitatea de a stabili politica şi obiectivele în domeniul calităţii şi este direct răspunzătoare pentru deciziile privind planificarea, implementarea, aplicarea şi menţinerea sistemului

calităţii.

Directorul general lansează, printr-o declaraţie oficială, programul de introducere a sistemului calităţii şi numeşte un comitet de coordonare (Consiliul Calităţii) format din toţi directorii şi şefii de departamente. De asemenea, directorul general desemnează un reprezentant al conducerii (managerul calităţii) care are responsabilitatea şi autoritatea de a coordona toate activităţile legate de proiectarea şi implementarea sistemului calităţii.

Managerul calităţii trebuie să fie independent de activităţile de dezvoltare software, să aibă competenţă şi experienţă profesională recunoscută şi în plus, cunoştiinţe referitoare la managementul şi asigurarea calităţii.

O modalitate efectivă de a păstra angajamentul şi implicarea conducerii de vârf o constituie întâlnirile periodice ale conducerii cu managerul calităţii (sau cu Consiliul Calităţii) în cadrul cărora sunt analizate progresele înregistrate şi sunt discutate principalele probleme.

Angajamentul şi implicarea trebuie să existe la toate nivelurile organizaţiei şi un rol esenţial în acest sens îl are comunicarea, având în vedere că atitudinea iniţială din partea personalului poate fi reticentă sau ostilă.

Implementarea sistemului calităţii presupune următoarele activităţi:

A. Diagnosticul calităţii Diagnosticul calităţii are drept scop stabilirea nivelului curent al organizaţiei în ceea ce priveşte satisfacerea cerinţelor ISO 9001 şi identificarea procedurilor necesare, a structurii şi conţinutului acestora.

Se efectuează o (auto)evaluare iniţială pe baza unui chestionar, pentru procesele şi activităţile principale cu incidenţă majoră asupra calităţii produselor şi serviciilor, structurat conform cerinţelor din ISO 9001 sau alt model de referinţă pentru procesele software.

Cerinţele standardului de referinţă sunt comparate cu procedurile existente sau practicile utilizate

Page 17: CalitateSoft

Calitatea produselor software 9-17

curent. În cadrul analizei pot fi întâlnite următoarele cazuri: • Nu există proceduri şi metode stabilite; • Există metode stabilite, dar acestea nu sunt documentate; • Metodele utilizate sunt documentate parţial; • Cerinţele standardului nu sunt aplicabile.

După analiza şi interpretarea răspunsurilor primite la chestionar se întocmeşte un Raport de Evaluare care conţine o apreciere generală a situaţiei existente.

B. Instruirea personalului Se organizează cursuri de instruire atât pentru membrii Consiliului Calităţii, cât şi pentru angajaţii direct implicaţi în activităţile sau proiectele selectate. Într-o primă fază, instruirea are drept scop familiarizarea personalului cu conceptele specifice calităţii, cu cerinţele standardelor ISO 9000 şi cu documentaţia sistemului calităţii (Manualul Calităţii, proceduri). Pe măsură ce proiectarea sistemului calităţii avansează, se identifică noi necesităţi de instruire pentru care se organizează cursuri specifice. În cadrul etapei de implementare efectivă a sistemului calităţii, personalul executant, instruit în mod corespunzător, trebuie să aibă cunoştinţele şi capabilitatea de a aplica sistemul, de a identifica neconformităţile şi de a iniţia acţiunile corective necesare.

C. Proiectarea sistemului calităţii La elaborarea procedurilor, pentru descrierea unui proces sau a unei activităţi poate fi utilizată o schemă flux. Pentru fiecare proces sau activitate se descriu intrările şi ieşirile, paşii principali de desfăşurare, inclusiv punctele de decizie şi responsabilităţile asociate.

În continuare sunt evidenţiate câteva aspecte importante privind interpretarea specifică a unor cerinţe ISO 9001 pentru organizaţii care dezvoltă software, pe baza recomandărilor din standardul ISO 9000-3. Pentru coerenţă, informaţiile sunt prezentate în succesiunea logică a fazelor ciclului de viaţă a software-ului şi pe activităţi suport şi nu în ordinea stabilită de standard.

Termenul de software include atât codul sursă şi programele executabile, cât şi documentaţia utilizator (tipărită şi/sau on-line), materialele de instruire, documentaţia de intreţinere.

Software-ul poate fi: software dezvoltat ce urmează a fi integrat cu hardware într-un sistem; software dezvoltat prin contract; software dezvoltat pentru uz intern; software dezvoltat pentru o altă parte (client).

D. Procese în cadrul ciclului de viaţă

D. 1. Analiza contractului

Calitatea produsului software se exprimă în termeni de caracteristici de calitate, aşa cum sunt definite de ISO/IEC 9126 (Information technology-Software product evaluation-Quality caracteristics and guidelines for their use).

Principalele elemente care ar trebui analizate într-un contract care are ca obiect dezvoltarea de software sunt: criteriile de acceptare a software-ului; modul de tratare a modificărilor în cerinţele clientului în timpul procesului de dezvoltare; modul de tratare a problemelor apărute în timpul sau după testarea de acceptare; facilităţile, instrumentele şi software-ul furnizat de client; standardele şi procedurile specificate în contract; cerinţele de multiplicare şi distribuire; planificarea etapelor principale şi a analizelor tehnice.

Page 18: CalitateSoft

9-18 Calitatea produselor software

De asemenea, în contract ar trebui prevăzut un mecanism de consultare între client şi dezvoltator pentru rezolvarea ambiguităţilor, erorilor, omisiunilor, în special în cazul modificărilor setului iniţial de cerinţe.

D.2. Controlul proiectării

Standardele nu impun un anumit model de dezvoltare software, însă pentru metodologia de proiectare selectată trebuie specificate următoarele elemente: intrările; metodele de dezvoltare (modele software, standarde de cod şi documentaţie, instrumente, metode de testare); metodele de feedback de la proiecte anterioare similare (dacă există); ieşirile.

Intrările pentru faza de proiectare-dezvoltare trebuie verificate în ceea ce priveşte: ambiguitatea; inconsistenţa sau incompletitudinea; specificaţii de performanţă nerealiste; cerinţe netestabile; descrierea exactă a mediului de utilizare; absenţa unor funcţiuni cheie.

Pentru ieşirile fazei de proiectare-dezvoltare sunt importante următoarele elemente: cum se va verifica faptul că intrările din fiecare fază se reflectă corect în ieşiri; cum pot fi testate ieşirile; cum vor fi analizate ieşirile pentru utilizări ulterioare.

D.3. Controlul procesului

Dezvoltarea software este un proces iterativ în funcţie de modelul ciclului de viaţă selectat, ca urmare este dificil să se determine limitele proceselor corespunzătoare fazelor de dezvoltare.

Pentru orice fază, care este diferită de fazele de proiectare, testare sau întreţinere, pentru care există cerinţe explicite în standard, se aplică cerinţele referitoare la controlul procesului. Managementul facilităţilor se referă la toate aspectele legate de echipamentele şi instrumentele suport pentru dezvoltare (hardware şi software).

D.4. Inspecţii şi încercări Metodele de testare utilizate pot include: verificare automată a domeniului de valori în momentul execuţiei; producere de rapoarte cu privire la utilizarea etichetelor şi variabilelor; inspecţii de cod independente; instrumente automate, cu facilităţi de înregistare-reluare; proiectarea şi execuţia cazurilor de test cu intrări definite şi ieşiri aşteptate. Standardul ISO 9000-3 identifică următoarele tipuri de teste care trebuie executate: testare la nivel de unitate (software), testare de integrare, testare de calificare şi testare de acceptare.

D.5. Controlul produsului furnizat de client Produsele furnizate de client pot fi date de test, module software, specificaţii de interfaţă, hardware.

E. Activităţi suport

E.1. Aprovizionarea

Obiectul aprovizionării poate fi software sau hardware reutilizabil, prin achiziţie sau subcontractare pentru dezvoltare de hardware, software, documentaţie sau instruire.

E.2. Identificarea şi trasabilitatea produsului

Software-ul este supus permanent modificărilor pe parcursul ciclului de viaţă, prin urmare controlul configuraţiei este un element critic. Imediat după ce o unitate software este completă, testată şi documentată sau pregătită pentru utilizare ulterioară, aceasta ar trebui introdusă sub controlul configuraţiei. Fiecare organizaţie dezvoltatoare de software utilizează sau dezvoltă o metodă de control pentru configuraţie pe care o consideră cea mai adecvată dimensiunii şi domeniului de aplicare a produsului.

E.3. Tehnici statistice

Page 19: CalitateSoft

Calitatea produselor software 9-19

În ISO 9000-3 este formulată cerinţa de definire şi utilizare a metricilor de produs şi proces software. Metricile definite trebuie să fie măsurabile în mod obiectiv şi repetabil, să fie clar definite în scris, să fie adecvate, să măsoare o caracteristică de calitate a produsului sau procesului, aşa cum este văzută de client şi să fie raportate pe baza datelor reale, colectate periodic.

F. lmplementarea sistemului calităţii Înainte de experimentarea sau implementarea sistemului calităţii, este necesar ca toţi angajaţii care vor aplica procedurile să fie instruiţi cu privire la modul de utilizare a documentaţiei calităţii, controlul modificărilor, rezolvarea problemelor, rolul auditurilor interne. Aplicarea procedurilor poate începe simultan pentru toate activităţile considerate sau se poate decide o aplicare etapizată a acestora pe proiecte şi departamente. Modul de aplicare a procedurilor, respectiv funcţionarea sistemului calităţii se evaluează prin audituri interne. Obiectivul auditurilor interne este de a stabili dacă sistemul calităţii este efectiv şi dacă există neconformităţi în raport cu documentaţia sistemului.

Pentru fiecare audit intern se stabileşte un domeniu de aplicare (un proces principal al organizaţiei, un departament sau anumite proceduri) şi o listă de verificare pe baza procedurilor selectate. Examinarea modului în care procedurile sunt puse în practică se face prin observare, întrebări directe şi scrise, analiza înregistrărilor calităţii. Dacă sunt identificate neconformităţi, acestea se consemnează în Raportul de audit şi se iniţiază acţiunile corective necesare, urmând ca după o perioadă de timp să se efectueze un post-audit pentru verificarea modului de finalizare a acţiunilor corective.

Documentaţia sistemului calităţii în organizaţii producătoare de software Documentaţia sistemului calităţii constituie cadrul suport pentru proiectarea, implementarea şi menţinerea unui sistem eficient, care să faciliteze evaluarea rezultatelor curente, identificarea acţiunilor corective şi preventive necesare pentru îmbunătăţirea proceselor şi activităţilor organizaţiei.

În scopul asigurării interne a calităţii, standardul ISO 9004 recomandă ca toate elementele, cerinţele şi prevederile referitoare la sistemul calităţii, adoptate de o organizaţie, să fie prezentate explicit în scris, în mod ordonat, sub forma politicilor şi procedurilor. În funcţie de specificul fiecărei organizaţii, documentele referitoare la sistemul calităţii trebuie limitate la strictul necesar.

Pentru activităţile de proiectare şi dezvoltare software, standardul ISO 9003 formulează cerinţe pentru elaborarea următoarelor documente suplimentare:

• Planul Calităţii - are drept scop aplicarea adaptată a cerinţelor sistemului calităţii pentru un anumit proiect, produs sau contract şi poate include sau face referire la proceduri specifice. Planul Calităţii trebuie actualizat, pe măsură ce proiectul avansează. Toate elementele unei faze trebuie definite complet înainte de începutul acesteia.

Planul Calităţii trebuie să conţină sau să facă referire la următoarele elemente: o cerinţele referitoare la calitate, exprimate în termeni măsurabili (caracteristici de calitate); o criteriile definite pentru începutul şi sfârşitul fiecărei faze a proiectului; o identificarea tipurilor de analize, teste şi a altor activităţi de verificare şi validare ce vor fi

efectuate; o planificarea detaliată a analizelor, verificărilor şi validărilor, inclusiv termenele, resursele şi

autorităţile care le aprobă; o responsabilităţile specifice pentru activităţile referitoare la calitate:

� analiza şi testarea; � verificarea şi validarea produselor achiziţionate; � verificarea produselor furnizate de client; � managementul configuraţiei;

Page 20: CalitateSoft

9-20 Calitatea produselor software

� controlul produsului neconform şi acţiunile corective.

• Planul de Dezvoltare - numit şi “Planul de Dezvoltare Software” sau Planul Proiectului Software. El descrie modul în care un proiect va fi condus, inclusiv tipul şi frecvenţa raportării către management sau alte părţi interesate, conform cerinţelor contractuale.

Planul de Dezvoltare include urmatoarele elemente: • definirea proiectului, inclusiv descrierea obiectivelor şi eventual a referinţelor la alte proiecte

corelate ale clientului sau furnizorului; • definirea intrărilor şi ieşirilor generale ale proiectului; • organizarea resurselor proiectului, inclusiv structura echipei, responsabilităţile, subcontractanţii

implicaţi şi resursele materiale necesare; • interfeţele organizatorice şi tehnice între persoane şi grupuri; • identificarea pentru procesele de dezvoltare, de management şi suport şi pentru intrările şi

ieşiriIe cerute pentru fiecare proces; • analiza riscurilor potenţiale, ipotezelor, dependenţelor şi problemelor asociate proceselor de

dezvoltare; • identificarea pentru fazele, activităţile şi resursele proiectului; • identificarea pentru:

o standarde, reguli, practici, convenţii; o instrumente şi tehnici pentru dezvoltare, inclusiv calificarea şi controlul configuraţiei

pentru acestea; o practici privind managementul configuraţiei; o metode pentru controlul produsului neconform; o metode pentru controlul produsului software nelivrabil, utilizat ca suport în dezvoltare; o proceduri pentru salvare şi regasire informaţii; o metode pentru controlul protecţiei împotriva viruşilor.

• identificarea planurilor conexe (inclusiv planurile la nlvel de sistem), cum ar fi: o Planul Calităţii o Planul pentru Managementul Riscului; o PIanul pentru Managementul Configuraţiei; o Planul de Integrare; o PIanul de Testare; o Planul de Instalare; o PIanul de Instruire; o Planul de Întreţinere; o Planul de Reutilizare.

• Planurile de Testare - testarea software-ului poate fi cerută la diferite niveluri de dezvoltare, de la element software individual până la produs software complet. Există abordări diferite pentru testare, prin urmare limitele testării, gradul controlului în mediul de testare, intrările şi ieşirile testării pot varia în funcţie de modul de abordare, complexitatea produsului şi riscuri. De asemenea, testarea se execută în timpul integrării software-ului. În unele cazuri, validarea, testarea de domeniu şi testarea de acceptare constituie o singură activitate.

Planurile referitoare la testarea de unitate software, de integrare, de sistem şi de acceptare trebuie stabilite, documentate şi analizate în conformitate cu Planul Calităţii sau alte proceduri documentate, acoperind următoarele aspecte principale:

o obiectivele testării; o tipurile de teste ce vor fi efectuate (de exemplu: de funcţionalitate, de performanţă, de

Page 21: CalitateSoft

Calitatea produselor software 9-21

utilizabilitate); o succesiunea testelor, cazurile de test, procedurile de testare, datele de test şi rezultatele

aşteptate; o consideraţii speciale referitoare la securitate şi siguranţă; o mediul de testare, instrumente şi software de testare, inclusiv orice calificări şi controale

asociate; o testarea documentaţiei de utilizare; o personalul necesar şi cerinţele de instruire asociate, inclusiv materialele necesare; o responsabilităţile pentru specificarea şi executarea testelor; o criterii de finalizare a testelor; o metoda de înregistrare a rezultatelor; o procedura de soluţionare a problemelor identificate în timpul execuţiei testelor, inclusiv

criteriile de suspendare şi cerinţele de reluare; o repetabilitatea testelor.

• Planul pentru Managementul Configuraţiei - documentul care descrie Planul pentru Managementul Configuraţiei poate fi independent, inclus în alt document sau format din mai multe documente şi trebuie să includă următoarele informaţii:

o organizaţiile implicate în managementul configuraţiei şi responsabilităţile asociate; o activităţile privind managementul configuraţiei care vor fi desfăşurate; o instrumentele, tehnicile şi metodologiile ce vor fi utilizate pentru managementul

configuraţiei; o momentul de timp la care elementele considerate ar putea fi puse sub controlul

configuraţiei.

• Planul de Întreţinere - toate activităţile de întreţinere trebuie executate şi conduse în conformitate cu un Plan de Întreţinere definit şi acceptat atât de furnizor cât şi de client. Planul trebuie să conţină următoarele elemente:

o domeniul de aplicare pentru activităţile de întreţinere; o identificarea stării iniţiale a produsului; o organizaţia (organizaţiile) care oferă suport; o activităţile de întreţinere; o înregistrările şi rapoartele referitoare la întreţinere; o relaţiile cu activităţile privind managementul configuraţiei, inclusiv procedura pentru

controlul modificărilor; o planificarea propusă.