Kamis, April 14, 2011

COCOMO

COCOMO (Constructive Cost Model )

Constructive Cost Model (COCOMO) Merupakan algoritma estimasi biaya perangkat lunak model yang dikembangkan oleh Barry Boehm. Model ini menggunakan rumus regresi dasar, dengan parameter yang berasal dari data historis dan karakteristik proyek proyek saat ini.

COCOMO terdiri dari tiga bentuk hirarki semakin rinci dan akurat. Tingkat pertama, Basic COCOMO adalah baik untuk cepat, order awal, kasar estimasi besarnya biaya perangkat lunak, namun akurasinya terbatas karena kurangnya faktor untuk memperhitungkan perbedaan atribut proyek (Cost Drivers). Intermediate COCOMO mengambil Driver Biaya ini diperhitungkan dan Rincian tambahan COCOMO account untuk pengaruh fase proyek individu.

Ada tiga model cocomo, diantaranya ialah:

1. Dasar Cocomo

Dengan menggunakan estimasi parameter persamaan (dibedakan menurut tipe sistem yang berbeda) upaya pengembangan dan pembangunan durasi dihitung berdasarkan perkiraan DSI.
Dengan rincian untuk fase ini diwujudkan dalam persentase. Dalam hubungan ini dibedakan menurut tipe sistem (organik-batch, sebagian bersambung-on-line, embedded-real-time) dan ukuran proyek (kecil, menengah, sedang, besar, sangat besar).

Model COCOMO dapat diaplikasikan dalam tiga tingkatan kelas:

• Proyek organik (organic mode) Adalah proyek dengan ukuran relatif kecil, dengan anggota tim yang sudah berpengalaman, dan mampu bekerja pada permintaan yang relatif fleksibel.
• Proyek sedang (semi-detached mode)Merupakan proyek yang memiliki ukuran dan tingkat kerumitan yang sedang, dan tiap anggota tim memiliki tingkat keahlian yang berbeda
• Proyek terintegrasi (embedded mode)Proyek yang dibangun dengan spesifikasi dan operasi yang ketat

Model COCOMO dasar ditunjukkan dalam persamaan 1, 2, dan 3 berikut ini:

keterangan :
• E : besarnya usaha (orang-bulan)
• D : lama waktu pengerjaan (bulan)
• KLOC : estimasi jumlah baris kode (ribuan)
• P : jumlah orang yang diperlukan.

2. Intermediate Cocomo

Persamaan estimasi sekarang mempertimbangkan (terlepas dari DSI) 15 pengaruh faktor-faktor; ini adalah atribut produk (seperti kehandalan perangkat lunak, ukuran database, kompleksitas), komputer atribut-atribut (seperti pembatasan waktu komputasi, pembatasan memori utama), personil atribut ( seperti aplikasi pemrograman dan pengalaman, pengetahuan tentang bahasa pemrograman), dan proyek atribut (seperti lingkungan pengembangan perangkat lunak, tekanan waktu pengembangan). Tingkat pengaruh yang dapat diklasifikasikan sebagai sangat rendah, rendah, normal, tinggi, sangat tinggi, ekstra tinggi; para pengganda dapat dibaca dari tabel yang tersedia.

3. Detil Cocomo

Dalam hal ini adalah rincian untuk fase tidak diwujudkan dalam persentase, tetapi dengan cara faktor-faktor pengaruh dialokasikan untuk fase. Pada saat yang sama, maka dibedakan menurut tiga tingkatan hirarki produk (modul, subsistem, sistem), produk yang berhubungan dengan faktor-faktor pengaruh sekarang dipertimbangkan dalam persamaan estimasi yang sesuai. Selain itu detail cocomo dapat menghubungkan semua karakteristik versi intermediate dengan penilaian terhadap pengaruh pengendali biaya pada setiap langkah (analisis, perancangan, dll) dari proses rekayasa PL.

