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
Ustalenie metryki
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
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?)
Wzory
- 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ż