SW metriky a jejich využití. Techniky odhadu pracnosti a doby řešení. Funkční body. COCOMO.
Metrika je kvalifikovaný atribut softwaru.
Bez měření nelze kvalitně řídit ani hodnotit kvalitu SW, atributy kvality mohou ale být různé. Softwarová metrika je nějaký údaj (měření), který lze nakonec převést na číselné hodnocení nějakého atributu softwaru. Dělí se na:
Měření softwaru mohou být také:
přímá: počet řádek kódu (LOC), rychlost výpočtu, velikost paměti, počet chyb za určitou dobu …
nepřímá: funkčnost, kvalita, složitost, pracnost, spolehlivost, schopnost údržby,…
– explicitní výsledky vývoje SW, zdrojový kód, dokumentace. Popisují charakteristiky produktu jako je jeho velikost, komplexita, návrhové vlastnosti, výkonnost, úroveň kvality, atd.
MTTF (mean time to failure) - používá se v bezpečnostně kritických systémech jako řízení letového provozu, letecká elektrotechnika, zbraně, atd.
Problémy hlášené zákazníkem měří potíže zákazníka používajícího produkt.
Metrika problémů se obvykle vyjadřuje pomocí problémů vztažených na uživatele a měsíc (PUM - per user month)
– mohou být využity při zlepšování vývoje softwaru a procesu údržby (efektivita odstraňování defektů během vývoje, vzor přírustků defektů během testování, doba odezvy procesu oprav).
Hustota defektů během formálního testování
Vzor přírustků defektů během formálního testování
Profil odstraňování defektů podle fází vyžaduje trasování defektů
ve všech fázích vývojového cyklu.
Efektivnost odstraňování defektů - DRE (Defect Removal Efficiency)
DRE = E / ( E + D)
E je počet chyb nalezených před předáním uživateli
D je počet defektů po předání.
– cena, rozvrh, produktivita, hardware, čas, počet vývojářů.
Příkladem může být tzv. Halsteadtova metrika, která je založena na teorii informací.
Výsledkem výzkumu SW metrik jsou metodiky vývoje (SOA, OO, strukturované programování, znalosti a vlivu kvality specifikací atd.) a metodiky odhadu pracnosti a doby řešení COCOMO, funkční body, a filosofií SOA ITIL
Odhad ceny a pracnosti
Přesnost odhadu projektu je ovlivněna
Dekompoziční techniky
Odhad podle problému: LOC metoda (lines of code) a FP metoda (function points) se používají
používají tříbodový odhad Program Evaluation and Review Technique (PERT): EV = ( soptimisticky + 4 spravdepodobny + spesimisticky ) / 6
Odhad založený na procesu: procesní metoda Odhad metodou COCOMO
Předběžný popis rozsahu systému:
„Do CAD vstupují dvou a třídimensionální data.
Uživatel interaktivně komunikuje se systémem.
Komunikace musí být dobře uživatelsky navržená.
Všechna geometrická data a další informace jsou uchovávána v CAD databázi.
Modul analýzy návrhu bude vytvářet výstupy na různá grafická zařízení.
Systém bude komunikovat s periferními zařízeními typu myš, digitizér, displej, laserová tiskárna.“
Stanovení následujících funkcí systému:
UICF - modul řízení a komunikace s uživatelem
2DGA - dvojdimenzionální geometrická analýza
3DGA - třídimenzionální geometrická analýza
DBM - řízení databáze
CGDF - modul grafického zobrazení
PC - řízení periferií
DAM - modul analýzy návrhu
Odhad ceny a pracnosti metodou LOC:
Pro každou funkci systému odhadneme optimistický, pravděpodobný a pesimistický počet LOC a určíme EV. Například pro funkci 3DGA:
EV = ( soptimisticky + 4 spravdepodobny + spesimisticky ) / 6 = (4600+4*6900+8600)/6=6800
Součtem všech odhadů EV dostaneme celkový počet LOC = 33200.
EV | |
UICF | 2300 |
2DGA | 5300 |
3DGA | 6800 |
DBM | 3350 |
CGDF | 4950 |
PC | 2100 |
DAM | 8400 |
LOC | 33200 |
Z historických údajů víme, že průměrná produktivita pro systémy tohoto typu je 620 LOC/mm.
Tedy pracnost se rovná 33 200/620 = 54 mm.
Počítáme-li náklady 20 000 Kč na 1 mm (člověkoměsíc), pak cena jedné LOC je 20 000/620 = 32,25 Kč.
Celková cena produktu bude 20 000*54 = 1 080 000 Kč (zaokrouhleno na tisíce).
Odhad ceny a pracnosti metodou FP (Function Points):
opt. | pravděp. | pes. | EV | váha | UFP | |
počet vstupů (EI - External Inputs) | 20 | 24 | 30 | 24,3 | 4 | 97,2 |
počet výstupů (EO - External Outputs) | 12 | 15 | 22 | 15,7 | 5 | 78,5 |
počet dotazů (EQ - External Enquiry) | 16 | 22 | 28 | 22 | 4 | 88 |
počet souborů (ILF - Internal Logical Files) | 4 | 4 | 5 | 4,2 | 10 | 42 |
počet externích souborů (EIF - External Interface Files) | 2 | 2 | 3 | 2,2 | 7 | 15,4 |
Celkem UFP | 321,1 |
Pro zisk jednotlivých „neupravených“ funkčních bodů UFP je zde odhad EV navíc násoben jednotlivými váhami, tedy UFP = ( soptimisticky + 4 spravdepodobny + spesimisticky ) / 6 * váha
Celkem dostaneme 321 UFP. Ty se ale musí ještě vynásobit koeficientem PCA, získaným z následující tabulky:
PCA | |
zálohování a obnova | 4 |
datové přenosy | 2 |
distribuované zpracování | 0 |
kritický výkon | 4 |
existující operační prostředí | 3 |
přímý vstup dat | 4 |
vstupní transakce přes více obrazovek | 5 |
přímá aktualizace hlavních souborů | 3 |
složité hodnoty domény informací | 5 |
složité vnitřní zpracování | 5 |
návrh kódu pro opakované použití | 4 |
v návrhu jsou konverze/instalace | 3 |
vícenásobné instalace | 5 |
návrh aplikace pro změny | 5 |
Celkem PC | 52 |
PCA = 0,65 + (0,01 * PC) = 0,65 + (0,01 * 52) = 1,17
Odhad FP = UFP * PCA = 321 * 1,17 =376
Z historických údajů víme, že průměrná produktivita pro systémy tohoto typu je 6,5 FP/mm.
Tedy pracnost se rovná 376/6,5 = 58mm.
Počítáme-li náklady 20 000 Kč na 1 mm (člověkoměsíc), pak cena jednoho FP je 20 000/6,5 = 3077 Kč.
Celková cena produktu bude 20 000 * 58 = 1 160 000 Kč(zaokrouhleno na tisíce).
Odhad ceny a pracnosti metodou COCOMO:
K vysvětlení a výpočtu je použita stránka: http://sunset.usc.edu/research/COCOMOII/cocomo81_pgm/cocomo81.html
Rozsah projektu odhadněme na řádově 10 000 řádků. Zvolíme vázaný mód (1,2) metody COCOMO.
A nastavíme každý z 15ti volených atributů a máme tak všechny potřebné atributy:
size = 10000
mode = 1.20
rely = 1.00
data = 0.94
cplx = 1.00
time = 1.00
stor = 1.00
virt = 1.00
turn = 1.00
acap = 1.00
aexp = 1.00
pcap = 1.00
vexp = 1.00
lexp = 1.00
modp = 1.00
tool = 1.00
sced = 1.00
Pracnost = 41,71 mm
Plán = 8,25 měsíců
Odhadovaná cena projektu bude 20 000*41,71 = 834 000 Kč.
Funkční body = normalizovaná metrika softwarového projektu Je to metodika pro měření velikosti informačního systému. Počítají se funkce (činnosti) software a na základě jejich váženého součtu se provede odhad.
odhad = velikost projektu x složitost x rizikové faktory
Výsledek se zanese do formuláře UFP, který se pak znásobí koeficientem složitosti. Výsledkem je odhad práce, času a velikosti.
14 charakteristik:
Každá charakteristika je hodnocená ve stupnici 0 – 5 takto:
(Typ projektu, počet řádků kódu)
COnstructive COst MOdel – založen na souboru významných veličin, které ovlivňují cenu a dobu řešení projektu. Výstupem je počet člověkoměsíců. Existuje základní a rozšířené COCOMO. Základní COCOMO používá rozdělení projektů na tři typy jednoduché, středně složité a složité. Pak používá metriku počet řádků kódu a na základě určení typu projektu z této metriky pomocí různých vzorečků odvozuje potřebný počet programátorů a dobu vývoje v měsících.
COCOMO – COnstructive COst MOdel
RELY – požadovaná spolehlivost
DATA – velikost databáze
CPLX – složitost produkt
TIME – omezení času výpočtu
STOR – využití paměti/disku
VIRT - spolehlivost virtuálních stroj
TURN – míra rychlosti oběhu úlohy počítačem
ACAP – analytické schopnosti
PCAP – programovací schopnosti
AEXP – zkušenosti s podobnými aplikacemi
VEXP – zkušenosti se spec. virt. strojem
LEXP – zkušenosti se spec. prog. Jazykem
MODP – použití moderních prg. technik
TOOL – použití SW nástrojů
: parametry podle úrovně modelu a vývojového módu
Potřeba změnit COCOMO 81
A v rozsahu 1.01 - 1.26
Size je určená několika přístupy:
SF - upravený součet 5 driverů s hodnocením 0 – 5
Drivery exponentu:
EM: multiplikátory úsilí (7 pro EDM, 17 PAM) – nové atributy
PA105 Technologie informačních systémů II
PA104 Vedení týmového projektu
Doplňte prosím
Marek Menšík UČO 255679
Z mé strany hotovo.
Nevím přesně, kdo otázky zpracoval přede mnou, pouze jsem je sem umístil, doplnil chybějící věci a opravil nepřesnosti. Připomínám, že věci zde uvedené nemusí být korektní a zatím neprošly kontrolou žádného z profesorů.
http://cs.felk.cvut.cz/~richta/www-si2/WS4.htm http://statnice.dqd.cz/mgr-szz:in-ins:1.2-ins http://vis-projekt.sweb.cz/si2/vedouci/zdroje.htm https://is.muni.cz/el/1433/jaro2012/PA105/10MereniSW.pdf
http://sunset.usc.edu/research/COCOMOII/cocomo81_pgm/cocomo81.html http://groups.engin.umd.umich.edu/CIS/course.des/cis525/js/f00/kutcher/kutcher.html http://www2.fiit.stuba.sk/~bielik/courses/msi-slov/kniha/2011/essays/esej2010_09-si-xkompanek.pdf