Sumber :
1. http://haryanto.staff.gunadarma.ac.id/Downloads/files/16705/estimas1.pdf
2. http://kur2003.if.itb.ac.id/file/Manajemen%20Proyek.pdf
3. http://iwayan.info/Lecture/PengelProySI_S1/BukuAjar/PPSI_BAB13.pdf
4. http://yhu-dhie.blogspot.com/2011/04/definisi-dan-jenis-jenis-cocomo.html
5. http://www.dicyt.gub.uy/pdt/files/6.2.1_-_cocomo_model.pdf
6. http://www.ifi.uzh.ch/req/courses/seminar_ws02/reports/Seminar_4.pdf

Sabtu, Maret 19, 2011

Serba serbi Open Source

Keuntungan Open Source Software

Beberapa karakteristik yang menyebabkan Open Source model mendapatkan keuntungan :
a. Ketersedian source code dan hak untuk memodifikasi
Ini merupakan hal yang penting. Hal ini menyebakan perubahan dan improvisasi pada produk software. Selain itu, hal ini memunculkan kemungkinan untuk meletakan code pada hardware baru, agar dapat diadaptasi pada situasi yang berubah-ubah, dan menjangkau pemahaman bagimana sistem itu bekerja secara detail.
b. Hak untuk mendistribusikan modifikasi dan perbaikan pada code
Hal ini merupakan titik perbedaan Open Source Software dengan Free Software. Pada kenyataannya, hak pendistribusian diakui dan merupakan hal yang umum, ini adalah hal yang berpengaruh bagi sekumpulan developer ( pengembang ) untuk bekerja bersama dalam project Open Source Software.
c. Hak untuk menggunakan software
Ini merupakan kombinasi dari hak pendistribusian, menjamin ( jika software cukup berguna ) beberapa user yang mana membantu dalam menciptakan pasar untuk mendukung dan berlangganan software. Hal ini juga membantu dalam improvisasi kualitas dari produk dan improvisasi secara fungsi. Selain itu akan menyebabkan sejumlah user untuk mencoba produk dan mungkin menggunakannya secara regler.

dan yang lainnya seperti :
1. Adanya hak untuk mendistribusikan modifikasi dan perbaikan pada code.
2. Ketersediaan source code dan hak untuk memodifikasi
3. Tidak disandera vendor.
Open source menggunakan format data terbuka, sehingga data menjadi transparan dan bisa dengan bebas diproses di sistem komputer yang berbeda-beda, sambil tetap menjaga keamananya. Dengan demikian, konsumen tidak lagi terikat pada kemauan vendor untuk dapat menggunakan data-datanya.
4. Banyaknya tenaga (SDM) untuk mengerjakan proyek.
Proyek open source biasanya menarik banyak developer, misalnya: pengembangan web server Apache menarik ribuan orang untuk ikut mengembangkan dan memantau.
5. Kesalahan (bugs, error) lebih cepat ditemukan dan diperbaiki.
Hal ini dikarenakan jumlah developer-nya sangat banyak dan tidak dibatasi. Visual inspection (eye-balling) merupakan salah satu metodologi pencarian bugs yang paling efektif. Selain itu, source code tersedia membuat setiap orang dapat mengusulkan perbaikan tanpa harus menunggu dari vendor.
6. Kualitas produk lebih terjamin.
Hal ini dikarenakan evaluasi dapat dilakukan oleh banyak orang, sehingga kualitas produk dapat lebih baik. Namun, hal ini hanya berlaku untuk produk open source yang ramai dikembangkan orang. Tidak selamanya open source dikembangkan oleh banyak orang, karena bisa juga dilakukan oleh individual.
7. Lebih aman (secure).
Sifatnya yang terbuka membuat produk open source dapat dievaluasi oleh siapa pun. Public scrutinity merupakan salah satu komponen penting dalam bidang keamanan. Secara umum, open source memiliki potensi untuk lebih aman meskipun dia tidak terkendali secara otomatis. Namun, hal ini dapat tercapai, jika security by obscurity bukan tujuan utamanya.
8. Hemat biaya.Sebagian besar developer ini tidak dibayar/digaji.
Dengan demikian, biaya dapat dihemat dan digunakan untuk pengeluaran yang tidak dapat ditunda, misal membeli server untuk hosting web.
9. Tidak mengulangi development.
Pengulangan (re-inventing the wheel) merupakan pemborosan. Adanya source code yang terbuka membuka jalan bagi seseorang programmer untuk melihat solusi-solusi yang pernah dikerjakan oleh orang lain. Namun, pada kenyataannya tetap banyak pengulangan.
10. User dapat membuat salinan tak terbatas, menjual atau memberikan bebas hasil lisensi.
11. User dapat memodifikasi dan mengunci agar hanya kalangan terbatas yang dapat membaca kode dan memodifikasinya.
12. Mencegah software privacy yang melanggar hukum.


