Model Perancangan Software


Untuk Merancang sebuah software diperlukan perencanaan yang matang agar poject anda berjalan lancar. Salah satu yang jadi faktor utama adalah Model Perancangan yang digunakan. Berikut ini adalah model-model perancangan software yang sering di gunakan:

1.Spiral Model

spiral Model


Spiral model adalah pendekatan yang dikembangkan oleh Boehm tahun 1988 untuk mengatasi masalah pada waterfall model. Spiral Model ini dimaksudkan untuk mencakup model siklus hidup lainnya, seperti waterfall model, incremental development model, dan throwaway prototyping


Model spiral terdiri dari empat kuadran berikut yaitu :
  1. Tentukan tujuan, alternatif, dan kendala. Perencanaan rinci untuk siklus  mengidentifikasi
    tujuan dan pendekatan alternatif untuk mencapai tujuan pengembangan perangkat lunak.
  2.   Menganalisis risiko. Rinci penilaian risiko proyek saat ini, rencana kegiatan yang akan dilakukan untuk mengurangi risiko tersebut.
  3. Mengembangkan produk. Bekerja pada pengembangan produk, seperti persyaratan analisis, desain, atau coding.
  4. Rencanakan siklus berikutnya. Menilai kemajuan yang dibuat pada siklus ini dan mulai merencanakan untuk siklus berikutnya. 
  Setiap siklus model spiral beriterasi pada empat kuadran. Tujuan dari spiral model adalah dihasilkan sebuah analisa risiko untuk menindaklanjuti kemungkinan terjadi kesalahan pada pengembangan software

Menurut analisis Ragunath , keuntungan penggunaan spiral model adalah tingginya jumlah analisis risiko sehingga membuat jumlah kesalahan yang akan terjadi dalam pengembangan perangkat lunak dapat diperkecil, sangat baik untuk proyek perangkat lunak berskala besar yang fokus dan kritis pada tujuan pengembangannya, serta perangkat lunak dapat diproduksi pada awal siklus hidup.
Adapun kekurangan dari spiral model adalah mahal, membutuhkan keahlian yang sangat spesifik, tingkat keberhasilan proyek sangat tergantung pada tahap analisis resiko dan tidak dapat bekerja dengan baik untuk proyek berskala kecil. 


2.Waterfall Model 

waterfall Model

The waterfall model adalah sequential design process,  sering digunakan dalam proses pengembangan perangkat lunak, di mana kemajuan dipandang sebagai terus mengalir ke bawah (seperti air terjun) melalui tahapan Conception, Inisiasi, Analisis, Desain, Konstruksi, Pengujian, Produksi / Implementasi, dan Pemeliharaan.

Fase-fase dalam Waterfall Model menurut referensi Sommerville :
  1. Requirements analysis and definition: Mengumpulkan kebutuhan secara lengkap kemudian kemudian dianalisis dan didefinisikan kebutuhan yang harus dipenuhi oleh program yang akan dibangun. Fase ini harus dikerjakan secara lengkap untuk bisa menghasilkan desain yang lengkap.
  2. System and software design: Desain dikerjakan setelah kebutuhan selesai dikumpulkan secara lengkap.
  3. Implementation and unit testing: desain program diterjemahkan ke dalam kode-kode dengan menggunakan bahasa pemrograman yang sudah ditentukan. Program yang dibangun langsung diuji baik secara unit.
  4. Integration and system testing: Penyatuan unit-unit program kemudian diuji secara keseluruhan (system testing).
  5. Operation and maintenance: mengoperasikan program dilingkungannya dan melakukan pemeliharaan, seperti penyesuaian atau perubahan karena adaptasi dengan situasi sebenarnya.
Kekurangan yang utama dari model ini adalah kesulitan dalam mengakomodasi perubahan setelah proses dijalani. Fase sebelumnya harus lengkap dan selesai sebelum mengerjakan fase berikutnya.

