13 August 2012

COCOMO




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.


Intan Web Developer

A Wife and PhD candidate to-be in National Taiwan University of Science and Technology. Dreamer, Writer, Traveller, and Tech Addict. Like to travel everywhere and experience anything.

No comments:

Post a Comment

Anda bisa memasukkan komentar tentang postingan di sini...Terima Kasih ^.^