21.01.2015 Views

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 ...

SHOW MORE
SHOW LESS

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.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!