Sunteți pe pagina 1din 13

METRICI SOFTWARE (2)

Metrici software cu folosirea grafului asociat programului Instruciunile dintr-un program se consider noduri n graf. Sensul de parcurgere (execuie) a instruciunilor reprezint arcele care leag instruciuni. Expresiile de atribuire, apelurile de funcii, incrementrile decrementrile alctuiesc structuri liniare crora le corespund reprezentanta sub form de graf dat n figura !.

%ig. ! Instruciuni n sec#en liniar

Instruciunile condiionale "i operatorul condiional genereaz reprezentrile pe graf date, respecti#, n figurile $a "i $b.

a)

b)

%ig. $ Implementarea structurii alternati#e

Instruciunea alternati# multipl (s&itc') n limba(ul ) ) * * "i case n limba(ul +ascal genereaz reprezentarea pe graf dat n figura ,, numrul de arce care pleac din nodul asociat condiiei depinz-nd de numrul expresiilor pentru care se opereaz selectri.

%ig. , Implementarea structurii alternati#e multiple Structurii repetiti#e condiionat anterior ./I0E - 12 i corespunde reprezentarea pe graf dat n figura 3.

%ig. 3 Implementarea structurii repetiti#e condiionate anterior Structurii repetiti#e condiionate posteroir 12 - 456I0 i corespunde reprezenterea pe graf din figura 7.

%ig. 7 Implementarea structurii repetiti#e condiionate posterior

Structurilor mbricate le #or corespunde agregri n grafuri care conduc la cre"terea numrului de noduri "i respecti# a numrului de arce. 8n 9!7: se face referire la relaia propus de ;c )abe pentru calculul numrului ciclomatic 5) dat de relaia< 5) = e - n *> , unde< e - reprezint numrul de arce ale grafului? n - reprezint numrul de noduri din graf. +entru numrul ciclomatic mai exist "i alte formule. 5odurile "i arcele n aceste modele nu sunt difereniate, de"i n realitate instruciunilor le corespund numr de cicluri ma"in diferite, de"i salturile n interiorul segmentului au alte caracteristici dec-t cele intersegmente. 1ac nodurilor li se asociaz numere (cicluri ma"in) "i arcelor li se asociaz distane (etic'ete) este posibil construirea de metrici pe graf care s includ "i diferenele dintre noduri, respecti# arce. 2ricrui program i se asociaz o structur atunci c-nd el este pri#it ca rezultat al asamblrii unor module. 8n stadiul de proiectare se definesc module prin < - parametrii care se transmit? - ni#el de apel al modului? - numr de module apelate? - complexitatea prelucrrilor din modul.

Se asociaz coeficieni pentru grade de reprezentare a celor patru trsturi "i metrica rezult ca o norm a unei matrice produs latin cu elemente poziti#e, prin sumarea acestora.

