Despre complexitate s-a scris foarte mult.
Există complexitatea expresiilor aritmetice.
Există complexitatea sub-programelor.
Există complexitatea rezultatelor.
Există complexitatea sistemelor informatice.
Există complexitatea interfeţelor.
Există complexitatea documentaţiilor.
Există complexitatea seturilor de date de test.
Există complexitatea procesului de auditare.
Există complexitatea proiectelor TIC.
Există complexitatea diagramelor de control.
Există complexitatea matricelor de stare.
Orice face obiectul unei construcţii din procesul de dezvoltare software este caracterizat prin complexitate.
Sunt produse software simple.
Sunt produse software de complexitate mică.
Sunt produse software de complexitate medie.
Sunt produse software de complexitate mare.
Sunt produse software de complexitate foarte mare.
Totul este relativ.
Dacă avem 10.000 de produse software vom avea suficiente elemente pentru a face o stabilire rezonabilă a ceea ce înseamnă fiecare tip de complexitate, pentru a nu greşi cu încadrarea.
Vom stabili complexitatea minimă Cmin.
Vom stabili complexitatea maximă Cmax.
Dacă acceptăm ipoteza intervalelor egale de complexitate, pentru cele 5 tipologii date mai sus, se calculează lungimea medie a unui sub-interval L= (Cmax-Cmin)/5.
Un produs software este simplu cadă are o complexitate aparţinând intervalului (Cmin; Cmin+L).
Un produs este de complexitate mică dacă se calculează complexitatea sa şi aceasta aparţine intervalului (Cmin+L; Cmin+2*L).
Un produs este de complexitate medie dacă se calculează complexitatea sa şi aceasta aparţine intervalului (Cmin+2*L; Cmin+3*L).
Un produs este de complexitate mare dacă se calculează complexitatea sa şi aceasta aparţine intervalului (Cmin+3*L; Cmin+4*L).
Un produs este de complexitate medie dacă se calculează complexitatea sa şi aceasta aparţine intervalului (Cmin+4*L; Cmax).
Cine vrea, va face o analiză cluster pentru cele 10.000 de produse software şi este posibil ca intervalele să nu mai fie egale, dar sunt mai puţin convenţionale, sunt cu mult mai realiste.
Totul este ca măsurarea complexităţii pentru cele 10.000 de produse software să se fi făcut cu acelaşii model, cu aceeaşi procedură şi cu acelaşi produs software, căci altfel nu mai este asigurată comparabilitatea.
Cred că formula lui HALSTEAD pentru complexitatea C, este acoperitoare
C=N1*log2(N1) + N2*log2(N2)
Unde:
N1 reprezintă numărul de operanzi.
N2 reprezintă numărul de operatori.
Dacă se optează pentru folosirea de grafuri, numărul ciclomatic NC, este, de asemenea o bună măsură a complexităţii,
NC=m-n+2
Unde:
m este numărul de arce din graf.
n este numărul de noduri din graf.
Aici se vede cu ochiul liber caracterul compensatoriu al acestui indicator. Orice structură liniară are n noduri şi n-1 arce, deci are NC=1, ceea ce este o mare problemă pentru cei care muncesc foarte mult, dar văd numai structuri software liniare, care sunt de fapt extrem de rigide.
|