Software Maintenance Maturity Model


Software Maintenance Maturity Model merupakan penilaian dan peningkatan fungsi perawatan perangkat lunak dengan mengusulkan perbaikan standar pemeliharaan perangkat lunak dan juga memperkenalkan model yang diusulkan jatuh tempo untuk kegiatan pemeliharaan perangkat lunak sehari-hari.

Sebuah persepsi umum pemeliharaan adalah bahwa hal itu hanya memperbaiki cacat. Namun, suatu studi menunjukkan bahwa lebih dari 80% dari usaha pemeliharaan digunakan untuk tindakan non-korektif. Persepsi ini diabadikan oleh pengguna mengirimkan masalah melaporkan bahwa pada kenyataannya peningkatan fungsionalitas ke sistem. 



Aspek Kegiatan Maintenance
Aktivitas pemeliharaan yang pertama terjadi karena asumsi yang salah pada saat uji coba yaitu kesalahan-kesalahan tersembunyi pada perangkat lunak yang cukup besar. Menurut O’Brien (2005) bahwa dibutuhkan pembagian kegiatan maintenance ke dalam empat aspek. Pemeliharaan perangkat lunak dapat dibedakan menjadi:
  • Adaptive, diartikan sebagai modifikasi sistem untuk mengatasi perubahan lingkungan software. Aktivitas yang kedua ini terjadi karena pertumbuhan atau perkembangan perangkat lunak atau perangkat keras sehingga memerlukan modifikasi dari perangkat lunak yang telah dibuat.
  • Perfective, diartikan sebagai tindakan baru implementasi atau perubahan pengguna peralatan yang mana memperhatikan fungsi tambahan untuk software. Aktivitas ini terjadi pada saat perangkat lunak yang telah dibuat dan dilakukan uji coba kemudian digunakan oleh user. Setelah digunakan oleh user, mungkin timbul permintaan tambahan fungsi sesuai dengan keinginan pemakai/user.
  • Corrective, diartikan sebagai deteksi dan perbaikan masalah yang ditemukan oleh pengguna. Aktivitas ini terjadi pada saat produk dipakai dan hasil yang didapat oleh pamakai baik berupa kesalahan yang timbul maupun kesalahan dalam bentuk keluaran yang tidak sesuai.
  • Preventive, diartikan sebagai peningkatan kemampuan software atau reabilitas untuk menghindari masalah di masa yang akan datang. Pemeliharaan yang terakhir dilakukan untuk menghadapi kemajuan perangkat lunak atau perangkat keras di masa mendatang, misalnya penambahan fungsi-fungsi ataupun melengkapi fungsi-fungsi yang sudah ada.

Teknik-teknik Maintenance
Software maintenance yang efektif dilakukan dengan teknik yang spesifik atau khusus untuk maintenance. Beberapa teknik praktis yang biasa digunakan oleh maintener adalah sebagai berikut:

  1. Program Comprehension, programmer menghabiskan banyak waktu untuk membaca dan mengerti program dalam rangka mengimplementasikan perubahan. Code browsers merupakan tools kunci dalam program comprehension. Dokumentasi yang singkat dan jelas dapat membantu dalam program comprehension. Berdasarkan atas pentingnya subtopic ini, maka IEEE Computer Society mengadakan pelatihan yang diadakan setiap tahunnya mengenai program comprehension.
  2. Reengineering, reengineering biasanya tidak dilakukan untuk meningkatkan kemudahan melakukan maintenance (maintainability) namun untuk mengganti legacy system yang sudah berumur. Refactoring atau transformasi program yang mengorganisasi ulang (reorganisasi) tanpa mengubah perilaku sistem sekarang digunakan dalam reverse engineering untuk meningkatkan struktur program berorientasi objek.
  3. Reverse engineering, reverse engineering adalah proses menganalisa subjek sistem untuk mengindentifikasi komponen sistem dan hubungan yang terjadi di dalamnya untuk direpresentasikan dalam bentuk lain atau pada level abstraksi yang lebih tinggi. Reverse engineering dilakukan secar pasif, artinya tidak mengubah sistem atau menghasilkan sistem yang baru. Sebuah usaha reverse engineering sederhana mungkin menghasilkan sesuatu yang disebut graphs dan control flow graphs dari source code. Jenis dari reverse engineering antaralain redocumentation dan design recovery. Date Reverse Engineering mempunyai pengaruh penting beberapa tahun belakangan. Topic Reverse engineering menjadi bahan diskusi dalam acara tahunan Working Conference on Reverse Engineering (WCRE).
  4. Impact Analysisimpact analysis mengidentifikasi keseluruhan sistem dan produk sistem yang dipengaruhi oleh permintaan perubahan (change request) dan membuat perkiraan sumber daya yang diperlukan untuk melakukan perubahan. Dilakukan setelah permintaan, perubahan (change request) diterima oleh configuration management process. Beberapa hal penting tentang impact analisis: Menentukan ruang lingkup perubahan untuk perencanaan dan implementasi, membuat perkiraan sumber daya yang diperlukan untuk melakukan kegiatan secara akurat, menganalisa untung atau rugi perubahan yang diminta, melakukan komunikasi dengan bagian lain tentang kompleks tidaknya perubahan yang dilakukan.

Maintenance Activity 
Aktivitas penting untuk maintenance perangkat lunak ialah perencanaan. Jika tahap development berlangsung 1-2 tahun, maka fase maintenance berlangsung selama bertahun-tahun. Memperkirakan secara akurat sumber daya yang digunakan merupakan elemen kunci dalam rencana maintenance. Sumber daya yang didalamnya termasuk biaya harus dimasukkan dalam rencana anggaran proyek. Rencana maintenance harus dimulai dengan membuat atau menentukan tujuan kualitas perangkat lunak.
Konsep dan perencanaan maintenance:
  1. Mengandung ruang lingkup (scope) maintenance perangkat lunak. 
  2. Proses setelah perangkat lunak selesai. 
  3. Harus diketahui siapa yang akan melakukan maintenance.
  4. Perkiraan biaya maintenancesiklus hidup perangkat lunak.  
Demikian pembahasan singkat mengenai Software Maintenance Maturity Model yang telah saya paparkan. Apabila ada kesalahan dalam penulisan maupun pengertian, saya mohon maaf yang sebesar-besarnya. Semoga artikel saya mengenai Software Maintenance Maturity Model ini dapat bermanfaat bagi yang telah membaca. Terima kasih. 



Komentar