Model Pengembangan Perangkat Lunak

Kamis, 07 Maret 2013




1.  Model Linear Sequential/Waterfall
Model Linear Sequential/Waterfall merupakan paradigma rekayasa perangkat lunak yang paling tua dan paling banyak dipakai.
Kelebihan model Linear Sequential/Waterfall :
·    Mudah diaplikasikan
·    Memberikan template tentang metode analisis, desain, pengkodean, pengujian, dan pemeliharaan
·   Cocok digunakan untuk produk software yang sudah jelas kebutuhannya di awal, sehingga minim kesalahannya
Kekurangan model Linear Sequential/Waterfall :
·  Terjadinya pembagian proyek menjadi tahap-tahap yang tidak fleksibel, karena komitmen harus dilakukan pada tahap awal proses
·   Sulit untuk mengalami perubahan kebutuhan yang diinginkan customer
·  Customer harus sabar untuk menanti produk selesai, karena dikerjakan tahap per tahap,menyelesaikan tahap awal baru bisa ke tahap selanjutnya
·   Perubahan ditengah-tengah pengerjaan produk akan membuat bingung team work yang sedang membuat produk
·    Adanya waktu menganggur bagi pengembang, karena harus menunggu anggota tim proyek lainnya menuntaskan pekerjaannya

2.  Model Prototyping
Pendekatan prototyping model digunakan jika pemakai hanya mendefinisikan objektif umum dari perangkat lunak tanpa merinci kebutuhan input, pemrosesan dan outputnya, sementara pengembang tidak begitu yakin akan efisiensi algoritma, adaptasi sistem operasi, atau bentuk interaksi manusia-mesin yang harus diambil.
Kelebihan model Prototyping :
·    Menghemat waktu pengembangan
·    Adanya komunikasi yang baik antara pengembang dan pelanggan
·    Pengembang dapat bekerja lebih baik dalam menentukan kebutuhan pelanggan
·    Penerapan menjadi lebih mudah karena pemakai mengetahui apa yang diharapkannya
·    User dapat berpartisipasi aktif dalam pengembangan sistem
Kekurangan model Prototyping :
·   Proses analisis dan perancangan terlalu singkat
·   Biasanya kurang fleksible dalam mengahadapi perubahan
·  Walaupun pemakai melihat berbagai perbaikan dari setiap versi prototype, tetapi
pemakai mungkin tidak menyadari bahwa versi tersebut dibuat tanpa memperhatikan kualitas dan pemeliharaan jangka panjang
·   Pengembang kadang-kadang membuat kompromi implementasi dengan menggunakan sistem operasi yang tidak relevan dan algoritma yang tidak efisien

3.  Model RAD (Rapid Application Development)
Model RAD merupakan model proses pengembangan perangkat lunak secara linear sequential yang menekankan pada siklus pengembangan yang sangat singkat.
Kelebihan model RAD :
· Lebih efektif dari pendekatan waterfall/sequential linear dalam menghasilkan sistem yang memenuhi kebutuhan langsung dari pelanggan
·    Cocok untuk proyek yang memerlukan waktu yang singkat
Kekurangan model RAD :
·   RAD tidak cocok digunakan untuk sistem yang mempunyai resiko teknik yang tinggi
·  Membutuhkan orang yang banyak untuk menyelesaikan sebuah proyek berskala besar
· Pengembang dan customer harus punya komitmen yang kuat untuk menyelesaikan sebuah software
·  Jika sistem tidak di bangun dengan benar maka RAD akan bermasalah
·  Jika ada perubahan di tengah-tengah pengerjaan maka harus membuat kontrak baru antara pengembang dan customer

4.  Model Increment
Model Increment merupakan kombinasi linear sequential model dan filosofi pengulangan dari prototyping model.
Kelebihan model Increment :
· Cocok digunakan bila pembuat software tidak banyak/kekurangan pembuat
· Mampu mengakomodasi perubahan kebutuhan customer
Kekurangan model Increment :
·  Hanya akan berhasil jika tidak ada staffing untuk penerapan secara menyeluruh
· Penambahan staf dilakukan jika hasil incremental akan dikembangkan lebih lanjut
· Hanya cocok untuk proyek dengan skala kecil

