Akan tetapi ada bidang yang belum tersentuh dari materi tersebut, yang merupakan dasar untuk melakukan proses perubahan dengan efektif, yaitu understanding. Tepat sebelum mengimplementasi perubahan, perlu untuk memahami produk software secara keseluruhan dan program yang dibuat dari perubahan secara umum.
Program understanding (pemahaman kode) menghabiskan bagian penting dari usaha dan sumber pemeliharaan. Sebagai contoh : perusahaan IT HP (Hewlett Packard), memperkirakan bahwa membaca kode (elemen dasar dalam pemahaman) menghabiskan biaya $200 million (juta) dalam satu tahun. Data dari industry dan sumber lain juga mengindikasikan bahwa sekitar separuh dari total usaha pembelanjaan untuk mengefektifkan perubahan adalah dalam pemahaman kode.
1.1 Tujuan Program Understanding (Pemahaman Kode)
Tujuan akhir dari membaca dan memahami program adalah untuk mengimplementasikan perubahan yang diinginkan oleh pengguna dengan sukses.
Keutamaan produk software dan kepentingannya untuk dipahami
Bidang pengetahuan pada proses pemahaman kode | Kegunaan |
Problem domain (bidang permasalahan) |
|
Akibat dari pelaksanaan (execution effect) |
|
Hubungan sebab akibat |
|
Hubungan produk dengan lingkungan |
|
Mengutamakan dukungan keputusan |
|
1.2 Pengelola dan Informasi Yang Dibutuhkan
Dalam proses pemeliharaan, tidak perlu agar setiap anggota dari tim project pemeliharaan memahami setiap hal dari system yang dipelihara. Anggota dalam sebuah tim pemeliharaan meliputi : managers, analyst, designer, dan programmers, semua anggota mempunyai perbedaan pemahaman atau informasi tergantung pada level yang mereka kerjakan.
1.2.1 Manager
Mengingat bahwa salah satu tanggung jawab manajemen adalah membuat keputusan, seorang manager harus mempunyai pengetahuan pendukung keputusan dalam rangka untuk membuat keputusan. Level pemahaman yang dibutuhkan akan tergantung pada keputusan yang akan diambil. Contoh : untuk memperkirakan biaya dan durasi perbaikan utama, pengetahuan ukuran program (terkait dengan baris kode atau nilai fungsi ) dibutuhkan. Estimasi atau perkiraan dan digunakan untuk menentukan ya atau tidaknya, sehingga lebih ekonomis untuk menggantikan system dengan sebuah vendor system baru. Manager tidak membutuhkan pengetahuan tentang arsitektur design system atau detail penerapan low level program, agar melaksanakan tugas masing-masing.
1.2.2 Analyst
Selama pengembangan software, seorang analyst butuh memahami bidang permasalah (contoh : penjualan, keuangan, kesehatan, dan lain-lain) agar dapat menjalankan tugas seperti menentukan kebutuhan fungsional dan non fungsional, dan untuk menyusun hubungan system dengan elemen lingkungan system. Selama fase pemeliharaan, seorang analyst akan berkaitan dengan mengetahui bagaimana perubahan di lingkungan (contoh : OS yang baru) yang akan mempengaruhi system. Jadi, sebelum menerapkan perubahan, analyst harus memahami gambaran secara global dari system, gambaran umum interaksi diantara fungsional unit utama. Analyst juga harus menentukan implikasi dari perubahan terkait dengan kemampuan system.
1.2.3 Designer
Model proses dari system software dapat diselesaikan dengan dua level yaitu arsitektural design dan detail design. Arsitektural design menghasilkan pembuatan dari fungsional komponen, struktur conceptual data dan interkoneksi antara variasi komponen. Detail design menghasilkan detail algoritma yang digunakan, representasi data, struktur data dan interface antara prosedur dan fungsi.
Pekerjaan designer selama proses pemeliharaan adalah :
- Menggali informasi dan menentukan bagaimana perbaikan dapat diakomodasi dengan arsitektur, struktur data, aliran data dan aliran control dari system yang ada.
- Mengerjakan melalui source code yang ada, untuk mendapatkan gambaran ide lingkup pekerjaan, area system yang dipakai, dan pengetahun dan kemampuan yang dibutuhkan oleh tim programming yang melaksanakan pekerjaan.
Kegunaan konsep seperti data abstraksi, object orientation, dan notasi design yang baik seperti dfd, diagram aliran control, struktur chart, HIPO chart, dapat membantu designer untuk mendapat pemahaman yang baik dari system sebelum mendesign suatu perubahan.
1.2.3 Programmers
Dalam proses pemeliharaan, programmer dibutuhkan untuk mengetahui pengaruh pelaksanaan system pada berbagai tingkat abstraksi, pengetahuan sebab akibat, dan pengetahuan tentang hubungan produk-lingkungan. Pada tingkat abstraksi yang lebih tinggi (tingkat sistem), programmer membutuhkan pengetahuan fungsi dari komponen individu dari system dan hubungan sebab akibatnya. Pada tingkat abstraksi yang lebih rendah (modul dan prosedur individu), programmer membutuhkan pemahaman setiap statement program kerjakan, urutan eksekusi (aliran kontrol), efek transformasi pada objek data (aliran data), dan maksud sekumpulan statement program (fungsi). Dari informasi yang diperoleh tersebut, akan membantu programmer untuk menyelesaikan :
- Menentukan untuk membuat struktur ulang atau menulis ulang segment kode spesifik
- Untuk memprediksi lebih mudah efek sehari-sehari ketika membuat perubahan yang mempengaruhi bagian lain pada system.
- Untuk menemukan hipotesis lokasi dan penyebab error
- Untuk menentkan kemungkinan perubahan yang diusulkan dan memberitahu manajemen tentang antisipasi masalah yang kemungkinan muncul
1.3 Model Proses Pemahaman
Programmer mempunyai cara berpikir yang bervariasi, penyelesaian masalah yang sesuai, dan pemilihan alat dan teknik yang cocok. Secara umum, ada tiga aksi yang dilakukan dalam memahami program yaitu :
Model | Features | ||
Prinsip model | Teori proses | Teori struktur | |
Top down | Pemahaman kode merupakan pemetaan mulai dari bagaimana program bekerja (programming domain) hingga apa yang dikerjakan (problem domain) |
|
|
Bottom up | Pengenalan pola pengulangan dalam kode program |
|
|
Opportunistic | Kombinasi antara strategi top down dengan bottom up |
|
|
1.5 Teknik Membaca
Membaca merupakan kunci dalam memahami dan membuat software. Persoalan dalam mengembangkan teknik membaca yang efektif adalah dengan memfokuskan pada konteks yang spesifik. Apakah tujuan dari latihan membaca?penelitian menunjukkan bahwa jika teknik membaca difokuskan pada tujuan, maka akan lebih efektif dalam mencapai tujuan itu. Motivasi untuk belajar dan memahami teknik membaca adalah untuk mengembangkan definisi dan proses efektif agar dapat dipelajari.
1.6 Faktor Yang Mempengaruhi Pemahaman
Sejumlah faktor dapat mempengaruhi tidak hanya formasi model mental program, tetapi juga dari akurasi, kebenaran, dan kelengkapan, karena itu kemudahan dalam suatu program dapat dipahami dengan baik. Beberapa faktor yang mempengaruhi proses pemahaman diantaranya : ahli, praktisi pemrograman dan penerapan isu, dokumentasi, presentasi dan organisasi program, dukungan alat dan pengembangan permintaan.
Referensi :
Sommerville, Ian.2007.Software Engineering. United Kingdom : Addison-Wesley Publishers
Pigoski, Thomas.1997.Practical Software Maintenance Best Practices for Managing Your Software Investment. Canada : John Wiley & Sons, Inc.
Grub, Penny and Takang, Amstrong A.2003.Software Maintenance concepts dan practice.Singapura : World Scientific Publishing.
Belum ada tanggapan untuk "Pemahaman kode dalam pemeliharaan perangkat lunak"
Post a Comment