Lompat ke isi

Rekayasa perangkat lunak

Ensiklopedia Pengetahuan Universitas Islam Sultan Agung
Revisi sejak 23 Agustus 2026 03.21 oleh Maintenance script (bicara | kontrib) (Normalisasi sumber dan atribusi Wikipedia)
(beda) ← Revisi sebelumnya | Revisi terkini (beda) | Revisi selanjutnya → (beda)

Rekayasa perangkat lunak (bahasa Inggris: software engineering) adalah cabang dari ilmu komputer dan teknik yang berfokus pada perancangan, pengembangan, pengujian, dan pemeliharaan aplikasi perangkat lunak. Bidang ini melibatkan penerapan prinsip-prinsip teknik dan keahlian pemrograman komputer untuk mengembangkan sistem perangkat lunak yang memenuhi kebutuhan pengguna.

Seorang insinyur atau perekayasa perangkat lunak menerapkan proses pengembangan perangkat lunak untuk mendefinisikan, mengimplementasikan, menguji, mengelola, dan memelihara sistem perangkat lunak.

Sejarah

Dimulai pada tahun 1960-an, rekayasa perangkat lunak diakui sebagai bidang teknik yang terpisah.

Perkembangan rekayasa perangkat lunak pada awalnya dipandang sebagai sebuah perjuangan. Masalah-masalah yang dihadapi meliputi perangkat lunak yang melebihi anggaran, melewati batas waktu, membutuhkan pengawakutuan (debugging) dan pemeliharaan yang ekstensif, serta tidak berhasil memenuhi kebutuhan konsumen atau bahkan tidak pernah selesai.

Pada tahun 1968, NATO menyelenggarakan konferensi pertama tentang rekayasa perangkat lunak, yang membahas tantangan-tantangan baru dalam pengembangan perangkat lunak dan memainkan peran penting dalam merumuskan pedoman serta praktik terbaik untuk menciptakan perangkat lunak yang andal dan mudah dipelihara.

Asal-usul istilah software engineering dikaitkan dengan berbagai sumber. Istilah ini muncul dalam daftar layanan yang ditawarkan oleh perusahaan-perusahaan dalam majalah "Computers and Automation" edisi Juni 1965 dan digunakan secara lebih formal dalam majalah Communications of the ACM edisi Agustus 1966 (Volume 9, nomor 8) dalam tulisan "President's Letter to the ACM Membership" oleh Anthony A. Oettinger. Istilah ini juga dikaitkan dengan judul konferensi NATO pada tahun 1968 oleh Profesor Friedrich L. Bauer. Margaret Hamilton mendeskripsikan disiplin "rekayasa perangkat lunak" selama misi Apollo untuk memberikan legitimasi pada apa yang sedang mereka kerjakan. Pada saat itu, dirasakan sedang terjadi "krisis perangkat lunak". Konferensi Internasional Rekayasa Perangkat Lunak ke-40 (ICSE 2018) merayakan 50 tahun "Rekayasa Perangkat Lunak" dengan pidato utama Sidang Pleno oleh Frederick Brooks dan Margaret Hamilton.

Pada tahun 1984, Software Engineering Institute (SEI) didirikan sebagai pusat penelitian dan pengembangan yang didanai secara federal, yang berkantor pusat di kampus Universitas Carnegie Mellon di Pittsburgh, Pennsylvania, Amerika Serikat. Watts Humphrey mendirikan Program Proses Perangkat Lunak SEI, yang bertujuan untuk memahami dan mengelola proses rekayasa perangkat lunak. Tingkat Kematangan Proses yang diperkenalkan kemudian menjadi Capability Maturity Model Integration for Development (CMMI-DEV), yang menetapkan bagaimana Pemerintah AS mengevaluasi kemampuan tim pengembangan perangkat lunak.

