Perawatan Perangkat Lunak

Abstrak Kamus mendefinisikan pemeliharaan sebagai, “Pekerjaan menjaga sesuatu dalam urutan yang tepat.” Namun, definisi ini tidak selalu cocok untuk perangkat lunak. Pemeliharaan perangkat lunak berbeda dari pemeliharaan perangkat keras karena perangkat lunak secara fisik tidak aus, tetapi seringkali menjadi kurang bermanfaat seiring bertambahnya usia. Perangkat lunak biasanya dikirimkan dengan kelemahan yang belum ditemukan. Oleh karena itu, pemeliharaan perangkat lunak adalah: “Proses memodifikasi perangkat lunak operasional yang ada sambil membiarkan fungsi utamanya tetap utuh.” Pemeliharaan biasanya melebihi lima puluh persen dari biaya siklus hidup sistem. Sementara pemeliharaan perangkat lunak dapat diperlakukan sebagai tingkat kegiatan usaha, ada konsekuensi Perangkat Lunak Pengganti pada kualitas, fungsionalitas, keandalan, biaya dan jadwal yang dapat dikurangi melalui penggunaan teknik estimasi parametrik.

1. PERKENALANSalah satu tantangan terbesar yang dihadapi insinyur perangkat lunak adalah manajemen kontrol perubahan. Diperkirakan bahwa biaya kontrol perubahan dapat antara 40% dan 70% dari biaya siklus hidup. Insinyur perangkat lunak berharap bahwa bahasa baru dan proses baru akan sangat mengurangi angka-angka ini; Namun ini belum terjadi. Pada dasarnya ini karena perangkat lunak masih dikirimkan dengan sejumlah besar cacat. Capers Jones memperkirakan bahwa ada sekitar 5 bug per Function Point yang dibuat selama Pengembangan. Watts Humphrey menemukan “… bahkan insinyur perangkat lunak yang berpengalaman biasanya menyuntikkan 100 atau lebih cacat per KSLOC. Capers Jones mengatakan,” Serangkaian studi kepadatan cacat perangkat lunak berkisar dari 49,5 hingga 94,5 kesalahan per seribu baris kode. ” Tujuan artikel ini adalah untuk pertama-tama meninjau dasar-dasar pemeliharaan perangkat lunak dan untuk menyajikan pendekatan alternatif untuk memperkirakan pemeliharaan perangkat lunak. Elemen kunci yang perlu diperhatikan adalah bahwa keputusan pengembangan dan manajemen yang dibuat selama proses pengembangan dapat secara signifikan mempengaruhi biaya pengembangan dan biaya pemeliharaan yang dihasilkan.

2. PEMELIHARAAN PERANGKAT LUNAKKegiatan pemeliharaan mencakup semua pekerjaan yang dilakukan pasca-pengiriman dan harus dibedakan dari modifikasi blok yang mewakili upaya pengembangan dan desain yang signifikan dan menggantikan paket perangkat lunak yang dirilis sebelumnya. Kegiatan pemeliharaan ini bisa sangat beragam, dan membantu mengidentifikasi dengan tepat kegiatan pasca pengiriman apa yang akan dimasukkan dalam perkiraan upaya pemeliharaan.  jasa pembuatan software Kegiatan pemeliharaan, setelah didefinisikan, dapat dievaluasi dengan cara yang sangat berbeda dari yang disebut “pemeliharaan”. Pemeliharaan perangkat lunak berbeda dari pemeliharaan perangkat keras karena perangkat lunak secara fisik tidak aus, tetapi perangkat lunak seringkali menjadi kurang bermanfaat seiring bertambahnya usia dan dapat dikirimkan dengan kelemahan yang belum ditemukan. Selain kelemahan yang belum ditemukan, adalah umum bahwa beberapa jumlah cacat yang diketahui berpindah dari organisasi pengembangan ke kelompok pemeliharaan. Perkiraan akurat dari upaya yang diperlukan untuk memelihara perangkat lunak yang dikirim dibantu oleh penguraian upaya keseluruhan menjadi berbagai kegiatan yang membentuk keseluruhan proses.

3. PENDEKATAN MASALAH PEMELIHARAAN Pemeliharaan adalah proses yang rumit dan terstruktur. Dalam buku pelajarannya, Estimating Software Intensive Systems, Richard Stuzke menguraikan proses pemeliharaan perangkat lunak yang khas. Jelas bahwa prosesnya lebih dari sekadar menulis kode baru.

Daftar periksa berikut dapat digunakan untuk menjelajahi realisme dan keakuratan persyaratan perawatan.

o Perangkat lunak mana yang akan dipelihara?

o Berapa lama sistem perlu dipertahankan?

o Apakah Anda memperkirakan seluruh masalah pemeliharaan, atau hanya pemeliharaan tambahan?

o Tingkat pemeliharaan apa yang diperlukan?

o Apakah yang disebut pemeliharaan itu sebenarnya proyek pengembangan baru?

o Siapa yang akan melakukan perawatan? Apakah akan dilakukan secara organik oleh pengembang asli? Akankah ada tim yang terpisah? Akankah ada organisasi yang terpisah?

