Měření software, produktové a procesní metriky, význam pro sledování kvality a řízení postupu.
Wednesday, May 29, 2013
4:59 PM
 Metrika = způsob stanovení velikosti
Metriky software
Složitost, přehlednost
počet možných cest skrz zdrojový kód
Fan-in / fan-out (afferent / efferent coupling) => stabilita
strukturální metrika, která měří poměr počtu modulů, které volají daný modul ku počtu modulů, které volá daný modul
Weighted Methods per Class
součet složitosti všech metod ve třídě
Lack of cohesion
nedostatek soudržnosti - jedna metoda dělái více funkcí (které se ve svém "smyslu" liší)
Velikost
Počet Use Cases, funkčních bodů
Lines of Code
SLOC (Source Lines of Code), 
DSLOC (Delivered Source Lines of Code), 
Kvalita (nepřímé metriky)
Pokrytí testy – kódu, požadavků
Charakteristika defektů – hustota, výskyt
Kvalita zdrojového kódu
Spolehlivost
Střední doba mezi poruchami
dostupnost 
Produktové a procesní metriky - viz předchozí otázka
Metriky produktu
počet use case, 
počet podsystémů, modulů, tříd…,
složitost modulů, 
počet řádků,
datová velikost (ubuntu na 1 CD), 
počet odhalených chyb v jednotlivých modulech při testování, 
složitost dat modulu (funkční body), 
člověkohodiny apod.
Metriky procesu
Postup projektu
Rychlost vývoje
Change requesty a jejich zpracování  (Burndown chart)
Staff turnover (fluktuace zaměstnanců),
změny postupu/plánu
Kvalita
Breakage = průměrná váha změny (LOC (Lines of Code) / CR (Change Rate))
Pracnost celkem, přepočtená na CR (Change Rate)
Množství chyb (procenta) odhalených před odesláním zákazníkovi.
Metriky produktu
Složitost, přehlednost
McCabe cyclomatic complexity
Fan-in / fan-out (afferent / efferent coupling) => stabilita
Weighted method per class
Lack of cohesion
Velikost
Počet UC, funkčních bodů
Možná někdy případně i také LOC
SLOC, DSLOC, CBLOC, TLOC
Metriky produktu (2)
Spolehlivost
MTBF = MTTF + MTTR
Dostupnost je pak (MTTF / MTBF) * 100
Kvalita (nepřímé metriky)
Pokrytí testy - kódu, požadavků
Charakteristiky defektů - hustota, výskyt
Kvalita zdrojového kódu
PMD, FindBugs, …
IDE pluginy
Projektové a procesní metriky
Postup
Project velocity / burndown
Jitter - change requesty a jejich zpracování, staff turnover, změny postupu a plánu
Kvalita
Breakage = průměrná váha změnu LOC / CR (lines of code / change request)
Pracnost celkem, přepočtená na Change Requesty
Defect discovery rate, defect removal (zpracování, trendy)
Jak měřit
Top-down
Definovat cíl měření
Zvolit metrik
Goal-Question-Metric
Bottom-Up
Jaké metriky?
Goal-Question-Metric
Přístup k definování metrik
Rámec pro systém zaměřený na konkrétní problémy
Goal = problém + cíl měřícího programu
Question = měřené objekty a způsob měření
Nástroje pro měření
Spreadsheet, kalendář
Bugtracker
Statsvn
Junit a corbetura
Řízení měření
Plán měření
RUP template
GQM přístup
Definice metrik, jejich význam a zpracování
Způsob získání dat
Sledování projektu a produktu
Sledování (management)
Korektivní akce
Řízení postupu
Plán měření
RUP template
GQM (Goal Question Metric) přístup
Definice metrik, jejich význam a zpracování
Sledování projektu a produktu
Sledování (management)
Korektivní akce
Význam pro sledování kvality a řízení postupu
Lines of Code nic neznamená pro řízení kvality, ale třeba se dá odhadovat postup
Je nutné sledovat kvalitu a upravovat vůči ní proces vzhledem k nákladům na zdroje, čas. Navíc pokud mineme chybu a vyjde do produkce, kromě řádově vyšších nákladů můžeme poškodit jméno společnosti
From <[link]> 