Masalah dengan waterfall :
  1. Perubahan sulit dilakukan karena sifatnya yang kaku.
  2. Karena sifat kakunya, model ini cocok ketika kebutuhan dikumpulkan secara lengkap sehingga perubahan bisa ditekan sekecil mungkin. Tapi pada kenyataannya jarang sekali konsumen/pengguna yang bisa memberikan kebutuhan secara lengkap, perubahan kebutuhan adalah sesuatu yang wajar terjadi.
  3. Waterfall pada umumnya digunakan untuk rekayasa sistem yang besar dimana proyek dikerjakan di beberapa tempat berbeda, dan dibagi menjadi beberapa bagian sub-proyek.


3.Rapid application development (RAD) atau rapid prototyping
RAD
RAD
Rapid application development (RAD) atau rapid prototyping adalah model proses pembangunan perangkat lunak yang tergolong dalam teknik incremental (bertingkat). RAD menekankan pada siklus pembangunan pendek, singkat, dan cepat.  Rapid application development menggunakan metode iteratif (berulang) dalam mengembangkan sistem dimana working model (model bekerja) sistem dikonstruksikan di awal tahap pengembangan dengan tujuan menetapkan kebutuhan (requirement) user dan selanjutnya disingkirkan. Working model ini jarang digunakan sebagai basis desain dan implementasi sistem final.

Model RAD mengadopsi model waterfall dan pembangunan dalam waktu singkat yang dicapai dengan menerapkan :
  1. Component based construction ( pemrograman berbasis komponen bukan prosedural).
  2. Penekanan pada penggunaan ulang (reuse) komponen perangkat lunak yang telah ada.
  3. Pembangkitan kode program otomatis/semi otomatis.
  4. Multiple team (banyak tim), tiap tim menyelesaikan satu tugas yang selevel tapi tidak sama. Banyaknya tim tergantung dari area dan kompleksitasnya sistem yang dibangun.
Kelebihan dan Kekurangan
Beberapa hal yang perlu diperhatikan dalam implementasi pengembangan menggunakan model RAD :
  1. Model RAD memerlukan sumber daya yang cukup besar, terutama untuk proyek dengan skala besar.
  2. Model ini cocok untuk proyek dengan skala besar.
  3. Model RAD memerlukan komitmen yang kuat antara pengembang dan pemesssan, bahkan keduanya bisa tergabung dalam 1 tim
  4. kinerja dari perangkat lunak yang dihasilkan dapat menjadi masalah manakala kebutuhan-kebutuhan diawal proses tidak dapat dimodulkan, sehingga pendekatan dengan model ini kurang bagus.
  5. sistem yang tidak bisa dimodularisasi tidak cocok untuk model ini.
  6. penghalusan dan penggabungan dari beberapa tim di akhir proses sangat diperlukan dan ini memerlukan kerja keras.
  7. proyek bisa gagal karena waktu yang disepakati tidak dipenuhi
  8. risiko teknis yang tinggi juga kurang cocok untuk model ini.

4. Agile

Model Agile ini biasanya di gunakan untuk Project-porject besar dalam waktu yang lumayan lama.Model Agile mengadopsi beberapa model SDLC lainnya sehinggal bisa di bilang sangat flexible. Peningkatan flexiblelitas membuat model ini mendapat julukan "Agile", developer dapat membuat perbaikan secara berkala sehingga dapat menghasilkan masalah yang sangat sedikit.

Kelebihan:
  1. Model Agile sangat flexible dalam pengecheckan error sehingga bug yang terjadi sangat kecil.
  2. Mudah di adaptasi developer

Kekurangan:
  1. Agile dapat menghasilkan masalah baru dimana project ini dapat berubah menjadi "never-ending-project" dimana developer secara konstant berputar-putar untuk mengetest dan membuat perubahan, yang membuat project 100% selesai.
  2. Membutuhkan Project management yang kuat yang mengetahui jika ada proses yang mengambil waktu yang lama.


Source:


Note: Jika ada yang ingin menulis ulang di blog, forum,social media dll sebaiknya di cantumkan sumbernya yaitu https://muhammadyasin89.blogspot.com/

Post a Comment