Pengantar Rekayasa Perangkat Lunak

Rekayasa Perangkat Lunak

                 Revolusi Industri 4.0, ya itu lah era saat ini. Persaingan yang cepat dan Seleksi alam yang ketat. Saya sebagai mahasiswa UPI prodi RPL tidak akan tinggal diam, akan memberikan beberapa gagasan saya, yang saya dapatkan dari beberapa sumber dan saya parafrasekan menjadi satu-kesatuan tulisan.😊
                 Pada awalnya perkembangan perangkat lunak, banyak sekali masalah-masalah bermunculan dikarenakan tanpa adanya prosedur yang benar. Pada tahun 1960-an dikenal lah SDLC yaitu Software/System Development Life Cycle adalah proses perubahan perkembangan perangkat lunak dengan menggunakan metode atau model yang benar. Life Cycle, artinya SDLC memiliki daur tahapan-tahapan pengembangan perangkat lunak. Ada sepuluh tahapan dalam SDLC(cari di internet aja ya😃), setiap tahapannya muncul lah beberapa model untuk penerapannya, diantaranya :

Incremental Model 

                  Incremental Model atau Model Bertahap adalah proses pengembangan aplikasi dengan cara membagi-bagi tugasnya ke beberapa tim dan setiap tim mempunyai proses yang sama antar satu sama lain.  Model Bertahap dikombinasikan dengan Waterfall Model. Oleh karena itu model bertahap ialah pengembangan aplikasi yang tahap-tahapnya sistematis. Model bertahap juga menerapkan Model Protoipe, yang artinya dalam setiap tahapan incremental model saya sebagai pengembang aplikasi akan memberi tahu setiap perkembangan aplikasi ke pembeli, guna menanyakan saran atau ada yang ingin dirubah atau ditambahkan dalam aplikasinya. Dalam incremental model tahap-tahapnya akan selalu berulang sampai benar-benar selesai atau sesuai keinginan pembeli. Model ini cocok digunakan pengembang dengan turnover staf yang tinggi, bila ada staf yang mengundurkan diri pasti ada karyawan baru yang menggantinya nah itulah namanya turnover staf.

Kelebihan Incremental Model :  

  • Model ini pengiriman produk(aplikasi yang dibuat) lebih cepat
  • Usaha mengecek, menemukan dan memperbaiki kesalahan program sangat mudah untuk dilakukan
  • Pembeli bisa meresponi (fungsinya) mengenai increment yang pembeli dapati
  • Bisa lebih efisien dalam waktu karena terdiri dari beberapa tim

Kekurangan Incremental Model :

  • Biaya dari produk akhir dapat melintasi biaya yang diperkirakan pada awalnya
  • Membutuhkan perencanaan yang sangat jelas dan lengkap
  • Harga dari model ini akan lebih mahal dari waterfall model karena akan selalu increment baru sampai pembeli benar benar puas (semacam kaya kontrak kerja)

Concurrent Development Model

                 Concurrent Development Model adalah proses pengembangan aplikasi dan setiap prosesnya saling terkait (berhubungan) atau disebut proses simultan. Concurrent Development Model juga sering disebut Concurrent Engineering adalah pengembangan aplikasi yang berdasarkan parelisasi, ialah pengerjaan tugas secara bersamaan.

Kelebihan Concurrent Development Model :

  • Ketika validasi akhir tidak akan terkejut pada masalah-masalah yang muncul, karena setiap prosesnya dilakukan percobaan / testing
  • Waktu yang digunakan relatif lebih efisien karen dikerjakan bersama-sama
  • Memberikan gambaran yang akurat karena setiap prosesnya dilakukan percobaan

Kekurangan Concurrent Development Model :

  • Membutuhkan komunikasi yang baik tiap timnya, karena pengerjaannya yang parelisasi
  • Membutuhkan Sumber Daya Manusia (SDM) yang banyak

V Model

Kelebihan :

  • Sederhana dan mudah digunakan, karena model V ini hampir sama dengan Waterfall Model yang artinya alurnya hanya satu arah.
  • Ini adalah model dan fase yang sangat disiplin, yang setiap prosesnya dikerjakan satu persatu
  • Memudahkan dalam pembuatan dokumentasi setiap tahapan atau prosesnya
  • Bekerja dengan optimal untuk proyek kecil, bilamana semua kebutuhan atau persyaratan sudah dikuasai.

Kekurangan :

  • Bukan model yang bagus untuk suatu proyek yang besar
  • Tidak ada aplikasi yang bisa dijalankan sampai proses atau tahapannya benar-benar selesai
  • Setelah aplikasi berada dalam STLC (Software Testing Life Cycle) tepatnya tahap pengujian, sulit untuk kembali dan mengubah fungsi asal aplikasinya.

RAD Model

Kelebihan :

  • Pengerjaannya mengadaptasi model air terjun versi kecepatan tinggi, dengan kata lain akan lebih efisien dalam waktu dan dikerjakan juga secara paralel
  • Fleksibel, karena dalam pendesainan ulang para pengembang aplikasi melakukannya secara bersamaan
  • Pelanggan lebih tahu bagaimana perkembangan aplikasinya, karena mengadopsi model prototipe
  • Mampu mengurangi kesalahan atau kendala yang terjadi dengan menggunakan CASE (Computer-Aided Software Engineeringtool, tepatnya menggunakan lower CASE tool

Kekurangan :

  • Jika pelanggan tidak mengini aplikasinya secara cepat, proyek pembuatan aplikasinya akan gagal. Karena kembali pada kata rapid yang artinya cepat
  • Memerlukan SDM atau para pengembang aplikasi yang cukup banyak untuk membentuk tim-tim, bila proyek yang dikerjakannya adalah proyek besar
  • Bila proyeknya tidak bisa dimodularisasikan, maka akan sulit menggunakan RAD model ini
  • Berisiko tinggi bila pelanggan meingini menggunakan teknologi baru, yang belum diketahui para pengembang aplikasi

Spiral Model

Kelebihan : 

  • Kebutuhan pelanggan mudah berubah dengan mengadopsi model prototipe dan juga dalam perubahan pendokumentasian mudah dilakukan
  • Pengembangan aplikasi yang lebih cepat
  • Cocok digunakan untuk melaksanakan proyek pengembangan perangkat lunak yang besar, karena dalam model spiral terdapat tahapan analisis risiko. Artinya akan meminimalisir kendala yang akan muncul ketika aplikasi telah berhasil dibuat.
  • Waktu pengerjaan proyeknya relatif cepat

Kekurangan :

  • Risiko perubahan rencana relatif besar, bisa dalam hal jadwal pengerjaan pengembangan aplikasi dan anggaran pengembangan aplikasi
  • Keterampilan setiap pengembang aplikasi harus teruji, karena biasanya model spiral ini digunakan untuk proyek besar. Artinya memiliki sifat sukar dalam pengembangan aplikasinya
  • Sulit diterapkan dalam proyek-proyek pengembangan aplikasi yang kecil

Specialized Process Model

                 Specialized process model atau Model proses khusus adalah pemodelan perangkat lunak yang berfokus pada tiga fokus, diantaranya : 
  1. Component Based Development, Proses ini bertujuan ketika konsep penggunaan kembali (reuse) menjadi fokus utama dalam proyek pengembangan aplikasi
  2. Formal Method Model, Proses ini bertujuan ketika konsep model matematika menjadi fokus utama dalam proyek pengembangan aplikasi
  3. Aspect Oriented Model, Proses ini bertujuan untuk metodologis menentukan lokasi, merinci, merancang, dan membangun aspek

Kelebihan : 

  • Fungsionalitas dari aplikasi bisa didapati lebih awal dibandingan dengan model waterfall, artinya kita bisa mengecek perkembangan aplikasi kita di setiap tahapnya
  • Aplikasi yang berhasil dibuat oleh pengembang aplikasi biasanya memuaskan para pelanggan yang memesannya, karena pelanggan bisa memberi saran ke pengembang aplikasi dari awal tahap
  • Terjadi pengujian berkali-kali sehingga fungsionalitas aplikasi terjamin minim kendala
  • Bisa mendeteksi kendala dalam desain dan mendesain ulang lebih cepat

Kekurangan :

  • Terlalu kaku, karena kita harus menyelesaikan proses dari awal, dan tidak bisa berpindah proses bila proses yang sebelumnya belum diselesaikan
  • Tidak mengadopsi model prototipe, sehingga para pelanggan harus memberikan informasi yang benar-benar lengkap dari awal tahapannya

Agile Method and Scrum Model

                 Metode Agile adalah model tahapan yang memfokuskan kepada proses pengembangan dan pengujian aplikasi di sepanjang tahapan pengembangan proyek aplikasi tersebut.Dalam metode agile ada beberapa metode untuk melakukan pengujian, diantaranya ialah Scrum. Scrum adalah metode untuk melakukan tahap pengujian dalam metode agile yang terkonsentrasi pada bagaimana mengatur tugas-tugas di dalam lingkungan pengembangan yang berbasis kerja.

Kelebihan :

  • Pengembangan aplikasi yang sesuai dengan kenyataan (realistis) untuk pengembangan perangkat lunak
  • Fungsionalitas dari aplikasi dapat dikembangakan secara cepat
  • Model yang baik untuk pelanggan yang hanya memberikan hal-hal mengenaik aplikasinya secara umum kepada pengembang aplikasi
  • Memberikan fleksibilitas kepada pengembang aplikasi

Kekurangan :

  • Tidak cocok untuk proyek yang bersifat kompleks
  • Transfer teknologi kepada anggota tim baru mungkin cukup menantang karena kurang adanya dokumentasi.
Demikian beberapa yang bisa saya paparkan dalam pemodelan pengembangan perangkat lunak, terima kasih😀

Komentar

Postingan populer dari blog ini

Kebutuhan Fungsional dan Non-Fungsional

Software Design Notations