Team Se@Msi: Meranie v softvérovom inžinierstve. - FIIT STU ...
Team Se@Msi: Meranie v softvérovom inžinierstve. - FIIT STU ...
Team Se@Msi: Meranie v softvérovom inžinierstve. - FIIT STU ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>Meranie</strong> a paradigmy programovania 121<br />
ich hodnoty a možnosti porovnania týchto hodnôt s predchádzajúcimi<br />
projektami by mali byť k dispozícii už v počiatočných fázach projektu,<br />
zatiaľčo metriky predpovedajúce chyby sa môžu (a uplatňujú sa) počas<br />
všetkých etáp vývoja softvéru.<br />
Tradičné metriky nestrácajú zmysel pri meraní v objektovoorientovanom<br />
programovaní. Niektoré metriky tu majú rovnaké<br />
uplatnenie, ako pri pôvodných určeniach (napr. LOC, funkčné body).<br />
Avšak väčšina týchto tradičných metrík berie ohľad na procedurálne<br />
a sekvenčné vlastnosti programov, a teda je pre meranie<br />
v objektovo-orientovanom programovaní menej vhodná.<br />
Otázka teda znie, či existujú metriky, ktoré by dokázali viac<br />
charakterizovať špecifické vlastnosti a stavy v objektovo-orientovanom<br />
programovaní.<br />
Takéto metriky existujú a dajú sa rozdeliť do dvoch skupín – metriky<br />
pre meranie tried (class level metrics) a metriky pre meranie interakcie<br />
tried z pohľadu celého systému (system level metrics) [Kolewe93].<br />
Metriky pre meranie tried nám umožňujú merať zložitosť tried pri návrhu<br />
a implementácii. Naproti tomu metriky pre meranie interakcie objektov<br />
merajú závislosti medzi viacerými objektmi pri návrhu.<br />
Metriky pre meranie tried<br />
Nasledovné metriky merajú zložitosti jednej konkrétnej triedy. Buď<br />
merajú zložitosť triedy vzhľadom na vnútornú stavbu alebo merajú vzťah<br />
skúmanej triedy k ostatným triedam. Metriky pre meranie tried<br />
nevnímajú viaceré triedy ako jeden systém.<br />
Váha metód v triede<br />
Metrika váha metód v triede (weighted methods per class) meria<br />
zložitosť správania sa triedy. Táto metrika sa dá definovať ako suma<br />
cyklomatickej zložitosti pre každú metódu v triede.<br />
Idea metriky je, že trieda s veľkým počtom jednoduchých metód je<br />
porovnateľne zložitá ako trieda s menším počtom komplikovanejších<br />
metód.<br />
Hĺbka dedenia<br />
Metrika hĺbka dedenia (depth of inheritance tree) sa dá definovať ako<br />
celkový počet predchodcov pre jednu konkrétnu triedu.<br />
Táto metrika slúži na pochopenie zložitosti triedy. Čím je hĺbka<br />
dedenia väčšia tým je pochopenie triedy a jej metód náročnejšie.<br />
Spájanie tried<br />
Metrika spájanie tried (class coupling) sa dá formálne opísať ako počet<br />
všetkých vzťahov danej triedy s inými triedami.<br />
Existuje spojenie medzi touto metrikou a konceptom abstrakcie.<br />
Abstraktné triedy zvyknú mať vyššiu hodnotu metriky spájania tried.