o Apakah pengelola akan menggunakan alat yang sama yang digunakan selama pengembangan? Apakah ada alat khusus yang diperlukan untuk pemeliharaan?

o Berapa banyak Komersial-Off-The-Shelf (COTS) yang ada? Seberapa erat antarmuka?

o Beberapa pengembangan lanjutan mungkin disamarkan sebagai pemeliharaan. Ini akan mengembang angka pemeliharaan, atau menyebabkan kekurangan jika pemeliharaan dasar disingkirkan. Pertanyaan-pertanyaan ini akan membantu Anda bertanya apakah pemeliharaan direpresentasikan secara jujur.

o Apakah kegiatan ini benar-benar peningkatan bertahap?

o Apakah potongan sehat dari kode asli sedang ditulis ulang atau diubah?

o Apakah staf tambahan akan dibawa untuk melakukan peningkatan?

o Apakah jadwal upaya pemeliharaan teratur dan cukup datar, atau apakah itu berisi punuk staf yang terlihat seperti pengembangan baru?

4. PEMERIKSAAN SANITASI Meskipun pemeriksaan kewarasan harus dilakukan setiap tahun, mereka tidak boleh diupayakan untuk pengembangan secara keseluruhan. Alasan untuk ini adalah bahwa kegiatan pemeliharaan dapat dilakukan tanpa batas waktu, membuat aturan siklus hidup tidak berguna. Sebagai contoh, pertimbangkan Grady (hlm. 17):

Kami menghabiskan sekitar 2 hingga 3 kali lebih banyak upaya untuk mempertahankan dan meningkatkan perangkat lunak saat kami menghabiskan waktu untuk membuat perangkat lunak baru.

Pengamatan ini dan yang serupa berlaku pada tingkat organisasi dan lebih tinggi, tetapi tidak untuk proyek tertentu. Setiap kelompok pengembangan dengan sejarah akan terlibat dalam ujung-ujung panjang dari banyak proyek mereka yang disampaikan, masih membutuhkan perhatian yang tidak terbatas. Berikut adalah beberapa pemeriksaan kewarasan cepat:

o Seorang pemelihara dapat menangani sekitar 10.000 jalur per tahun.

o Upaya siklus hidup secara keseluruhan biasanya pengembangan 40% dan pemeliharaan 60%.

o Biaya pemeliharaan rata-rata adalah seperenam dari biaya pengembangan tahunan.

o Sistem yang berhasil biasanya dipertahankan selama 10 hingga 20 tahun.

Akhirnya, seperti dalam pengembangan, jumlah kode yang baru versus yang dimodifikasi membuat perbedaan. Ukuran efektif, yaitu, upaya yang setara jika semua pekerjaan adalah kode baru, masih merupakan input utama untuk estimasi biaya pengembangan dan pemeliharaan.

5. LIMA PENDEKATAN ALTERNATIF Semua teknik estimasi perangkat lunak harus dapat memodelkan teori dan kemungkinan hasil dunia nyata. Skenario dunia nyata adalah bahwa seiring waktu, hamparan perubahan pada perubahan membuat perangkat lunak semakin sulit untuk dipelihara dan dengan demikian kurang bermanfaat. Teknik estimasi upaya pemeliharaan berkisar dari tingkat metode upaya yang sederhana, melalui analisis yang lebih bijaksana dan modifikasi praktik pengembangan, hingga penggunaan model parametrik untuk menggunakan data historis untuk memproyeksikan kebutuhan masa depan.

5.1 Tingkat Upaya Seperti yang terkadang terjadi dalam lingkungan pengembangan, pemeliharaan perangkat lunak dapat dimodelkan sebagai tingkat aktivitas upaya. Mengingat kegiatan kategori perbaikan dan varians besar yang mereka tunjukkan, pendekatan ini jelas memiliki kekurangan. Dalam pendekatan ini, tingkat upaya untuk memelihara perangkat lunak didasarkan pada ukuran dan jenis.

