You are on page 1of 22

METRICI SOFTWARE

POMETCU LAURA
GRUPA 441A

CUPRINS:

INTRODUCERE

Software-ul de criza
Nevoia de Metrici Software
Definitia Metricii Software

COMPLEXITATEA HALSTEAD
COMPLEXITATEA MCCABE
LINII DE COD LOC

Metoda evaluarii dimensionale


Evaluarea functionala
Tehnici de decompozitie
Exemplu

1. INTRODUCERE
Gestionarea eficient a oricrui proces necesit
cuantificare, msurare, i modelare. Metricile
software ofer o baz cantitativ pentru
dezvoltarea i validarea modelelor procesului
de dezvoltare software. Metricile pot fi utilizate
pentru mbuntirea productivitatii i calitatii
software. Dei curent msurtorile i modelele
sunt cu siguran inadecvate, un numar de
organizaii au rezultate promitoare prin
utilizarea lor.

2. DEFINITIA METRICI SOFTWARE


In esen, software-ul se ocup cu msurtorile
produsului software i a procesului prin care
acesta este dezvoltat. n aceast discuie,
produsul software ar trebui s fie privit ca un
obiect abstract care evolueaz de la o
declaraie iniial de necesitate la un sistem
software terminat , inclusiv codul surs i codul
obiect i diverse forme de documentare
produse n timpul de dezvoltare.

Msurtorile bune ar trebui s faciliteze dezvoltarea de


modelele care sunt capabile de a prezice un proces sau
parametrii de produs, nu doar a le descrie. Astfel,
metricele ideale ar trebui sa fie simple si precis definite,
astfel nct s fie clar cum o metrica poate fi evaluat:
obiectiv, n cea mai mare msur posibil;
cu un cost rezonabil
uor de obinut
metrica ar trebui s msoare ceea ce este destinat s
msoare
insensibila la modificri nesemnificative n procesul de
dezvoltare al produsului .

Caliti fundamentale necesare pentru orice


sistem tehnic sunt:

funcionalitate,corectitudine, fiabilitate
performan, timp de rspuns, debit, viteza
cost scazut, eficacitate.

3. COMPLEXITATEA HALSTEAD
Metrica Halstead este definita prin indicatorii:
C = complexitatea programului
E = efortul de programare
V = volumul programului
L = nivelul programului
unde:
6
C ni log 2 ni
i 1

sau,considernd 1 n1 n2 i 2 n3 n4 n5 nputem
5
scrie:
C 1 log 2 1 2 log 2 2

V N log 2 ni
i 1

N ni*
i 1

*
i

n avnd aceeai semnificaie ca i ni , dar

contorizeaz totalurile, nu numai pe cele


distincte.

V*
L
V
V* este volumul minim al programului, care este calculat din numrul minim de
parametrii I/O necesar pentru a specifica operaia unui algoritm i returul
rezultatului, avnd expresia:

V * * log 2 *
Iar

* 2* 2

*
2 este numrul de parametri de I/O folosii n apelul programului.

V
E
L

n1 numrul de tipuri fundamentale de date care apar


distinct n program
n2 numrul de tipuri derivate de date care apar
distinct n program
n3 numrul de instruciuni distincte utilizate de
programator
n4 numrul de operanzi distinci care apar n program
n5 numrul de operatori distinci pentru referire care
apar n program
n6 numrul de funcii distincte apelate

4. COMPLEXITATEA MCCABE
Modelul McCabe este folosit pentru
evaluarea complexitatii programelor.
n ipoteza omogenitatii perfecte a
instructiunilor se construiesc grafuri
asociate secventelor de program, pentru
care se masoara complexitatea, fiecare
instructiune I1, I2, In fiind reprezentata
de un nod, ordinea de executie a acestora
fiind evidentiata cu ajutorul arcelor.

EXEMPLU 1:
1

Graful asociat secventei de program S1

C = m-n+2

m este numarul arcelor din graf

n este numarul nodurilor grafului

Complexitatea McCabe are valoarea


C=23+2=1

EXEMPLU 2:
4
1