5.  Model Spiral
Model spiral merupakan model proses perangkat lunak yang memadukan wujud pengulangan dari model prototyping dengan aspek pengendalian dan sistematika dari linear sequential model.
Kelebihan model Spiral :
·  Lebih cocok untuk pengembangan sistem dan perangkat lunak skala besar
·  Pengembang dan pemakai dapat lebih mudah memahami dan bereaksi terhadap resiko setiap tingkat evolusi karena perangkat lunak terus bekerja selama proses
Kekurangan model Spiral :
· Sulit untuk meyakinkan pemakai (saat situasi kontrak) bahwa penggunaan pendekatan ini akan dapat dikendalikan
·  Memerlukan tenaga ahli untuk memperkirakan resiko, dan harus mengandalkannya supaya sukses
·    Belum terbukti apakah metode ini cukup efisien karena usianya yang relatif baru


6. Transformasi formal
. Transformasi formal
Metode ini berbasiskan pada transformasi spesifikasi secara matematik melalui representasi yang berbeda untuk suatu program yang dapat dieksekusi. Trasformasi menyatakan spesifikasi program
Menggunakan pendekatan ‘Cleanroom’ untuk pengembangan PL.


Metode ini mempunyai keterbatasan dalam pemakaiannya. Keunggulannya adalah mengurangi jumlah kesalahan pada sistem sehingga penggunaan utamanya adalah pada sistem yang kritis. Hal ini menjadi efektif dari segi biaya.
Pemakaian model pengembangan formal memerlukan tingkat kerahasian sebelum digunakan.
Permasalahan dalam model pengembangan metode formal:
• Memerlukan keahlian khusus dan pelatihan untuk mengaplikasikannya
• Sulit menentukan beberapa aspek dari suatu sistem seperti
user interface



7. Metode Fourth-Generation Techniques (4GT)
Istilah Fourth-Generation (generasi keempat) mengarah ke perangkat lunak yang umum yaitu, tiap pengembang perangkat lunak menentukan beberapa karakteristik perangkat lunak pada level yang tinggi. Tool akan otomatis menghasilkan sumber berdasarkan spesifikasi tersebut. Teknik 4GT ini menekankan pada kemampuan menentukan perangkat lunak pada level mesin dengan bahasa yang lebih alami atau notasi yang lebih memiliki arti.
Saat ini, pengembangan perangkat lunak yang mendukung 4GT, berisi tool-tool berikut: Bahasa non-prosedural untuk query basis data, report generation, data manipulation, interaksi layar dan definisi, code generation, kemampuan grafik level tinggi, kemampuan spreadsheet, dan automated generation of HTML serta bahasa-bahasa yang mirip yang digunakan untuk membuat suatu website dengan menggunakan perangkat lunak tertentu. Tiap tool ini ada, tapi hanya untuk aplikasi khusus.


Metode 4GT ini dimulai dari pengumpulan kebutuhan. Idealnya pelanggan akan menjelaskan kebutuhannya, yang akan langsung ditranslasikan ke prototipe operasional. Tapi, prototipe ini tidak bekerja. Pelanggan mungkin tidak pasti akan hal yang dibutuhkannya atau tidak dapat menentukan informasi yang dapat ditangani tool 4GT. Tool 4GT yang sudah ada tidak cukup canggih untuk mengakomodasikan bahasa alami. Pada saat ini, dialog antara pelanggan dan pengembang yang ada pada metode sebelumnya tetap menjadi bagian penting dari teknik 4GT.
Implementasi menggunakan 4GL (Fourth-Generation Language) dapat dihasilkan dari program kode yang sesuai. Tetapi struktur data dengan informasi lainnya harus ada dan dapat diakses oleh 4GL. Untuk aplikasi kecil, adalah mungkin untuk langsung berpindah dari pengumpulan kebutuhan ke implementasi menggunakan bahasa non-prosedural (Fourth-Generation Language - 4GL).
Kelebihan:
Karena 4GT menggunakan 4GL yang “notabene” merupakan bahasapemrograman yang  khusus dirancang dengan tujuan tertentu (spesifik), maka untuk permasalahan yang tertentu dengan 4GL tertentu pula sangat tepat menggunakan 4GT. Bahkan ada 4GL yang bisa meng-generate sistem dari output yang dihasilkan oleh CASE tools.
Kekurangan:
Untuk usaha yang besar, dibutuhkan pengembangan strategi desain untuk sistem, walau digunakan bahasa 4GL. Penggunaan 4GT tanpa perencanaan matang (untuk proyek besar) akan menyebabkan kesulitan yang sama (kualitas dan pemeliharaan yang jelek, ketidakpuasan pelanggan) seperti dengan metode konvensional.
4GL tidak selalu berhasil menghasilkan sistem yang diinginkan.