Mata Kuliah : Sistem Informasi Manajemen Batas Pengumpulan : 04 Oktober 2013 Dosen: Dr. Ir. Arif Imam Suroso, MSc. Tanggal Penyerahan : 03 Oktober 2013
URGENSI MAINTENANCE SOFTWARE (DALAM KONTEKS
IMPLEMENTASI SUATU SISTEM INFORMASI DI
ORGANISASI)
Disusun Oleh:
KOMALA HERATRI
P056121911.50
MAGISTER MANAJEMEN DAN BISNIS INSTITUT PERTANIAN BOGOR
PENDAHULUAN Latar Belakang
Sebuah software yang dirancang dan dikembangkan dengan baik, akan dengan mudah dapat direvisi jika diperlukan. Seberapa jauh software tersebut dapat diperbaiki merupakan faktor lain yang harus diperhatikan. Salah satu faktor yang berkaitan dengan kemampuan software untuk menjalani perubahan adalah Maintainability. Software Maintenance merupakan aktivitas yang dimulai sejak perangkat lunak mulai digunakan (after delivery) hingga akhirnya perangkat lunak tersebut tidak dapat digunakan lagi (retired). Kegiatan tersebut dimaksudkan untuk memperbaiki kesalahan (to correct), meningkatkan kinerja/ fungsionalitas (to improve), menyesuaikan dengan lingkungan (to adapt), atau mencegah terjadinya kesalahan (to prevent). Istilah pemeliharaan perangkat lunak juga digunakan untuk menjabarkan aktivitas dari analis sistem (software engineering) yang terjadi pada saat hasil produk perangkat lunak sudah dipergunakan oleh pemakai (user). Pengembangan produk perangkat lunak, biasanya, memerlukan waktu antara 1 sampai dengan 2 tahun, tetapi pada fase pemeliharaan perangkat lunak menghabiskan 5 sampai dengan 10 tahun.
Software Maintenance belum banyak dipahami sebagai sebuah proses yang harus dilakukan untuk menjaga agar perangkat lunak tetap dapat digunakan dengan optimal, sesuai dengan kebutuhan penggunanya. Biaya pemeliharaan perangkat lunak yang dikeluarkan dalam fase pemeliharaan meningkat dengan cepat. Para pengguna pada umumnya berpendapat bahwa sekali sebuah perangkat lunak selesai dibangun, perangkat lunak tersebut seharusnya dapat langsung digunakan, dan dapat terus digunakan dalam jangka waktu yang relatif lama. Padahal sebuah software berhasil dikembangkan dan diimplementasikan, akan terdapat berbagai hal yang perlu diperbaiki berdasarkan hasil uji coba maupun evaluasi.
Tujuan
Mahasiswa dapat mengetahui pentingnya perawatan software dilakukan dalam perusahaan. Selain itu, mahasiswa juga dapat mengetahui lifecyle suatu software dan mahalnya biaya yang dibutuhkan jika terjadi kerusakan.
TINJAUAN PUSTAKA
Software Maintenance
Maintainability adalah usaha yang diperlukan untuk menemukan dan memperbaiki kesalahan (error) dalam software. Maintanability juga disebut sebagai pemeliharaan system. Dimana setelah sebuah software berhasil dikembangkan dan diimplementasikan, akan terdapat berbagai hal yang perlu diperbaiki berdasarkan hasil uji coba maupun evaluasi. Sebuah software yang dirancang dan dikembangkan dengan baik, akan dengan mudah dapat direvisi jika diperlukan. Seberapa jauh software tersebut dapat diperbaiki merupakan faktor lain yang harus diperhatikan. System maintenance dilaksanakan untuk tiga alasan: 1) Memperbaiki kesalahan penggunaan system mengungkapkan kesalahan (bugs) dalam program atau kelemahan rancangan yang tidak terdeteksi dalam pengujian sistem; 2) Menjaga kemutakhiran sistem. Perubahan-perubahan sebagai akibat berlalunya waktu mengharuskan modifikasi dalam rancangan atau perangkat lunak; dan 3) Meningkatkan sistem saat manajer menggunakan sistem terkait cara-cara membuat peningkatan.
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.
PEMBAHASAN Biaya Maintenance Software
Aktivitas pemeliharaan menghabiskan biaya terbesar dari seluruh anggaran pengembangan atau pembuatan perangkat lunak. Merupakan hal yang sering kali terjadi jika pemeliharaan menghabiskan 70% Bari seluruh biaya pengembangan perangkat lunak. Sedangkan pada fase pemeliharaan sekitar 60% digunakan untuk anggaran penambahan atau perhaikan perangkat lunak, sisanya untuk adaptasi atau pembetulan. Besarnya biaya yang dihabiskan untuk fase pemeliharaan maka tidak heran apabila tujuan dari pengembangan atau pembuatan perangkat lunak adalah nienghasilkan sistem perangkat lunak yang dapat diandalkan dan mudah dalam pemeliharaannya.
Biaya pemeliharaan software yang dikeluarkan dalam fase pemeliharaan meningkat dengan cepat. Selain biaya yang umum dalam fase pengembangan Bering timbul biaya-biaya tak berwujud (intangible cost). Biaya-biaya tersebut ditimbulkan karena: 1) ketidakpuasan pemakai (user) akibat tidak selesainya perangkat lunak sesuai dengan waktu yang telah ditentukan pada fase pemeliharaan, 2) pengurangan kualitas perangkat lunak, atau 3) penambahan tenaga kerja baru.
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 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.
Life Cycle Software
Bagian software development menghasilkan perangkat lunak yang dapat memenuhi permintaan pemakai perangkat lunak (user requirements). Produk perangkat lunak selalu mengalami perubahan atau evolusi. Perubahan ini terjadi jika dalam masa operasi sebuah perangkat lunak ditemukan anomali, adanya perubahan lingkungan pengoperasian perangkat lunak, atau permintaan user yang baru.atau berubah. Fase maintenance dalam siklus hidup software terjadi setelah perangkat lunak selesai dibuat, namun aktivitas maintenance berlangsung jauh lebih awal. Software maintenance memelihara produk perangkat lunak dari awal pembuatan sampai pemakaian perangkat lunak. Setiap perubahan yang tejadi pada produk perangkat lunak akan dicatat dalam bentuk log. Perubahan perangkat lunak menyebabkan perubahan kode program (coding), memerlukan test sampai menghasilkan produk dengan versi yang baru.
Gambar 2. Pembagian Software Maintenance Knowledge Area Proses Maintenance
Dokumentasi yang baik sangat dibutuhkan dalam pengembangan software. Tingkat maintenance perangkat lunak diukur dengan model “The Capability Maturity Model for Software (SW - CMM)”. Ada hubungan langsung antara tingkat maintenance dan biaya. Semakin tinggi tingkat maintenance sebuah perangkat lunak maka semakin banyak biaya yang dihemat. Model proses menyediakan kebutuhan operasi dan input / output yang detail untuk maintenance perangkat lunak. Model proses maintenance sebuah perangkat lunak dideskripsikan dalam maintenance standar IEEE 1219 [IEEE 1219] dan ISO/IEC 14764 [ISO14764]. Pada IEEE 1219 [IEEE 1219] kegiatan maintenance perangkat lunak dimulai pada saat tahap pemakaian perangkat lunak. Aktivitas maintenance perangkat lunak ISO / IEC 14764 yang utama dapat dibagi menjadi beberapa proses :
1. Proses Implementasi:
• Membuat rencana maintenance dan prosedur-prosedurnya.
• Membuat prosedur untuk permintaan perubahaan / modifikasi perangkat lunak (Modification Requests).
• Implementasi proses CM.
2. Proses pengenalan masalah dan modifikasi: • Melakukan analisis.
• Menentukan masalah.
• Membuat opsi / pilihan untuk mengimplementasikan modifikasi. • Membuat dokumentasi.
• Melakukan proses “pendekatan” untuk opsi / pilihan implementasi. • Melakukan modifikasi
• Melakukan analisa yang detail.
• Mengembangkan , mengkoding, dan mengetes perubahan yang dilakukan. 3. Review Maintenance :
• Mempersiapkan modifikasi
• Memastikan migrasi sesuai dengan ISO / IEC 12207. • Membangun rencana migrasi.
• Memberitahu user tentang rencana migrasi. • Melakukan operasi yang pararel.
• Memberitahu user bahwa migrasi telah dimulai. • Review migrasi.
• Memastikan data yang lama dapat diakses. 4. Software Retirement :
• Membuat rencana retirement.
• Memberitahu user tentang rencana retirement. • Melakukan operasi paralel.
• Memberitahu user bahwa retirement telah dimulai. • Memastikan data yang lama dapat diakses.
Unique Activities
Maintainers harus memiliki pengetahuan tentang isi dan sruktur kode program. Pengetahuan ini digunakan oleh maintainers untuk melakukan impact analysis. Impact analysis mengidentifikasi keseluruhan system dan produk system yang dipengaruhi oleh permintaan perubahan (change request) dan membuat perkiraan sumber daya yang diperlukan untuk melakukan perubahan dan menentukan resiko perubahan yang akan dilakukan. Permintaan perubahan (change request / modification request / problem report) pertama harus dianalisa dan diterjemahkan ke dalam term perangkat lunak. Maintainer kemudian mengidentifikasi komponen yang terpengaruh oleh perubahan terjadi, beberapa pemecahan masalah yang potensial
akan muncul dan kemudian maintener membuat rekomendasi aksi yang dapat dilakukan yang tergantung pada situasi kasus. Kemampuan pemecahan masalah sangat penting untuk maintenance. Maintainer harus menaruh perhatian pada setiap efek yang disebabkan setiap perubahan. Maintainer juga melakukan aktivitas pendukung seperti configuration management (CM), verifikasi and validasi, jaminan kualitas, review, audit, dan melakukan user training. Kadang Aktivitas pendukung ini dilakukan oleh entitas yang terpisah. IEEE Standard untuk maintenance perngkat lunak, IEEE 1219 [IEEE 1219] menjelaskan CM sebagai elemen penting dalam proses maintenance. Prosedur CM harus melakukan verifikasi, validasi, dan sertifikasi untuk setiap langkah yang diperlukan untuk mengidentifikasi , mengauthorize, mengimplementasikan dan melaunching produk perangkat lunak.
Configuration Management
Produk perangkat lunak dan perubahan yang dibuat pada perangkat lunak harus dikontrol. Pengontrolan ini dilakukan dengan mengimplementasikan proses software configuration management (SCM). SCM menyediakan dukungan dan membuat tugas maintener lebih mudah. Panduan SWEBOK menyediakan gambaran detail SCM dan mendiskusikan proses perubahan diminta, dievaluasi dan telah dilakukan. SCM untuk maintenance berbeda dengan SCM development request initiates the maintenance process. The SCM process is implemented by developing and following a CM Plan and operating procedures. Maintainer berpartisipasi dalam Badan Kontrol Konfigurasi (Configuration Control Boards) untuk menentukan sampai kapan maintenance dilakukan dan kapan perlu migrasi. Problem severity sering digunakan untuk menentukan bagaimana dan kapan permasalahan diselesaikan.
Quality
Maintenance perangkat lunak tidak dapat diharapkan dapat meningkatkan kualitas perangkat lunak tanpa dukungan tahapan yang lain. Hal ini harus direncanakan dan diimplementasikan secara baik untuk menunjang proses maintenance. Aktivitas dan teknik untuk jaminan kualitas perangkat lunak / Software Quality Assurance (SQA) and V&V harus dipilih dalam hubungannya dengan proses yang lain untuk mendapat tinkat kualitas yang diinginkan. Implementasinya dengan mengembangkan dan mengikuti rencana dan prosedur SQA and V&V.
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 yang digunakan untuk 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 tool 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. Re-engineering
Reengineering biasanya tidak dilakukan untuk meningkatkan kemudahan melakukan maintenance (maintainability) namun untuk mengganti legacy system yang sudah berumur. Arnold [Arn92] membahas topic ini secara luas meliputi konsep, tools, teknik, studi kasus, dan resiko dan keuntungan re-engineering. Refactoring atau transformasi program yang mengorganisasi ulang (reorganisasi) tanpa mengubah perilaku system sekarang digunakan dalam reverse engineering untuk meningkatkan struktur program berorientasi objek.
3. Reverse engineering
Reverse engineering adalah proses menganalisa subjek sistemuntuk mengindentifikasi komponen system dan hubungan yang terjadi di dalamnya untuk direpresentasikan dalam bentuk lain atau pada level abstraksi yang lebih tinggi. Reverse engineering dilkukan secar pasif, artinya tidak mengubah system atau menghasilkan system yang baru. Sebuah usaha reverse engineering sederhana mungkin menghasilkan sesuatu yang disebut graphs dan control flow graph dari source code. Jenis dari reverse engineering antaralain redocumentation dan design recovery [DT97]. 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 system dan produk system 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 analysis:
• 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.
• Melkukan komunikasi dengan bagian lain tentang kompleks tidaknya perubahan yang dilakukan.
Breakdown Rationale
Topik maintenance perangkat lunak adalah bagian dari topik rekayasa perangkat lunak “yang diterima” oleh komunitas maintenance perangkat lunak. Ada semacam kesepakatan pada literatur mengenai standar maintenance perangkat lunak yang mengacu pada panduan kriteria pengembangan perangkat lunak yang ada pada SWEBOK. Proses maintenance diperlukan untuk membuat referensi dan standar untuk implementasi proses maintenance. Subtopik aktivitas maintenance perangkat lunak diperlukan untuk membedakan maintenance dari development dan utnuk menunjukkan hubungan maintenance dengan aktivitas rekayasa perangkat lunak
yang lain. Setiap organisasi sangat concerndengan siapa yang akan melakukan maintenance. Topik Managemen menyediakan beberapa pilihan tergantung siapa yangakan melakukan maintenance. Setiap maintenance perangkat lunak pada kenyataannya menghabiskan porsi yang besar dalam biaya siklus hidup perngkat lunak. Topik mengenai biaya dan perkiraan biaya sering dibahas untuk memastikan pengembang mendapat referensi jika dihadapkan dengan masalah yang sulit. Topik teknik disediakan untuk mengenalkan beberapa teknik yang diterima secara umum dalam operasi maintenance.
KESIMPULAN
Urgensinya, jika software tidak bisa di maintenance, maka akan diperlukan untuk membeli yang baru setiap kali, sehingga menjadi masalah baru. Software yang berkualitas berdasarkan ISO 9126 dengan karakteristik functionality (menjalankan fungsi sesuai kebutuhan sistem), reliability (tampil sesuai fungsi ketika ditampilkan), usability (mudah dimengerti, dipelajari, digunakan dan disukai pengguna), efficiency (menampilkan performa relatif terhadap penggunaan sumber daya), maintainability (kemampuan dimodifikasi – koreksi, adaptasi, perbaikan) dan protability (kemudahan di transfer dari satu lingkungan ke lingkungan lain). Aktivitas pemeliharaan yang pertama terjadi karena asumsi yang salah pada saat uji coba yaitu kesalahan-kesalahan tersembunyi pada perangkat lunak yang cukup besar. Pemeliharaan perangkat lunak dapat dibedakan menjadi corrective, adaptive, preventive, dan perfective.
DAFTAR PUSTAKA
Analisa. 2010. Urgensi Maintaibility dari Suatu Software. http://analisa.blogstudent.mb.ipb.ac.id/2010/08/01/apa-urgensi-maintainability-dari-suatu-software/. [22 September 2013].
Anonim. 2011. Pengertian Maintenance Computer. http://www.anakunhas.com/ 2011/12/pengertian-maintenance-komputer.html. [22 September 2013].
O’Brien J. A. 2005. Pengantar Sistem Informasi, Edisi 12. Penerbit Salemba Empat. Jakarta.
Yudha. 2011. Maintenance Computer. http://detakdetikyudha.blogspot.com/2011/04/ maintenance-komputer.html. [22 September 2013].