Documente Academic
Documente Profesional
Documente Cultură
Iliuta Virgil
Balint George
GRUPA 441A
Metrici software
Metricile software sunt modele(reguli) folosite pentru a masura cantitativ anumite
caracteristici ale sistemelor informatice. Metricile software nglobeaz modele,
indicatori i proprietile acestora, precum i modaliti de evaluare i validare.
Metricile software se folosesc pentru a reduce subiectivitatea aprecierii unui program.
Definitie matematica:
Metrica software este un model matematic dezvoltat n jurul unei ecuaii de forma:
y = f( x )
Un model matematic cuprinde una sau mai multe ecuaii, inecuaii i are una sau mai
multe funcii obiectiv, iar rolul lui este de a descriestarea sistemuluiasociat. Metrica
software are rolul de a msura o anumit caracteristic a unui produs program, lund
n calcul factorii ce influeneaz nivelul caracteristicii msurate. Aplicndu-se tuturor
produselor software dintr-un lot omogen, metrica devine instrumentul prin
intermediul cruia se efectueaz clasificri i ierarhizriale produselor software. O
metric software este funcie obiectiv a modelului matematic cruia i aparine,
dac prin aplicarea ei se are n vedere maximizarea sau minimizarea nivelului
caracteristicii cercetate n funcie de toi factorii deinfluen:
f(X) < sau f(X) >
unde:
X vectorul factorilor ce influeneaz caracteristica software msurat;
i niveluri limit admise.
Metrica software este restricie a modelului matematic dac plaseaz nivelul msurat
al caracteristicii ntr-un interval definit de:
< f(X) <
n timp ce modelul matematic are ca obiectiv definirea structurii software, metrica
creeaz condiiile care permit comparareai are caracter normativ
Functii indeplinite:
Metricile software au rolul de a realiza:
Funcia de msurare. Cu siguran cea mai important funcie a metricilor software,
msurarea reprezint obiectivul principal n jurul cruia sunt dezvoltate aceste
instrumente. Produsele software aparin unui domeniu strict obiectiv, n care orice
realizare are fundamente matematice i caracteristici descrise de valori numerice,
deci care sunt msurabile i reprezentate prin numere. La baza tuturor indicatorilor i
chiar la baza sistemului de caracteristici de calitate definit de standardul IEEE se
gsesc datele primare, obinute prin simplele nregistrri ale nivelurilor
caracteristicilor software: numrul de linii surs, numrul de rulri, numrul de erori,
numrul de instruciuni, numrul de cicluri main. Cum n ansamblul analizei lotului
de produse software aceste date sunt considerate de baz, ele sunt supuse unor
prelucrri ulterioare prin introducerea de metrici agregate, adncind astfel cercetarea.
Rezultatul utilizrii unei metrici este exprimat n uniti concrete de msur i are o
poziie precis n sistemul de metrici software prin intermediul cruia este descris un
lot de program.
Funcia de comparare. Scopul final al utilizrii metricilor software este de a analiza
din punctul de vedere al unei caracteristici software un program i de a-l compara cu
el nsui , ncadrndu-l ntr-o categorie definit de programe, sau de a-l compara cu
alte produse software, plasndu-l pe o anumit treapt din ierarhia software.
Comparare se rezum la realizarea diferenei ntre doi termeni exprimai n aceeai
unitate de msur cu verificarea poziiei rezultatului fa de 0, sau la calcularea
raportului, cu verificarea poziiei rezultatului fa de 1.
Funcia de analiz. Rezult din dorina de a da semnificaie rezultatelor numerice
obinute prin aplicarea modelelor matematice asociate metricilor. n finalul analizei,
pe baza numerelor obinute, produsului software i se confer caliti ca fiabilitate,
economie de timp, economie de resurse, caliti care sunt mult mai puternice i mai
semnificative dect simplele valori numerice din care sunt deduse.
Funcia de sintez. n situaia cercetrii pe grupe generale de produse software, de
exemplu analiza statistica a programelor scrise n limbajul C++ i Pascal, este
imposibil verificarea tuturor programelor scrise ntr-unul din limbaje i se
construiesc loturi omogene cu numr optim de programe. Valorile msurate prin
utilizarea diferitelor metrici sintetizeaz ntr-o singur expresie numeric ceea ce este
esenial i tipic pentru ntreaga categorie de programe.
Funcia de estimare. Metrica software, asemenea indicatorilor statistici, este folosit
pentru msurarea tendinei de cretere\scdere a nivelului caracteristicii software
cercetate, plecndu-se de la ipoteza c variabilele sunt aceleai.
Funcia de verificare. Rezultatele obinute aplicnd metrica software sunt totodat
utilizate pentru a confirma i ntri sau pentru a infirma concluziile obinute prin alte
metode. Utilizarea unei metrici software n practic implic ipoteza validrii acesteia
i asigurarea independenei rezultatelor.
10.
11.
Metrici de complexitate
1. Complexitatea ciclomatica
Utilizeaza Graful de Control al programului. Ipoteza: dificultatea de intelegere
a unui program este in mare masura determinata de complexitatea grafului
fluxului de control
Este o masura a dificultatii de testare a modulelor si a fiabilitatii la nivel de
modul.
Exemplu:
10
5. Complexitatea integrarii
Complexitatea integrarii unui ansamblu de N module, notata de McCabe cu S1,
Este definita astfel:
S1 = S 0 - N + 1
Complexitatea integrarii a N module care nu contin ramificatii este deci 1.
Figura urmatoare reda o diagrama de structura prin care se ilustreaza cum trebuie
evaluata S1 cunoscand doar conditiile de apel ale fiecarei componente, adica fluxul
controlului.
Dreptunghiurile corespund componentelor de proiectare iar sagetile marcheaza fluxul
controlului. Prin romb se indica un transfer al controlului conditional:
componenta a apeleaza fie componenta b fie componenta c
componenta b apeleaza secvential componenta d si componenta e
componenta c apeleaza una dintre componentele e, f, g sau nici una
Complexitatea integrarii modulelor reprezentate in diagrama de structura este 5.
COMPLEXITATEA HALSTEAD
Metrica Halstead este definita prin indicatorii:
C = complexitatea programului
E = efortul de programare
12
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 n5
putem scrie:
C 1 log 2 1 2 log 2 2
6
V N log 2 ni
N ni*
i 1
i 1
V
L
cu:
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
3. COMPLEXITATEA MCCABE
Modelul McCabe este folosit pentru evaluarea complexitatii programelor. n
ipoteza omogenitatii perfecte a instructiunilor se construiesc grafuri asociate
13
6
5
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
Utilizarea parametrilor dimensionali (KLOC, efort, etc.) este controversat si
ei nu sunt universal acceptati ca reprezentnd cea mai bun metod de evaluare a
procesului de dezvoltare software. Controversa se nvrte n jurul utilizrii liniilor de
cod LOC ca mrime principal. Sustintorii variabilei LOC afirm c aceasta este un
artefact al tuturor proiectelor de dezvoltare software si poate fi usor calculat, c
multe modele de estimare utilizeaz LOC sau KLOC ca date de intrare principale si c
15
exist deja o literatur imens (plus date asociate) dedicat LOC. Pe de alta parte,
opozantii reclam c variabila LOC este dependent de limbajul de programare, c
LOC poate penaliza programe bine proiectate dar scurte, c nu se poate asocia usor
limbajelor neprocedurale si c utilizarea ei n estimare necesit un nivel de detaliere
care poate fi dificil de obtinut (ex: managerul de proiect trebuie s estimeze numrul
de linii de cod ce trebuie produse cu mult nainte ca analiza si proiectul programului
s fi fost ncheiate).
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.
Valorile domeniului de informatie se definesc n urmtorul mod:
16
0 - Nu influenteaz;
1 - Incidental;
2 - Moderat;
3 - Mediu;
4 - Semnificativ;
5 - Esential;
17
18
AUTORI
Iliuta Virgil: Introducere Metrici software(definitii, functii, caracteristici)
Balint George: Metrici de complexitate(tipuri, Halstead, Mccabe)
BIBLIOGRAFIE
http://www.software-metrics.ase.ro/articole/METRICI%20%20SOFTWARE.htm
http://cristi.selfip.com/wordpress/tag/metrici-software/
http://www.scribd.com/doc/56586879/Metrici-Software
Zuse, H., Bollmann, P. - Software metrics : using measurement theory the describe the
properties and scales of static complexity metrics
SIGPLAN Notices, vol.24, 1989
Whale, Geoff - Software Metrics and Plagiarism Detection
Journal of Systems Software nr.13, 1990
IEEE Standard for a Software Quality Metrics Methodology
IEEE Std 1061/1992
IEEE Standards Collection Software Engineering
IEEE Press, New York, 1994
Scheneidewing, N.F. - Methodology for validating software metrics
IEEE Transaction on Software Engineering, vol.18, nr.5, 1992
19