Kerugian Open Source Software

Beberapa karakteristik yang menyebabkan Open Source model mendapatkan keuntungan :
a. Tidak ada garansi dari pengembangan
Biasanya terjadi ketika sebuah project dimulai tanpa dukungan yang kuat dari satu atau beberapa perusahaan, memunculkan celah awal ketika sumber code masih mentah dan pengembangan dasar masih dalam pembangunan.
b. Masalah yang berhubungan dengan intelektual property
Pada saat ini, beberapa negara menerima software dan algoritma yang dipatentkan. Hal ini sangat sulit untuk diketahui jika beberapa motede utama untuk menyelesaikan masalah software di patenkan sehingga beberapa komunitas dapat dianggap bersalah dalam pelanggaran intelektual property.
c. Kesulitan dalam mengetahui status project
Tidak banyak iklan bagi open source software, biasanya beberapa project secara tidak langsung ditangani oleh perusahaan yang mampu berinvestasi dan melakukan merketing.

Lisensi dari Open Source Software
Beberapa lisensi umum pada open source software yaitu :
a. BSD ( Berkeley Software Distribution )
Secara ringkas, pendistribusian dapat dilakukan sepanjang berhubungan dengan software, meliputi penggunaan propierty produk. Pencipta hanya ingin pekerjaan mereka dikenali dan tanpa memerlukan biaya. Hal ini menjadi penting karena lisensi ini tidak melibatkan beberapa pembatasan dengan menjamin dan berorientasi pada turunan awal open source.
b. GPL ( GNU General Public Licence )
Ini adalah lisensi bagi software yang bernaung dalam distribusi GNU Project. Saat ini masih dapat kita jumpai / menemukan banyak software yang tidak berkaitan dengan GNU Project. GPL secara hati-hati didesain untuk mempromosikan produk dari free software dan karena itu, secara eksplisit melarang beberapa tindakan pada software yang dapat merusak integrasi dari GPL software pada program proprietary ( kepemilkan ). GPL berdasar pada UU Internasional yang menjamin pelaksanaannya. Karakterisitik utama dari GPL meliputi pendistribusian, tapi hanya jika souce code itu tersedia dan juga dijamin; serta mengijinkan pendistribusian source; mengijinkan modifikasi tanpa pembatasan dan integrasi lengkap dengan software lain.
c. MPL ( Mozilla Public Licence )
Ini adalah lisensi yang dibuat oleh Netscape dalam mendistribusi code dari Mozilla, versi baru dari navigator jaringan. Banyak respek yang mirip dengan GPL tetapi lebih berorientasi pada perusahaan level enterprise.
d. Lainya seperti : Qt ( oleh Troll-Tech ), X Consortium dll

