SEJARAH
COCOMO (Contructive
Cost Model) adalah sebuat algoritma untuk melakukan estimasi dalam harga (cost)
sebuah software yang dikembangkan oleh Barry Boehm. Model ini menggunakan
formula dasar regresi dengan parameter yang berasal dari data project yang lama
dan karakteristik project baru.
COCOMO pertama
dipublikasikan pada tahun 1981 dalam buku Barry W. Boehm yang berjudul Software
Engineering Economics sebagai sebuah model untuk memperkirakan efforts (upaya),
cost (harga), dan schedule (jadwal) untuk software project. Ini menarik dari
study 63 project di TRW Aerospace dimana Barry Boehm dahulu menjadi direktur
Software Research and Technology pada tahun 1981. Study tersebut menjelaskan
range project dari 2000 sampai 100.000 baris code dan range bahasa pemrograman
dari Assembly ke PL/I. Project tersebut berbasiskan Waterfall Model dari sebuah
software development yang dahulu merupakan proses pengembangan software yang
lazim pada tahun 1981.
Model ini biasanya disebut sebagai COCOMO 81. Pada
tahun 1997 COCOMO II dikembangkan dan dipublikasikan pada tahun 2000 dalam buku
Software Cost Estimation with COCOMO II. COCOMO II merupakan pengganti COCOMO
81 dan lebih baik cocok untuk mengestimasi proyek pengembangan software modern.
Ini lebih banyak memberikan dukungan untuk proyek pengembangan software modern
dan proyek database yang terupdate. Kebutuhan untuk model baru datang sebagai
sebuah teknologi software development berpindah dari mainframe dan overnight
batch processing ke pengembangan desktop, reusability code, dan penggunaan
off-the-shelf komponen software.
DESKRIPSI
COCOMO merupakan sebuah non-linear model dari sebuah variable.
EFFORT
= a * SIZE b
SIZE dalam COCOMO dideskripsikan dalam satuan KDSI, atau ribuan
instruksi source code yang dikirimkan.
Estimasi bias terdiri dari banyak hal, seperti estimasi biaya, waktu,
resource, manpower, dsb. Estimasi dapat dilakukan dengan melihat banyak hal
detail dalam software development process.
Estimasi yang paling penting terjadi di awal, di dalam maupun sebelum
fase requirement. Disitulah sebuah perusahaan harus memutuskan apakah harus
memasukkan resources ke dalam sebuah project atau tidak. Keputusan ini
berdasarkan dalam sebuah estimasi berapa banyak resource yang akan dibutuhkan
ketika mengerjakan sebuah project.
MODELS
Terdapat berberapa model dalam sebuah project yang sesuai dengan jenis
project yang akan dikerjakan.
1. Small
Project
Pengukuran sebuah project dari kecil sampai
sedang dihasilkandalam sebuah model berikut:
EFFORT = a * SIZE + b
Magnitude dari effort adalah fungsi linier dari
ukuran sebuah project yang biasanya didefinisikan sebagai jumlah baris code.
Model ini bertahan sampai titik tertentu, biasanya project yang dikerjakan oleh
2-3 orang dalam sebuah tim.
2. Large
Project
Project yang dikerjakan oleh lebih dari 3
orang, memiliki model pengukuran sebagai berikut :
EFFORT = a * SIZE b
Ukuran project memiliki skala eksponensial.
Jadi, selama produksi semakin naik ukurannya, maka effort dalam memproduksi
sebuah produk berkembang lebih dari secara linier untuk b>=1.
TIPE PROJECT
Langkah pertama dalam mengestimasi dengan COCOMO adalah menentukan tipe
dari project yang sedang diproduksi. Karakteristik akan didefinisikan sebagai
sebuah nilai dalam model dengan parameter “a” dan “b”.
ORGANIC
Project yang dilakukan secara rutin oleh sebuah
perusahaan. Merupakan sebuah aplikasi yang sangat dipahami dan telah pernah
dilakukan atau dikerjakan oleh sbeuah tim yang bekerja dengan baik
bersama-sama. Tipe project ini akan berjalan dengan baik atau smoothly dan
memiliki sedikit titik antisipasi.
SEMI-DETACHED
Project yang memiliki tingkat kesulitan di
tengah. Project disini complex namun perusahaan dapat melakukannya berdasarkan
pengalaman yang dimiliki. Tim yang tersedia mampu untuk memanage system di
dalam domain aplikasi. Tim mungkin terdiri dari dari dua jenis yaitu yang
berpengalaman maupun tidak berpengalaman. Project tidak terlalu besar namun
tidak terlalu simple.
EMBEDDED
Sebuah project yang susah untuk dikerjakan
sebuah perusahaan. Mungkin domain dari aplikasi adalah sebuah aplikasi yang
sangat novel atau masih merupakan imajinasi atau mungkin perusahaan berada di
dalam sebuah area dimana memiliki pengalaman yang sangat sedikit. Mungkin dalam
tim yang tersedia adalah tim yang baru terbentuk dan tidak memiliki pengalaman
bersama.
Juga biasanya memiliki requirement tertentu
dalam hardware yang spesifik. Memiliki effort yang sangat besar Eksekusi constraint yang ketat menyebabkan
komplikasi dalam pengembangan. Regulasi dari beberapa otoritas juga dapat
menyebabkan constraint dalam project.
No comments:
Post a Comment
Anda bisa memasukkan komentar tentang postingan di sini...Terima Kasih ^.^