Selamat Datang. Terima Kasih telah mengunjungi blog ini.

Thursday, 25 October 2012

Model Pengembangan Software

Saya akan menjelaskan apa yang saya telah pelajari dari materi MODEL SOFTWARE yang terdiri dari:

  1. Model Waterfall
  2. Model Increamental
  3. Model Prototyping
  4. Model Spiral
  5. Model Rapid Application Development



  1. MODEL WATERFALL 

Waterfall Model adalah sebuah metode pengembangan software yang bersifat sekuensial dan terdiri dari 5 tahap yang saling terkait dan mempengaruhi seperti terlihat pada gambar berikut.





Keterkaitan dan pengaruh antar tahap ini ada karena output sebuah tahap dalam Waterfall Model merupakan input bagi tahap berikutnya, dengan demikian  ketidaksempurnaan hasil pelaksanaan tahap sebelumnya adalah awal ketidaksempurnaan tahap berikutnya. Memperhatikan karakteristik ini, sangat penting bagi tim pengembang
dan perusahaan untuk secara bersama-sama melakukan analisa kebutuhan dan desain sistem sesempurna mungkin sebelum masuk ke dalam tahap penulisan kode program. Berikut adalah penjelasan detail dari masing-masing tahap dalam Waterfall model.
  1. Analisa kebutuhan. Analisa kebutuhan merupakan tahap pertama yang menjadi dasar proses pembuatan Tailor-made software selanjutnya. Kelancaran proses pembuatan software secara keseluruhan dan kelengkapan fitur software yang dihasilkan sangat tergantung pada hasil analisa kebutuhan ini. Untuk memperoleh informasi tentang proses bisnis dan kebutuhan perusahaan, umumnya tim pengembang melakukan wawancara, diskusi dan survey. Dalam proses wawancara, diskusi dan survey diperlukan komunikasi yang intensif dan terbuka antara tim pengembang dan tim counter-partner dari perusahaan. Selain itu, peran aktif dari manajemen sebagai pihak yang memahami seluk beluk perusahaan secara komprehensif juga diperlukan agar diperoleh informasi proses bisnis dan daftar kebutuhan perusahaan yang lengkap. Beberapa perusahaan membantu memperlancar penyelesaian tahap ini dengan terlebih dahulu menyusun scope of work software yang akan dibuat sebagai acuan kerja tim pengembang. Hasil analisa kebutuhan yang tidak lengkap berpotensi menyebabkan beberapa permasalahan yang tidak diharapkan, antara lain : waktu pembuatan software menjadi lebih lama, proses dalam software tidak sesuai dengan proses bisnis dan software tidak dapat memenuhi semua kebutuhan perusahaan. Untuk meminimalkan risiko ini, disarankan perusahaan melakukan konfirmasi pemahaman tim pengembang tentang proses bisnis dan kebutuhan perusahaan dengan cara meminta resume hasil analisa kebutuhan dan menyempurnakannya bersama tim pengembang jika diperlukan.
  2. Desain sistem. Desain sistem merupakan tahap penyusunan proses, data, aliran proses dan hubungan antar data yang paling optimal untuk menjalankan proses bisnis dan memenuhi kebutuhan perusahaan sesuai dengan hasil analisa kebutuhan. Dokumentasi yang dihasilkan dari tahap desain sistem ini antara lain : System Flow, Data Flow Diagram (DFD) dan Entity Relationship Diagram (ERD). System Flow merupakan bagan aliran dokumen dari satu bagian perusahaan ke bagian lain baik secara manual maupun melalui Sistem Informasi. Data Flow Diagram adalah diagram yang menunjukan aliran data di antara pengguna, proses dan database yang terkait dengan software. Entity Relationship Diagram merupakan diagram yang menunjukan bagaimana data dan informasi software akan di simpan di dalam database beserta dengan hubungan antar data. Seperti halnya tahap analisa kebutuhan, pada saat desain sistem selesai dibuat sebaiknya desain yang sudah dibuat pengembang didiskusikan dan disempurnakan oleh tim pengembang bersama dengan tim counter-partner dan manajemen perusahaan.
  3. Penulisan kode program. Penulisan kode program merupakan tahap penerjemahan desain sistem yang telah dibuat ke dalam bentuk perintah-perintah yang dimengerti komputer dengan mempergunakan bahasa pemrograman, middleware dan database tertentu di atas platform yang menjadi standar perusahaan. Bahasa pemrograman yang saat ini populer digunakan antara lain : Microsoft Visual Basic .Net untuk pembuatan software dalam kategori Desktop Application, PHP untuk pembuatan software dalam kategori Web Application dan Java untuk pembuatan software yang dapat berjalan di atas beberapa platform sistem operasi / multiplatform. Database yang saat ini banyak dipergunakan antara lain : ORACLE dan Microsoft SQL Server 2005 untuk kebutuhan penyimpanan data dalam jumlah besar, fitur keamanan data yang handal dan penggunaan oleh banyak pengguna, MySQL dan PosgreSQL untuk kebutuhan penyimpanan data di sistem operasi Linux dan Microsoft Access untuk penyimpanan data dalam jumlah yang tidak terlalu besar untuk memenuhi kebutuhan personal. Berbeda dengan 2 tahap sebelumnya, pada tahap penulisan kode program ini keterlibatan perusahaan tidaklah terlalu besar.
  4. Pengujian program. Pengujian software dilakukan untuk memastikan bahwa software yang dibuat telah sesuai dengan desainnya dan semua fungsi dapat dipergunakan dengan baik tanpa ada kesalahan. Pengujian software biasanya dilakukan dalam 2 atau 3 tahap yang saling independen, yaitu : pengujian oleh internal tim pengembang, pengujian oleh divisi Quality Assurance dan pengujian oleh pengguna di perusahaan. Dalam tahap ini, perusahaan harus memastikan bahwa kerangka / skenario pengujian software dibuat dengan lengkap meliputi semua proses, kebutuhan dan pengendalian yang ada di dalam dokumen analisa kebutuhan dan desain sistem.
  5. Penerapan program. Penerapan program merupakan tahap dimana tim pengembang menerapkan / meng-install software yang telah selesai dibuat dan diuji ke dalam lingkungan Teknologi Informasi perusahaan dan memberikan pelatihan kepada pengguna di perusahaan. Pada saat melaksanakan pelatihan perusahaan harus yakin bahwa semua karyawan benar-benar menguasai Sistem Informasi yang dibuat sesuai dengan tugas, kewenangan dan tanggung-jawabnya. Untuk mendukung penguasaan ini pada waktu operasional harian setelah pelatihan, perusahaan sebaiknya memastikan pengembang telah memberikan buku User Manual dari Sistem Informasi yang dibuat.

