Rabu, 13 November 2019

Rekayasa Perangkat Lunak

Pengertian dan Tujuan RPL

Pengertiaan dan Definisi 

Menurut Wikipedia : Rekayasa perangkat lunak adalah satu bidang profesi yang mendalami cara-cara pengembangan perangkat lunak termasuk pembuatan, pemeliharaan, manajemen organisasi pengembanganan perangkat lunak dan manajemen kualitas.

Menurut IEEE Computer Society : Rekayasa perangkat lunak 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.

Rekayasa Perangkat Lunak adalah pengubahan perangkat lunak itu sendiri guna mengembangkan, memelihara, dan membangun kembali dengan menggunakan prinsip reakayasa untuk menghasilkan perangkat lunak yang dapat bekerja lebih efisien dan efektif untuk pengguna.

Tujuan Rekayasa Perangkat Lunak

Secara lebih khusus kita dapat menyatakan tujuan dan Rekaya Perangkat Lunak ini adalah:
  • Memperoleh biaya produksi perangkat lunak yang rendah.
  • Menghasilkan pereangkat lunak yang kinerjanya tinggi, andal dan tepat waktu
  • Menghasilkan perangkat lunak yang dapat bekerja pada berbagai jenis platform
  • Menghasilkan perangkat lunak yang biaya perawatannya rendah

Kriteria Dalam Merekayasa Perangkat Lunak

  • Dapat terus dirawat dan dipelihara (maintainability)
  • Dapat mengikuti perkembangan teknologi (dependability)
  • Dapat mengikuti keinginan pengguna (robust).
  • Efektif dan efisien dalam menggunakan energi dan penggunaannya.
  • Dapat memenuhi kebutuhan yang diinginkan (usability).

Ruang Lingkup Rekayasa Perangkat Lunak

  • Software Requirements berhubungan dengan spesifikasi kebutuhan dan persyaratan perangkat lunak.
  • Software desain mencakup proses penampilan arsitektur, komponen, antar muka, dan karakteristik lain dari perangkat lunak.
  • Software construction berhubungan dengan detail pengembangan perangkat lunak, termasuk. algoritma, pengkodean, pengujian dan pencarian kesalahan.
  • Software testing meliputi pengujian pada keseluruhan perilaku perangkat lunak.
  • Software maintenance mencakup upaya-upaya perawatan ketika perangkat lunak telah dioperasikan.
  • Software configuration management berhubungan dengan usaha perubahan konfigurasi perangkat lunak untuk memenuhi kebutuhan tertentu.
  • Software engineering management berkaitan dengan pengelolaan dan pengukuran RPL, termasuk perencanaan proyek perangkat lunak.
  • Software engineering tools and methods mencakup kajian teoritis tentang alat bantu dan metode RPL.

Rekayasa Perangkat Lunak dan Disiplin Ilmu Lain

Cakupan ruang lingkup yang cukup luas, membuat RPL sangat terkait dengan disiplin dengan bidang ilmu lain. tidak saja sub bidang dalam disiplin ilmu komputer namun dengan beberapa disiplin ilmu lain diluar ilmu komputer.

Keterkaitan RPL dengan bidang ilmu lain

  • Bidang ilmu manajemen meliputi akuntansi, finansial, pemasaran, manajemen operasi, ekonomi, analisis kuantitatif, manajemen sumber daya manusia, kebijakan, dan strategi bisnis. 
  • Bidang ilmu matematika meliputi aljabar linier, kalkulus, peluang, statistik, analisis numerik, dan matematika diskrit.
  • Bidang ilmu manajemen proyek meliputi semua hal yang berkaitan dengan proyek, seperti ruang lingkup proyek, anggaran, tenaga kerja, kualitas, manajemen resiko dan keandalan, perbaikan kualitas, dan metode-metode kuantitatif.

Paradigma Rekayasa Perangkat Lunak (Waterfall)

Ada beberapa paradigma rekayasa perangkat lunak. Dalam pengembangan suatu perangkat lunak yang baik dan berkualitas dikenal metode daur hidup rekayasa perangkat lunak atau lebih dikenal dengan metode air terjun (waterfall). Model waterfall atau classic life cycle ini disebut juga Linear Sequential Model. Model rekayasa ini memberikan pendekatan-pendekatan yang sistematik dan sekuensial dalam pengembangan perangkat lunak.

Menurut Pressman (2001), tahapan dalam pengembangan Linear Sequential Model adalah sebagai berikut:

Rekayasa Sistem (System Engineering)

Perangkat lunak merupakan bagian dari sebuah sistem dalam arti suatu bagian dari sistem yang digunakan. Pengembangan software dilakukan dimulai dari analisis kebutuhan–kebutuhan software. Analisis ini penting untuk dikerjakan karena akan menentukan konektifitas antara hardware, user dan database.

Analisis kebutuhan perangkat lunak (Software Requirement Analysis)

Analisis dilakukan untuk mengetahui kebutuhan perangkat lunak, untuk memahami perangkat lunak, analyst harus memahami informasi seperti, fungsi-fungsi yang dibutuhkan, kemampuan perangkat lunak dan antar muka perangkat lunak. Untuk kebutuhan sistem dan perangkat lunak, didokumentasi dan di-review dengan customer.

Perancangan (Design)

Perancangan perangkat lunak dititik-beratkan pada empat atribut program yaitu struktur data, arsitektur perangkat lunak, rincian prosedur dan karakteristik antar muka. Pada tahap ini dilakukan pemindahan kebutuhan ke dalam suatu representasi perangkat lunak yang dapat dilakukan pengkajian kualitas sebelum pengkodean dimulai.

Pengkodean (Coding)

Pada tahap ini dilakukan pengkodean dengan mengubah hasil rancangan ke dalam bentuk y ang dap at dibaca oleh mesin.

Pengujian (Testing)

Setelah program selesai dibuat maka tahapan selanjutnya akan dilakukan testing. Proses testing ini difokuskan pada:

Logical internal of the software. Pengetesan terhadap statement-statement.
Functional external. Pengetesan dilakukan untuk menemukan error pada program. Pada pengetesan ini input yang diberikan harus mendapatkan output yang sesuai dengan yang diharapkan.

Pemeliharaan (Maintenance)

Tahap ini dilakukan karena ada proses perubahan perangkat lunak yang disebabkan adanya kesalahan yang ditemukan karena penyesuaian perangkat lunak terhadap keadaan luar (perubahan diperlukan karena suatu sistem operasi atau device baru), atau ada fungsi-fungsi baru yang ingin ditambahkan sesuai dengan kebutuhan user.