3.	Complexitatea structurilor HTML
3.1.	Complexitatea McCabe
Se consideră o structură HTML căreia i se asociază un graf cu arce orientate în care nodurile corespund textelor uniforme şi arcele indică modul de referire a textelor. 
Graful G(NO,AR) e definit prin
-	NO – mulţimea nodurilor
-	AR – mulţimea arcelor

Mulţimea NO a nodurilor conţine nn elemente iar mulţimea AR a arcelor conţine na elemente. Complexitatea C a grafului în sens McCabe sau numărul  ciclomatic al grafului, este dată de relaţia
C = na – nn + 2
	Structurii liniare HTML i se asociază graful din Fig. 6.1.1

X1

X2

Xnn

Fig. 6.1.1 – Structură liniară

	Graful are nodurile X1, X2, …,Xnn şi arcele (X1, X2), (X2, X3), …, (Xnn-1, Xnn). Rezultă că structura liniară are nn noduri şi nn-1 arce, iar complexitatea C este egală cu
C = (nn-1) – nn + 2 = 1
	Putem astfel concluziona că orice structură HTML liniară are complexitatea egală cu unitatea. Dacă structura liniară este circulară atunci complexitatea asociată va fi egală cu 2. 
	În cazul unei structuri de tip listă dublă (cum este cea prezentată în Fig. 6.1.2), numărul de arce este dublu faţă de lista simplă în timp ce numărul de noduri este acelaşi. 

X1

X2

Xnn

X3

Fig. 6.1.2 – Structură liniară cu legături duble

Complexitatea unei astfel de structuri este dată de relaţia
C = 2(nn - 1) –nn + 2 = nn
	Dacă structura HTML este un arbore binar perfect echilibrat organizat pe k niveluri, ca în Fig. 6.1.3, atunci nn = 2k+1 - 1 iar na = nn – 1. Complexitatea unei astfel de structuri este dată de relaţia 
C = (2k+1 - 2) – (2k+1 - 1) + 2 = 1

	Structurile HTML conţin numeroase referiri, cea mai complexă dintre ele corespunzând situaţiei în care fiecare nod le referă pe toate celelalte. Dacă graful are nn noduri, numărul de arce este egal cu nn2 – 1.

X21

X22

X23

X24

X11

X12

X0

nivelul 2

nivelul 1

nivelul 0

Fig. 6.1.3 – Structură HTML arborescentă perfect echilibrată 

	Rezultă că pentru o structură HTML cu nn noduri, complexitatea maximă este dată de relaţia
C = (nn2 - nn) – nn + 2 = nn2 – 2nn + 2

3.2.	Indicatori de complexitate
Pentru a obţine un indicator de complexitate normat pe intervalul [0, 1], se defineşte relaţia 

	Indicatorul oferă o imagine mai bună în legătură cu efortul de dezvoltare a referinţelor. Tabelul următor (Tab. 6.2.1) prezintă valorile indicatorului pentru o parte dintre structurile prezentate în cadrul acestei lucrări. 
	Complexitatea pe tipologie de structură revine la a considera o structură completă tip listă, listă dublă sau arbore şi a calcula complexitatea relativă a unei structuri particulare în raport cu structura completă. 
Astfel, dacă notăm complexitatea structurii complete cu Cc iar pe cea a structurii particulare cu Cp, atunci complexitatea relativă poate fi exprimată cu ajutorul următorului indicator:

Pentru orice structură liniară (cum ar fi cea din Fig. 6.1.1), complexitatea structurii complete este egală cu cea a structurii particulare şi din acest motiv indicatorul de complexitate relativă va avea o valoare egală cu 1. 

Denumire structură	Indice figură	C	Ic	
– Structură liniară de texte uniforme	Fig. 3.1.1	1	1/Cmax	
– Structură liniară circulară de texte uniforme	Fig. 3.1.8	2	2/Cmax	
– Structură liniară cu legături duble	Fig. 3.2.1	nn	nn/Cmax	
– Structură liniară circulară cu legături duble	Fig. 3.2.4	nn+1	(nn+1)/Cmax	
– Structură liniară cu referirea universală a primului element	Fig. 3.3.1	nn	nn/Cmax	
– Structură arborescentă organizată pe trei niveluri	Fig. 4.1.4	1	1/Cmax	
– Structură arborescentă cu legături duble	Fig. 4.3.1	nn	nn/Cmax	
Tab. 6.2.1 – Valorile indicatorului de complexitate normat pe [0, 1]

	În Fig. 6.2.1 este prezentată o listă dublă din care lipsesc două arce.

X1

X2

X3

X4

X5

Fig. 6.2.1 – Listă dublă incompletă

	Aşa cum am arătat anterior, complexitatea listei duble complete (Cc) este egală cu nn. Pentru lista incompletă, complexitatea va fi calculată în felul următor:
Cp = 2(nn - 1) – 2 – nn + 2 = nn – 2
Valoarea indicatorului de complexitate relativă Ir devine:

	Considerăm un arbore binar incomplet organizat pe trei niveluri, ca în Fig. 6.2.2.

X21

X22

X11

X12

X0

nivelul 2

nivelul 1

nivelul 0

Fig. 6.2.2 – Arbore binar incomplet  
	Această structură se doreşte a fi comparată cu arborele binar complet organizat pe trei niveluri, prezentat în Fig. 6.1.3. 
Complexităţile celor două construcţii sunt
Cp = (nn – 1) – nn + 2 = 1
Cc = (nn – 1) – nn + 2 = 1
iar valoarea indicatorului de complexitate relativă devine

	Indicatorii de complexitate permit compararea aplicaţiilor HTML. Omogenitatea structurilor care compun o aplicaţie HTML generează variaţii stabile şi la nivelul indicatorilor de complexitate.