(CCC-110)
MODUL 11
SOFTWARE MAINTENANCE & PROCESS MODELS
DISUSUN OLEH
MALABAY,S.KOM,M.KOM
Perawatan korektif:
Pemeliharaan korektif produk perangkat lunak mungkin penting untuk
memperbaiki beberapa bug yang diamati saat sistem sedang digunakan, atau untuk
meningkatkan kinerja sistem.
Pemeliharaan adaptif:
Pemeliharaan preventif:
Jenis pemeliharaan ini mencakup modifikasi dan pembaruan untuk mencegah
masalah perangkat lunak di masa mendatang. Ini bertujuan untuk mengatasi
masalah, yang tidak signifikan pada saat ini tetapi dapat menyebabkan masalah
serius di masa depan.
Rekayasa Terbalik -
Reverse Engineering adalah proses mengekstraksi pengetahuan atau informasi
desain dari apa pun yang dibuat oleh manusia dan mereproduksinya berdasarkan
informasi yang diekstraksi. Itu juga disebut kembali Rekayasa.
Rekayasa terbalik juga berguna dalam pengujian perangkat lunak, ini membantu
penguji untuk mempelajari virus dan kode malware lainnya.
Pembaca perhatian! Jangan berhenti belajar sekarang. Dapatkan semua konsep
Teori Ilmu Komputer yang penting untuk wawancara SDE dengan Kursus Teori
Ilmu Komputer dengan harga yang ramah siswa dan jadilah siap untuk industri.
2. Manajemen Perubahan -
Di tempat ini, status semua permintaan perubahan diidentifikasi dan dijelaskan.
3. Analisis Dampak -
Kegiatan berikut dilakukan di tempat ini:
Identifikasi semua sistem dan produk sistem yang terpengaruh oleh permintaan
perubahan.
Buat perkiraan sumber daya yang dibutuhkan untuk melakukan perubahan.
Analisis manfaat perubahan tersebut.
5. Ubah Implementasi -
Implementasi perubahan dapat dilakukan dengan mendesain perubahan terlebih
dahulu, kemudian membuat kode untuk perubahan ini, dan terakhir menguji
perubahan tersebut. Lebih disukai pengujian regresi harus dilakukan saat menguji
perubahan.
6. Rilis Sistem -
Selama rilis perangkat lunak, poin-poin berikut harus dijelaskan:
Dokumentasi
Pemeliharaan Perangkat Lunak adalah aktivitas yang sangat luas yang terjadi
setelah operasi selesai. Ini mengoptimalkan kinerja perangkat lunak dengan
mengurangi kesalahan, menghilangkan baris kode yang tidak berguna dan
menerapkan pengembangan lanjutan. Dibutuhkan waktu hingga 1-2 tahun untuk
membangun sistem perangkat lunak sementara pemeliharaan dan modifikasinya
dapat menjadi aktivitas berkelanjutan selama 15-20 tahun.
Dia berteori bahwa itu adalah platform di mana keputusan manajemen dibuat yang
mendorong proses tersebut. Dalam tahap ini, serangkaian perubahan yang
diperlukan ditentukan dengan menerapkan strategi tertentu dan evaluasi biaya-
manfaat untuk serangkaian perubahan yang diusulkan. Perubahan yang disetujui
Boehm telah memahami bahwa tugas manajer pemeliharaan adalah salah satu
penyeimbangan dan pengejaran tujuan pemeliharaan terhadap kendala yang
diberlakukan oleh lingkungan tempat pekerjaan pemeliharaan dilakukan. Itulah
sebabnya, proses pemeliharaan harus didorong oleh keputusan manajer
pemeliharaan, yang biasanya didasarkan pada keseimbangan tujuan dengan
kendala. Boehm mengusulkan formula untuk menghitung biaya pemeliharaan
karena merupakan bagian dari Model COCOMO. Semua data yang dikumpulkan
dari berbagai proyek, rumus dibentuk dalam bentuk upaya.
Ada dua definisi formal pemeliharaan perangkat lunak, yaitu sebagai berikut:
• IEEE, 1993: -
Pemeliharaan perangkat lunak adalah modifikasi produk perangkat lunak setelah
pengiriman untuk memperbaiki kesalahan, untuk meningkatkan kinerja atau
atribut lainnya, atau untuk menyesuaikan produk ke lingkungan yang
dimodifikasi.
• Standar ISO / IEC 12207: -
Serangkaian aktivitas pemeliharaan perangkat lunak yang terjadi ketika perangkat
lunak mengalami modifikasi pada kode dan dokumentasi terkait karena masalah
atau kebutuhan untuk perbaikan atau adaptasi.
Definisi pertama mirip dengan perawatan perangkat keras, servis mobil, di mana
suatu produk diperiksa untuk kesalahan atau tugas tambahan diberikan setelah
dijual.
Pemeliharaan mencakup bagian dari semua tahapan lain dari proses perangkat
lunak. Setelah menerima permintaan pemeliharaan, langkah pertama adalah
mengidentifikasi jenis pemeliharaan yang diperlukan. Terkadang, masalahnya ada
pada pengguna - bukan perangkat lunaknya.
Dalam kasus produk perangkat lunak, orang akan lebih tertarik untuk
memperbarui produk agar dapat beradaptasi dengan perubahan lingkungan atau
perangkat kerasnya, daripada menguranginya dan menggantinya dengan produk
baru lainnya.
Karenanya, produk perangkat lunak juga memerlukan pemeliharaan untuk
menjaganya tetap mutakhir dengan lingkungan sekitar untuk aplikasi terbaiknya.
Tahap Analisis
Masukan: Dokumen proyek, Informasi tempat penyimpanan, Permintaan
modifikasi tervalidasi.
Proses: Analisis kelayakan, Analisis terperinci.
Pengendalian: Melakukan tinjauan teknis, Verifikasi strategi pengujian, Verifikasi
apakah dokumentasi diperbarui atau tidak, Identifikasi masalah keamanan.
Output: Laporan kelayakan, Laporan analisis terperinci, Persyaratan yang
diperbarui, Daftar modifikasi awal, Strategi pengujian.
Tahap Implementasi
Input: Kode sumber, dokumentasi sistem, Hasil tahap desain.
Proses: Kode perangkat lunak, Tes unit, Review persiapan tes.
Pengendalian: Inspeksi / review software.
Output: Perangkat lunak yang diperbarui, Dokumen desain yang diperbarui,
Dokumen pengujian yang diperbarui, Dokumen pengguna yang diperbarui,
Laporan tinjauan persiapan tes.
Tahap Pengiriman
Masukan: Sistem teruji / diterima.
Model Perangkat Lunak adalah representasi abstrak dari proses. Setiap tahapan
dalam model perangkat lunak terdiri dari berbagai aktivitas untuk
mengembangkan produk perangkat lunak secara bertahap. Ini juga menentukan
urutan di mana setiap fase harus dijalankan.
Ini adalah berbagai model rekayasa perangkat lunak serta kelebihan dan
kekurangannya:
1. Model Air Terjun:
Ini membutuhkan pemahaman dan pengetahuan yang baik tentang persyaratan dan
teknologi yang terkait dengannya.
Keuntungan :
Sangat mudah dan nyaman untuk menerapkan model air terjun.
Untuk implementasi sistem kecil, ini sangat berguna.
Kekurangan:
Ini dapat menyebabkan kebingungan jika beberapa perubahan dilakukan pada
beberapa tahap.
Pertama, analisis kebutuhan dilakukan dan pada awalnya, terkadang tidak
mungkin untuk menyatakan semua persyaratan secara eksplisit.
Hanya pada akhirnya, pelanggan dapat melihat model kerja proyek.
Sifat linier model air terjun menginduksi status pemblokiran.
2. Model Spiral:
Ini dikembangkan dalam iterasi dan digunakan untuk manajemen risiko. Oleh
karena itu, pada iterasi baru, persyaratan dapat dikenali.
Kekurangan:
Dalam serangkaian peningkatan, Perangkat Lunak dikembangkan.
Jika komunikasi dengan pelanggan tidak baik atau tidak tepat maka akan
mengakibatkan kegagalan proyek total atau tidak berhasil atau proyek yang
mungkin menyebabkan kelalaian proyek.
3. Model Inkremental:
Ini adalah proses pengembangan perangkat lunak dan berfokus pada siklus pendek
dan pengembangan.
Keuntungan :
Jika jumlah orang kurang tersedia untuk pengembangan proyek, maka model ini
sangat berguna.
Risiko teknis dapat dikelola secara efektif dan terorganisir dengan baik.
Produk inti atau akhir dapat ditampilkan kepada pelanggan dalam durasi waktu
yang singkat.
Kekurangan:
Pengembang dan pelanggan yang berkomitmen tinggi dan penuh diperlukan untuk
proyek ini.
Mengadopsi teknologi baru dan mengembangkan proyek menggunakan model ini
sangat sulit dan bermasalah.
Model Taute adalah model perawatan tipikal dan memiliki delapan fase dalam
mode siklus.
Tahapan tersebut dijelaskan sebagai berikut:
C. Latihan
1. Aktivitas siklik yang melibatkan pengujian eksekusi dan koreksi kode,
disebut ?
2. Sebutkan 2 jenis Pengujian Unit, yaitu ?
E. Daftar Pustaka
1. Roger S. Pressman, Software Engineering A Practioner's Apporach, 2014
2. Ian Sommerville, Software Engineering (10th Edition), 2015
3. https://www.geeksforgeeks.org/software-engineering-software-maintenance/
4. https://www.geeksforgeeks.org/components-of-software-maintenance-
process/?ref=rp
5. https://www.geeksforgeeks.org/cost-and-efforts-of-software-
maintenance/?ref=rp
6. https://www.geeksforgeeks.org/advantages-and-disadvantages-of-various-
software-models/?ref=rp
7. https://www.geeksforgeeks.org/boehms-software-maintenance-model/?ref=rp
8. https://www.geeksforgeeks.org/software-maintenance-and-various-software-
maintenance-tables/?ref=rp
9. https://www.geeksforgeeks.org/taute-software-maintenance-model/?ref=rp
10. https://www.geeksforgeeks.org/types-of-corrective-maintenance/?ref=rp