5.2 Tingkat Upaya Plus Stuzke mengusulkan bahwa pemeliharaan perangkat lunak dimulai dengan upaya tingkat dasar (orang minimum yang diperlukan untuk memiliki kompetensi inti dan kemudian bahwa staf inti dasar harus dimodifikasi dengan menilai tiga faktor tambahan: manajemen konfigurasi, jaminan kualitas, dan manajemen proyek Prosesnya membahas beberapa faktor tambahan yang memengaruhi pemeliharaan perangkat lunak.

5.3 Estimasi Perubahan Biaya Perangkat Lunak Pemeliharaan dengan COCOMO II (Boehm 2000) mengusulkan metodologi yang cukup sederhana, tetapi juga cukup berguna untuk menentukan pemeliharaan tahunan. Pemeliharaan adalah salah satu pilihan menu di bilah menu. Dalam COCOMO II Maintenance mencakup proses memodifikasi perangkat lunak operasional yang ada sambil membiarkan fungsi utamanya tetap utuh. Proses ini tidak termasuk:

o Desain ulang dan pengembangan ulang besar (lebih dari 50% kode baru) dari produk perangkat lunak baru yang menjalankan fungsi yang secara substansial sama.

o Desain dan pengembangan paket perangkat lunak antar-muka yang cukup besar (lebih dari 20% dari sumber yang ada) yang membutuhkan sedikit perancangan ulang produk yang ada.

o Operasi sistem pemrosesan data, entri data, dan modifikasi nilai dalam database.

Perhitungan pemeliharaan sangat didasarkan pada Maintenance Change Factor (MCF) dan Maintenance Adjustment Factor (MAF). MCF serupa dengan Lalu Lintas perubahan tahunan di COCOMO81, kecuali bahwa periode pemeliharaan selain satu tahun dapat digunakan. Rumus estimasi upaya pemeliharaan yang dihasilkan sama dengan model pengembangan COCOMO II Post Architecture.

Seperti yang dinyatakan sebelumnya, tiga pendorong biaya untuk pemeliharaan berbeda dari pengembangan. Driver biaya tersebut adalah keandalan perangkat lunak, praktik pemrograman modern, dan jadwal. COCOMO II mengasumsikan bahwa peningkatan investasi dalam keandalan perangkat lunak dan penggunaan praktik pemrograman modern selama pengembangan perangkat lunak memiliki efek positif yang kuat pada tahap pemeliharaan.

Upaya Pemeliharaan Tahunan = (Lalu Lintas Perubahan Tahunan) * (Upaya Pengembangan Perangkat Lunak Asli)

Kuantitas Upaya Pengembangan Perangkat Lunak Asli mengacu pada upaya total (orang-bulan atau unit ukuran lain) yang dikeluarkan selama pengembangan, bahkan jika proyek multi-tahun.

Pengganda Lalu Lintas Perubahan Tahunan adalah bagian dari keseluruhan perangkat lunak yang akan dimodifikasi sepanjang tahun. Ini relatif mudah diperoleh dari perkiraan teknik. Pengembang sering memelihara daftar perubahan, atau memiliki rasa perubahan proporsional yang diperlukan bahkan sebelum pengembangan selesai.

5.4 Mengelola Biaya Pemeliharaan Perangkat Lunak dengan Teknik Pengembangan dan Keputusan Manajemen Selama Pengembangan

Ketika datang ke pemeliharaan, “satu sen dihabiskan satu pound disimpan.” Praktik pengembangan yang lebih baik (bahkan jika lebih mahal) secara signifikan dapat mengurangi upaya pemeliharaan, dan mengurangi biaya siklus hidup secara keseluruhan. Semakin banyak upaya dalam pengembangan, semakin sedikit yang dibutuhkan dalam pemeliharaan. Sebagai contoh, biaya dan jadwal pengembangan perangkat lunak dapat dipengaruhi secara signifikan (dikurangi) dengan membiarkan jumlah cacat yang dikirim bertambah. Pengurangan biaya dan jadwal ini lebih dari diimbangi dengan peningkatan biaya pemeliharaan. Diskusi berikut adalah contoh bagaimana keputusan manajemen dapat secara signifikan mempengaruhi / mengurangi biaya perawatan perangkat lunak.

Lloyd Huff dan George Novak dari Lockheed Martin Aeronautics dalam makalah mereka “Lockheed Martin Aeronautics Berbasis Kinerja Perangkat Lunak untuk F-35 Lightning II” mengusulkan serangkaian keputusan pengembangan dan manajemen yang dirancang untuk berdampak dan mengurangi biaya pemeliharaan perangkat lunak. Mereka mengusulkan proses delapan langkah untuk memperkirakan dan mengendalikan pemeliharaan perangkat lunak. Langkah-langkah yang mereka usulkan adalah:

1. Berjuang untuk Kesamaan

2. Menerapkan Praktek Teknik Industri ke Perangkat Lunak

3. Terlibat

4. Mengadopsi Pendekatan Holistik untuk Keberlanjutan

5. Mengembangkan Sistem dan Perangkat Lunak yang Sangat Dapat Dipelihara

6. Kelola Perangkat Lunak Off-the-Shelf

7. Rencanakan untuk Yang Tidak Terduga

8. Menganalisis dan Memperbaiki Kasus Bisnis Keberlanjutan Perangkat Lunak (gunakan perkiraan biaya keberlanjutan perangkat lunak Parametrik)

5.5 Penilaian Parametrik Pemeliharaan Perangkat Lunak

Model parametrik seperti SEER untuk Perangkat Lunak memungkinkan pemeliharaan dimodelkan dengan salah satu dari dua cara berikut:

Memperkirakan pemeliharaan sebagai bagian dari total biaya siklus hidup. Memilih parameter kategori Pemeliharaan yang sesuai akan mencakup perkiraan upaya pemeliharaan dengan estimasi pengembangan untuk masing-masing program perangkat lunak. Beberapa laporan dan grafik menunjukkan gangguan pengembangan vs. upaya pemeliharaan. Metode ini paling baik digunakan untuk mengevaluasi biaya siklus hidup untuk setiap program perangkat lunak individu.

Leave A Comment

Your email address will not be published. Required fields are marked *