Parametryczne szacowanie projektów software’owych

Najbardziej rozpowszechniony ciąg działań prowadzących do oszacowania pracochłonności i czasu trwania projektów software’owych składa się z szacowania rozmiaru produkowanego oprogramowania a następnie oszacowaniu na jego podstawie pracochłonności i czasu trwania projektu.

Metoda punktów funkcyjnych

Punkt funkcyjny jest to uniwersalna miara złożoności oprogramowania. Liczbę punktów funkcyjnych wyznacza się na podstawie następujących parametrów:

Wejścia zewnętrzne (EI);

Wyjścia zewnętrzne (EO);

Zapytania zewnętrzne (EQ);

Pliki wewnętrzne (ILF);

Interfejsy zewnętrzne (EIF).

Liczba punktów funkcyjnych określa zależność:

FP = E(EI, EO, EQ, ILF, EIF)

gdzie jako E jest wyrażeniem algebraicznym uzyskiwanym na podstawie badań statystycznych i zależnym od typu projektów, stosowanych narzędzi i innych okoliczności wpływających na zużycie zasobów.

Najprostszym wyrażeniem służącym do wyliczania punktów funkcyjnych jest:

FP = 4*EI + 5*EO + 4*EQ + 10*ILF + 7*EIF

Punkty funkcyjne są przeliczane na linie kodu.

Tabela 1. Produktywność języków programowania w przeliczeniu na punkt funkcyjny

Język	Linie kodu na Punkt Funkcyjny
Asembler	320
C	128
COBOL	107
Fortran 77	105
COBOL 85	91
PL/I	80
Ada	71
Pascal	70
Prolog	64
C++	56
Ada 95	55
Java	55
Visual Basic	35

Metoda COCOMO

Oszacowany rozmiar kodu stanowi podstawę do szacowania pracochłonności i czasu trwania projektów. Najbardziej znaną metodą szacowania jest COCOMO (COnstructive COst MethOd), opracowana przez B. Boehma.

W metodzie COCOMO wyróżnia się trzy rodzaje projektów:

samodzielne, nie związane ze środowiskiem zewnętrznym;

pośrednie;

wbudowane w środowisko (przede wszystkim real-time).

Tabela 2. COCOMO - Szacowanie czasu trwania i pracochłonności projektów

Rodzaj projektu	Pracochłonność (MM, osobo miesiące)	Czas trwania (miesiące)
Samodzielny	3,2 * KDSI 1,05	2,5 * MM 0,38
Pośredni	3,0 * KDSI 1,12	2,5 * MM 0,35
Wbudowany	2,8 * KDSI 1,20	2,5 * MM 0,32

KDSI - tysiąc linii kodu (delivered source instructions)

Leszek Krupiński

2004-01-05T18:56:03