April 05, 2012

Software Open Source

Apa itu Software Open Source???

  Menurut Wikipedia Bahasa Indonesia, Perangkat lunak (software) adalah istilah umum untuk data yang diformat dan disimpan secara digital, termasuk program komputer, dokumentasinya, dan berbagai informasi yang bisa dibaca dan ditulis oleh komputer. Dengan kata lain, bagian sistem komputer yang tidak berwujud. Sedangkan, Menurut thesaurus Bahasa Indonesia, kata free bisa diartikan sebagai : bebas, blong, Cuma-Cuma, gratis, luang, meluputkan, membebaskan, terluang. Adapun secara istilah, free adalah kebebasan anda untuk menyalin software serta menggunakannya secara legal dikomputer manapun tanpa harus membayar biaya tertentu.

  Adapun Open Source, secara istilah diartikan sebagai prinsip-prinsip dan metodelogi yang bertujuan mempromosikan akses terbuka terhadap tahapan produksi dan desain pada sebuah produk atau sumber daya apapun. Istilah Open Source lazim diterapkan pada kode sumber (source code) dari software yang dibuat untuk kepentingan public secara umum dengan tidak adanya batasan hak atas kekayaan intelektual. Prinsip ini menyediakan kebebasan kepada user untuk membuat isi sebuah software secara bertahap maupun berkolaborasi.

  Istilah “open source” ini kemudian menjadi terkenal setelah dipublikasikan oleh tim O’Reilly melalui sebuah event yang diadakan di bulan April 1999. Event ini dihadiri oleh para selebritis IT yang terlibat dalam project-project free open source, seperti Linus Torvallds (penemu Linux), Larry Wall, Brian Behlendorf, Eric, Allman, Guido van Rossum (pembuat python), Michael Tieman, Paul Vixie, Jamie Zawinski dari Netscape, dan Eric Raymond. Untuk menjaga perkembangan dunia open source, dibentuklah sebuah badan yang disebut Open Source Initiative. Badan ini didirikan tahu 1998 oleh Eric S. Raymond dan Bruce Perens. Definisi open source yang digunakan disini Debian Free Software Guidelines.

  Saat ini, perkembangan Open Source tidak hanya terbatas pada dunia IT, namun juga pada beberapa hal sebagai berikut : Pertanian, Kesehatan dan Farmasi, Teknologi, Media, Pendidikan, Pemerintahan dan Kesenian.

Kelebihan software open source :
•  Software open source yang biasanya dikembangkan oleh komunitas atau institusi non profit juga memiliki kemampuan yang sangat powerfull karena software dikembangkan secara bersama-sama sehingga masalah atau bug pada software cepat teratasi.
•   Fitur dan kemampuan software open source sangat kompleks dan banyak karena bisa dikembangkan oleh siapa saja tanpa terkecuali.
•   Software open source berlisensi GPL sehingga user tidak dikenakan biaya untuk mempergunakannya.
Kekurangan software open source :
•  GUI dari software biasanya kurang memuaskan untuk user yang awam.
•  Terkadang ada beberapa software open source yang tidak bisa menggantikan jenis software berbayar.
•   Software open source biasanya kurang diminati oleh user awam karena biasanya sulit dalam instalasi atau penggunaan.

Setelah softholic mania melihat kelebihan dan kekurangan antara software berbayar dengan software open source, sekarang saatnya kita bandingkan beberapa software secara langsung.
1.         Sistem Operasi (OS)
Open source : Linux (debian, ubuntu, mint, slackware, backtrack, open suse).
Software berbayar : Windows (XP, Vista, 7, 8), MacOs.
2.         Photo/Image editor
Open source : GIMP, InkScape, Digikam, Abhishek’s GLIMPSE.
Software berbayar : Adobe Photoshop, Corel Draw.
3.         Office editor
Open source : LibreOffice, OpenOffice.
 Software berbayar : KingOffice, MsOffice (2003, 2007, 2010).
4.         Flow / Diagram
Open source : Dia, Umbrello.
Software berbayar : MsVisio.
5.         Text Editor
Open source : Kwrite, Bluefish Editor.
Software berbayar : Notepad.

Sumber 1
Sumber 2

Kriteria Baik Manajer Proyek


Badiru dan Pulat (1995) menjelaskan bahwa peran seorang manajer proyek akan menggunakan sumber daya yang tersedia untuk memenuhi sasaran dan tujuan. Seorang manajer proyek mempunyai tanggung jawab yang utama dalam memastikan bahwa suatu proyek diterapkan menurut rencana proyek. Manajer proyek mempunyai jarak interaksi yang luas di dalam dan di luar lingkungan proyek itu.
Shtub (1994) menggambarkan diagram kemampuan yang penting untuk dimiliki oleh seorang manajer proyek. Diantaranya adalah:
•     Budgeting and Cost Skills
•     Schedulling and Time Management Skills
•     Technical Skills
•     Leadership Skills
•     Resource Management and Human Relationship Skills
•     Communication Skills
•     Negotiating Skills
•     Marketing, Contracting, Customer Relationship Skills
•     Problem Solving

Setidaknya ada 3 (tiga) karakteristik yang dapat digunakan untuk mengukur tingkat kualifikasi seseorang untuk menjadi Manajer Proyek yaitu:
•     Karakter Pribadinya
Memiliki pemahaman yang menyeluruh mengenai teknis pekerjaan dari proyek yang dikelola olehnya.
ü  Mampu bertindak sebagai seorang pengambil keputusan yang handal dan bertanggung jawab.
ü  Memiliki integritas diri yang baik namun tetap mampu menghadirkan suasana yang mendukung di lingkungan tempat dia bekerja.
ü  Asertif
ü  Memiliki pengalaman dan keahlian yang memadai dalam mengelola waktu dan manusia.

•     Karakteristik Kemampuan Terkait dengan Proyek yang Dikelola
ü  Memiliki komitmen yang kuat dalam meraih tujuan dan keberhasilan proyek dalam jadwal, anggaran dan prosedur yang dibuat.
ü  Pelaksanakan seluruh proses pengembangan proyek IT sesuai dengan anggaran dan waktu yang dapat memuaskan para pengguna/klien.
ü  Pernah terlibat dalam proyek yang sejenis.
ü  Mampu mengendalikan hasil-hasil proyek dengan melakukan pengukuran dan evaluasi kinerja yang disesuaikan dengan standar dan tujuan yang ingin dicapai dari proyek yang dilaksanakan.
ü  Membuat dan melakukan rencana darurat untuk mengantisipasi hal-hal maupun masalah tak terduga.
ü  Membuat dan menerapkan keputusan terkait dengan perencanaan.
ü  Memiliki kemauan untuk mendefinisikan ulang tujuan, tanggung jawab dan jadwal selama hal tersebut ditujukan untuk mengembalikan arah tujuan dari pelaksanaan proyek jika terjadi jadwal maupun anggaran yang meleset.
ü  Membangun dan menyesuaikan kegiatan dengan prioritas yang ada serta tenggat waktu yang ditentukan sebelumnya.
ü  Memiliki kematangan yang tinggi dalam perencanaan yang baik dalam upaya mengurangi tekanan dan stres sehingga dapat meningkatkan produktifitas kerja tim.
ü  Mampu membuat perencanaan dalam jangka panjang dan jangka pendek.

•     Karakteristik Kemampuan Terkait dengan Tim yang Dipimpin
ü  Memiliki kemampuan dan keahlian berkomunikasi serta manajerial.
ü  Mampu menyusun rencana, mengorganisasi, memimpin, memotivasi serta mendelegasikan tugas secara bertanggung jawab kepada setiap anggota tim.
ü  Menghormati para anggota tim kerjanya serta mendapat kepercayaan dan penghormatan dari mereka.
ü  Berbagi sukses dengan seluruh anggota tim.
ü  Mampu menempatkan orang yang tepat di posisi yang sesuai.
ü  Memberikan apresiasi yang baik kepada para anggota tim yang bekerja dengan baik.
ü  Mampu mempengaruhi pihak-pihak lain yang terkait dengan proyek yang dipimpinnya untuk menerima pendapat-pendapatnya serta melaksanakan rencana-rencana yang disusunnya.
ü  Mendelegasikan tugas-tugas namun tetap melakukan pengendalian melekat.
ü  Memiliki kepercayaan yang tinggi kepada para profesional terlatih untuk menerima pekerjaan-pekerjaan yang didelegasikan darinya.
ü  Menjadikan dirinya sebagai bagian yang terintegrasi dengan tim yang dipimpinnya.
ü  Mampu membangun kedisiplinan secara struktural.
ü  Mampu mengidentifikasi kelebihan-kelebihan dari masing-masing anggota tim serta memanfaatkannya sebagai kekuatan individual.
ü  Mendayagunakan setiap elemen pekerjaan untuk menstimulasi rasa hormat dari para personil yang terlibat dan mengembangkan sisi profesionalisme mereka.
ü  Menyediakan sedikit waktu untuk menerima setiap ide yang dapat meningkatkan kematangan serta pengembangan dirinya.
ü  Selalu terbuka atas hal-hal yang mendorong kemajuan.
Memahami secara menyeluruh para anggota tim yang dipimpinnya dan mengembangkan komunikasi efektif di dalamnya.