yang lainnya seperti :
1. Kurangnya SDM yang dapat memanfaatkan open source.
Ketersediaan source code yang diberikan dapat menjadi sia-sia, jika SDM yang ada tidak dapat menggunakannya. SDM yang ada ternyata hanya mampu menggunakan produk saja, Jika demikian, maka tidak ada bedanya produk open source dan yang propriertary dan tertutup.
2. Tidak adanya proteksi terhadap HaKI.
Kebanyakan orang masih menganggap bahwa open source merupakan aset yang harus dijaga kerahasiannya. Hal ini dikaitkan dengan besarnya usaha yang sudah dikeluarkan untuk membuat produk tersebut. Karena sifatnya dapat di-abuse oleh orang-orang untuk mencuri ide dan karya orang lain.
3. Kesulitan dalam mengetahui status project.
4. Tidak ada garansi dari pengembangan.
5. Limitasi modifikasi oleh orang – orang tertentu yang membuat atau memodifikasi sebelumnya.
6. Untuk beberapa platform, contohnya JAVA yang memiliki prinsip satu tulis dan bisa dijalankan dimana saja, akan tetapi ada beberapa hal dari JAVA yang tidak competible dengan platform lainnya. Contohnya J2SE yang SWT – AWT bridge-nya belum bisa dijalankan di platform Mac OS.
7. Open Source digunakan secara sharing, dapat menimbulkan resiko kurangnya diferensiasi antara satu software dengan yang lain, apabila kebetulan menggunakan beberapa Open Source yang sama.


sumber :
http://nyenyenk.blogspot.com/2008/12/keuntungan-dan-kerugian-dari-open.html
http://amaronly.blogsome.com/2008/01/15/keuntungan-open-source/
http://freezcha.wordpress.com/2011/03/18/keuntungan-dan-kerugian-penggunaan-open-source/

Selasa, November 30, 2010

Pendekatan Pengembangan Sistem

Ada beberapa pendekatan pengembangan sistem antara lain adalah :

• Structured analysis and structured design
Pendekatan ini lebih berfokus pada bagaimana mereduksi waktu dan maintenace dalam pengembangan sistem. Pendekatan ini juga langsung mengintegrasikan perubahan jika diperlukan.

• Object oriented analysis and design
Pendekatan baru untuk pengembangan sistem, sering disebut sebagai pendekatan ketiga setelah pendekatan yang berorientasi data dan berorientasi proses.
OOAD adalah metode pengembangan sistem yang lebih menekankan pada objek dibandingkan dengan data atau proses. Ada beberapa ciri khas dari pendekatan ini yaitu object, Inheritance dan object class

• Prototyping
adalah proses iterative dalam pengembangan sistem dimana requirement diubah ke dalam sistem yang bekerja (working system) yang secara terus menerus diperbaiki melalui kerjasama antara user dan analis.
Prototype juga bisa dibangun melalui beberapa tool pengembangan untuk menyederhanakan proses. Prototyping merupakan bentuk dari Rapid Application Development (RAD). Beberapa kerugian RAD:
• RAD mungkin mengesampingkan prinsip-prinsip
rekayasa perangkat lunak
• Menghasilkan inkonsistensi pada modul-modul sistem
• Tidak cocok dengan standar
• Kekurangan prinsip reusability komponen

• Joint Application Design (JAD)
Pada akhir 1970 an personil pengembangan sistem di IBM mengembangan proses baru untuk mengumpulkan requiremen SI dan mereview desain dengan nama JAD.
JAD adalah proses terstruktur dimana user, manager dan analis bekerja bersama-sama selama beberapa hari dalam 1 pertemuan bersama untuk mengumpulkan requiremen sistem yang akan dibangun.

• Participatory design
End user dilibatkan dalam pengembangan sistem dalam satu meja untuk persetujuan tentang sistem requirement dan sistem desain.
Pada perkembangannya desain sistem banyak disupport oleh pengggunaan software dan teknologi baru. Analisis
mengandalkan tool dengan tujuan :
o Meningkatkan produktifitas
o Berkomunikasi lebih efektif dengan user
o Mengintegrasikan pekerjaan yang telah dilaksanakan
dari awal pengembangan sampai akhir.

Contoh-contoh tool yang digunakan adalah :
–Computer-Aided Systems Engineering (CASE -tools)
–Application Development Environments (ADE -tools)
–Process and Project Managers