Rekayasa Perangkat Lunak

Rekayasa perangkat lunak (RPL, atau dalam bahasa Inggris: Software Engineering atau SE) adalah satu bidang profesi yang mendalami cara-cara pengembangan perangkat lunak termasuk pembuatan, pemeliharaan, manajemen organisasi pengembanganan perangkat lunak dan manajemen kualitas.
Perangkat lunak (Software) adalah sekelompok item atau  objek yang membentuk konfigurasi dimana didalamnya termasuk :
  • Program : sekumpulan instruksi yang ketika dieksekusi akan memberi fungsi dan hasil yang diinginkan
  • Data : sekumpulan data yang memungkinkan program memanipulasi informasi
  • Dokumen : sekumpulam dokumen yang menggambarkan operasi dan penggunaan program
Peranan perangkat lunak antara lain:
  • Perangkat lunak adalah sebuah produk
    1. Menyajikan potensi komputasi
    2. Menghasilkan, mengelola, memperoleh, memodifikasi, menampilkan atau mengirimkan informasi
  • Perangkat lunak adalah alat untuk menyajikan sebuah produk
    1. Mendukung atau menyediakan langsung fungsi sistem
    2. Mengendalikan program lain (mis: operating system)
    3. Mempengaruhi komunikasi (mis: networking software)
    4. Membantu membangun PL lain (mis: software tools)
Secara lebih khusus kita dapat menyatakan tujuan RPL adalah untuk:
  • Memperoleh biaya produksi perangkat lunak yang rendah.
  • Menghasilkan perangkat 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 antara lain:
  • 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 RPL meliputi:
  • Software Requirements berhubungan dengan spesifikasi kebutuhan dan persyaratan perangkat lunak.
  • Software design 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.
Menurut Roger R. Pressman, proses perangkat lunak merupakan serangkaian kegiatan dan hasil hasil relevannya yang menghasilkan perangkat lunak. Kegiatan ini sebagian besar dilakukan oleh perekayasa perangkat lunak. Terdapat empat kegiatan proses dasar, meliputi:
  • Spesifikasi perangkat lunak, Fungsionalitas perangkat lunak dan batasan kemampuan operasinya harus didefinisikan.
  • Pengembangan perangkat lunak, Pengembangan terhadap produk perangkat lunak yang memenuhi spesifikasi perangkat lunak.
  • Validasi perangkat lunak, Perangkat lunak harus divalidasi untuk menjamin bahwa perangkau lunak melakukan apa yang diinginkan oleh user.
  • Evolusi rangkat lunak. Perangkat lunak harus berkembang untuk memenuhi kebutuhan pelanggan yang berubah ubah.

Metode rekayasa perangkat lunak merupakan pendekatan terstruktur terhadap pengembangan perangkat lunak yang bertujuan memfasilitasi produksi perangkat lunak kualitas tinggi dengan cara yang efektif dalam hal biaya. Terdapat beberapa metode yang bisa digunaka seperti metode berorientasi fungsi, metode berorientasi objek dan metode pendekatan gabungan yang sekarang lebih dikenal dengan istilah UML (unified modeling language).
Keterkaitan RPL dengan bidang ilmu lain antara 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.
Perkembangan perangkat lunak
  1. Era pertama
    • Batch orientation
      Suatu orientasi dimana proses dilakukan setelah data dikumpulkan dalam satuan waktu tertentu, atau proses dilakukan setelah data terkumpul, lawan dari batch adalah online atau interactive process. Keuntungan dari interactive adalah mendapatkan data yang selalu uptude
    • Limmited distribution
      Suatu penyebaran software yang tebatas pada perusahaan tertentu
    • Custummer software
      Software yang dikembangkan berdasarkan keinginan persahaan tertentu
  2. Era kedua
    • Multi user
      Suatu sistem dimana satu komputer digunakan oleh beberapa user pada saat yang sama
    • Real time
      Suatu sistem yang dapat mengumpulkan, menganalisa dan mentransformasikan data dari berbagai sumber, mengontrol proses dan mengahasilkan output dalam milisecond
    • Database
      Perkembangan yang pesat dari alat penyimpanan data yang online menyebabkan muncul generasi pertama DBMS (Database Menagement System)
    • Product software
      Adalah software yang dikembangkan untuk dijual kepada masyrakat luas.
  3. Era ketiga
    • Distributed system
      Suatu system yang tidak hanya dipusatkan pada komputer induk (Host computer) daerah atau bidang lainnya yang juga memiliki komputer yang ukurannya lebih kecil dari komputer induk. Lawan dari distributed system adalah centralized system.
    • Embedded intellegence
      Suatu product yang diberi tambahan "intellegence" dan biasanya ditambhakan mikroprocessor yang mutakhir. Contohnya automobil, robot, peralatan diagnostic serum darah.
    • Low cost hardware
      Harga hardware yang semakin rendah, ini dimungkinkan karena munculnya personal computer
    • Custumer impact
      Adanya perkembangan komputer yang murah menyebabkan banyaknya software ini memberi dampak yang besar terhadap masyarakat
  4. Era keempat
    • Expert system
      Suatu penerapan A.I pada bidang-bidang tertentu, misalnya kodoteran, komunkasi, dll
    • A I Machine
      Suatu mesin yang dapat meniru kerja dari sebagian  otak mansia. Misalnya mesin ronot, komoter catur
    • Parallel architecture
      Arsitektur komputer yang memungkinkan procossor berbeda dalam satu komputer
     
Karakteristik perangkat lunak antara lain:
  • Software merupakan elemen sistem logik dan bukan elemen sistem fisik seperti hardware.
  • Elemen itu tidak aus, tetapi bisa rusak.
  • Elemen software itu direkayasa atau dikembangkan dan bukan dibuat di pabrik seperti hardware
  • Software itu tidak bisa dirakit.

Tanggung Jawab Profesional dan Etika

Rekayasa perangkat lunak jelas dibatasi oleh hukum lokal, nasional dan internasional. Perekayasa perangkat lunak harus memiliki tanggung jawab etis dan moral jika ingin dihormati sebagai profesional. Terdapat beberapa standar dan kode etik yang harus dipertimbangkan, yaitu:
  • Konfidensialitas, Harus menghormati konfidensialitas atasan dan kliennya walaupun tidak ada persetujuan yang ditanda tangani secara formal.
  • Kompetensi. Tidak boleh menyalahi tingkat kompetensinya (melebihi atau menyimpang)
  • Hak Properti Intelektual, Menyadari terhadap hukum yang mengatur penggunaan properti intelektual, seperti paten, hak cipta dan lain sebagainya.
  • Penyalahgunaan Komputer, Tidak boleh dengan sengaja menyalah gunakan komputer yang nantinya berakibat merugikan orang lain, seperti penyebaran virus, penyadapan dan lain sebagainya.
Share:

Tidak ada komentar:

Posting Komentar

Popular Posts

Recent Posts