Praktik terbaik rekayasa perangkat lunak modern yang diterima secara umum telah dikumpulkan oleh subkomite ISO/IEC JTC 1/SC 7 dan diterbitkan sebagai Software Engineering Body of Knowledge (SWEBOK). Rekayasa perangkat lunak dianggap sebagai salah satu disiplin komputasi utama.

Dalam sistem modern, di mana konsep seperti Komputasi Tepi (Edge Computing), Internet untuk Segala (Internet of Things), dan Sistem siber-fisik sangat umum, perangkat lunak menjadi faktor yang krusial. Oleh karena itu, rekayasa perangkat lunak terkait erat dengan disiplin rekayasa sistem. Menurut Systems Engineering Body of Knowledge:

Perangkat lunak menonjol dalam sebagian besar arsitektur sistem modern dan sering kali menjadi sarana utama untuk mengintegrasikan komponen sistem yang kompleks. Rekayasa perangkat lunak dan rekayasa sistem bukan sekadar disiplin ilmu yang saling terkait; keduanya sangat jalin-menjalin... Rekayasa sistem yang baik adalah faktor kunci dalam mewujudkan rekayasa perangkat lunak yang baik.

Terminologi

Definisi

Beberapa definisi penting mengenai rekayasa perangkat lunak meliputi:

  • "Penerapan pengetahuan ilmiah dan teknologi, metode, serta pengalaman secara sistematis untuk perancangan, implementasi, pengujian, dan dokumentasi perangkat lunak."—Biro Statistik Tenaga Kerja—IEEE Systems and software engineering – Vocabulary
  • "Penerapan pendekatan yang sistematis, disiplin, dan terukur dalam pengembangan, pengoperasian, dan pemeliharaan perangkat lunak."—IEEE Standard Glossary of Software Engineering Terminology
  • "Sebuah disiplin teknik yang berkaitan dengan semua aspek produksi perangkat lunak." — Ian Sommerville
  • "Pembentukan dan penggunaan prinsip-prinsip teknik yang kuat untuk memperoleh perangkat lunak yang andal dan bekerja secara efisien pada mesin nyata secara ekonomis."—Fritz Bauer
  • "Cabang ilmu komputer yang berkaitan dengan perancangan, implementasi, dan pemeliharaan program komputer yang kompleks."—Merriam-Webster
  • "Rekayasa perangkat lunak mencakup bukan hanya tindakan menulis kode, melainkan semua alat dan proses yang digunakan organisasi untuk membangun dan memelihara kode tersebut dari waktu ke waktu. [...] Rekayasa perangkat lunak dapat dianggap sebagai 'pemrograman yang terintegrasi dari waktu ke waktu'."—Software Engineering di Google

Istilah ini juga digunakan secara kurang formal:

  • Sebagai istilah kontemporer informal untuk berbagai aktivitas yang dulunya disebut pemrograman komputer dan analisis sistem
  • Sebagai istilah luas untuk semua aspek praktik pemrograman komputer, berbeda dengan teori pemrograman komputer, yang dipelajari secara formal sebagai subdisiplin dari ilmu komputer
  • Sebagai istilah yang mewujudkan advokasi pendekatan spesifik terhadap pemrograman komputer, yang mendesak agar pemrograman diperlakukan sebagai disiplin rekayasa dan bukan sebagai seni atau kerajinan, serta mengadvokasi kodifikasi praktik-praktik yang direkomendasikan

Kesesuaian

Para komentator memiliki perbedaan pendapat yang tajam mengenai cara mendefinisikan rekayasa perangkat lunak atau legitimasinya sebagai disiplin teknik. David Parnas menyatakan bahwa rekayasa perangkat lunak, pada kenyataannya, adalah suatu bentuk teknik. Steve McConnell berpendapat bahwa bidang ini saat ini belum menjadi disiplin teknik, tetapi seharusnya menjadi seperti itu. Donald Knuth menyatakan bahwa pemrograman adalah sebuah seni sekaligus sains. Edsger W. Dijkstra mengklaim bahwa istilah rekayasa perangkat lunak dan insinyur perangkat lunak telah disalahgunakan di Amerika Serikat.

