COCOMO (ang. constructive cost model) – model szacowania liczby osobogodzin w procesie tworzenia oprogramowania.

Opracował go Barry Boehm w 1981 roku podczas pracy w Boeing Company na podstawie około 60 projektów informatycznych o różnej złożoności (od 2 KDSI do 100 KDSI) i napisanych w różnych językach programowania.

Postępowanie

edytuj

Ustalenie metryki

edytuj

Aby oszacować liczbę osobogodzin, należy najpierw oszacować, z ilu linii kodu lub punktów funkcyjnych będzie się składać gotowy projekt. Liczba linii kodu jest przedstawiana w KDSI (1000 (K) delivered source instructions [1 KDSI = 1000 linii].

Ustalenie złożoności

edytuj

Następnie należy wybrać, do której z trzech poniższych grup pasuje analizowany projekt.

  • Łatwy ("organic mode"), to projekt, w którym mały zespół posługuje się znanymi narzędziami pracy. Zna on sprzęt i oprogramowanie, z którymi rozwijany projekt będzie redagować. Presja czasu jest mała. Łatwe projekty są wielkości do max. 50 KDSI.
  • Średni ("semi-detached"), to projekt, w którym jeden z czynników z projektu prostego nie jest znany, np. zespół nie zna sprzętu, który przyjdzie mu programować itp. Takie projekty są zwykle wielkości do 300 KDSI.
  • Trudny ("embedded mode"), to bardzo złożony projekt, wiele czynników jest nieznanych lub należy uwzględnić szczególne procedury, np. w branży bankowej.

W „Intermediate COCOMO” dodatkowo analizowane są dodatkowe cztery atrybuty:

  • Produktu (wymagana czytelność stworzonego oprogramowania,wielkość bazy danych, skomplikowanie)
  • Sprzętu (ograniczenia związane z wydajnością, czy tworzony system jest systemem czasu rzeczywistego, ograniczenia pamięci)
  • Personelu (analiza możliwości, Doświadczenie w tworzeniu oprogramowania, doświadczenie w tworzeniu oprogramowania danego typu, doświadczenie w tworzeniu oprogramowania wykorzystującego dane środowisko, sprzęt czy język programowania)
  • Projektu (jakie narzędzia są potrzebne?, jakie metody tworzenia oprogramowania będą wykorzystywane?, jaki jest harmonogram projektu?, jaka jest presja czasu?)
E=ab(KDSI)bb
D=cb(E)db
P=E/D

gdzie E jest nakładem pracy w osobomiesiącach, D jest czasem, jaki jest potrzebny do rozwoju projektu (time to develop), a P oznacza liczbę osób, przy której projekt będzie najefektywniej zrealizowany.

Stałe ab, bb, cb i db są podane poniżej:

Stałe ab, bb, cb, db
Złożoność projektu ab bb cb db
Łatwy (organic) 2.4 1.05 2.5 0.32
Średni (semi-detached) 3.0 1.12 2.5 0.35
Trudny (embedded) 3.6 1.20 2.5 0.38

Zobacz też

edytuj