Perangkat lunak open source (OSS) telah menjadi bagian penting dalam ekosistem teknologi informasi global. Dengan pertumbuhan komunitas pengembang yang terus meningkat dan adopsi luas dalam berbagai bidang, OSS tidak hanya dipilih karena biayanya yang rendah, tetapi juga karena fleksibilitas, ketersediaan kode sumber, dan inovasi yang terbuka. Namun, seiring berjalannya waktu, kualitas OSS menjadi fokus perhatian, terutama dalam hal maintainability atau kemampuan pemeliharaan.
Maintainability merujuk pada seberapa mudah sebuah perangkat lunak dapat diperbaiki, dimodifikasi, atau ditingkatkan. Dalam siklus hidup perangkat lunak, aspek ini sangat penting untuk memastikan kelangsungan dan relevansi sistem. Tanpa maintainability yang baik, perangkat lunak rentan mengalami penurunan performa, peningkatan jumlah bug, dan ketidakmampuan dalam mengikuti perkembangan kebutuhan pengguna.
Salah satu cara efektif untuk menilai maintainability adalah dengan melakukan evaluasi longitudinal, yaitu penilaian yang dilakukan secara berkala selama periode waktu tertentu. Evaluasi ini bertujuan untuk melihat perubahan kualitas perangkat lunak dalam jangka panjang. Artikel ini membahas pendekatan evaluasi longitudinal terhadap maintainability OSS dengan menggunakan model kualitas perangkat lunak yang telah distandardisasi, seperti ISO/IEC 25010.
Model Kualitas Perangkat Lunak
ISO/IEC 25010 adalah model kualitas perangkat lunak yang terdiri dari delapan karakteristik utama, yaitu:Â
1. Functional Suitability (Kesesuaian Fungsional)Â
Menunjukkan sejauh mana perangkat lunak menyediakan fungsi-fungsi yang memenuhi kebutuhan pengguna sesuai dengan yang ditentukan dalam spesifikasi.
2. Performance Efficiency (Efisiensi Kinerja)Â
Mengukur kinerja sistem perangkat lunak terkait waktu respons, penggunaan sumber daya, dan kapasitas sistem dalam kondisi tertentu.
3. Compatibility (Kompatibilitas)Â
Kemampuan perangkat lunak untuk beroperasi bersama dengan sistem, aplikasi, atau lingkungan lain tanpa konflik.
4. Usability (Kemudahan Penggunaan)Â
Menilai sejauh mana pengguna dapat memahami, belajar, dan menggunakan perangkat lunak dengan nyaman dan efisien.
5. Reliability (Keandalan)Â
Menggambarkan kemampuan perangkat lunak untuk berfungsi dengan stabil di berbagai kondisi tanpa kegagalan.
6. Security (Keamanan)
Kemampuan perangkat lunak untuk melindungi data dan menjaga kerahasiaan serta integritas informasi.
7. Maintainability (Kemampuan Pemeliharaan)Â
Menilai sejauh mana perangkat lunak dapat diubah untuk memperbaiki kesalahan, meningkatkan performa, atau beradaptasi dengan perubahan lingkungan.
8. Portability (Portabilitas)Â
Kemampuan perangkat lunak untuk dipindahkan dan dijalankan di lingkungan atau platform berbeda tanpa perubahan besar.Â
Dari kedelapan karakteristik tersebut, maintainability memiliki peran penting dalam keberlangsungan OSS. ISO/IEC 25010 mendefinisikan maintainability ke dalam lima subkarakteristik, yaitu:
1. ModularityÂ
Sejauh mana sistem dapat dipecah menjadi komponen-komponen yang independen.
2. ReusabilityÂ
Kemampuan komponen untuk digunakan kembali dalam konteks yang berbeda.
3. AnalysabilityÂ
 kemudahan dalam mendiagnosis masalah dan memahami perubahan yang dibutuhkan.
4. ModifiabilityÂ
Kemudahan dalam melakukan perubahan tanpa memperkenalkan cacat baru.
5. TestabilityÂ
 Kemudahan dalam menguji perangkat lunak setelah dilakukan perubahan.