Beban Kerja

Analisis kebutuhan

Rekayasa kebutuhan (requirements engineering) berkaitan dengan elisitasi, analisis, spesifikasi, dan validasi kebutuhan untuk perangkat lunak. Kebutuhan perangkat lunak dapat berupa kebutuhan fungsional, kebutuhan non-fungsional, atau kebutuhan domain.

Kebutuhan fungsional mendeskripsikan perilaku yang diharapkan (misalnya keluaran sistem). Kebutuhan non-fungsional menentukan aspek-aspek seperti portabilitas, keamanan, kemudahan pemeliharaan, keandalan, skalabilitas, kinerja, penggunaan kembali, dan fleksibilitas. Kebutuhan ini diklasifikasikan menjadi beberapa jenis: batasan antarmuka, batasan kinerja (seperti waktu respons, keamanan, ruang penyimpanan, dll.), batasan operasi, batasan siklus hidup (kemudahan pemeliharaan, portabilitas, dll.), dan batasan ekonomi. Pengetahuan tentang cara kerja sistem atau perangkat lunak sangat diperlukan saat menentukan kebutuhan non-fungsional. Kebutuhan domain berkaitan dengan karakteristik kategori atau domain proyek tertentu.

Perancangan

Perancangan perangkat lunak adalah proses membuat rencana tingkat tinggi untuk perangkat lunak. Perancangan terkadang dibagi menjadi beberapa tingkatan:

Konstruksi

Konstruksi perangkat lunak biasanya melibatkan pemrograman (atau pengodean), pengujian unit, pengujian integrasi, dan pengawakutuan untuk mengimplementasikan hasil perancangan. "Pengujian perangkat lunak terkait dengan, tetapi berbeda dari, ... pengawakutuan".

Pengujian

Pengujian perangkat lunak adalah penyelidikan empiris dan teknis yang dilakukan untuk memberikan informasi kepada pemangku kepentingan tentang kualitas perangkat lunak yang diuji. Pengujian perangkat lunak dapat dipandang sebagai aktivitas berbasis risiko.

Ketika dijelaskan secara terpisah dari konstruksi, pengujian biasanya dilakukan oleh insinyur pengujian atau penjaminan kualitas (Quality Assurance) dan bukan oleh pemrogram yang menulis kodenya. Pengujian ini dilakukan pada tingkat sistem dan dianggap sebagai aspek dari kualitas perangkat lunak. Tujuan penguji selama proses pengujian adalah untuk meminimalkan jumlah total pengujian menjadi rangkaian yang dapat dikelola dan membuat keputusan yang tepat mengenai risiko mana yang harus diprioritaskan untuk diuji dan mana yang dapat ditunda.

Analisis program

Analisis program adalah proses menganalisis program komputer sehubungan dengan aspek-aspek seperti kinerja, ketahanan, dan keamanan.

Pemeliharaan

Pemeliharaan perangkat lunak mengacu pada dukungan terhadap perangkat lunak setelah dirilis. Hal ini dapat mencakup tetapi tidak terbatas pada: perbaikan kesalahan, optimalisasi, penghapusan fitur yang tidak digunakan atau dibuang, dan peningkatan fitur yang sudah ada.

Biasanya, pemeliharaan memakan biaya 40% hingga 80% dari total biaya proyek.

Pendidikan

Pengetahuan tentang pemrograman komputer merupakan prasyarat untuk menjadi seorang insinyur perangkat lunak. Pada tahun 2004, IEEE Computer Society menyusun SWEBOK, yang telah diterbitkan sebagai Laporan Teknis ISO/IEC 1979:2005, yang mendeskripsikan kumpulan pengetahuan yang direkomendasikan untuk dikuasai oleh seorang lulusan rekayasa perangkat lunak dengan pengalaman empat tahun. Banyak insinyur perangkat lunak memasuki profesi ini dengan memperoleh gelar universitas atau pelatihan di sekolah vokasi. Salah satu kurikulum internasional standar untuk gelar sarjana rekayasa perangkat lunak ditetapkan oleh Joint Task Force on Computing Curricula dari IEEE Computer Society dan Association for Computing Machinery, dan diperbarui pada tahun 2014. Sejumlah universitas memiliki program studi Rekayasa Perangkat Lunak; per tahun 2010, terdapat 244 program Sarjana Rekayasa Perangkat Lunak di kampus, 70 program daring, 230 program tingkat Magister, 41 program tingkat Doktor, dan 69 program tingkat Sertifikat di Amerika Serikat.

Selain pendidikan universitas, banyak perusahaan mensponsori program magang bagi mahasiswa yang ingin mengejar karier di bidang teknologi informasi. Magang ini dapat mengenalkan mahasiswa pada tugas-tugas dunia nyata yang dihadapi oleh insinyur perangkat lunak setiap hari. Pengalaman serupa juga dapat diperoleh melalui dinas militer di bidang rekayasa perangkat lunak.

Program studi rekayasa perangkat lunak

Sebagian kecil praktisi yang terus berkembang memiliki gelar di bidang rekayasa perangkat lunak. Pada tahun 1987, Departemen Komputasi di Imperial College London memperkenalkan program sarjana rekayasa perangkat lunak tiga tahun pertama di dunia; pada tahun berikutnya, Universitas Sheffield mendirikan program serupa. Pada tahun 1996, Institut Teknologi Rochester mendirikan program sarjana rekayasa perangkat lunak pertama di Amerika Serikat; namun, program tersebut baru mendapatkan akreditasi ABET pada tahun 2003, tahun yang sama dengan Universitas Rice, Universitas Clarkson, Sekolah Teknik Milwaukee, dan Universitas Negeri Mississippi.

Sejak saat itu, gelar sarjana rekayasa perangkat lunak telah didirikan di banyak universitas. Kurikulum internasional standar untuk gelar sarjana rekayasa perangkat lunak, SE2004, ditetapkan oleh komite pengarah antara tahun 2001 dan 2004 dengan pendanaan dari Association for Computing Machinery dan IEEE Computer Society. Per tahun 2004, sekitar 50 universitas di AS menawarkan gelar rekayasa perangkat lunak, yang mengajarkan prinsip-prinsip serta praktik ilmu komputer dan teknik. Gelar magister rekayasa perangkat lunak pertama didirikan di Universitas Seattle pada tahun 1979. Sejak saat itu, gelar pascasarjana rekayasa perangkat lunak telah tersedia di lebih banyak universitas. Demikian pula di Kanada, Canadian Engineering Accreditation Board (CEAB) dari Canadian Council of Professional Engineers telah mengakui beberapa program rekayasa perangkat lunak.

Selain itu, banyak gelar lanjutan daring dalam Rekayasa Perangkat Lunak telah muncul seperti gelar Master of Science in Software Engineering (MSE) yang ditawarkan melalui Departemen Ilmu Komputer dan Rekayasa di Universitas Negeri California, Fullerton. Steve McConnell berpendapat bahwa karena sebagian besar universitas mengajarkan ilmu komputer daripada rekayasa perangkat lunak, terjadi kelangkaan insinyur perangkat lunak sejati. Universitas ETS (École de technologie supérieure) dan UQAM (Université du Québec à Montréal) dimandatkan oleh IEEE untuk mengembangkan Software Engineering Body of Knowledge (SWEBOK), yang telah menjadi standar ISO yang mendeskripsikan kumpulan pengetahuan yang dicakup oleh seorang insinyur perangkat lunak.

Profesi

Persyaratan hukum untuk pemberian izin atau sertifikasi insinyur perangkat lunak profesional bervariasi di seluruh dunia. Di Inggris, tidak ada persyaratan izin atau hukum untuk menyandang atau menggunakan gelar pekerjaan Insinyur Perangkat Lunak. Di beberapa wilayah Kanada, seperti Alberta, British Columbia, Ontario, dan Quebec, insinyur perangkat lunak dapat memegang gelar Professional Engineer (P.Eng) dan/atau gelar Information Systems Professional (I.S.P.). Di Eropa, Insinyur Perangkat Lunak dapat memperoleh gelar profesional European Engineer (EUR ING). Insinyur Perangkat Lunak juga dapat berkualifikasi secara profesional sebagai Chartered Engineer melalui British Computer Society.

Di Amerika Serikat, NCEES mulai menawarkan ujian Professional Engineer untuk Rekayasa Perangkat Lunak pada tahun 2013, sehingga memungkinkan Insinyur Perangkat Lunak untuk dilisensikan dan diakui. NCEES menghentikan ujian tersebut setelah April 2019 karena kurangnya partisipasi. Perizinan wajib saat ini masih banyak diperdebatkan dan dianggap kontroversial.

IEEE Computer Society dan ACM, dua organisasi profesional utama rekayasa perangkat lunak yang berbasis di AS, menerbitkan panduan untuk profesi rekayasa perangkat lunak. Panduan IEEE untuk Guide to the Software Engineering Body of Knowledge – 2004 Version, atau SWEBOK, mendefinisikan bidang tersebut dan mendeskripsikan pengetahuan yang diharapkan dimiliki oleh seorang insinyur perangkat lunak praktisi oleh IEEE. Versi terbaru adalah SWEBOK v4. IEEE juga menyebarluaskan "Kode Etik Rekayasa Perangkat Lunak".

Ketenagakerjaan

Diperkirakan terdapat 26,9 juta insinyur perangkat lunak profesional di dunia pada tahun 2022, naik dari 21 juta pada tahun 2016.

Banyak insinyur perangkat lunak bekerja sebagai karyawan atau kontraktor. Insinyur perangkat lunak bekerja dengan bisnis, lembaga pemerintah (sipil atau militer), dan organisasi nirlaba. Beberapa insinyur perangkat lunak bekerja untuk diri mereka sendiri sebagai pekerja lepas (freelancer). Beberapa organisasi memiliki spesialis untuk melakukan setiap tugas dalam proses pengembangan perangkat lunak. Organisasi lain mengharuskan insinyur perangkat lunak untuk melakukan banyak atau semua tugas tersebut. Dalam proyek besar, orang mungkin berspesialisasi hanya dalam satu peran. Dalam proyek kecil, orang dapat mengisi beberapa atau semua peran secara bersamaan. Banyak perusahaan mempekerjakan pemagang, sering kali mahasiswa universitas atau perguruan tinggi selama liburan musim panas. Spesialisasi meliputi analis, arsitek, pengembang, penguji, dukungan teknis, analis middleware, manajer proyek, manajer produk perangkat lunak, pendidik, dan peneliti.

Sebagian besar insinyur perangkat lunak dan pemrogram bekerja 40 jam seminggu, tetapi sekitar 15 persen insinyur perangkat lunak dan 11 persen pemrogram bekerja lebih dari 50 jam seminggu pada tahun 2008. Potensi cedera dalam pekerjaan ini dapat terjadi karena seperti pekerja lain yang menghabiskan waktu lama duduk di depan terminal komputer mengetik di keyboard, insinyur dan pemrogram rentan terhadap kelelahan mata, ketidaknyamanan punggung, Trombosis, Obesitas, serta masalah tangan dan pergelangan tangan seperti sindrom terowongan karpal.

Amerika Serikat

U.S. Bureau of Labor Statistics (BLS) mencatat 1.365.500 pengembang perangkat lunak yang memegang pekerjaan di AS pada tahun 2018. Karena relatif barunya bidang studi ini, pendidikan formal dalam rekayasa perangkat lunak sering kali diajarkan sebagai bagian dari kurikulum ilmu komputer, dan banyak insinyur perangkat lunak memegang gelar ilmu komputer. BLS memperkirakan pertumbuhan untuk insinyur perangkat lunak dari tahun 2024 hingga 2034 adalah 15%, yang lebih rendah dari prediksi mereka dari tahun 2023 hingga 2033 bahwa rekayasa perangkat lunak komputer akan meningkat sebesar 17%. Angka ini turun dari perkiraan BLS tahun 2022 hingga 2032 sebesar 25% untuk rekayasa perangkat lunak. Dan, turun lebih jauh dari perkiraan BLS tahun 2010 hingga 2020 sebesar 30%. Karena tren ini, pertumbuhan pekerjaan mungkin tidak secepat dekade lalu, karena pekerjaan yang seharusnya diberikan kepada insinyur perangkat lunak komputer di Amerika Serikat dialihdayakan ke insinyur perangkat lunak komputer di negara-negara seperti India dan negara asing lainnya. Selain itu, Prospek Pekerjaan BLS untuk Pemrogram Komputer memprediksi penurunan sebesar -7 persen dari tahun 2016 hingga 2026, penurunan lebih lanjut sebesar -9 persen dari tahun 2019 hingga 2029, penurunan sebesar -10 persen dari tahun 2021 hingga 2031, dan kemudian penurunan sebesar -11 persen dari tahun 2022 hingga 2032. Saat ini prediksi mereka untuk tahun 2024 hingga 2034 adalah penurunan sebesar -6 persen. Karena pemrograman komputer dapat dilakukan dari mana saja di dunia, perusahaan terkadang mempekerjakan pemrogram di negara-negara dengan upah yang lebih rendah. Lebih jauh lagi, rasio perempuan di banyak bidang perangkat lunak juga mengalami penurunan selama bertahun-tahun dibandingkan dengan bidang teknik lainnya. Kemudian ada kekhawatiran tambahan bahwa kemajuan terkini dalam Kecerdasan Buatan mungkin berdampak pada permintaan generasi Insinyur Perangkat Lunak di masa depan. Namun, tren ini mungkin berubah atau melambat di masa depan karena banyak insinyur perangkat lunak saat ini di pasar AS meninggalkan profesi tersebut atau keluar dari pasar karena usia dalam beberapa dekade mendatang.

Sertifikasi

Software Engineering Institute menawarkan sertifikasi pada topik-topik khusus seperti keamanan, peningkatan proses, dan arsitektur perangkat lunak. IBM, Microsoft, dan perusahaan lain juga mensponsori ujian sertifikasi mereka sendiri. Banyak program sertifikasi TI berorientasi pada teknologi tertentu, dan dikelola oleh vendor teknologi tersebut. Program sertifikasi ini disesuaikan dengan institusi yang akan mempekerjakan orang-orang yang menggunakan teknologi tersebut.

Sertifikasi yang lebih luas untuk keterampilan rekayasa perangkat lunak umum tersedia melalui berbagai asosiasi profesional. Per tahun 2006, IEEE telah menyertifikasi lebih dari 575 profesional perangkat lunak sebagai Certified Software Development Professional (CSDP). Pada tahun 2008 mereka menambahkan sertifikasi tingkat pemula yang dikenal sebagai Certified Software Development Associate (CSDA). ACM dan IEEE Computer Society bersama-sama mengkaji kemungkinan pemberian izin bagi insinyur perangkat lunak sebagai Professional Engineer pada tahun 1990-an, tetapi akhirnya memutuskan bahwa pemberian izin tersebut tidak sesuai untuk praktik industri profesional rekayasa perangkat lunak. John C. Knight dan Nancy G. Leveson menyajikan analisis yang lebih berimbang mengenai masalah perizinan ini pada tahun 2002.

