MAINTENANCE
DALAM PENGEMBANGAN SOFTWARE SYSTEM
Software
Maintenance
Menurut McCall (1997)
kriteria yang mempengaruhi kualitas software
terbagi menjadi tiga aspek penting yaitu :
1. Sifat-sifat operasional dari software (Product
Operations).
2. Kemampuan software dalam menjalani perubahan
(Product Revision)
3. Daya
adaptasi atau penyesuaian software terhadap lingkungan baru
(Product Transition).
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.
Aspek
Kegiatan Maintenance
Aktivitas pemeliharaan
yang pertama terjadi karena asumsi yang salahpada 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 cobs kemudian dipergunakan
oleh user. Setelah dipergunakan oleh user mungkin timbul permintaan tambahan
fungsi sesuai dengan keinginan pemakai.
· 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, umpamanya penambahan fungsifungsi atau melengkapi fungsi-fungsi
yang telah ada.
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 :
• Mengandung ruang lingkup (scope) maintenance
perangkat lunak.
• Proses setelah perangkat lunak selesai.
• Harus diketahui siapa yang akan melakukan
maintenance.
• Perkiraan biaya maintenance siklus hidup perangkat
lunak.
Teknik-teknik
Maintenance
Software maintenance
yang efektif dilakukan dengan teknik
yang spesifik atau khusus untuk maintenance. Beberapa teknik praktis
yang biasa dipakai 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 subtopik ini, maka IEEE Computer Society mengadakan pelatihan yang
diadakan setiap tahunnya mengenai program comprehension.
2. Re-engineering
Reengineering biasanya
tidak dilakukan untuk meningkatkan kemudahan melakukan maintenance(maintainability)
namun untuk mengganti legacy system yang sudah berumur. Arnold [Arn92] membahas
topik ini secara luas meliputi konsep, tools,teknik, studi kasus, risiko dan
keuntungan re-engineering. 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 di representasikan dalam bentuk lain
atau pada level abstraksi yang lebih tinggi. Reverse engineering dilkukan
secara 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 antara lain redocumentation dan design recovery. Date Reverse
Engineeringmempunyai pengaruh penting beberapa tahun belakangan. Topik 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.
Maintenance
dalam Pengembangan Software
Software maintanence
menjadi bagian dari keberlangsungan sebuah software (software sustainment).
Software yang dapat di maintenance akan mendukung perusahaan dalam memecahkan
solusi sesuai dengan perubahan lingkungan bisnis. Bila suatu software tidak
dapat di maintenance maka sofrware tersebut tidak dapat mendukung kinerja dari
perusahaan atau pengguna. Software maintenance menjadi sangat penting karena
memberikan porsi yang besar dalam biaya lifecycle keseluruhan. Ketidakmampuan
untuk melakukan perubahan software secara cepat dan reliable akan menyebabkan
kehilangan peluang bisnis yang dimiliki.
Maintenance pada
software perlu dilakukan dengan cara memonitor dan mengevaluasi kinerja pada
software yang sudah ada. Modifikasi atau perubahan diperlukan apabila terdapat
perubahan dari organisasi itu sendiri baik yang berkaitan dalam hal struktur
organisasi maupun perubahan cara kerja dan juga pengembangan bisnis (faktor
external maupun faktor internal). Penyesuaian pada maintenance software dapat
dilakukan dengan update sistem yang dimulai dari identifikasi permasalahan pada
sistem yang sudah berjalan. Apabila suatu sistem tidak diperhatikan sisi
maintenance-nya, maka sinergi antara perubahan-perubahan/kemajuan yang terjadi
dalam perusahaan tidak dapat langsung diaplikasikan dalam software, yang dalam
hal ini merupakan faktor penunjang dalam efisiensi dan efektivitas.
Maintenance
software
perlu
memperhatikan beberapa karakteristik:
Karakteristik
|
Sub karakteristik
|
Functionality :
Software untuk menjalankan
fungsinya
sebagimana kebutuhan sistemnya.
|
Suitability, accuracy,
interoperability,
security
|
Reliability :
Kemampuan software untuk dapat
tetap
tampil sesuai dengan fungsi ketika
digunakan.
|
Maturity, Fault tolerance,
Recoverability
|
Usability :
Kemampuan software untuk
menampilkan performans relatif
terhadap
penggunaan sumberdaya.
|
Understanbility, Learnability,
Operability, Attractiveness
|
Efficiency :
Kemampuan software untuk
menampilkan performans relatif
terhadap
penggunaan sumberdaya.
|
Time
behaviour, Resource Utilization
|
Maintainability :
Kemampuan software untuk
dimodifikasi
(korreksi, adaptasi, perbaikan)
|
Analyzability, Changeability,
Stabilit
y,
Testability
|
Portability :
Kemampuan software untuk
ditransfer
dari satu lingkungan ke lingkungan
lain.
|
Adaptability,
Installability
|
Tabel 1.
Karakteristik Software: ISO 9126
Untuk menghasilkan software yang
baik dan berkualitas maka perangkat lunak tersebut harus memiliki kriteria :
Functionality, Reliability, Usability, Efficiency, Maintainability, dan
Portability.
Penggunaan kriteria tersebut akan
menghasilkan keuntungan bagi perusahaan penguna software tersebut.
Berdasarkan uraian diatas maka,
urgensi dari pemeliharaan sistem atau system maintenance adalah:
· Memperbaiki Kesalahan (Correcting
Errors)
Maintenance dilakukan untuk
mengatasi kegagalan dan permasalahan yang muncul saat sistem dioperasikan.
Sebagai contoh, maintenance dapat digunakan untuk mengungkapkan kesalahan
pemrograman (bugs) atau kelemahan selama proses pengembangan yang tidak
terdeteksi dalam pengujian sistem, sehingga kesalahan tersebut dapat
diperbaiki.
· Menjamin dan Meningkatkan Kinerja
Sistem (Feedback Mechanism)
Kajian pasca implementasi sistem
merupakan salah satu aktivitas maintenance
yang meliputi tinjauan sistem secara
periodik. Tinjauan periodik atau audit sistem dilakukan untuk menjamin sistem
berjalan dengan baik, dengan cara memonitor sistem secara terus-menerus
terhadap potensi masalah atau perlunya perubahan terhadap sistem. Sebagai
contoh, saat user menemukan errors pada saat sistem digunakan, maka user dapat
memberi umpan balik atau feedback kepada spesialis informasi guna meningkatkan
kinerja sistem. Hal ini yang menjadikan system maintenance perlu dilakukan
secara berkala, karena system maintenance akan senantiasa memastikan sistem
baru yang di implementasikan berjalan dengan baik dan sesuai dengan tujuan
penggunaanya melalui mekanisme umpan balik.
· Menjaga Kemutakhiran Sistem (System
Update)
Selain sebagai proses perbaikan
kesalahan dan kajian pasca implementasi, system maintenance juga meliputi
proses modifikasi terhadap sistem yang telah dibangun karena adanya perubahan
dalam organisasi atau lingkungan bisnis. Sehingga, system maintenance menjaga
kemutakhiran sistem (system update) melalui modifikasi-modifikasi sistem yang
dilakukan.
Selain itu, urgensi dari
pemeliharaan sistem atau system maintenance dalam suatu organisasi/ perusahaan
adalah sebagai berikut:
v Mengurangi pengeluaran dalam bidang
investasi teknologi.
v Membantu perusahaan memecahkan
masalah dengan tetap mengikuti perubahan lingkungan dan prosedur yang terjadi.
v Efektivitas biaya.
Menghindari
kerugian yang diakibatkan oleh munculnya kesalahan pada perangkat lunak yang
berakibat pada pengguna terakhir. Biaya yang dikeluarkan akan lebih sedikit
jika dilakukan pendektesian awal terhadap kesalahan yang terjadi pada perangkat
lunak tersebut.
v Efisiensi waktu
Dilakukannya
pengujian terhadap perangkat lunak akan menghindari perusahaan dari resiko
kerugian yang terjadi dan waktu yang lebih lama untuk melakukan perbaikan
terhadap perangkat lunak tersebut.
v Fokus pada pengembangan bisnis.
Perangkat
lunak yang tidak memiliki kesalahan (bug) akan memaksimalkan kinerja dari
perusahaan dengan mendukung kegiatan bisnis lebih baik dan mendukung
penyelesaian masalah lebih cepat dengan penggunaan perangkat lunak tersebut.
v Peningkatan loyalitas pelanggan.
software maintenance yang dilakukan
oleh pihak ketiga/outsourcing akan menghemat waktu yang berharga bagi
perusahaan. Seperti akan diperoleh cukup waktu untuk fokus pada kegiatan
penting bisnis dan mengoptimalkan pelayanan terhadap pelanggan untuk
meningkatkan loyalitas dan kepuasan terhadap perusahaan.
v Membuat software tersebut menjadi
kategori software berkualitas.
v Mengambil peluang bisnis yang ada,
dengan maintenance software atau sistem informasi, akan mengevaluasi sistem
yang ada dan memodifikasinya, bila sebuah sistem usang atau rusak maka
organisasi tidak akan dapat mengambil peluang bisnis yang ada dengan proses
yang efektif dan efisien.
v Menjaga agar software tidak menjadi
usang.
Keusangan software atau sistem
informasi akan merugikan organisasi, organisasi menjadi tidak optimal dalam
memanfaatkan software pun menghasilkan kinerja yang tidak optimal, sehingga
proses maintenance menjaga hal ini agar keusangan tidak terjadi.