Constructive Cost Model (COCOMO)


Apa itu COCOMO ???
Constructive Cost Model (COCOMO) adalah algoritma estimasi biaya perangkat lunak model yang dikembangkan oleh Barry Boehm . Model ini menggunakan dasar regresi formula, dengan parameter yang berasal dari data historis dan karakteristik proyek proyek saat ini.
       COCOMO pertama kali diterbitkan pada tahun 1981 Barry Boehm W. 's Book rekayasa ekonomi Perangkat Lunak sebagai model untuk memperkirakan usaha, biaya, dan jadwal untuk proyek-proyek perangkat lunak. Ini menarik pada studi dari 63 proyek di TRW Aerospace mana Barry Boehm adalah Direktur Riset dan Teknologi Perangkat Lunak pada tahun 1981. Penelitian ini memeriksa proyek-proyek ukuran mulai dari 2.000 sampai 100.000 baris kode , dan bahasa pemrograman mulai dari perakitan untuk PL / I . Proyek-proyek ini didasarkan pada model waterfall pengembangan perangkat lunak yang merupakan pengembangan software proses lazim pada tahun 1981.
       Referensi untuk model ini biasanya menyebutnya COCOMO 81. Pada tahun 1997 COCOMO IItelah dikembangkan dan akhirnya diterbitkan pada tahun 2000 di Perangkat Lunak Perkiraan Biayabuku dengan COCOMO II. COCOMO II adalah penerus dari COCOMO 81 dan lebih cocok untuk mengestimasi proyek pengembangan perangkat lunak modern. Hal ini memberikan lebih banyak dukungan untuk modern proses pengembangan perangkat lunak 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.

Jenis-Jenis COCOMO :

1. COCOMO dasar
Menghitung usaha pengembangan perangkat lunak (dan biaya) sebagai fungsi dari ukuran program. Ukuran program dinyatakan dalam ribuan estimasi baris kode ( KLOC )
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
Intermediate COCOMO menghitung usaha pengembangan perangkat lunak sebagai fungsi ukuran program dan sekumpulan "cost drivers" yang mencakup penilaian subjektif produk, perangkat keras, personil dan atribut proyek. Ekstensi ini mempertimbangkan satu set empat "cost drivers", masing-masing dengan sejumlah atribut anak.
•      Atribut produk
o   Perangkat lunak yang disyaratkan reliabilitas
o   Ukuran database aplikasi
o   Kompleksitas produk
•      Hardware atribut
o   Run-time kinerja kendala
o   Memori kendala
o   Volatilitas lingkungan mesin virtual
o   Diperlukan waktu pembalikan haluan
•      Personil atribut
o   Analis kemampuan
o   Kemampuan rekayasa perangkat lunak
o   Aplikasi pengalaman
o   Mesin virtual pengalaman
o   Bahasa pemrograman pengalaman
•      Proyek atribut
o   Penggunaan perangkat lunak
o   Penerapan metode rekayasa perangkat lunak
o   Diperlukan jadwal pengembangan

3. Detil COCOMO
Detil COCOMO menggabungkan semua karakteristik versi intermediate dengan penilaian dampak cost driver di setiap langkah (analisis, desain, dll) dari proses rekayasa perangkat lunak 1. 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.