m = ai( bi( , i= (= > unde < ai( - reprezint elemente din matricea coeficienilor definii ca ponderi de transformare? bi( - reprezint elemente ale matricei numerelor extrase din program. 1e exemplu n 9$,: se consider metric @ )'apin n care< +m - intrri cerute pentru prelucrare? ;p - intrri modificate la execuia modului? )m - intrri care controleaz decizia "i selecia? 6m - date care se transmit modulului, sunt utilizate dar nu sunt modificate. )oeficienii asociai sunt dai n tabelul nr. !

6abelul nr. !
tip de dat +m ;m )m 6m coeficient > ! $ A,3

8n acest context, metrica ) are asociat expresia < @ = ($.)m * !;m * +m * A,3 6m ) (> * (E $)!), unde E reprezint o complexitate adiional care apare c-nd un modul comunic cu alte module. ;etrica @ consider cazul particular de matrice cu o coloan "i , linii.

B=

> ! $ A,3

b>> C= b!> b$> b,>

b>> =+m, b!>= ;m, b$> = )m, C,> = 6m. ;odelul )2)2;2 ia n considerare ponderi pentru "ase ni#ele ale factorilor. %actorii pentru care se nregistreaz ni#ele sunt< - cerine de dez#oltare? - ni#el cerut al fiabilitii? - complexitate produs? - timp execuie? - restricii de memorie? - capabiliti anali"ti? - experien n aplicaii? - capabiliti programatori? - experien n utilizarea limba(ului? - te'nici de programare utilizate? - grad utilizare instrumente. +onderile sunt pentru ni#elele< - foarte sczut? - sczut? - normal? - ridicat? - foarte ridicat. B "asea coloan a matricei este destinat #alorii obinute pentru e#aluarea factorului. ;odelul lui B0CDE)/6 ia n considerare matricea de ponderi< $ , E 3 $ , 3 >A E , 7 E >3 >A 7

C=

, unde<

linia > - numr intrri? linia ! - numr ie"iri? linia $ - numr fi"iere interne? linia , - numr fi"iere externe?

linia 3 - numr cereri externe. )ele trei coloane reprezint ni#elele de complexitate< - sczut? - mediu? - ridicat. ;etrica aceasta se e#alueaz ca sum de produse latine ale elementelor celor dou matrice. Este interesant de constriut metrici soft&are pe structur cu condiia definirii unui sistem de ponderi care reflect importana fie a legturilor dintre module, fie a efortului de realizare asamblare. Metrici e comportame!t al programelor +rogramele se construiesc n #ederea utilizrii. Seturile de date de intrare se caracterizeaz prin #olum, dimensiune, #alori particulare, repetiii, parametrii de selecie, opiuni etc. +entru fiecare program se definesc exact semnificaiile acestora, a"a fel nc-t, utilizatorii sd nregistreze cu rigurozitate "i n acela"i mod comportamentul programului. 1ac se consider un program care lucreaz cu un fi"ier, se stabile"te numrul de articole din fi"ier, numrul de actualizri, structurile rapoartelor finale. 4tilizatorul pri#e"te sub form tabelar standard ceea ce trebuie completat, fr a-i lsa loc pentru interpretri cu caracter local sau subiecti#. Se nregistreaz numai #alori obiecti#e ( numr nregistrri, numr linii, numr coloane, numr elemente, numr actualizri, numr erori, numr reluri, numr corecii n date, numr rapoarte, numr r-nduri, durat introducere date, numr erori introducere date, durat compilare, durat execuie, durat sortare, durat "tergere etc.) 8n toate cazurile se specific cu exactitate elementele de pe fiecare r-nd al tabelelor, fr a lsa coloane necompletate. 6oate datele culese de la utilizatori se constituie n baze de date ale comportamentului unui program. 1atele conin momente, durate, frec#ene, #olume, dimensiuni. 2mogenitatea, ca uniti de msur, permite efectuarea de operaii de adunare a seriilor ( de timp). Se calculeaz < - durate medii ( de execuie, de compilare, de eliminare erori, de introducere date)?

- rapoarte de forma r = selectat?

, unde< a - reprezint frec#ene de apariie a unui caz b - reprezint totalitatea cazurilor studiate?

