Konsep Rekayasa Perangkat Lunak

Dilansir menurut IEEE, perangkat lunak didefinisikan sebagai program komputer, prosedur, aturan, dan dokumentasi yang berkaitan dengannya serta data yang berkaitan dengan operasi suatu sistem komputer. Software Engineering atau rekayasa perangkat lunak merupakan profesi yang mendalami tentang bagaimana cara mengembangkan, merawat, memelihara, dan mengubah perangkaat lunak agar lebih efektif dan efisien saat digunakan. Saat mengembangkan perangkat lunak, kita membutuhkan rancangan atau metode agar dapat menghasilkan perangkat lunak yang berkualitas.

Terdapat beberapa poin penting konsep dasar yang dapat membantu kita untuk lebih memahami terkait rekayasa perangkat lunak, yaitu:

  • Rekayasa perangkat lunak merupakan pendekatan sistematis yang disiplin mulai dari awal sistem dirancang hingga ketika sistem siap untuk digunakan. Pendekatan yang dilakukan dapat berupa perancangan, penerapan, pengujian, analisis, penilaian, pemeliharaan, hingga rekayasa ulang.
  • Rekayasa perangkat lunak umumnya dikerjakan secara bersama-sama agar perkembangan yang dilakukan dapat berjalan secara cepat dan tepat.
  • Rekayasa perangkat lunak sangat dibutuhkan dalam mengembangkan perangkat lunak agar produk yang dihasilkan sesuai dengan keinginan.
  • Spesifikasi, pengembangan, validasi, dan evolusi merupakan tahapan yang digunakan dalam proses pengembangan perangkat lunak.

Rekayasa perangkat lunak pada dasarnya sangatlah dibutuhkan dalam mengembangkan perangkat lunak. Dengan adanya rekayasa perangkat lunak, produk yang dihasilkan akan sesuai target, berkinerja tinggi, cepat, terjamin kualitasnya, terjangkau, dan dapat digunakan diberbagai jenis platform.

Serangkaian rekayasa perangkat lunak mencakup tiga hal penting di dalamnya, yaitu proses, produk, dan manajemen. Dalam proses mengembangkan perangkat lunak, terdapat tahapan-tahapan mulai dari spesifikasi, pengembangan, validasi, hingga evolusi. Proses rekayasa yang tepat akan dapat menghasilkan perangkat lunak yang siap untuk digunakan dengan kualitas yang baik. Manajemen diperlukan dalam proyek rekayasa lunak agar dalam tahapannya sesuai rencana, efektif, terkendali, dan minim risiko.

Dalam mengembangkan perangkat lunak, proses merupakan salah satu kunci penting dalam menciptakan produk yang berkualitas tinggi. Tahapan-tahapan pada proses pengembangan perangkat lunak harus dilakukan secara sistematis. Proses tersebut meliputi spesifikasi, pengembangan, validasi, dan evolusi. Pada spesifikasi, kita harus mengidentifikasi mengenai hal-hal yang dapat dilakukan oleh perangkat lunak hingga kendala pada proses pengembangannya. Setelah melakukan proses spesifikasi, kita dapat lanjut pada proses pengembangan di mana software engineering mulai membuat sistem perangkat lunak. Selanjutnya melakukan validasi guna menguji apakah produk yang diciptakan telah sesuai dengan keinginan user. Hingga masuklah pada tahapan terakhir, yaitu evolusi. Tahapan evolusi merupakan proses pembaharuan guna mengikuti perkembangan zaman agar perangkat lunak yang diciptakan dapat terus relevan dengan perkembangan yang ada.

Software engineering dan software development merupakan dua profesi yang berbeda. Software engineering bertugas merancang, mengembangkan, menguji, dan memelihara perangkat lunak yang akan diciptakan. Sedangkan, software development bertugas dalam mengembangkan perangkat lunak yang telah dirancang agar menjadi aplikasi yang sesuai dengan kebutuhan dan keinginan pengguna. Oleh karena itu, software engineering dikerjakan dengan skala yang lebih besar karena keseluruhan projek perkembangannya diawasi oleh software engineering. 

Dalam mengembangkan perangkat lunak, software engineering harus memiliki komitmen. Berikut 8 prinsip yang harus dipatuhi oleh seorang software engineer menurut ACM dan ICEE-CS:

  1. Public (bertindak konsisten pada kepentingan publik)
  2. Client and Employer (memberikan tindakan terbaik secara konsisten kepada pelanggan maupun atasan)
  3. Product (memastikan produk yang dihasilkan memenuhi kriteria profesional yang tinggi)
  4. Judgement (berintegritas dan mandiri dalam menilai)
  5. Management (dapat menyebarkan pendekatan etis manajemen dalam sebuah perangkat lunak serta pemeliharaannya)
  6. Profession (bereputasi yang konsisten terhadap kepentingan publik)
  7. Colleagues (adil dan mendukung antar rekan kerja)
  8. Self (selalu memperbaharui pengetahuan terkait praktik profesi dan pendekatan etika)
Tidak hanya itu, seorang software engineering harus memerhatikan isu mengenai kode etik. Berikut ini beberapa kode etik yang dikeluarkan oleh ACM(Association for Computing Machinery):
  1. Hasil yang diperoleh berorientasi pada masyarakat dan kesejahteraan manusia serta segala pertimbangannya seperti menghargai keberagaman, bertanggung jawab secara sosial, memenuhi kebutuhan sosial, dan dapat diakses secara luas.
  2. Menghindari bahaya dengan memberitahu informasi-informasi mengenai resiko yang dapat terjadi kepada klien.
  3. Jujur dan dapat dipercaya. Transparan dalam memberikan segala informasi mengenai sistem atau perangkat lunak yang dikembangkan.
  4. Bersikap adil dan tidak melakukan diskriminasi dengan menjunjung tinggi nilai-nilai SARA, kesetaraan, toleransi, rasa hormat, dan keadilan.
  5. Menghormati dan menghargai kepemilikan orang lain.
  6. Tidak menggunakan informasi klien dan menjunjung tinggi privasi serta rahasia.
  7. Memberikan hasil yang maksimal dengan kualitas sebaik mungkin terhadap produk yang diciptakan.
  8. Dapat mengevaluasi diri terhadap segala pekerjaan yang telah dilakukan secara profesional.
  9. Menciptakan peluang bagi sesama untuk meningkatkan pengetahuan keterampilan dalam profesionalisme, praktik etika, dan spesialisasi teknis mereka.
  10. Mengelola karyawan dan sumber daya untuk meningkatkan kualitas kehidupan kerja untuk memastikan bahwa mereka meningkatkan, bukan menurunkan kualitas kehidupan kerja para Software Engineer. 

Kesimpulan

  • Software Engineering atau rekayasa perangkat lunak merupakan profesi yang mendalami tentang bagaimana cara mengembangkan, merawat, memelihara, dan mengubah perangkaat lunak agar lebih efektif dan efisien saat digunakan.
  • Rekayasa perangkat lunak melakukan pendekatan melalui perancangan, penerapan, pengujian, analisis, penilaian, pemeliharaan, hingga rekayasa ulang guna menciptakan produk yang sesuai dengan keinginan pengguna serta dilaksanakan dalam skala besar.
  • Rekayasa perangkat lunak bertujuan menghasilkan akan sesuai target, berkinerja tinggi, cepat, terjamin kualitasnya, terjangkau, dan dapat digunakan diberbagai jenis platform.
  • Ilmu mengenai rekayasa perangkat lunak mencakup proses, produk, dan manajemen.
  • Proses rekayasa perangkat lunak melalui empat tahapan, yaitu spesifikasi, pengembangan, validasi, dan evolusi.
  • Software engineer merancang secara keseluruhan perangkat lunak dan mengawasi berjalannya proyek agar sesuai harapan. Sedangkan software development mengembangkan rancangan yang telah dibuat menjadi perangkat lunak yang siap digunakan pengguna.
  • Delapan prinsip profesional software engineer menurut ACM/ICEE-CS, yaitu publik, klien dan atasan, produk, penilaian, manajemen, profesi, kolega, dan diri sendiri.

Daftar Pustaka

Andika. (2016, November 18). Konsep Dasar Rekayasa Perangkat Lunak (RPL). Wordpress. Retrieved February 15, 2023, from https://andika532.wordpress.com/2016/11/18/konsep-dasar-rekayasa-perangkat-lunak-rpl/

Nugroho, A. (2020, August 11). Apa itu rekayasa perangkat lunak?. Qwords. Retrieved February 15, 2023, from https://qwords.com/blog/rekayasa-perangkat-lunak/

Yudha. Manajemen Proses Perangkat Lunak - Rekayasa Perangkat Lunak. LadangTekno. Retrieved February 15, 2023, from https://www.ladangtekno.com/2020/12/manajemen-proses-perangkat-lunak.html

Anandari, N. (2019, September 12).  Ini Dia Kode Etik Profesi yang Perlu Anda Ketahui Sebagai Software Engineer. Retrieved February 15, 2023, from https://medium.com/skyshidigital/ini-dia-kode-etik-profesi-yang-perlu-anda-ketahui-sebagai-software-engineer-f70772ce5d0b

(2023, January 3). RPL Adalah : Materi, Kriteria, Tujuan, dan Ruang Lingkup RPL. Adalah.Co.Id. Retrieved February 15, 2023, from https://adalah.co.id/rpl/

(2022, December 14). Software Developer vs. Software Engineer: What Are the Differences in These Roles. Coursera. Retrieved February 15, 2023, from https://www.coursera.org/articles/software-developer-vs-software-engineer

Larasati, A. (2022, August 31). Jangan Sampai Tertukar, Ini Perbedaan Software Engineer dan Software Developer. Gamelab. Retrieved February 15, 2023, from https://www.gamelab.id/news/1817-jangan-sampai-tertukar-ini-perbedaan-software-engineer-dan-software-developer

Kottama, B. A. (2018, August 29). Prinsip-prinsip & Etika di Software Engineering. Medium. Retrieved February 15, 2023, from https://medium.com/@bryanagamk/prinsip-prinsip-etika-di-software-engineering-8dbfc3d7da78



Komentar

Postingan populer dari blog ini

Siklus Pengembangan Perangkat Lunak atau Software Development Life Cycle (SDLC)