Jumat, 05 Juli 2013

COCOMO

1. Sejarah COCOMO
Cocomo (Constructive Cost Model) yang dikembangkan oleh W. Barry Boehm pada tahun 1981, yang merupakan kombinasi dari estimasi parameter persamaan dan metode pembobotan. Berdasarkan perkiraan instruksi (Instruksi Sumber Terkirim DSI), usaha dihitung dengan memperhatikan usaha baik kualitas dan produktivitas faktor. 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.
Pada tahun 1997 COCOMO II telah dikembangkan dan akhirnya diterbitkan pada tahun 2000 dalam buku Estimasi Biaya COCOMO II Software dengan COCOMO II. adalah penerus dari COCOMO 81 dan lebih cocok untuk mengestimasi proyek pengembangan perangkat lunak modern. Hal ini memberikan lebih banyak dukungan untuk proses pengembangan perangkat lunak modern, dan basis data proyek diperbarui. Kebutuhan model baru datang sebagai perangkat lunak teknologi pengembangan pindah dari batch processing mainframe dan malam untuk pengembangan desktop, usabilitas kode dan penggunaan komponen software off-the-rak. Artikel ini merujuk pada COCOMO 81.

 
2. Pengertian COCOMO
COCOMO adalah sebuah model yang dikembangkan untuk memperoleh perkiraan dari jumlah orang-buan yang diperlukan untuk mengembangkan suatu produk perangkat lunak. Satu hasil observasi yang paling penting dalam model ini adalah bahwa motivasi dari tiap orang yang terlibat ditempatkan sebaai titik berat. Hal ini menunjukkan bahwa kepemimpinan dan kerja sama tim merupakan sesuatu yang penting, namun demikian poin pada bagian ini sering diabaikan.
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

 

3. Basic COCOMO (COCOMO 81)

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 * size^M , dimana
  • effort adalah usaha yang dibutuhkan selama proyek, diukur dalam person-months;
  • c dan M adalah konstanta-konstanta yang dihasilkan dalam riset Boehm dan tergantung pada penggolongan besarnya proyek perangkat lunak;
  • size adalah estimasi jumlah baris kode yang dibutuhkan untuk implementasi, dalam satuan KLOC (kilo lines of code);

     

4. Konstanta COCOMO

Penggolongan suatu proyek perangkat lunak didasarkan pada sistem aplikasi dimana perangkat lunak tersebut dikembangkan dan lingkungan pendukungnya.
Penggolongan ini terbagi atas:
  • Organic mode: digunakan pada proyek-proyek kecil dengan sedikit pekerja dan dikembangkan pada lingkungan yang tidak memerlukan program antar-muka (interface) yang kompleks, contoh: pembuatan situs mandiri untuk perusahaan;
  • Semi-detached mode: dalam mode ini produk dikembangkan dalam sistem yang memiliki banyak batasan atau syarat tertentu untuk pemrosesan dalam perangkat keras dan lunak tertentu. Apabila terjadi perubahan pada sistem maka akan menyebabkan biaya produksi akan bertambah tinggi, contoh: transaksi sistem pada database sebuah bank;
  • Embedded mode: mode ini merupakan kombinasi antara dua mode di atas dan memiliki karekteristik gabungan antara keduanya. Proyek mode ini dikembangkan ke dalam serangkaian perangkat keras, lunak dan batasan operasional yang ketat, contoh: aplikasi pengontrolan penerbangan pada pesawat terbang. 