- corelaii ntre seriile de date pro#enind din tabele? - grupri dup metodele analizei de date a elementelor din tabele "i clasificarea programelor, tipurilor de probleme, erorilor? - estimarea unor coeficieni pentru modele care pun n e#iden legturi ntre seriile de date din tabele, serii care se #or constitui n nregistrri ale unor #ariabile n baze de date. 8n 9!F: , 9$G: sunt prezentate astfel de modele. Se consider S; = luni om "i H1SI = mii de instruciuni scrise (estimate). +ornind de la aceste notaii, se iau n considerare diferite proiecte. +entru proiectele organice, se consider expresiile< S; = !., (H1SI) >.A3 "i timpul necesar realizrii proiect 61EI = !.3 (S;) A..$G +entru proiectele mixte, #om a#ea< S; = $.A (H1SI) >.>! 61EI = !.3 (S;) A.$3 ;etricile de comportament al programelor permit cunoa"terea modului n care un program rspunde cerinelor efecti#e la utilizator. 1ac programul este riguros testat se obin cu baze de date de la aceast operaie parametrii care nu difer semnificati# fa de #alorile estimale ale coeficinilor metricelor de comportament. Econometria dispune de numeroase te'nici de estimare "i de analiz a calitii coeficienilor. 1e"i aceste modele sunt mai des ntrebuinate, fluctuaiile coeficienilor estimai depind de e"antionul de program "i beneficiari cu care s-a lucrat.%iecare dintre metricile prezentate pune n e#iden anumite laturi calitati#e ale programului. Ele nu se exclud ci se presupun, complet-ndu-se. Este necesar s se defineasc metrici de toate tipurile pentru un produs, pentru a rspunde cerinelor at-t formulate de programatori, de dealeri, c-t "i de utilizatorii programelor. ;etricile sunt cu at-t mai #aloroase cu c-t sunt mai simple de calculat "i cu c-t efortul de a culege datele este mai redus. Este preferabil ca proiectanii, odat cu

lansarea unei metrici soft&are, s ofere "i instrumentele pentru culegerea automat a datelor obiecti#e despre programele care fac obiectul e#alurii "i s calculeze ni#elele pentru aceste programe.

"ropriet#$ile metricilor software


1ac metricile definite pe o mulime ; se bucur de o serie de proprieti, particularitile metricilor soft&are genereaz alte proprieti. Bstfel, n 9>A:, 9>!: , 9!F: sunt puse n e#iden proprieti ale metricilor softa&are, dup cum urmeaz< +> < o metric trebuie s pun n e#iden dou subclase de programe < programe utilizabile "i programe inutilizabile? +! < dou programe identice conduc la #alori egale ale unei metrici care le e#alueaz? +$ < utilizarea unei metrici nu conduce la situaii anormale c-nd se fac studii empirice? +, < dac o metric deri# dintr-o alt metric, apartenenele programelor la subclase nu se modific? +3 < modificrilor neutre din program nu le corespund cre"teri sau diminuri ale #alorilor rezultate dintr-o metric? +7 < modificrilor limitate din program le corespund cre"teri sau diminuri limitate ale #alorilor rezultat dintr-o metric? +E < cre"terea numrului de #ariabile exogene conduce la cre"terea gradului de msurabiliate asociat metricii? +G < modificrilor acti#e din program trebuie s le corespund diminuri sau cre"teri ale #alorilor rezultate dintr-o metric. +roprietile metricilor sunt puse n e#iden prin parcurgerea unor pa"i "i anume < - construirea unui sistem al specificaiilor? - definirea ierar'iilor asociate modulelor din care este format programul? - se calculeaz pentru fiecare modul o serie de indicatori ( pe text, structur sau dinamic)?

- indicatorii calculai se agreg rezult-nd pentru fiecare modul un indicator agregat. +rin luarea n considerare, pentru fiecare program, a descompunerii n module, se a(unge la reprezentarea programului sub forma unei structuri arborescente. Se consider un sistem de ponderi care permit JrecompunereaJ de la baza arborescenei spre rdcin, cu asigurarea apartenenei la inter#alul 9A,>: a oricrei agregri. Se consider programul + cu structura arborescent din figura E . 8 6 1 m
1

7 2 m
! $

3 m
,

4 m m
3

%ig. E Brborescena asociat programului +

8n figur m>, m!, m$, m, "i m3 sunt module. %ie f < m>, m!, m$, m,, m3 9A,>:

o metric a factorului fiabilitate "i ponderile a>, a!, a$, a,, a3, a7, aE, aG definite astfel nc-t < a> * a! * a$ * a, * a3 * a7 * aE * aG = > Se construiesc relaiile de agregare < b> = a>f(m>) * a!f(m!) b! = a$f(m$) * a,f(m,) * a3f(m3) b$ = a7b> * aEb! b, = aGb$ sau< b, = aG 9 a7b> * aEb! : = = aGa7(a>f(m>) * a!f(m!)) * aGaE(a$f(m$) * a,f(m,) * a3f(m3)) Se impune studierea proprietilor (senzibilitate, consisten, caracter necompensatoriu) acestui indicator nou agregat al fiabilitii.

Sistemul de ponderi ai este de mare importan n a asigura metricii #eridicitatea n confruntarea cu fiabilitatea, ca e#aluare a unui comportament real ( numr rulri de succes numr total de rulri program). )onstruirea de metrici sub forma de modele permite deplasarea proprietilor metricii n zona axiomelor modelelor, fie cu o #ariabil, fie cu mai multe #ariabile. 1ac modelului i se identific o serie de proprieti, este necesar #erificarea acestora "i n cazul mulimilor de programe pentru care metrica este construit. 8n cazul n care aceste proprieti nu au corespondent n zona programelor, modelul, indiferent c-t de interesant este, #a fi abandonat.

%ali area u!ei metrici


;etricile soft&are se construiesc pentru a oferi informaii c-t mai exacte asupra calitii programelor. 8n toate cazurile, metricile au un caracter predicti#. 1ac s-a nc'eiat ciclul de #ia al unui program explor-nd baza de date a comportamentului su "i prin aplicarea metricilor, ntr-ade#r se #or stabili ni#elele efecti#e a#ute "i care nu se #or mai putea modifica. 1espre acest produs, aprecierile calitati#e sunt la timpul trecut. 8n cazul unui produs soft&are n proces de realizare sau n uz curent, metricile ofer informaii asupra a ceea ce este programul sau asupra unui comportament efecti# pe un inter#al de timp trecut, n #ederea extrapolrii comportamentului pentru inter#ale de timp #iitoare. Ialidarea unei metrici este problema acceptrii acesteia ca modalitate de extrapolare. Se consider mulimea noilor programe + "i metrica < m<+ 9 A,>:. Bstfel, dac A m (+i) a, programul are un ni#el calitati# sau un comportament care l fac neutilizabil, iar, dac a m (+i) >, programul poate fi utilizat, conform figurii G.

m (+i) acceptat a +> +! +$ %ig. G ;rimea m (+i) = a este considerat ni#el critic. 1up un timp, fr a efectua modificri asupra elementelor din mulimea +, prin consultarea unui lot semnificati# al utilizatorilor de programe se identific urmtoarele situaii < a) elementele din submulimea + - s-au comportat inacceptabil, iar elementele din submilimea +* s-au comportat acceptabil? b) au existat elemente din submulimea +-, considerate iniial inacceptabile, care sau comportat acceptabil, iar elementele acceptabil? c) au existat elemente din submulimea +* care s-au comportat inacceptabil, n timp ce elementele submulimii +- s-au comportat n totalitate inacceptabil? d) exist elemente din submulimea +- care s-au comportat acceptabil, iar unele elemente din submulimea +* s-au comportat inacceptabil? e) toate elementele submulimii +* s-au comportat inacceptabil, iar toate 9A,>:, submulimile elementele submulimii +- s-au comportat acceptabil. 1ac +- "i +* sunt submulimile generate de metrica m< + 4- "i 4* sunt rezultatele aprecierii de ctre utilizatori, atunci< +- +* = + +- +* = 4- 4* = + 4- 4* = mulimii +* s-au comportat n totalitate +, +

neaccepta t

)azurile a "i e sunt u"or de analizat. 8n primul caz metrica a fost corect definit, deci e #alidat, iar n al doilea caz trebuie efectuat o in#ersare. )azurile b "i c presupun deplasarea spre st-nga, respecti# spre dreapta a ni#elului critic a. )azul d ia n considerare riscul pe care l prezint migrarea dinspre submulimea +- spre submulimea +*, respecti# migrarea dinspre submulimea +* spre submulimea +-. Bparatul statistic existent permite abordri multiple. Se construie"te un sistem de ipoteze

