COCOMO

Model kosztów konstruktywnych ( COCOMO ) to proceduralny model szacowania kosztów oprogramowania opracowany przez Barry'ego W. Boehma . Parametry modelu pochodzą z dopasowania regresji z wykorzystaniem danych z projektów historycznych (63 projekty dla COCOMO 81 i 163 projekty dla COCOMO II).

Historia

Model kosztów konstruktywnych został opracowany przez Barry'ego W. Boehma pod koniec lat 70. XX wieku i opublikowany w książce Boehma Software Engineering Economics z 1981 r . Jako model do szacowania nakładu pracy, kosztów i harmonogramu projektów oprogramowania. Oparł się na badaniu 63 projektów w TRW Aerospace, gdzie Boehm był dyrektorem ds. badań i technologii oprogramowania. W badaniu zbadano projekty o wielkości od 2 000 do 100 000 linii kodu oraz języki programowania od asemblera do PL/I . Projekty te były oparte na kaskadowym modelu tworzenia oprogramowania, który był dominującym procesem tworzenia oprogramowania w 1981 roku.

Odniesienia do tego modelu zwykle nazywają go COCOMO 81 . W 1995 roku COCOMO II został opracowany i ostatecznie opublikowany w 2000 roku w książce Software Cost Estimation with COCOMO II . COCOMO II jest następcą COCOMO 81 i uważa się, że lepiej nadaje się do szacowania nowoczesnych projektów rozwoju oprogramowania; zapewniając wsparcie dla nowszych procesów tworzenia oprogramowania i został dostrojony przy użyciu większej bazy danych zawierającej 161 projektów. Potrzeba nowego modelu pojawiła się, gdy technologia tworzenia oprogramowania przeniosła się z komputerów mainframe i nocnego przetwarzania wsadowego do tworzenia komputerów stacjonarnych, ponownego wykorzystania kodu i korzystania z gotowych komponentów oprogramowania.

COCOMO składa się z hierarchii trzech coraz bardziej szczegółowych i dokładnych formularzy. Pierwszy poziom, Podstawowy COCOMO, jest dobry do szybkiego, wczesnego, przybliżonego oszacowania rzędu wielkości kosztów oprogramowania, ale jego dokładność jest ograniczona ze względu na brak czynników wyjaśniających różnice w atrybutach projektu (kierowcy kosztów ) . Pośrednie COCOMO bierze pod uwagę te czynniki kosztowe, a szczegółowe COCOMO dodatkowo uwzględnia wpływ poszczególnych faz projektu. Ostatni to model Complete COCOMO, który eliminuje wady zarówno podstawowego, jak i średniozaawansowanego.

Średniozaawansowane COCOMO

Średniozaawansowany COCOMO oblicza nakład pracy na tworzenie oprogramowania jako funkcję rozmiaru programu i zestawu „czynników kosztowych”, które obejmują subiektywną ocenę produktu, sprzętu, personelu i atrybutów projektu. To rozszerzenie uwzględnia zestaw czterech „czynników kosztowych”, z których każdy ma kilka dodatkowych atrybutów: -

  • Cechy produktu
    • Wymagany zakres niezawodności oprogramowania
    • Rozmiar bazy danych aplikacji
    • Złożoność produktu
  • Atrybuty sprzętowe
    • Ograniczenia wydajności w czasie wykonywania
    • Ograniczenia pamięci
    • Zmienność środowiska maszyny wirtualnej
    • Wymagany czas obrotu
  • Atrybuty personelu
    • Możliwości analityka
    • Możliwości inżynierii oprogramowania
    • Doświadczenie w aplikacjach
    • Doświadczenie z maszyną wirtualną
    • Doświadczenie w języku programowania
  • Atrybuty projektu
    • Korzystanie z narzędzi programowych
    • Zastosowanie metod inżynierii oprogramowania
    • Wymagany harmonogram rozwoju

Każdy z 15 atrybutów otrzymuje ocenę w sześciostopniowej skali, która waha się od „bardzo niskiej” do „bardzo wysokiej” (pod względem ważności lub wartości). Do oceny ma zastosowanie mnożnik wysiłku z poniższej tabeli. Iloczyn wszystkich mnożników nakładu daje współczynnik dostosowania nakładu (EAF) . Typowe wartości dla EAF wahają się od 0,9 do 1,4.

Sterowniki kosztów Oceny
Bardzo niski Niski Nominalny Wysoki Bardzo wysoko Bardzo wysoka
Cechy produktu
Wymagana niezawodność oprogramowania 0,75 0,88 1.00 1.15 1.40  
Rozmiar bazy danych aplikacji   0,94 1.00 1.08 1.16  
Złożoność produktu 0,70 0,85 1.00 1.15 1.30 1,65
Atrybuty sprzętowe
Ograniczenia wydajności w czasie wykonywania     1.00 1.11 1.30 1,66
Ograniczenia pamięci     1.00 1.06 1.21 1,56
Zmienność środowiska maszyny wirtualnej   0,87 1.00 1.15 1.30  
Wymagany czas obrotu   0,87 1.00 1.07 1.15  
Atrybuty personelu
Możliwości analityka 1.46 1.19 1.00 0,86 0,71  
Doświadczenie w aplikacjach 1.29 1.13 1.00 0,91 0,82  
Możliwości inżyniera oprogramowania 1.42 1.17 1.00 0,86 0,70  
Doświadczenie z maszyną wirtualną 1.21 1.10 1.00 0,90    
Doświadczenie w języku programowania 1.14 1.07 1.00 0,95    
Atrybuty projektu
Zastosowanie metod inżynierii oprogramowania 1.24 1.10 1.00 0,91 0,82  
Korzystanie z narzędzi programowych 1.24 1.10 1.00 0,91 0,83  
Wymagany harmonogram rozwoju 1.23 1.08 1.00 1.04 1.10  

Formuła Intermediate Cocomo przyjmuje teraz postać:

E = a i (KLoC) b ja (EAF)

gdzie E to zastosowany nakład pracy w osobo-miesiącach, KLoC to szacunkowa liczba tysięcy dostarczonych linii kodu dla projektu, a EAF to współczynnik obliczony powyżej. Współczynnik ai oraz wykładnik b i podano w następnej tabeli.

Projekt oprogramowania ja _ b ja c ja
Organiczny 3.2 1.05 0,38
Bliźniak 3.0 1.12 0,35
Osadzony 2.8 1.20 0,32

Czas rozwoju D , a także obliczenie najbardziej efektywnej liczby Osób P wykorzystuje E w taki sam sposób, jak w Podstawowym COCOMO:

re = 2,5 mi do ja

Należy zauważyć, że oprócz EAF parametr a i różni się w modelu Intermediate COCOMO od modelu podstawowego:

Projekt oprogramowania b _
Organiczny 2.4
Bliźniak 3.0
Osadzony 3.6

Parametry b i c są takie same w obu modelach.

Zobacz też

Dalsza lektura

Linki zewnętrzne