Adapun konstanta yang dibutuhkan pada masing-masing mode tersebut adalah (didapatkan dari hasil riset Boehm):
Tipe sistem 
ca
Ma
cb
Mb
Organic 
2.4 
1.05 
2.5 
0.38 
Semi-detached 
3.0 
1.12 
2.5 
0.35 
Embedded 
3.6 
1.20 
2.5 
0.32 

 
Dengan demikian rumusan dasar di atas, dapat digunakan untuk perhitungan-perhitungan sebagai berikut:
  • (Eeffort = CA x (size)^ MA
    (satuan: ManMonth dalam
    COCOMO
    I
    (Person Month dalam COCOMO II) = 152 jam kerja);
  • (Dduration = CB x E^MB
        (satuan: Month);
  • Productivity= size / E (satuan: KLOC/Man Month);
  • Average staffing = E / D (satuan: FTE = Full Time Employees, yaitu jumlah orang yang bekerja penuh dalam 1 hari kerja ~ 8 jam )

     

5.    Penggunaan COCOMO

Adapun langkah-langkah untuk menghitung estimasi dengan menggunakan Basic COCOMO adalah:
1: Menghitung estimasi informasi nilai total domain, yaitu informasi mengenai karakter spesifik perangkat lunak yang akan dihasilkan;
2: Menyesuaikan kompleksitas proyek berdasarkan faktor pemberat dan "cost drivers" (∑ Fij ); kemudian menghitung estimasi jumlah titik fungsi (Function Points); 
FP = nilai total domain * [0.65 + 0.01 * ∑ Fij];
3: Menghitung estimasi LOC (Line of Code). Tekniknya dasarnya sama dengan yang digunakan dalam perhitunga PERT (three points estimation), dengan cara;
  • EV = (Sopt + 4 Sm + Spess) / 6, dimana:
    EV berarti Estimated Value;
  • Atau menghitung KLOC/ FP (dari tabel
    hasil
    riset
    )
    berdasar pada bahasa pemrograman yang digunakan dalam implementasi proyek perangkat lunak;
4: Memilih kompleksitas proyek (menentukan C dan M), dari organic, embedded atau semi-detached model.
5: Menghitung E = effort dan D = duration, dengan demikian akan menghasilkan estimasi usaha, biaya dan waktu.

 

6. Menghitung nilai domain

Untuk menghitung karakter spesifik produk perangkat lunak yang akan dihasilkan, digunakan analisis domain sebagai berikut:
Informasi nilai domain (Simple Average Complex)    Jumlah
Jumlah input pemakai     3     4         6      *         =
Jumlah output pemakai     4 5         7      *         =
Jumlah inquiry pemakai     3     4         6      *         =
Jumlah file             7     10     15      *         =
Jumlah eksternal interface     5     7     10      *         =      + 

 
Keterangan:
  • Input pemakai: setiap input data dari user yang dipakai untuk menjalankan aplikasi.
  • Output pemakai: setiap hasil output dari proses yang ditampilkan kepada user.
  • Inquiry pemakai: setiap on-line input yang menghasilkan responsi software secara langsung.
  • Jumlah file: setiap master file yang menjadi bagian dari aplikasi.
  • Eksternal interface: setiap interface (sarana) eksternal yang menyalurkan informasi dari sistem satu ke sistem lainnya.

 

7. Menghitung faktor pemberat ("cost drivers")

Setelah total analisis domain selesai dihitung, langkah berikutnya adalah menghitung faktor pemberat, sebagai berikut:
Ada 14 faktor pemberat yang diperhitungkan, dengan masing-masing berbobot dari 0 sampai dengan 5, bergantung pada kebutuhan sebuah produk perangkat lunak terhadap masing-masing faktor tersebut, dengan urutan: 
(No Influence = tidak berpengaruh, Incidental = terkadang dibutuhkan, Moderate =dibutuhkan kurang dari rata-rata, Average = rata-rata dibutuhkan, Significant =dibutuhkan namun tidak harus, Essential = harus terimplementasi)
Ke-14 faktor pemberat yang dimaksudkan adalah:
0
1 
2 
3 
4 
5 
      
      
      
      
      
      
      
      
      
      
      
      
      
      
  1. Backup dan recovery
  2. Komunikasi data
  3. Proses terdistribusi
  4. Kepentingan performa
  5. Keberadaan lingkungan operasi
  6. Online data entry
  7. Input melalui beberapa tampilan / operasi
  8. Peng-update-an file master secara online
  9. Kompleksitas nilai 'domain' (tahap1) diatas
  10. Kompleksitas proses internal aplikasi
  11. Perulangan (reuse) penggunaan code
  12. Ketersediaan rancangan untuk konversi dan instalasi
  13. Rancangan untuk pengulangan instalasi di lingkungan yang berbeda
  14. Fleksibilitas bagi pemakai

 
Total Fij
Dari sini dapat dihitung estimasi titik fungsi (function points), sebagai berikut:
FP = nilai total domain * [0.65 + 0.01 * ∑ Fij];

 

8. Estimasi LOC

Langkah berikutnya dalam proses estimasi COCOMO adalah menghitung jumlah Line of Code (LOC). 
Diawali oleh penelitian Boehm, muncul kemudian estimasi jumlah LOC untuk berbagai bahasa pemrograman yang digunakan dalam implementasi proyek perangkat lunak. Estimasi ini tidak bersifat mutlak, karena perhitungannya didapatkan dari data-data historis berbagai proyek perangkat lunak, dan diambil nilai rata-ratanya dengan menggunakan teknik PERT. Data-data ini bersifat statistis dengan mengandalkan kekuatan distribusi rata-rata (mean distribution).
Tabel LOC/FP untuk berbagai jenis bahasa pemrograman dapat dilihat di bawah ini (data darihttp://www.engin.umd.umich.edu/CIS/course.des/cis525/js/f00/gamel/cocomo.html, bandingkan juga dengan tabel dari [ALB83, JON91,ROG97]):

 
Programming Language  
LOC/FP 
(rata-rata)  
Bahasa Assembly
320
C
128
COBOL
105
Fortran
105
Pascal
90
Ada
70
Bahasa Berorientasi Obyek
30
Bahasa Generasi Keempat (4GLs), yaitu bahasa yang digunakan spesifik untuk suatu tools, biasa untuk aplikasi database, contoh: PL/SQL dalam Oracle.
20
Generator Kode
15
Spreadsheets
6
Desain Grafis (icons)
4

 
Jumlah LOC/FP ini harus diubah ke KLOC/FP (Kilo LOC) dalam perhitungan, dengan membaginya dengan 1000 (sesuai dengan satuan dari hasil riset Boehm). Pada akhir perhitungan tahap ini akan dihasilkan size, yaitu jumlah baris kode dalam satuan KLOC.
Tahap selanjutnya adalah menggunakan KLOC yang dihasilkan disini untuk mengestimasikan: usaha (effort), waktu (duration), dan jumlah pekerja yang dibutuhkan dalam proyek (FTE).


Sumber:

Tidak ada komentar:

Posting Komentar