"i se definesc praguri de acceptare a lor, ceea ce permite n fond acceptarea unei metrici ca oferind, cu un ni#el de risc specificat, o apreciere corect. 1e asemenea, prin identificarea unor situaii speciale, se obin grupri de programe "i se stabilesc, prin metodele analizei de date, situaiile n care o metric este mai adec#at dec-t alta.

Co!clu&ii'
Standardul IEEE >A7> >FF! (IEEE Standard for a Soft&are @ualitK ;etrics ;et'odologK) reflect stadiul actual al modului de abordare cantitati# - obiecti# n zona soft&are. Exist numeroase lucrri care conin tabele ce sistematizeaz modelele (metricele) asociate caracteristicilor de calitate, cu prezentarea ipotezelor de lucru "i cu descrierea #ariabelelor exogene. +roblema care se pune acum este aceea de a folosi indicatorii "i mai ales de a cpta ncredere n ei. ;etodologia metricii exist. )eea ce trebuie ns delimitat, trebuie legat de implementare. 6oate modelele sunt construcii interesante. 1e la definirea unui model pentru factor, p-n la utilizarea efecti#, este un drum lung, aproape imposibil de parcurs. +entru crearea de metrici operaionale este necesar parcurgerea etapelor urmtoare < - definirea #ariabilelor exogene "i a modului exact, neambiguu de msurare? prin exemple de msurare se #a pune n e#iden caracterul consistent al mulimii de #ariabile exogene "i faptul c nu exist elemente din program care accidental nu sunt incluse n model, de"i ele ocup un rol important n ar'itectura acestuia? - construirea de soft&are care s msoare automat ni#elele #ariabilelor exogene din program? - n toate cazurile de #erificare a cestui soft&are se #a e#idenia c ntr-ade#r ni#elele obinute sunt corecte, neafectate de imperfeciunile de definire identificare coninute n modulele acestui soft&are? - stabilirea de reguli exacte pentru construirea exemplelor de test sau a structurii ( di#ersitii) cazuisticii reale prin intermediul creia se nregistreaz ni#elele de comportament? n caz contrar, se #or obine ni#ele ale factorilor care #or fi diferite

semnificati# de ni#elele acelora"i factori msurate la utilizarea efecti# la beneficiari a programelor? - crearea obligati#itii ca productorii de soft&are s utilizeze un acela"i produs pentru e#aluarea metricii pentru un factor, asigurndu-se n acest fel compatibilitatea "i deci comparabilitatea rezultatelor? sc'imbarea programului de e#aluare a metricii genereaz diferene "tiute fiind fluctuaiile de interpretare "i de msurare a #ariabilelor exogene prin automatizare. Exist n ara noastr laboratoare pentru testarea 'ard&are. 0iteratura din domeniul calculatoarelor abund de rezulate te'nice ale testelor 'ard&are. 0aboratoarele de certificare calitate soft&are au acti#itate de pionerat. +roblemele de soft&are audit sunt "i ele la nceput. +erse#erena de a construi instrumente pentru e#aluarea complexitii, pentru demonstrarea complexitii, pentru demonstrarea corectitudinii sau pentru crearea bazei de date pentru comportamentul programelor, trebuie s caracterizeze la nceput aceste laboratoare de testare soft&are. 8n plus, obligati#itatea ca fiecare produs program s poarte un nsemn care marc'eaz faptul c este produs certificat, #a sc'imba concepia de lansare a noilor programe pe piaa soft&are. Bmploarea procesului de informatizare a societii rom-ne"ti impune eliminarea paralelismelor n producia de soft&are, lansarea produciei de programe prin licitaii. 2rice alt abordare #a restr-nge numrul "i complexitatea aplicaiilor, scznd gradul de cuprindere a acestui proces at-t de necesar.5umai cuantificrile oferite de utilizarea curent a metricilor soft&are leag str-ns costul de calitatea soft&are, singura condiie ce asigur #iabilitatea informaticii aplicate.

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