Kelebihan Waterfall Model :

  • Merupakan model pengembangan paling handal dan paling lama digunakan.
  • Cocok untuk system software berskala besar.
  • Cocok untuk system software yang bersifat generic.
  • Pengerjaan project system akan terjadwal dengan baik dan mudah dikontrol.
Kekurangan Waterfall Model :
  • Persyaratan system harus digambarkan dengan jelas.
  • Rincian proses harus benar-benar jelas dan tidak boleh berubah-ubah.
  • Sulit untuk mengadaptasi jika terjadi perubahan spesifikasi pada suatu tahapan pengembangan.
 Bahan referensi :
    2. MODEL INCREMENTAL

Model ini merupakan hasil kombinasi elemen-elemen dari model waterfall yang diaplikasikan secara berulang. Elemen-elemen tersebut dikerjakan hingga menghasilkan produk dengan spesifikasi tertentu kemudian proses dimulai dari awal kembali hingga muncul hasil yang spesifikasinya lebih lengkap dari sebelumnya dan tentunya memenuhi kebutuhan pemakai.



 Kelebihan Inkremental Model:
  • mampu mengakomodasi perubahan secara fleksibel, dengan waktu yang relatif singkat dan tidak dibutuhkan anggota/tim yang banyak untuk menjalankannya.
Kekurangan Inkreental Model:
  • tidak cocok untuk proyek berukuran besar (lebih dari 200.000 baris coding) dan sulit untuk memetakan kebutuhan pemakai ke dalam rencana spesifikasi tiap-tiap hasil dari increament.
Model ini cocok dipakai untuk proyek kecil dengan anggota tim yang sedikit dan ketersediaan waktu yang terbatas.

Bahan referensi :
http://roysarimilda.wordpress.com/tag/model-proses/


    3. MODEL PROTOTYPING




Model Prototype dimulai dengan pengumpulan kebutuhan. Pengembang dan user bertemu dan mendefinisikan obyektif keseluruhan dari software, mengidentifikasi segala kebutuhan yang diketahui, dan area garis besar dimana definisi lebih jauh merupakan keharusan kemudian dilakukan “perancangan kilat”.

Perancangan kilat berfokus pada penyajian dari aspek – aspek software tersebut yang akan nampak bagi user atau pemakai (contohnya pendekatan input dan format output). Perancangan kilat membawa kepada konstruksi sebuah prototype. Prototype tersebut dievaluasi oleh pelanggan/pemakai dan dipakai untuk menyaring kebutuhan pengembangan software. Iterasi terjadi pada saat prototype disetel untuk memenuhi kebutuhan pelanggan, dan pada saat yang sama memungkinkan pengembang untuk secara lebih baik 
memahami apa yang harus dilakukannya.

Kelebihan Prototyping Model :
  • Prototype melibatkan user dalam analisa dan desain.
  • Punya kemampuan menangkap requirement secara konkret daripada secara abstrak.
  • Untuk digunakan secara standalone.
  • Digunakan untuk memperluas SDLC.
  • Mempersingkat waktu pengembangan Sistem Informasi.
