COCOMO atau Constructive Cost Model adalah
model algoritma estimasi biaya perangkat lunak yang dikembangkan oleh Barry
Boehm pada tahun 1981. Model ini menggunakan dasar regresi formula,
dengan parameter yang berasal dari data historis dan karakteristik
proyek-proyek saat ini.
Pada tahun 1981, Barry Boehm mendesain COCOMO
untuk memberikan estimasi jumlah Person-Months untuk mengembangkan
suatu produk software. Referensi pada model ini dikenal dengan nama COCOMO
81. Pada tahun 1990, muncul suatu model estimasi baru yang disebut dengan
COCOMO II. Secara umum referensi COCOMO sebelum 1995 merujuk pada original
COCOMO model yaitu COCOMO 81, kemudian setelah itu merujuk pada COCOMO II.
Model estimasi COCOMO telah digunakan oleh
ribuan project manager suatu proyek perangkat lunak, dan berdasarkan
pengalaman dari ratusan proyek sebelumnya. Tidak seperti model estimasi biaya
yang lain, COCOMO adalah model terbuka, sehingga semua detail dipublikasikan,
termasuk :
-
Dasar
persamaan perkiraan biaya.
-
Setiap
asumsi yang dibuat dalam model.
-
Setiap
definisi.
-
Biaya
yang disertakan dalam perkiraan dinyatakan secara eksplisit
Perhitungan paling fundamental dalam COCOMO
model adalah penggunaan Effort Equation(Persamaan Usaha) untuk
mengestimasi jumlah dari Person-Months yang dibutuhkan untuk
pengembangan proyek. Sebagian besar dari hasil-hasil lain COCOMO, termasuk
estimasi untukRequirement dan Maintenance berasal dari persamaan
tersebut.
Model Cocomo
Model
COCOMO dapat diaplikasikan dalam tiga tingkatan kelas:
1. Proyek organik, adalah proyek dengan ukuran relatif kecil, dengan anggota tim yang sudah berpengalaman, dan mampu bekerja pada permintaan yang relatif fleksibel.
2. Proyek sedang (semi-terpisah), adalah proyek yang memiliki ukuran dan tingkat kerumitan yang sedang, dan tiap anggota tim memiliki tingkat keahlian yang berbeda.
3. Proyek terintegrasi, adalah proyek yang dibangun dengan spesifikasi dan operasi yang ketat.
1. Proyek organik, adalah proyek dengan ukuran relatif kecil, dengan anggota tim yang sudah berpengalaman, dan mampu bekerja pada permintaan yang relatif fleksibel.
2. Proyek sedang (semi-terpisah), adalah proyek yang memiliki ukuran dan tingkat kerumitan yang sedang, dan tiap anggota tim memiliki tingkat keahlian yang berbeda.
3. Proyek terintegrasi, adalah proyek yang dibangun dengan spesifikasi dan operasi yang ketat.
Pengenalan Cocomo ini diawali tahun 70-an
akhir. Sang pelopor Boehm, melakukan riset dengan mengambil kasus dari 63
proyek perangkat lunak untuk membuat model matematisnya.Model dasar dari model
ini adalah persamaan:
effort = C x sizeM
Dikenal sebagai Constructive Cost Model
(COCOMO), model konstruksi biaya.
Dimana :
Dimana :
C dan M adalah koefisien konstanta ( > 1
), targantung pada tipe proyek dan organisasi, dengan cara melihat Tabel
Konstanta (sudah tersedia dari penelitian).
Ditentukan pula oleh: application experience, leadership capability, new environment and tools, requirements uncertainty, software reuse.
Ditentukan pula oleh: application experience, leadership capability, new environment and tools, requirements uncertainty, software reuse.
Model COCOMO dasar ditunjukkan dalam
persamaan 1, 2, dan 3 berikut ini:
(1,
2, 3)
Dimana :
E : besarnya usaha
(orang-bulan)
D : lama
waktu pengerjaan (bulan)
KLOC : estimasi jumlah
baris kode (ribuan)
P : jumlah
orang yang diperlukan.
Sedangkan koefisien ab, bb, cb, dan db diberikan
pada Tabel 1 berikut:
Tabel 1 . Koefisien Model COCOMO
Dasar
Implementasi Cocomo
1. Basic COCOMO (COCOMO I 1981)
Menghitung dari estimasi jumlah LOC (Lines of
Code). Pengenalan COCOMO ini diawali di akhir tahun 70-an. Sang pelopor, Boehm,
melakukan riset dengan mengambil kasus dari 63 proyek perangkat lunak untuk
membuat model matematisnya. Model dasar dari model ini adalah sebuah persamaan
sebagai berikut :
effort = C * size^M
ket: :
effort =
usaha yang dibutuhkan selama proyek, diukur dalam person-months;
c dan M
= konstanta-konstanta yang dihasilkan dalam riset Boehm dan tergantung pada
penggolongan besarnya proyek perangkat lunak
size =
estimasi jumlah baris kode yang dibutuhkan untuk implementasi, dalam satuan
KLOC (kilo lines of code).
COCOMO berlaku untuk tiga kelas proyek
perangkat lunak:
-
Organik
proyek : “kecil” tim dengan pengalaman “baik” bekerja dengan “kurang dari
kaku” persyaratan.
-
Semi-terpisah
proyek : “sedang” tim dengan pengalaman bekerja dicampur dengan campuran
persyaratan kaku kaku dan kurang dari.
-
Embedded
proyek : dikembangkan dalam satu set “ketat” kendala (hardware, software,
operasional).
2. Intermediate COCOMO (COCOMO II 1999)
Menghitung dari besarnya program dan cost
drivers (faktor-faktor yang berpengaruh langsung kepada proyek), seperti:
perangkat keras, personal, dan atribut-atribut proyek lainnya. Selain itu pada
jenis ini, COCOMO mempergunakan data-data historis dari proyek-proyek yang
pernah menggunakan COCOMO I, dan terdaftar pengelolaan proyeknya dalam COCOMO
database. yang dijabarkan dalam kategori dan sub-kategori sebagai berikut :
a.
Atribut
produk (product attributes) :
1.
Reliabilitas
perangkat lunak yang diperlukan (RELY)
2.
Ukuran
basis data aplikasi (DATA)
3.
Kompleksitas
produk (CPLX)
b. Atribut perangkat keras (computer
attributes)
1.
Waktu
eksekusi program ketika dijalankan (TIME)
2.
Memori
yang dipakai (STOR)
3.
Kecepatan
mesin virtual (VIRT)
4.
Waktu
yang diperlukan untuk mengeksekusi perintah (TURN)
c.
Atribut
sumber daya manusia (personnel attributes)
1.
Kemampuan
analisis (ACAP)
2.
Kemampuan
ahli perangkat lunak (PCAP)
3.
Pengalaman
membuat aplikasi (AEXP)
4.
Pengalaman
penggunaan mesin virtual (VEXP)
5.
Pengalaman
dalam menggunakan bahasa pemrograman (LEXP)
d. Atribut proyek (project attributes)
1. Penggunaan sistem pemrograman modern(MODP)
2. Penggunaan perangkat lunak (TOOL)
3. Jadwal pengembangan yang diperlukan (SCED)
COCOMO II EFFORT EQUATION
Model COCOMO II ini membuat estimasi dari
usaha yang dibutuhkan (diukur dari Person-Month) berdasarkan keutamaan dalam
estimasi anda akan ukuran proyek perangkat lunak (yang diukur dalam ribuan SLOC
atau KSLOC) :
Effort = 2,94 * EAF * (KSLOC)E
ket:
EAF = Effort Adjustment Factor yang berasal dari Cost Drivers adalah produk dari effort multipliersyang terhubung pada masing-masing cost drivers untuk proyek.
E = Eksponen yang berasal dari Scale Drivers.
EAF = Effort Adjustment Factor yang berasal dari Cost Drivers adalah produk dari effort multipliersyang terhubung pada masing-masing cost drivers untuk proyek.
E = Eksponen yang berasal dari Scale Drivers.
COCOMO II SCHEDULE EQUATION
COCOMO II Schedule Equation memprediksi
jumlah bulan yang dibutuhkan untuk menyelesaikan proyek perangkat lunak anda.
Durasi dari proyek berdasarkan pada usaha yang diprediksi oleh effort equation
:
Duration = 3,67 * (Effort)SE
Dimana :
Effort = usaha dari COCOMO II effort
equation.
SE = eksponen scheduled equation yang berasal
dari Scale Drivers.
COCOMO II memiliki 3 model berbeda, yakni:
a.
The
Application Composition Model
Sesuai untuk pembangunan proyek dengan tools GUI-builder yang modern.
Berdasar pada Object Points baru.
b.
The
Early Design Model
Model ini dapat digunakan untuk mendapat estimasi kasar biaya dan durasi
dari suatu proyek sebelum menentukan arsitektur keseluruhan proyek tersebut.
Model ini menggunakan sekumpulan kecil cost driver baru dan persamaan estimasi
baru. Berdasar pada Unadjusted Function Points atau KSLOC.
c.
The
Post-Architecture Model
Ini adalah model COCOMO II yang paling detail. Digunakannya setelah
membentuk arsitektur proyek secara menyeluruh. Model ini memiliki cost driver
baru, aturan penghitungan baris yang baru, dan persamaan baru.
3. Advance COCOMO
Memperhitungkan semua karakteristik
dari intermediate di atas dan cost drivers dari setiap fase
(analisis, desain, implementasi, dsb) dalam siklus hidup pengembangan perangkat
lunak. Model rinci kegunaan yang berbeda upaya pengali untuk setiap driver
biaya atribut tersebut. Sensitif pengganda tahap upaya masing-masing untuk
menentukan jumlah usaha yang dibutuhkan untuk menyelesaikan setiap tahap.
Pada COCOMO rinci, upaya dihitung sebagai
fungsi dari ukuran program dan satu set driver biaya yang diberikan sesuai
dengan tiap tahap siklus hidup rekayasa perangkat lunak. Fase yang digunakan
dalam COCOMO rinci perencanaan kebutuhan dan perancangan perangkat lunak,
perancangan detil, kode dan menguji unit, dan pengujian integrasi.
Referensi: