Pemeliharaan dan Evolusi Perangkat Lunak
Pemeliharaan dan evolusi perangkat lunak berkaitan dengan modifikasi perangkat lunak setelah pengiriman dan dinamika jangka panjang di mana sistem harus terus berubah agar tetap berguna.
Definition
Pemeliharaan perangkat lunak adalah modifikasi produk perangkat lunak setelah pengiriman untuk memperbaiki kesalahan, meningkatkan kinerja, atau mengadaptasinya ke lingkungan yang berubah, dan evolusi perangkat lunak adalah proses yang lebih luas dan berkelanjutan di mana perangkat lunak berubah sepanjang masa pakainya sebagai respons terhadap pergeseran persyaratan dan lingkungan.
Scope
Area ini mencakup kategori pemeliharaan (korektif, adaptif, perfektif, preventif); hukum empiris evolusi perangkat lunak; pemahaman program dan analisis dampak; rekayasa ulang, rekayasa balik, dan migrasi sistem lama (legacy systems); akumulasi dan pengelolaan utang teknis (technical debt); serta proses dan standar yang mengatur pemeliharaan seperti ISO/IEC 14764.
Sub-topics
Core questions
- Kategori perubahan apa saja yang membentuk pemeliharaan, dan bagaimana perbedaannya?
- Hukum empiris apa yang mengatur bagaimana perangkat lunak harus berevolusi seiring waktu?
- Bagaimana perangkat lunak lama dipahami, direstrukturisasi, dan dimigrasikan?
- Bagaimana utang teknis terakumulasi dan bagaimana cara mengelolanya?
Key theories
- Kategori pemeliharaan perangkat lunak
- Pemeliharaan diklasifikasikan sebagai korektif (memperbaiki kesalahan), adaptif (menanggapi perubahan lingkungan), perfektif (meningkatkan fungsi atau kinerja), dan preventif (meningkatkan kemampuan pemeliharaan), dengan pekerjaan adaptif dan perfektif mendominasi dalam praktiknya.
- Hukum evolusi perangkat lunak Lehman
- Lehman mengamati bahwa sistem yang aktif digunakan harus terus berubah atau menjadi semakin tidak memuaskan, dan seiring evolusinya, kompleksitasnya meningkat kecuali jika dilakukan upaya untuk menguranginya.
Clinical relevance
Pemeliharaan umumnya menghabiskan sebagian besar total biaya masa pakai suatu sistem, sehingga memahami dinamika evolusi, mengendalikan pertumbuhan kompleksitas, dan mengelola utang teknis sangat menentukan untuk ekonomi dan kelangsungan hidup perangkat lunak dalam jangka panjang.
Evidence & guidelines
ISO/IEC 14764 mendefinisikan proses pemeliharaan perangkat lunak, dan area pengetahuan Pemeliharaan Perangkat Lunak SWEBOK memberikan panduan konsensus tentang kategori, aktivitas, dan teknik pemeliharaan.
History
Pengakuan bahwa pemeliharaan mendominasi biaya perangkat lunak tumbuh pada tahun 1970-an; Lehman dan Belady merumuskan hukum evolusi perangkat lunak dari studi empiris sistem besar, dan teknik rekayasa ulang serta modernisasi sistem lama (legacy-modernization) berkembang seiring bertambahnya usia sistem yang berumur panjang dan utang teknis menjadi perhatian yang diakui.
Debates
- Memelihara, merekayasa ulang, atau mengganti sistem lama
- Memutuskan apakah akan terus memelihara, merestrukturisasi, atau sepenuhnya mengganti sistem yang menua adalah perdebatan strategis yang berulang, menyeimbangkan risiko dan biaya penggantian dengan meningkatnya biaya dan kerapuhan pemeliharaan berkelanjutan.
Key figures
- Meir M. Lehman
- Les Belady
- Ian Sommerville
Related topics
Seminal works
- lehman1980
- iso14764
- sommerville2015
Frequently asked questions
- Apakah pemeliharaan hanya memperbaiki bug?
- Tidak. Perbaikan bug (pemeliharaan korektif) hanyalah salah satu kategori; sebagian besar upaya pemeliharaan bersifat adaptif dan perfektif — menyesuaikan perangkat lunak dengan lingkungan baru dan menambah atau meningkatkan kapabilitas — yang secara bersama-sama melebihi pekerjaan korektif pada sistem yang umum.
- Mengapa kompleksitas perangkat lunak cenderung meningkat seiring waktu?
- Seperti yang diamati Lehman, perubahan berkelanjutan untuk memenuhi kebutuhan yang berkembang menambah struktur dan kasus khusus; kecuali jika upaya sengaja dilakukan untuk restrukturisasi dan mengurangi kompleksitas, sistem menjadi semakin sulit untuk diubah.