Maintenance dalam Pengembangan Software System
Software Maintenance
Perawatan perangkat lunak
(software maintenance) adalah aktivitas yang dimulai sejak perangkat lunak
mulai digunakan (after delivery) hingga akhirnya perangkat lunak tersebut tidak
dapat digunakan lagi (retired). Tujuannya adalah untuk memperbaiki kesalahan
(to correct), meningkatkan kinerja/ fungsionalitas (to improve), menyesuaikan
dengan lingkungan (to adapt), atau untuk mencegah terjadinya kesalahan (to
prevent).
Dengan beragamnya tujuan perawatan perangkat lunak,
maka jenis perawatan perangkat lunak dapat dibagi menjadi empat pula, yaitu
perawatan perbaikan (correction), perawatan peningkatan kinerja (improvement),
perawatan penyesuaian (adaptation), dan perawatan pencegahan (prevention). Akan
tetapi, secara umum, jenis perawatan perangkat lunak dapat dikelompokkan
kedalam dua kategori besar, yaitu perawatan perbaikan (correction) dan perawatan peningkatan (enhancement).
Perawatan jenis kedua mencakup perawatan improvement, adaptation, dan
prevention.
4 Jenis Kategori Maintenance
dalam Software
- Corrective maintenance, ini kita lakukan ketika sebuah bug ditemukan pada sistem dan kita harus melakukan perbaikan.
- Adaptive
maintenance, ketika sistem yang kita buat harus mengadaptasi perubahan
pada environment dimana sistem tersebut berjalan.
Misalnya, ketika membuat sebuah aplikasi Android, kita harus melakukan
maintenance ketika versi Android di upgrade, agar aplikasi kita
tetap compatible.
- Perfective
maintenance, ketika pengguna sistem atau stakeholder merubah
requirement dari sistem yang kita bangun.
- Preventive
maintenance, ketika kita hendak meningkatkan kualitas sistem yang kita
bangun atau hendak menanggulangi sebuah bug sebelum bug tersebut terjadi.
Aspek Kegiatan Maintenance
Beberapa aspek-aspek
penting dalam perencanaan perawatan adalah:
1. Perencanaan
Perencanaan adalah kegiatan untuk menjalankan fungsi
Perencanaan adalah kegiatan untuk menjalankan fungsi
Aspek-Aspek penting
dalam perawatan perencanaan adalah :
· Penyusunan
secara struktural kegiatan perawatan yang akan dijalankan
· Penyusunan
sistem perawatan
· Kegiatan
pengontrolan dan pencatatan
· Penerapan
sistem perawatan dan pencatatan
Sedangkan
faktor-faktor yang harus diperhatikan dalam penyusunan perencanaan perawatan
adalah ruang lingkup pekerjaan, prioritas pekerjaan, kebutuhan ketrampilan,
kebutuhan tenaga kerja, kebutuhan peralatan dan kebutuhan material.
2. Pemeriksaan
Kegiatan pemeriksaan yang telah tersusun dengan teratur akan menjaga performa mesin dalam keadaaan optimal dan dapat berfungsi sesuai standar. Kegiatan pemeriksaan terdiri dari:
Kegiatan pemeriksaan yang telah tersusun dengan teratur akan menjaga performa mesin dalam keadaaan optimal dan dapat berfungsi sesuai standar. Kegiatan pemeriksaan terdiri dari:
· Pemeriksaan
operasional
· Pemeriksaan
pemberhentian
· Pemeriksaan
overhaul.
Pemilihan komponen atau suku cadang merupakan kegiatan
yang paling penting dalam menjalankan kegiatan overhaul. Dengan pemilihan suku
cadang yang sesuai dengan spesifikasi mesin akan menjaga mesin tetap dapat
bekerja dalam kondisi standar.
Maintenance Planning
Activity
Aktivitas penting untuk
maintenance perangkat lunak adalah perencanaan. Jika tahap development
berlangsung 1-2 tahun, maka fase maintenance berlangsung selama bertahun-tahun.
Memperkirakan secara akurat sumber daya yang digunakan adalah 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 :
a. Mengandung ruang
lingkup (scope) maintenance perangkat lunak.
b. Proses setelah
perangkat lunak selesai.
c. Harus diketahui
siapa yang akan melakukanmaintenance.
d.
Perkiraan biaya maintenancesiklus hidup perangkat lunak.
Teknik-teknik
Maintenance
Software maintenance yang efektif
dilakukan dengan teknik yang spesifik atau khusus untuk maintenance. Beberapa
teknik praktis yang biasa diapakai maintener akan dijelaskan di bawah ini.
1. Program
Comprehension
Programmers 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. Refactoringatau 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 Analysis
Impact 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 / rugi perubahan yang diminta. Melakukan komunikasi dengan
bagian lain tentang kompleks tidaknya perubahan yang dilakukan.
Sumber: