Pendahuluan
Perangkat lunak adalah entitas yang unik dibandingkan produk rekayasa lainnya karena kemampuannya untuk terus berkembang. Namun, evolusi ini bukannya tanpa tantangan. Dalam praktiknya, pemeliharaan perangkat lunak menyerap sebagian besar biaya siklus hidup sistem. Artikel ini menggambarkan bagaimana pemeliharaan ( maintenance ) dan evolusi perangkat lunak ( software Evolution ) harus dipandang tidak hanya sebagai tugas teknis, tetapi juga sebagai tantangan manajerial dan strategi yang kompleks.
Penelitian yang dilakukan oleh Keith Bennett dan Vaclav Rajlich ini menyusun peta jalan (roadmap) untuk pengembangan masa depan pemeliharaan dan evolusi perangkat lunak selama 10 tahun ke depan. Peta jalan ini memperkenalkan model secara bertahap, mendalami tantangan empiris, dan menjawab kebutuhan organisasi modern dalam lanskap bisnis yang berubah dengan cepat.
Definisi dan Ruang Lingkup
Definisi Pemeliharaan
Menurut IEEE 1219, pemeliharaan perangkat lunak adalah:
"Modifikasi pada perangkat lunak setelah pengiriman untuk memperbaiki kesalahan, meningkatkan kinerja atau atribut lainnya, atau beradaptasi dengan lingkungan yang telah berubah."
ISO/IEC 12207 juga menekankan bahwa aktivitas ini terjadi setelah perangkat lunak dirilis.
Evolusi Perangkat Lunak
Evolusi mencakup proses yang lebih besar dan dinamis dibandingkan pemeliharaan. Hal ini berkaitan dengan perubahan signifikan yang memerlukan pemahaman mendalam terhadap sistem, domain aplikasi, dan arsitektur. Evolusi dianggap sebagai fase dalam model bertahap , yaitu model siklus hidup perangkat lunak bertahap yang dijelaskan pada bagian berikut.