March 1, 2017

Siklus pengembangan perangkat lunak, perbedaan RPL dan computer science, dan kegagalan pengembangan perangkat lunak

Dalam pengembangan perangkat lunak ada siklus yang harus diperhatikan. Sebutkan dan jelaskan siklus yang dimaksud!

Siklus pengembangan perangkat lunak atau sering disebut juga dengan siklus hidup perangkat lunak adalah periode waktu yang diawali dengan keputusan untuk mengembangkan produk perangkat lunak dan berakhir setelah perangkat lunak diserahkan. Umumnya siklus pengembangan ini terdiri dari :
a) Fase Perencanaan, yang meliputi:

  • Perkiraan ukuran ukuran software yang akan akan dibuat.
  • Perkiraan usaha dan durasi pengerjaan diantaranya jumlah orangyang mengerjakan, waktu yang akan dihabiskan dalam pengerjaan, dan biaya yang akan dihabiskan.
  • Menentukan metodologi atau metode atau model apa yang akan digunakan. Misalnya yang Heavyweight seperti Model Air Terjun (Waterfall) dan RUP (Rational Unified Process) atau yang Lightweight seperti Agile dan XP (Extreme Programming).
  • Mendefinisikan aturan manajemen, meliputi komunikasi, penyimpanan dokumen, aturan rilis, dan prosedur perubahan manajemen.
  • Mengidentifikasi resiko
  • Menyusun anggota tim

b) Fase Analisa, yang meliputi :

  • Memahami tentang software yang akan dibuat yaitu dengan cara berdiskusi dengan SME (Subject Matter Expert) juga dengan User atau yang akan memakai.
  • Verifikasi kebutuhan dengan cara review hasil analisa dan membuat prototype.
  • Mendapatkan komitmen dapat berupa penandatanganan persetujuan atau yang lainnya.
  • Analisa kebutuhan dan spesifikasi yang baik.

c) Fase Desain, yang meliputi :

  • Desain tampilan akhir, baik itu warna, huruf, maupun efek-efek khusus.
  • Memilih teknologi dan framework , seperti kemudahan, kecepatan, fitur, dan system operasi.
  • Menentukan partisi sistem, berupa komponen dan plugin.
  • Menentukan skema database.

d) Fase Coding, yang meliputi :

  • Persiapan development/pengembangan.
  • Kebijakan coding, baik coding standart ataupun quality standart.
  • Pengukuran kualitas kode, meliputi keterikatan (coupling), kompleksitas, kemudahan pengembangan (extensibility), kesesuaian dengan best-practices, dan kecukupan jumlah test vs jumlah kode.
  • Jenis test yang dilakukan programmer, seperti Unit Test : method/function, Coverage Test : kecukupan unit test, Code Review : praktek coding, Integration Test : interaksi dengan sistem lain (database, mail, aplikasi lain), Performance Test : waktu yang dibutuhkan untuk menjalankan fitur tertentu, Stress Test : perilaku fitur bila dihadapkan dengan request yang banyak.

e) Fase Testing, terdiri dari :

  • Internal Testing: dilakukan oleh project team.
  • User Testing: dilakukan oleh customer.

f) Fase Implementasi
Berupa melaksanakan eksekusi atau praktek dari rencana, metode, atau desain dalam pengembangan perangkat lunak. Pada tahap ini dilakukan kerja untuk membangun perangkat lunak berdasarkan analisa dan pemodelan yang telah dilakukan. Kegiatannya antara lain User Training, Administrator Training, Migrasi Data (kalau ada), Cut off sistem/proses lama

g) Fase Pemeliharaan
Perangkat lunak akan mengalami perubahan setelah disampaikan kepada pelanggan. Perubahan akan terjadi karena kesalahan-kesalahan, karena perangkat lunak harus disesuaikan untuk mengakomodasi perubahan-perubahan di dalam lingkungan eksternalnya, atau karena pelanggan membutuhkan perkembangan fungsional atau unjuk kerja. Pemeliharaan perangkat lunak mengaplikasikan lagi setiap fase program sebelumnya dan tidak membuat yang baru lagi. Pemeliharaan dapat berupa perbaikan bug yang tersisa, penambahan fitur, dan perubahan fitur.


Mengapa perlu perangkat lunak yang dikembangkan perlu validasi?

Perangkat lunak yang dikembangkan perlu divalidasi karena validasi mengacu pada serangkaian aktivitas untuk memastikan bahwa perangkat lunak yang telah dibuat sesuai dengan kebutuhan konsumen.Validasi dilakukan setelah perangkat lunak selesai dirangkai sebagai suatu kesatuan dan semua kesalahan interfacing telah ditemukan dan dikoreksi. Validasi dikatakan berhasil jika perangkat lunak berfungsi sesuai dengan kebutuhan konsumen. Validasi dilakukan untuk memastikan apakah semua persyaratan fungsional telah dipenuhi, semua persyaratan kinerja tercapai, semua dokumentasi telah benar, dan persyaratan lainnya (transportabilitas, kompatibilitas, kemampuan pulih dari kesalahan, dan maintainabilitas) dipenuhi.


Apa perbedaan antara RPL dengan computer science?

RPL berbeda dengan Computer Science karena :

  1. RPL berhubungan dengan praktek dalam memproduksi perangkat lunak. RPL lebih mendalami cara-cara pengembangan perangkat lunak mulai dari pembuatan, pemeliharaan, mengorganisasi pengembangan perangkat lunak, dan manajemen kualitas. RPL juga bisa disebut sebagai penerapan suatu pendekatan yang sistematis, disiplin dan terkuantifikasi atas pengembangan, penggunaan dan pemeliharaan perangkat lunak, serta studi atas pendekatan-pendekatan ini, yaitu penerapan pendekatan engineering atas perangkat lunak.
  2. Computer Science merupakan teori-teori dan dasar-dasar dari ilmu yang mempelajari tentang komputasi, perangkat keras dan juga perangkat lunak. Computer Science mencakup berbagai aspek yang berkaitan dengan komputer seperti analisis abstrak algoritma, bahasa pemrograman, perangkat lunak, dan juga perangkat keras. 


Sebutkan contoh akibat adanya kegagalan dalam pengembangan perangkat lunak!

Pada tahun 1960-an hingga 1980-an, banyak masalah yang ditemukan para praktisi pengembangan perangkat lunak. Banyak projek yang gagal, hingga masa ini disebut sebagai krisis perangkat lunak. Kasus kegagalan pengembangan perangkat lunak terjadi mulai dari projek yang melebihi anggaran, hingga kasus yang mengakibatkan kerusakan fisik dan kematian. Salah satu kasus yang terkenal antara lain meledaknya roket Ariane akibat kegagalan perangkat lunak.

No comments:

Post a Comment