5
Complexitatea McCabe a acestuia are
valoarea C=66+2=2.
Se observa ca valoarea complexitatii McCabe depinde de
numarul de structuri alternative si de numarul de cicluri
cuprinse n secventa analizata.

5. LINII DE COD LOC


Produsul software poate fi evaluat n mod direct fie indirect. Prin evaluarea direct a procesului de
inginerie software se ntelege determinarea costurilor si a eforturilor asociate. Ea presupune
calculul numrului liniilor de cod (LOC - lines of code) scrise, determinarea vitezei de
executie,dimensiunii memoriei, precum si a numrului de defecte raportat ntr-un anumit interval
de timp.

Metodele de evaluare ale produsului pot fi descrise dup cum urmeaz:


Evaluarea productiv se concentreaza asupra rezultatelor finale ale procesului
de inginerie software;
Evaluarea calitativ ofer o indicatie a ct de aproape este produsul software de
cerintele implicite si explicite ale clientului;
Evaluarea tehnic evidentiaz mai degraba caracteristicile produsului software
(ex.: complexitatea logic, gradul de modularizare) dect procesul prin care
acesta a fost dezvoltat;
Evaluarea dimensional este utilizat pentru a "colecta" evalurile directe ale
rezultatelor si calittii procesului de inginerie software;
Evaluarea functional ofer o evaluare indirect;
Evaluarea orientat pe resursele umane ofer informatii asupra modului n care
programatorii dezvolt un produs software precum si asupra perceptiei eficientei
instrumentelor si modelelor de dezvoltare.

5.1Metoda evalurii dimensionale


Evaluarea dimensional a produsului software reprezint o estimare direct a
acestuia precum si a procesului prin care el este dezvoltat.
Daca un manager de proiect mentine nregistrri simple, poate fi creat un tabel
cu datele ordonate dupa criteriul dimensiunii. Pentru fiecare proiect, datele
dimensionale uzuale sunt:
efortul estimeaz necesarul de resurse umane si se msoar n
programatori-pe-lun sau programatori-pe-an;
KLOC (Kilo Lines of Code) - mii de linii de cod;
valoarea este exprimarea bnesc a efortului;
pagini de documentatie;
numrul de erori raportate de utilizatori ntr-o perioad de timp (de pild un
an).

numrul de programatori care au lucrat la dezvoltarea produsului software.

Din datele primare continute ntr-un astfel de tabel poate fi


realizat o evaluare a productivittii si una a calittii,
orientate dimensional, pentru fiecare proiect n parte:
Productivitatea = KLOC / Programatori-pe-lun
Calitatea = Numr de erori / KLOC
n completare, pot fi calculati alti parametrii interesanti:
Cost = Valoare / KLOC
Documentatie = Pagini de documentatie / KLOC

5.2 Evaluarea Functional


Parametrii ce caracterizeaz din punct de vedere functional produsul software
reprezint o evaluare indirect a acestuia si a procesului prin care el este
dezvoltat. Evitnd calculul LOC, parametri functionali se concentreaza
asupra "functionabilittii" sau "utilittii" programului. . Acest tip de evaluare a
fost propus pentru o abordare prin msurarea productivittii, numit metoda
scorului functional. Scorul functional (SF) este obtinut utiliznd o relatie
empiric bazat pe estimri calculabile ale domeniului de informatie al
produsului precum si pe evaluri ale complexittii aplicatiei.

SF = totalul-de-calcul * 0.65 + 0.01 * SUM (Fi)


i=1...14
totalul-de-calcul este suma rezultatelor partiale obtinute prin ponderarea
valorilor domeniului de informatie

Odat ce scorul functional a fost calculat, el este


utilizat ntr-o manier asemnatoare cu metoda
LOC ca o msur a productivittii, a calittii si a
altor atribute ce definesc programul:
Productivitatea = SF / Programatori-pe-lun
Calitatea = Numr Defecte / SF
Costul =Valoare / SF
Documentatia = Pagini de Documentatie / SF

5.3 Tehnici de Decompozitie


Oamenii au dezvoltat o abordare natural n rezolvarea problemelor: dac
problema ce urmeaz a fi rezolvat este prea complicat, avem tendinta s
o divizm ntr-o serie de sub-probleme pn cnd ajungem la un nivel la
care sub-problemele pot fi rezolvate. Rezolvm apoi pe rnd fiecare dintre
sub-probleme n speranta c solutiile pot fi combinate pentru a forma o
solutie global.
Anterior am definit liniile de cod si scorul functional drept date initiale de la care
pornindu-se poate fi calculat productivitatea. Datele LOC si SF sunt
utilizate n dou moduri pe parcursul estimrii proiectului software:
ca variabil de estimare ce este utilizat pentru a "dimensiona" fiecare
element al software-lui;
msurtori de baz colectate de la vechile proiecte si utilizate n
conjunctie cu variabilele de estimare pentru a dezvolta estimrile de
efort si cost.

Managerul de proiect ncepe prin a prezenta o descriere sintetic a functiei finale a


software-lui si, pornind de la aceast declaratie, ncearc s descompun proiectul
viitorului produs informatic n mici subfunctii care pot fi estimate fiecare individual.
Variabila de estimare LOC sau SC este apoi calculat pentru fiecare sub-functie.
Msurtorile de baz ale productivittii (ex: LOC / programatori-pe-lun sau SC /
programatori-pe-lun) sunt apoi aplicate celei mai potrivite variabile de estimare si
este derivat efortul sau costul subfunctiei.
Independent de variabila de estimare care este utilizat, managerul de proiect ofer n
mod uzual un domeniu de valori pentru fiecare functie descompus n subfunctii.
Utiliznd date istorice sau intuitia (atunci cnd orice alt metod d gres), managerul
de proiect estimeaz o valoare LOC sau SC pentru fiecare functie, n cazul cel mai
optimist, cel mai probabil si cel mai pesimist.
Se calculeaz apoi o valoare asteptat pentru LOC si SC . Valoarea asteptat pentru
variabila de estimare E poate fi calculat printr-o mediere a estimrilor LOC sau SF n
cazurile optimist (a), probabil (m) si pesimist (b).
De exemplu, estimarea E= (a + 4m + b) / 6 d cea mai mare credibilitate estimrii
celei mai probabile (m) si urmeaz o distributie de tip beta a probabilittii.

Odat ce valoarea asteptat E pentru variabila de estimare a fost


determinat, sunt utilizate productivittiile LOC si SC. La acest
moment, managerul de proiect poate aplica una sau dou
abordri diferite:
Valoarea variabilei de estimare total pentru toate subfunctiile poate fi
multiplicat cu productivitatea medie corespunztoare acelei variabile
de estimare. De exemplu, dac presupunem c este estimat un scor
functional total de 310 SF si c productivitatea este calculat pe baza
relatiei SF / programatori-pe-lun avnd valoarea 5.5, atunci efortul
total al proiectului este:

Efort = 310 / 5.5 = 56 programatori-pe-lun


Valoarea variabilei de estimare pentru fiecare subfunctie poate fi
multiplicat printr-o valoare ajustat a productivittii bazat pe nivelul
de complexitate estimat pentru fiecare subfunctie.

Exemplu
S considerm un produs software care poate fi descompus n felul urmtor:
Interfata utilizator, Analiza 2-D, Analiza 3-D, Organizarea structurii de date,
Afisarea graficii computerizate, Controlul perifericelor, Analiza proiectrii.
n tabelul "Estimarea costului si a efortului", coloanele 1, 2 si 3 sunt
completate de managerul de proiect. Coloana 4 ("Valoarea asteptat a
LOC") este calculat dup formula E = (a + 4m + b) / 6.
Coloanele 5 (Lei/LOC) si 6 (LOC/programator-pe-lun) exprim productivitatea
si sunt derivate din date istorice. n acest caz, managerul de proiect
utilizeaz valori diferite ale productivittii pentru fiecare functie, bazate pe
gradul de complexitate.
n fine, pe baza datelor din tabel se pot calcula rubricile privind costul (coloana
7) si efortul (coloana 8), dup formulele:
Cost = LOC asteptat * Lei / LOC
Luni = LOC asteptat * LOC / Programatori-pe-lun
Costul estimat al proiectului este de 6.570.000 lei iar efortul estimat este de 145
programatori-pe-lun.

You might also like