Di Inggris, British Computer Society telah mengembangkan sertifikasi profesional yang diakui secara hukum yang disebut Chartered IT Professional (CITP), yang tersedia bagi anggota yang berkualifikasi penuh (MBCS). Insinyur perangkat lunak mungkin memenuhi syarat untuk menjadi anggota British Computer Society atau Institution of Engineering and Technology sehingga memenuhi syarat untuk dipertimbangkan mendapatkan status Chartered Engineer melalui salah satu dari institusi tersebut. Di Kanada, Canadian Information Processing Society telah mengembangkan sertifikasi profesional yang diakui secara hukum yang disebut Information Systems Professional (ISP). Di Ontario, Kanada, Insinyur Perangkat Lunak yang lulus dari program terakreditasi Canadian Engineering Accreditation Board (CEAB), berhasil menyelesaikan Professional Practice Examination (PPE) dari PEO (Professional Engineers Ontario), dan memiliki setidaknya 48 bulan pengalaman teknik yang dapat diterima, memenuhi syarat untuk dilisensikan melalui Professional Engineers Ontario dan dapat menjadi Professional Engineers P.Eng. PEO tidak mengakui pendidikan daring atau jarak jauh apa pun; dan tidak menganggap program Ilmu Komputer setara dengan program rekayasa perangkat lunak meskipun ada tumpang tindih yang sangat besar antara keduanya. Hal ini memicu kontroversi dan perang sertifikasi. Hal ini juga menyebabkan jumlah pemegang gelar P.Eng untuk profesi ini sangat rendah. Sebagian besar profesional yang bekerja di bidang ini memegang gelar dalam CS (Ilmu Komputer), bukan SE (Rekayasa Perangkat Lunak). Mengingat jalur sertifikasi yang sulit bagi pemegang gelar non-SE, sebagian besar dari mereka tidak pernah repot-repot mengejar lisensi tersebut.

Dampak globalisasi

Dampak awal dari alih daya (outsourcing), dan biaya sumber daya manusia internasional yang relatif lebih rendah di negara-negara berkembang dunia ketiga menyebabkan migrasi besar-besaran aktivitas pengembangan perangkat lunak dari korporasi di Amerika Utara dan Eropa ke India, dan kemudian: Tiongkok, Rusia, serta negara berkembang lainnya. Pendekatan ini memiliki beberapa kelemahan, terutama perbedaan jarak / zona waktu yang menghalangi interaksi manusia antara klien dan pengembang serta transfer pekerjaan besar-besaran. Hal ini berdampak negatif pada banyak aspek profesi rekayasa perangkat lunak. Sebagai contoh, beberapa mahasiswa di negara maju menghindari pendidikan yang berkaitan dengan rekayasa perangkat lunak karena takut akan alih daya lepas pantai (offshore outsourcing—mengimpor produk atau layanan perangkat lunak dari negara lain) dan digantikan oleh pekerja visa asing. Selain itu, kelebihan pekerja teknologi tinggi telah menyebabkan adopsi yang lebih luas dari sistem jam kerja 996 dan jadwal '007' sebagai beban kerja yang diharapkan. Meskipun statistik saat ini tidak menunjukkan ancaman terhadap rekayasa perangkat lunak itu sendiri; karier terkait, yaitu pemrograman komputer, tampaknya telah terpengaruh. Namun demikian, kemampuan untuk memanfaatkan sumber daya lepas pantai dan dekat pantai secara cerdas melalui alur kerja mengikuti matahari (follow-the-sun) telah meningkatkan kapabilitas operasional keseluruhan dari banyak organisasi. Ketika orang Amerika Utara pulang kerja, orang Asia baru saja tiba untuk bekerja. Ketika orang Asia pulang kerja, orang Eropa tiba untuk bekerja. Ini memberikan kemampuan berkelanjutan untuk memiliki pengawasan manusia pada proses penting bisnis 24 jam per hari, tanpa membayar kompensasi lembur atau mengganggu sumber daya manusia yang penting, yaitu pola tidur.

