2 | Konsep Rekayasa Perangkat Lunak
Konsep Rekayasa Perangkat Lunak
Sebelum menelusuri materi ini, mari kita telusuri kembali dahulu, apa pengertian dari perangkat lunak.
Terdapat banyak pengertian bagi perangkat lunak dari berbagai ahli, tetapi secara umum, perangkat lunak dapat diartikan sebagai kumpulan dari prosedur, program, dan dokumen data lainnya, yang saling berhubungan satu sama lain yang juga merepresentasikan masalah yang ada di dunia nyata yang juga dikonfigurasikan ke bentuk sebuah aplikasi yang harus dikerjakan komputer.
Tapi secara singkatnya perangkat lunak terdiri dari 3 komponen utama, yakni Program, Data, dan Dokumentasi. Apakah ketiga komponen ini?
Data adalah sekumpulan fakta maupun keterangan yang dibuat menggunakan kata - kata, simbol, kalimat, angka, dan lain seterusnya. Data ini merupakan komponen yang akan direkam atau menjadi perintah bagi sebuah perangkat lunak.
Dokumentasi adalah proses pemilihan, pengolahan, penyimpanan, dan pengumpulan informasi di bidang pengetahuan. Kegiatan dokumentasi ini merupakan kegiatan untuk menyimpan dan menerima data yang diberikan ke software.
Setelah mengulas kembali apa itu software, mari kita masuk ke materi utama.
A. Rekayasa Perangkat Lunak (RPL)
Konsep dasar rekayasa perangkat lunak
Untuk membahas materi rekayasa perangkat lunak ini, mari kita kupas satu persatu, mengenai apa, siapa, kapan, kenapa, dimana, dan bagaimana, dari materi ini.
a. What (Apa itu rekayasa perangkat lunak)
Rekayasa perangkat lunak atau dapat disingkat sebagai RPL, memiliki banyak pengertian oleh banyak ahli maupun kelompok.
RPL secara umum dapat diartikan sebagai pendekatan sistematis terhadap perancangan, analisis, penilaian, pengujian, implementasi, rekayasa ulang, dan pemeliharaan perangkat lunak dengan menggunakan prinsip - prinsip dari rekayasa untuk perangkat lunak.
RPL ini berupa ilmu, yang digunakan untuk membahas semua aspek dari memproduksi sebuah perangkat lunak, dari awal spesifikasi sistem, hingga pemeliharaan dari sistem yang telah digunakan.
b. Who (Untuk siapa rekayasa perangkat lunak ini ditujukan)
Rekayasa perangkat lunak ini ditujukan untuk orang - orang yang berniat membangun sebuah perangkat lunak, dengan fungsi memberikan arahan tentang bagaimana pembuatan sebuah perangkat lunak itu, harus dilakukan.
c. When (Kapan rekayasa perangkat lunak ini dilaksanakan)
Kegiatan rekayasa perangkat lunak ini dilaksanakan ketika proyek perangkat lunak yang ingin dikembangkan, tidak dapat dilaksanakan hanya dengan cara tradisional, yakni hanya dengan menulis sebuah program saja, tetapi ketika proyeknya memiliki kerumitan, ketidakpastian kebutuhan, dan masalah lain yang membutuhkan pengamatan lebih lanjut untuk membangun perangkat lunak yang dibutuhkan.
d. Where (Dimana rekayasa perangkat lunak ini diimplementasikan)
Kegiatan rekayasa perangkat lunak ini diimplementasikan dan dilaksanakan ketika perangkat lunak yang ingin dikembangkan, sudah masuk ke dalam sekala sedang dan besar. Yang dimaksud dengan sekala sedang dan besar adalah ketika perangkat lunak yang dibutuhkan itu, memiliki tingkat kompleksitas yang tinggi, serta ketika proyeknya meliputi cukup banyak jumlah kebutuhan pengguna perangkat lunak.
e. Why (Kenapa melakukan kegiatan rekayasa perangkat lunak ini)
Kegiatan rekayasa perangkat lunak ini dilaksanakan, karena proyek yang berskala sedang dan besar ini memiliki banyak rentetan tugas, yang tentunya juga menyebabkan lebih banyak personil yang dibutuhkan untuk melakukan kegiatan pembuatan perangkat lunak. Fungsi rekayasa perangkat lunak ini adalah memberi teknik - teknik dalam menjalankan kegiatan pengembangan perangkat lunak ini termasuk dalam pembuatan perangkat lunaknya sendiri maupun dalam manajemen tim pengembang, guna menjadi pekerjaan yang berjalan dengan baik dan lancar, serta menghasilkan perangkat lunak akhir yang berkualitas.
f. How (Bagaimana melakukan rekayasa perangkat lunak)
teknik - teknik yang diterapkan dalam rekayasa perangkat lunak untuk pengembangan perangkat lunak secara garis besar meliputi :
- Spesifikasi perangkat lunak, yakni tahapan mencari tahu apa saja fitur yang dibutuhkan dalam perangkat lunak yang dikembangkan,
- Pengembangan perangkat lunak, yakni tahapan dimana perangkat lunak mulai dikembangkan,
- Validasi perangkat lunak, yakni tahapan pengujian perangkat lunak akan bug, ataupun kesalahan tertentu lainnya dari perangkat lunak,
- Evolusi perangkat lunak, salah satu tahapan yang sering dilupakan tetapi penting. Tahapan ini yakni tahapan mengadaptasikan perangkat lunak dengan waktu dan zamannya.
- Hasil akhir kegiatannya tepat waktu
- Pembiayaannya tidak keluar anggaran
- Meningkatkan kinerja
- Mengoperasikan prosedur sistem dengan benar
Cakupan rekayasa perangkat lunak
Yang dimaksud dengan cakupan rekayasa perangkat lunak, adalah mengenai bagian - bagian dalam pembangunan sebuah perangkat lunak, yang dibahas di dalam rekayasa perangkat lunak, yakni
a. Proses
Rekayasa perangkat lunak mencangkup proses dari mengembangkan dan membangun sebuah perangkat lunak. Yang dimaksud dengan proses ini, adalah semua aspek teknis yang ada dan perlu untuk membangun sebuah perangkat lunak dari tahap awalan (spesifikasi) sampai tahap yang paling akhir (evolusi).
b. Manajemen
Manajemen, dalam rekayasa perangkat lunak yakni mengenai pengelolaan (manajemen) yang perlu ketika melakukan pembangunan perangkat lunak, biasanya dalam bentuk proyek perangkat lunak. Hal - hal yang dikelola oleh manajemen dalam rekayasa perangkat lunak meliputi :
- Sumber daya manusia
- Resiko
- Proses
- Biaya
Tidak sama dengan manajemen keuangan, manajemen biaya adalah sistem yang disusun untuk memberikan informasi yang lengkap, yang kemudian akan digunakan oleh manajemen, guna menjalankan kegiatan operasional, yakni meliputi kegiatan mengidentifikasi peluang, penyempurnaan proses dari produksi, perencanaan strategi, serta untuk membuat keputusan terkait dengan pengadaan serta pemanfaatan sumber daya yang dibutuhkan oleh perusahaan.
Proses yang dimaksud di atas, mencangkup anggaran, estimasi, pendanaan, pengelolaan, perbandingan antara biaya, pengelolaan, dan perencanaan. Tujuan dari manajemen biaya ini adalah agar selesainya kegiatan tepat waktu dan tepat anggaran.
- Waktu
- Procurement
- Stakeholder
- Ruang lingkup proyek
- Kualitas
Manajemen kualitas yakni proses - proses dan kegiatan yang dilakukan untuk memastikan dan mempertahankan kualitas produk akhir, agar selaras dengan ekspetasi awal.
dan lain seterusnya
c. Produk
Tujuan rekayasa perangkat lunak
- Agar perangkat lunak yang dihasilkan sesuai dengan kebutuhan yang diinginkan
- Agar perangkat lunak yang dihasilkan dapat digunakan dengan benar di lingkungan sebenarnya
- Agar perangkat lunak yang dihasilkan dapat memberikan manfaat bagi pemakai yang menggunakannya
- Agar biaya yang dikeluarkan untuk mengembangkan perangkat lunaknya rendah, dan hasilnya tepat waktu, baik saat pembuatan, penyerahan ke pamakainya, maupun saat instalasinya.
- Agar dalam setiap tahap pekerjaan, dapat terjamin kualitasnya, dapat dipertanggungjawabkan kebenarannya (ada proses validasi dan verifikasi), dan terdokumentasi.
Karakteristik rekayasa perangkat lunak
- Understandability, yakni rekayasa perangkat lunak harus dapat dimengerti, apalagi oleh orang yang tidak begitu mengerti tentang rekayasa perangkat lunak,
- Visibility, yakni apakah aktivitas - aktivitas proses dari awal mencapai akhir dengan hasil yang jelas, sehingga kemajuan dari proses tersebut terlihat nyata / jelas
- Maintainability, mengenai kemampuan proses untuk diperbaiki dan dikembangkan
- Supportability, yakni sejauh mana aktivitas proses ini dapat didukung oleh CASE
- Acceptability, yakni apakah aktivitas proses yang telah ditentukan ini dapat diterima, digunakan, dan dilaksanakan dengan bertanggung jawab, selama pembuatan software
- Reliability, yakni apakah proses dapat dilakukan dengan kesalahan proses dapat dihindari atau tidak terjadi, guna menghindari kesalahan pada produk akhir
- Rapidity, yakni seberapa cepat sebuah sistem dapat dikirimkan setelah spesifikasi yang diinginkan telah disediakan
- Robustness, adalah kemampuan proses tetap berjalan meski terjadi kesalahan di dalamnya.
Proses perangkat lunak
Rangkaian kegiatan dan hasil - hasilnya yang memberi hasil berupa perangkat lunak sebagian besar dilakukan oleh perekayasa perangkat lunak. Ada 4 kegiatan atau aktivitas pada proses perangkat lunak, yakni :
- Spesifikasi, berupa hal - hal yang menjadi fitur dan fungsi dari perangkat lunak, apa yang harus dapat dilakukan oleh perangkat lunaknya yang dibuat, serta batasan ataupun kendala dalam kemampuan operasinya didefinisikan disini.
- Pengembangan, yakni bagian produksi dari perangkat lunak
- Validasi, yakni pengujian atas perangkat lunak guna melihat kecocokannya dengan apa yang diinginkan pengguna, serta mencari kesalahan dalam sistem
- Evolusi, yakni pengubahan atas perangkat lunaknya, sesuai dengan keinginan dari pengguna
Programming VS software developing VS software engineering
kedua istilah, programming dan developing sering didengar pada rekayasa perangkat lunak, keduanya memiliki arti yang berbeda, yakni :
Pemrogramman, pemrogramman adalah menciptakan keputusan, atau memberi perintah terhadap komputer apa yang harus dilakukan dalam keadaan yang berbeda - beda. Pemrogramman sangat memanfaatkan logika.
Sedangkan developing, berupa proses menentukan, merancang, menyusun. memprogram, menguji, mendokumentasikan, serta memperbaiki masalah atau bug yang terdapat di dalam pembuatan serta pemeliharaan perangkat lunak. Maka dari itu, developing mencangkup pengembangan baru, penelitian, modifikasi, membuat prototype, rekayasa ulang, penggunaan kembali, maupun aktivitas lain, semuanya yang bersangkutan dengan perangkat lunak.
Untuk software engineering, berbeda dengan software developing, software engineer biasanya sudah termasuk dalam proses pengembangan software dari awal. Software developer biasanya hanya mengisi sebagian dari tugas dari software engineer dalam pengembangan sebuah software. Dalam software development life cycle, yakni sebuah struktur pengembangan software yang dianggap efisien dan bagus untuk diterapkan, terdapat beberapa tahap dalam pengembangan software yakni perencanaan, persyaratan, desain, membangun, dokumentasi, testing, dan penggunaan / penyebaran. software developer disini, biasanya hanya bertanggung jawab atas bagian desain, membangun, dan mengetes software. Sedangkan software engineer biasanya melaksanakan semua bagian dari SDLC tersebut, dan diperlukan dalam tahap perencanaan dan persyaratan.
B. Etika Rekayasa Perangkat Lunak
Isu tanggung jawab professional
- Konfidensilitas
- Engineer biasanya harus merahasiakan dengan hormat hal - hal mengenai atasan dan klien mereka, terlepas dari ada tidaknya perjanjian formal yang telah ditandatangani
- Kompetensi
- Seorang engineer tidak boleh menggambarkan tingkat kemampuannya. Seorang engineer seharusnya dengan tidak sengaja apabila mengambil pekerjaan yang lebih dari kompetensi yang mereka miliki
- Hak properti intelektual
- Seorang engineer harus sadar akan hukum tempatnya bekerja, yang bersangkutan dengan penggunaan kekayaan intelektual seperti hak cipta, paten, dan lain - lain. Mereka harus dengan seksama dan hati - hati memeriksa kekayaan intelektual atasan dan kliennya dilindungi.
- Penyalahgunaan komputer
- Seorang engineer seharusnya tidak untuk menggunakan keterampilannya untuk disalahgunakan, seperti penyalahgunaan atas komputer milik orang lain. Penyalahgunaan ini bisa dari masalah yang tergolong sepele (bermain game di komputer orang lain) hingga sampai yang serius (menyebarkan virus)
Kode etik IEEE
IEEE atau dikenal juga dengan insititute of electrical and electronics engineers, adalah organisasi yang beranggotakan insinyur, yang memiliki tujuan untuk perkembangan teknologi demi meningkatkan harkat kemanusiaan.
Menurut IEEE, seorang technical engineer terikat pada perilaku kode etis dan professional tertinggi, serta menjunjung kode etik sebagai berikut :
- Menolak penyogokan dan penyuapan dalam bentuk apapun
- Mengembangkan pemahaman atas teknologi, aplikasi yang sesuai, dan kemungkinan konsekuensinya
- Mengupayakan menghindari kecelakaan kepada orang lain, pekerjaan, atau reputasi dengan kegiatan yang tidak benar, ataupun berniat buruk
- Bersifat jujur dan realistis dalam menyatakan perkiraan atau klaim menurut data yang ada
- Menerima tanggung jawab dalam pengambilan keputusan di kegiatan engineering, yang taat akan asas pada kesehatan, keamanan, kesejahteraan publik, serta segera memberitahu secara terbuka apabila ada faktor yang dapat membahayakan bagi publik atau lingkungan
- Membantu rekan yang lain dalam mengembakan profesi mereka dan mendukung mereka dengan dan dalam mengikuti kode etik
- Menerima, mencari dan menawarkan kritik serta saran pekerjaan teknis, memperbaiki dan mengakui atas kesalahan serta menghargai kontribusi oleh orang lain.
- Mengembangkan dan menjaga kompetensi teknis dan mengambil tugas teknologi lain, hanya ketika mempunyai kualifikasi yang cukup melalui pengalaman ataupun pelatihan, atau setelah menyatakan dengan terbuka keterbatasan relevansinya
- Memperlakukan secara rata dan adil semua orang, terlepas dari ras, agama, gender, kekurangan, cacat, maupun umur.
Kode etik ACM
ACM atau juga dikenal dengan nama association for computery machinery adalah asosiasi profesi TI dalam bidang ilmu dan pendidikan komputer. Assosiasi ini menjalankan kegiatan,yakni memberikan sumber daya untuk pengembangkan komputer, baik secara profesi, maupun ilmu.
Menurut ACM, kode etik ini terbagi atas beberapa hal, yakni tanggung jawab professional khusus, elemen keputusan, kepemimpinan organisasi, dan kewajiban moral.
Kode etik dan praktek profesional rekayasa perangkat lunak
- Product atau produk, artinya produk yang dihasilkan ataupun modifikasi yang dilakukan terhadap produknya, dijamin oleh perekayasa perangkat lunak, memenuhi standar professional setinggi - tingginya.
- Judgment dan penilaian, artinya integritas dan independensi penilaian professional yang dilakukan oleh perekayasa perangkat lunak, akan dipertahankan oleh seorang perekayasa perangkat lunak tersebut
- Public atau masyarakat, Artinya secara konsisten, seorang perekayasa perangkat lunak akan bergerak sesuai dengan kepentingan masyarakat
- Client dan employer, Artinya dengan melakukan sebaik mungkin, seorang perekayasa perangkat lunak akan menjalankan tugasnya bagi klien dan atasan mereka, dengan masih tetap konsisten terhadap kepentingan masyarakat
- Profession atau profesi, Artinya seorang perekayasa perangkat lunak akan mementingkan reputasi dan integritas profesi, konsisten dengan kepentingan masyarakat
- Management atau manajemen, Artinya dengan mengikuti dan mempromosikan pengembangan etis, seorang manajer akan melaksanakan kegiatan manajemen pemeilharaan dan pengembangan perangkat lunak itu.
- Self atau diri sendiri, Artinya dengan seumur hidupnya, seorang perekayasa perangkat lunak akan berpartisipasi dalam pembelajaran seumur hidupnya, mengenai praktek profesi mereka, dan juga akan mempromosikan pendekatan yang etis, terhadap praktek dari profesi tersebut
- Collegues atau kolega, Artinya seorang perekayasa perangkat lunak, haruslah bersikap dengan adil, dan dengan positif mendukung koleganya.
Selain rekayasa perangkat lunak, terdapat juga istilah lain yakni rekayasa sistem atau system engineering.
Bila rekayasa perangkat lunak adalah meliputi pembangunan perangkat lunak, kontrol, aplikasi, infrastruktur dan database pada sistem.
Rekayasa sistem berkaitan dengan semua aspek di dalam pembangunan sistem berbasis komputer, hal ini termasuk rekayasa perangkat lunak, proses, bahkan hardware.
Jadi, rekayasa perangkat lunak hanyalah suatu subdivisi dari rekayasa sistem.
Kesimpulan
- Perangkat lunak dapat diartikan sebagai kumpulan dari prosedur, program, dan dokumen data lainnya, yang saling berhubungan satu sama lain yang juga merepresentasikan masalah yang ada di dunia nyata yang juga dikonfigurasikan ke bentuk sebuah aplikasi yang harus dikerjakan komputer.
- Program adalah suatu rancangan desain, kode skema, struktur, maupun bentuk - bentuk yang lainnya yang disusun sesuai dengan alur dari Algoritma yang memiliki tujuan untuk mempermudah suatu permasalahan.
- Data adalah sekumpulan fakta maupun keterangan yang dibuat menggunakan kata - kata, simbol, kalimat, angka, dan lain seterusnya.
- Dokumentasi adalah proses pemilihan, pengolahan, penyimpanan, dan pengumpulan informasi di bidang pengetahuan.
- RPL dapat diartikan sebagai pendekatan sistematis terhadap perancangan, analisis, penilaian, pengujian, implementasi, rekayasa ulang, dan pemeliharaan perangkat lunak dengan menggunakan prinsip - prinsip dari rekayasa untuk perangkat lunak.
- Fungsi rekayasa perangkat lunak adalah memberi teknik - teknik dalam menjalankan kegiatan pengembangan perangkat lunak, termasuk dalam pembuatan perangkat lunaknya sendiri maupun dalam manajemen tim pengembang, guna pekerjaan yang berjalan dengan baik dan lancar, serta menghasilkan perangkat lunak akhir yang berkualitas.
- Rekayasa perangkat lunak ditujukan untuk orang - orang yang berniat membangun sebuah perangkat lunak, dengan fungsi memberikan arahan tentang bagaimana pembuatan sebuah perangkat lunak itu, harus dilakukan.
- Kegiatan rekayasa perangkat lunak dilaksanakan ketika proyek perangkat lunak yang ingin dikembangkan, tidak dapat dilaksanakan hanya dengan cara tradisional
- Kegiatan rekayasa perangkat lunak dilaksanakan ketika perangkat lunak yang ingin dikembangkan, sudah masuk ke dalam skala sedang dan besar.
- Cakupan dari RPL adalah proses, produk, dan manajemen
- Manajemen dalam RPL terdiri dari manajemen sumber daya manusia, resiko, proses, biaya, waktu, procurement, stakeholder, ruang lingkup proyek, kualitas, dan lain seterusnya
- Aktivitas rekayasa perangkat lunak meliputi : Spesifikasi, fungsionalitas, perangkat lunak, dan batasan kemampuan operasinya harus didefinisikan, pengembangan (proses produksi PL), Validasi (Pengujian perangkat lunak terhadap spesifikasi), Evolusi (sw/req change)
- Programming ≠ software developing ≠ software engineering
- Terdapat 8 prinsip profesional software engineering ACM/IEEE-CS, yakni :
2. Menjamin produk memenuhi standard profesional setinggi - tingginya
3. mementingkan integritas dan reputasi profesi konsisten dengan kepentingan masyarakat
4. Melakukan yang terbaik bagi klien dan atasan
5. Berpartisipasi dalam pembelajaran seumur hidup mengenai praktek profesi dan mempromosikan pendekatan etis terhadap praktek profesi itu
6. Manajer dan perangkat lunak akan mengikuti dan mempromosikan pendekatan etis terhadap manajemen pengembangan dan pemeliharaan perangkat lunak.
7. Bersikap adil dan mendukung terhadap koleganya
8. Mempertahankan integritas dan independensi penilaian professional mereka
Referensi :
https://id.wikipedia.org/wiki/Institute_of_Electrical_and_Electronics_Engineers
https://www.spiceworks.com/tech/devops/articles/software-developer-vs-software-engineer/#:~:text=The%20software%20developer%20can%20be,(SDLC)%20from%20the%20beginning.
https://www.elektroindonesia.com/elektro/komp27.html#:~:text=Visibility%2C%20apakah%20aktivitas%2Daktivitas%20proses,proses%20dapat%20didukung%20oleh%20CASE
https://publikasiilmiah.ums.ac.id/bitstream/handle/11617/12178/Prosiding%20Semnas%20Teknik%20Sipil%20UMS%202020-446-454.pdf?sequence=1#:~:text=Manajemen%20Integrasi%20Proyek%20(Project%20Integration,dalam%20group%20Proses%20Manajemen%20Proyek
https://repository.dinus.ac.id/docs/ajar/Mempro_5.pdf
https://revou.co/panduan-karir/apa-itu-stakeholder-management#:~:text=Stakeholder%20management%20adalah%20suatu%20proses%20untuk%20mengidentifikasi%2C%20memprioritaskan%2C%20serta%20melibatkan,selama%20proses%20pengembangan%20produk%20perusahaan.
https://glints.com/id/lowongan/procurement-management-adalah/#:~:text=Menurut%20Oracle%2C%20procurement%20management%20adalah,digunakan%20dalam%20supply%20chain%2Dnya.
https://bitlabs.id/blog/manajemen-waktu-adalah/#Pengertian_Manajemen_Waktu
https://accurate.id/marketing-manajemen/pengertian-lengkap-manajemen-risiko/
https://id.wikipedia.org/wiki/Manajemen_proses
https://unida.ac.id/teknologi/artikel/pengertian-program-dan-tujuannya.html#:~:text=Apa%20itu%20program%3F,dengan%20tujuan%20mempermudah%20suatu%20permasalahan.
https://www.gramedia.com/literasi/pengertian-data/
https://sambiroto.ngawikab.id/2020/11/dokumentasi-pengertian-dan-reduksi-pemaknaannya-kini/#:~:text=Menurut%20KBBI%2C%20definisi%20dokumentasi%20adalah,koran%2C%20dan%20bahan%20referensi%20lain.
https://id.wikipedia.org/wiki/Rekayasa_perangkat_lunak
http://repository.stei.ac.id/1034/3/BAB%202.pdf
Comments
Post a Comment