PHP Depend

Program PHP_Depend slúži na vykonanie statickej analýzy zdrojového kódu PHP aplikácie a patrí do skupiny programov Quality Assurance. Pomocou statickej analýzy sa zdrojový kód transformuje na ľahko spracovateľnú dátovú štruktúru. Táto dátová štruktúra AST ( Abstract Syntax Tree ), ktorá reprezentuje rôzne zastúpenie výrazov, príkazov a iných elementov tvoriacich zdrojový kód, je následne po vytvorení vyhodnotená podľa rôznych kritérií. Výsledky získané týmto spôsobom testovania sú zosumarizované a vizuálne vykreslené v dvoch vektorových súboroch. Softvérové metriky, ako nám poskytuje PHP_Depend, sú užitočné najmä na zvýšenie produktivity a kvality vyvíjaných aplikácií a zároveň nám slúžia ako detektory prípadných problémových oblastí zdrojového kódu. Jedným z výsledkov testovanie aplikácie pomocou PHP_Depend je graf, ktorý znázorňuje stupne nestability vo vzťahu k abstrakcii pri danej aplikácii. Čím má balíček viac závislostí, tým je nestabilnejší.
Diagonálne vygenerovaným grafom prechádza zelená uhlopriečka, ktorá predstavuje ideálne pozície meraných hodnôt. Druhým výsledkom meraní je pyramída hodnôt, z ktorých sú zaujímavé hlavne hodnoty LOC ( počet riadkov ), NOC (počet tried), NOM ( počet metód ), ANDC ( priemerný počet odvodených tried – dedičnosť ) a AHH ( priemerná výška hierarchie ), ktoré nám ukážu priemernú hĺbku dedičnosti.



Pre lepšie pochopenie je potrebné vysvetliť jednotlivé zložky z každej oblasti.
NOP – počet PHP balíčkov v rámci testovanej aplikácie
NOC – počet tried v rámci testovanej aplikácie
NOM – počet metód v rámci testovanej aplikácie
LOC – počet riadkov kódu bez bielych miest a komentárov
CYCLE – počet lineárne nezávislých ciest kódu v rámci testovanej aplikácie
CALLS – počet volaní jednotlivých metód, každá sa počíta iba raz
FANOUT - počet tried, ktoré nie sú v rovnakej dedičnej vetve
ANDC - priemerná počet odvodených tried – dedičnosť v aplikácii
AHH - priemerná výška hierarchie dedičnosti v rámci testovanej aplikácie
Referenčné hodnoty, ktoré slúžia na farebné odlíšenie jednotlivých výsledkov do troch kategórií, a to nízky, priemerný, vysoký.