Meskipun alih daya global memiliki beberapa keuntungan, pengembangan global—dan umumnya terdistribusi—dapat menghadapi kesulitan serius yang diakibatkan oleh jarak antar pengembang. Hal ini disebabkan oleh elemen-elemen kunci dari jenis jarak ini yang telah diidentifikasi sebagai geografis, temporal, kultural, dan komunikasi (yang mencakup penggunaan bahasa dan dialek bahasa Inggris yang berbeda di lokasi yang berbeda). Penelitian telah dilakukan di bidang pengembangan perangkat lunak global selama 15 tahun terakhir dan kumpulan karya relevan yang ekstensif telah diterbitkan yang menyoroti manfaat dan masalah yang terkait dengan aktivitas kompleks tersebut. Seperti aspek rekayasa perangkat lunak lainnya, penelitian masih terus berlanjut di bidang ini dan bidang terkait.

Penghargaan

Terdapat berbagai penghargaan di bidang rekayasa perangkat lunak:

  • ACM-AAAI Allen Newell Award- AS. Diberikan untuk kontribusi karier yang memiliki keluasan dalam ilmu komputer, atau yang menjembatani ilmu komputer dan disiplin ilmu lainnya.
  • BCS Lovelace Medal. Diberikan kepada individu yang telah memberikan kontribusi luar biasa dalam pemahaman atau kemajuan komputasi.
  • ACM SIGSOFT Outstanding Research Award, dipilih untuk individu yang telah memberikan "kontribusi signifikan dan langgeng dalam penelitian bagi teori atau praktik rekayasa perangkat lunak."
  • Lebih banyak ACM SIGSOFT Awards.
  • Codie award, penghargaan tahunan yang dikeluarkan oleh Software and Information Industry Association untuk keunggulan dalam pengembangan perangkat lunak di dalam industri perangkat lunak.
  • Harlan Mills Award untuk "kontribusi pada teori dan praktik ilmu informasi, yang berfokus pada rekayasa perangkat lunak".
  • ICSE Most Influential Paper Award.
  • Jolt Award, juga untuk industri perangkat lunak.
  • Stevens Award diberikan untuk mengenang Wayne Stevens.

Kritik

Beberapa pihak menyerukan perizinan, sertifikasi, dan kodifikasi kumpulan pengetahuan sebagai mekanisme untuk menyebarkan pengetahuan teknik dan mematangkan bidang ini.

Beberapa pihak mengklaim bahwa konsep rekayasa perangkat lunak masih sangat baru sehingga jarang dipahami, dan banyak disalahtafsirkan, termasuk dalam buku teks rekayasa perangkat lunak, makalah, dan di antara komunitas pemrogram serta pengrajin kode.

Beberapa pihak mengklaim bahwa masalah inti dalam rekayasa perangkat lunak adalah bahwa pendekatannya kurang empiris karena validasi dunia nyata dari pendekatan tersebut biasanya tidak ada, atau sangat terbatas, dan karenanya rekayasa perangkat lunak sering kali disalahtafsirkan sebagai hal yang layak hanya dalam "lingkungan teoretis."

Edsger Dijkstra, penemu banyak konsep dalam pengembangan perangkat lunak saat ini, menolak gagasan "rekayasa perangkat lunak" hingga kematiannya pada tahun 2002, dengan argumen bahwa istilah-istilah tersebut merupakan analogi yang buruk untuk apa yang disebutnya sebagai "kebaruan radikal" dari ilmu komputer:


Lihat pula

Studi dan praktik

Peran

Aspek profesional


Kutipan

Sumber


Bacaan lanjutan

Pranala luar


Sumber dan atribusi

Konten artikel ini diadaptasi dari Wikipedia bahasa Indonesia, revisi 29579605 (2026-08-15), yang tersedia berdasarkan lisensi Creative Commons Atribusi-BerbagiSerupa (CC BY-SA). Mohon gunakan konten ini secara bijak serta sesuai dengan ketentuan lisensi yang berlaku.