Metodologi Evaluasi Longitudinal
Evaluasi longitudinal dilakukan dengan cara memantau dan menganalisis evolusi proyek OSS selama kurun waktu tertentu, misalnya 5 hingga 10 tahun. Data dikumpulkan dari repositori kode sumber seperti GitHub atau GitLab, menggunakan alat bantu otomatis seperti SonarQube, Understand, atau statis code analyzer lainnya. Beberapa metrik yang digunakan antara lain:
1. Code Churn (jumlah baris kode yang berubah)
2. Cyclomatic Complexity
3. Lines of Code (LOC)
4. Coupling and Cohesion
5. Code Smells
6. Documentation Coverage
Evaluasi dilakukan secara periodik, misalnya setiap rilis besar atau per tahun. Dengan pendekatan ini, tren terhadap kualitas maintainability dapat diketahui, apakah mengalami peningkatan atau penurunan seiring waktu.
Implementasi  Longitudinal terhadap Maintainability Perangkat Lunak Open Source Menggunakan Model Kualitas Perangkat LunakÂ
Sebagai ilustrasi, proyek open source seperti Apache HTTP Server, LibreOffice, atau Mozilla Firefox dapat digunakan sebagai objek studi. Dengan mengambil data historis dari proyek tersebut, analisis dapat dilakukan untuk mengevaluasi bagaimana tim pengembang melakukan pemeliharaan perangkat lunak.
Sebagai contoh, analisis pada proyek Mozilla Firefox selama lima tahun terakhir menunjukkan adanya peningkatan dalam dokumentasi dan penurunan cyclomatic complexity rata-rata, yang mengindikasikan perbaikan dalam aspek analysability dan modifiability. Namun, meningkatnya code churn dan jumlah code smells pada beberapa modul tertentu menunjukkan adanya tantangan dalam menjaga konsistensi kualitas.
Hasil dan Temuan
Dari hasil evaluasi longitudinal terhadap beberapa proyek OSS, dapat ditemukan beberapa temuan penting:
1. Tren Maintainability Tidak Selalu Stabil
Banyak proyek OSS mengalami fluktuasi dalam metrik maintainability karena pergantian kontributor, perubahan arsitektur, atau adopsi teknologi baru.
2. Dokumentasi Berpengaruh Besar pada Analysability
Proyek dengan dokumentasi yang baik cenderung lebih mudah dianalisis dan dimodifikasi, terutama oleh kontributor baru.
3. Refactoring dan Modularisasi Mendukung Maintainability
Proyek yang secara aktif melakukan refactoring dan modularisasi menunjukkan peningkatan skor maintainability dari waktu ke waktu.
4. Automated Testing dan CI/CD Meningkatkan Testability
Penerapan praktik rekayasa perangkat lunak modern seperti Continuous Integration (CI) dan unit testing secara otomatis memberikan dampak signifikan terhadap aspek testability.
Tantangan Evaluasi Maintainability OSS
Beberapa tantangan yang dihadapi dalam evaluasi longitudinal ini antara lain:
1. Variabilitas Kontributor
OSS sangat bergantung pada kontribusi sukarela yang tidak konsisten, sehingga kualitas pemeliharaan bisa sangat bervariasi.
2. Kurangnya Standarisasi Dokumentasi
Tidak semua proyek OSS memiliki standar dokumentasi yang seragam, sehingga menyulitkan analisis pada subkarakteristik analysability.
3. Evolusi Arsitektur
Ketika proyek berkembang, arsitekturnya dapat berubah drastis, membuat perbandingan metrik menjadi lebih kompleks.
***
Evaluasi longitudinal terhadap maintainability perangkat lunak open source memberikan wawasan yang sangat berharga tentang bagaimana proyek berkembang dan dipelihara dari waktu ke waktu. Dengan menggunakan model kualitas perangkat lunak seperti ISO/IEC 25010 dan metrik yang tepat, organisasi dan pengembang dapat mengidentifikasi area perbaikan serta memastikan keberlanjutan proyek OSS.
Di masa depan, pendekatan ini dapat ditingkatkan dengan menggabungkan teknik pembelajaran mesin untuk memprediksi degradasi kualitas, serta menerapkan visualisasi data interaktif untuk membantu pengembang memahami kondisi kode secara real-time. Dengan demikian, kualitas dan keberlangsungan OSS dapat terus ditingkatkan secara sistematis dan berkelanjutan.
Refrensi
Molnar, A.-J., & Motogna, S. (2020). Longitudinal evaluation of open-source software maintainability. IEEE Access, 8, 54494--54511. https://doi.org/10.1109/ACCESS.2020.2981983
Follow Instagram @kompasianacom juga Tiktok @kompasiana biar nggak ketinggalan event seru komunitas dan tips dapat cuan dari Kompasiana. Baca juga cerita inspiratif langsung dari smartphone kamu dengan bergabung di WhatsApp Channel Kompasiana di SINI