Kekurangan Prototyping Model :
  • Proses analisis dan perancangan terlalu singkat.
  • Mengesampingkan alternatif pemecahan masalah.
  • Biasanya kurang fleksible dalam menghadapi perubahan.
Bahan referensi :
http://arumdwihapsari.blogspot.com/2011/12/sdlc-systemsdevelopment-life-cycle.html



 

    4. MODEL SPIRAL


 


Model ini adalah model gabungan antara Prototyping dan Incremental Model. Tahapan-tahapan dalam model ini yaitu :
customer communication, planning, risk analysis, engineering, construction & release, customer evaluation yang terus terulang selama kebutuhan customer belum terpenuhi.

Penjelasan Gambar :


Customer Communication :

Adanya perbincangan antara customer dan development mengenai permintaan/kebutuhan customer terhadap software yang akan dibuat.

Planning :

Customer & development merencanakan waktu yang dibutuhkan agar software dapat selesai dibuat pada waktunya, serta merencanakan software dan perangkat lain yang cocok untuk customer dari kebutuhannya.

Risk Analysis :

Development menganalisis bentuk-bentuk dan model-model software bagaimana yang akan dibuat yang sesuai kebutuhan customer.

Engineering :

Bagian mengimplementasian perencanaan dalam bentuk coding dan development pun menyediakan buku panduan (help) agar customer mengetahui cara menggunakan software tersebut.

Construction & Release :

Customer mencoba software tersebut untuk mengetahui apakah software tersebut sudah bagus atau masih harus diperbaiki lagi.

Customer Evaluation :

Development menanyakan hal apa yang ingin diperbaiki dari software yang telah dicoba, dan apabila customer ingin software tersebut akandiperbaiki oleh development sehingga tahapan selanjutnya akan masuk kembali ke tahap awal.

Kelebihan Model Spiral :

  • Dapat disesuaikan agar perangkat lunak bisa dipakai selama hidup perangkat lunak komputer.
  • 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.
  • Menggunakan prototipe sebagai mekanisme pengurangan resiko dan pada setiap keadaan di dalam evolusi produk.
  • Tetap mengikuti langkah-langkah dalam siklus kehidupan klasik dan memasukkannya ke dalam kerangka kerja iteratif .
  • Membutuhkan pertimbangan langsung terhadp resiko teknis sehingga mengurangi resiko sebelum menjadi permaslahan yang serius.
Kelemahan Model Spiral :


  • Sulit untuk menyakinkan pelanggan bahwa pendekatan evolusioner ini bisa dikontrol.
  • Memerlukan penaksiran resiko yang masuk akal dan akan menjadi masalah yang serius jika resiko mayor tidak ditemukan dan diatur.
  • Butuh waktu lama untuk menerapkan paradigma ini menuju kepastian yang absolut.

Bahan referensi :

http://arumdwihapsari.blogspot.com/2011/12/sdlc-systemsdevelopment-life-cycle.html
http://saifulmubin.blogspot.com/2011/02/model-spiral.html

    5. MODEL RAPID APPLICATION DEVELOPMENT (RAD)


 



Mode ini cocok digunakan untuk pembuatan software perusahaan bisnis dan berskala besar serta customer ingin agar software cepat selesai. Model ini mirip dengan model waterfall.


Penjelasan Gambar :

  • Business modelling
Berfungsi menjawab pertanyaan-pertanyaan seperti informasi apa yang mengendalikan proses bisnis? Informasi apa yang dihasilkan? Siapa yang menghasilkan informasi? Kemana informasi itu diberikan? Siapa yang mengolah informasi? 
  • Data modelling
Aliran informasi yang sudah didefinisikan, disusun menjadi sekumpulan objek data. Karakteristik/atribut dan hubungan antar objek-objek tersebut dianalisis sesuai kebutuhan dan data 
  • Process Modelling
Objek data yang sudah didefinisikan diubah menjadi aliran informasi yang diperlukan untuk menjalankan fungsi-fungsi bisnis. 
  • Application Generation
RAD menggunakan komponen program yang sudah ada atau membuat component yang bisa digunakan lagi, selama diperlukan. 
  • Testing and Turnover
karena menggunakan component yang sudah ada, maka kebanyakan component sudah melalui uji atau testing. Namun component baru dan interface harus tetap diuji.
Kelebihan model RAD:
  • Lebih efektif dari pendekatan air terjun dalam menghasilkan sistem yang memenuhi kebutuhan langsung dari pelanggan.
  • Cocok untuk proyek yang memerlukan waktu yang singkat.
Kelemahan model RAD:
  • Sangat Tidak cocok untuk proyek skala besar
  • Proyek bisa gagal karena waktu yang disepakati tidak dipenuhi
Bahan referensi :
http://aryapramana.blogspot.com/2011/09/model-proses-rekayasa-perangkat-lunak.html

1 comment: