1.
Perencanaan (Planning)
Tugas utama untuk memperkirakan
kebutuhan besarnya sumber daya (khususnya jam kerja) yang dibutuhkan dalam
pengembangan, pengadaan, dan penerapan software. Jika, sebagai contoh, s/w di
buat di rumah (in house), manajemen harus berusaha untuk memperkirakan berapa
jumlah baris kode (program) yang di ketik atau banyaknya fungsi yang di
buat. Jika suatu software akan dikembangkan dan diimplementasikan secara
in-house, manajemen harus memanfaatkan lima teknik perencanaan biaya yang di
buat oleh Boehm (1984) sbb :
·
Algorithmic Models (model algoritma)
: model ini akan memperkirakan jumlah sumber daya yang dibutuhkan berdasar pada
faktor biaya, sebagai contoh memperkirakan jumlah instruksi yang harus di ketik
(di tulis), bahasa pemrograman yang digunakan, dan perubahan pada permintaan
kebutuhan. Dengan menggunakan model COCOMO (Boehm’s (1981)).
·
Expert Judgment (penilaian seorang ahli),
seorang ahli dapat memperkirakan kebutuhan sumber daya yang diperlukan dalam
proyek / pembuatan program. Menurut penelitian Vicinanza et el’s (1991),
seorang ahli dapat menjadi pembuat perkiraan yang lebih baik untuk menentukan
sumber daya jika dibanding dengan model algoritma.
·
Analogy (analogi) : jika proyek
software yang sama pernah dibuat, penentuan sumber daya yang dibutuhkan dapat
di dasarkan pada pengalaman sebelumnya.
·
Top-Down Estimation (Perkiraan
atas-bawah) : proyek di pecah kedalam beberapa tugas (pekerjaan), dan penentuan
sumber daya yang dibutuhkan oleh setiap tugas tersebut baru dibuat.
·
Bottom-Up Estimation (Perkiraan
bawah-atas) : jika tugas-tugas sudah di buat terlebih dahulu, kebutuhan sumber
daya untuk masing-masing dapat diperkirakan dan di satukan / dikumpulkan untuk
keperluan seluruh kebutuhan proyek.
Selain
memperkirakan kebutuhan sumber daya, manajemen juga harus memutuskan tujuan
dari keputusan penting yang dibuat selama fase perencanaan seperti :
·
Pendekatan desain (design approach)
: jika program akan dikembangkan dirumah, manajemen harus memilih pendekatan
desain yang akan digunakan seperti prototyping atau tipe top-down atau
bottom-up.
·
Pendekatan implementasi
(implementation approach) : software dapat dikembangkan dirumah, pengembang
dapat membangun atau mengemas software untuk dijual. Jika software akan dibuat
koding, harus dibuat keputusan tentang bahasa pemrograman yang akan dipakai.
·
Pendekatan testing dan integrasi
(Integration and testing approach) : pada saat pengetesan akan dibutuhkan
sumber daya yang khusus, seperti simulator atau hardware tertentu untuk
memonitor jalannya program.
·
Pengorganisasian tim proyek (project
team organization) : saat tim proyek harus dibentuk untuk pengembangan atau
pengadaan software, maka anggota dan struktur tim harus ditentukan.
Pada tahap kontrol ini, ada dua
tujuan utama yaitu :
1.
Untuk memonitor kemajuan dan
beberapa tahap pada siklus hidup s/w agar tidak bertentangan dengan rencana
awal.
2.
Mengontrol tugas pengembangan,
pengadaan dan implementasi s/w, agar s/w dapat di produksi secara autentik,
akurat dan lengkap.
Untuk
memonitor agar kontrol tidak bertentangan dengan rencana awal, beberapa teknik
dapat digunakan seperti :
·
Work Breakdown Structures (WBS),
dengan teknik ini kita dapat mengidentifikasi tugastugas yang spesifik untuk
pengembangan, pengadaan, dan implementasi s/w yang dibutuhkan (Mc.Leod and
Smith 1996).
·
Gantt Chart, dapat digunakan untuk
membantu mengatur tugas (schedule). Teknik ini akan menunjukan kapan tugas
harus dimulai dan diselesaikan, tugas apa yang harus dibuat bersama-sama, dan
tugas apa yang harus dihasilkan secara serial.
·
Program Evaluation and review
technique (PERT), menunjukan tugas-tugas yang harus diselesaikan, bagaimana
hubungannya, kebutuhan sumber daya apa untuk setiap tugastugasnya
Seorang
auditor harus mempunyai dua perhatian khusus pada kendali, pada tahap kontrol
ini yaitu :
·
Auditor harus dapat mengevaluasi
apakah fungsi dari aktivitas kontrol dapat diterapkan juga pada software yang
berbeda.
·
Seorang auditor harus dapat
mengumpulkan bukti apakah prosedur dari suatu kontrol sudah dijalankan dengan
benar dan dapat dipercaya.
2.
Perancangan (Design)
Seorang programmer bertugas untuk
menspesifikasikan struktur dan operasi dari program untuk menemukan artikulasi
yang dibutuhkan selama tahap proses informasi sistem desain dari pengembangan
sistem.
Sedangkan auditor tugas utamanya
adalah sebagai berikut :
·
Menentukan apakah programmer
menggunakan suatu tipe khusus dari pendekatan sistematik untuk desain.
·
Auditor harus mengubah keinginannya
berdasarkan beberapa faktor seperti ukuran dan bahan dari suatu program.
·
Seorang auditor juga dapat
memperoleh bukti dari proses desain dengan melakukan interview, observasi, dan
review dari dokumentasi.
·
Auditor dapat berkomunikasi dengan
programmer, apakah mereka dapat memahami tentang kebutuhan dengan menggunakan
pendekatan yang sistematik untuk desain, jika ya, bagaimana
menggunakannya.
·
Auditor juga dapat mengamati apakah
programmer menggunakan pendekatan sistematik untuk mendesain program.
·
Mereka juga dapat meninjau
dokumentasi program, apakah memiliki struktur chart sebagai bukti programmer
menggunakan pendekatan yang sistematik untuk mendesain.
3.
Pengkodean (Coding)
Tahap koding (pengetikan / penulisan
program) dilakukan pada saat s/w akan dibuat atau dimodifikasi. Selama tahap
ini, programmer akan menulis dan mendokumentasikan source code (program sumber)
dalam bahasa pemrograman untuk mengimplementasikan desain program.
Tiga strategi utama dari
implementasi modul dan integrasi :
·
Top-Down
Digunakan
jika, modul level atas (high-level modules) dibuat (coding), di test, dan
diintegrasikan sebelum modul level bawah (low-level modules). Keuntungannya adalah kesalahan pada modul level
atas dapat teridentifikasi lebih dini, kerugiannya adalah pada saat uji coba
program akan menemui kesulitan ketika modul level bawah menemukan kesalahan
fungsi input-output yang sangat sulit.
·
Bottom up
Digunakan
jika, modul level bawah di buat (coding), di test, dan diintegrasikan sebelum
modul level atas di buat. Keuntungannya
adalah modul level rendah yang merupakan operasi yang paling sulit di
implementasikan dan diuji terlebih dahulu. Kerugiannya adalah pendekatan ini
sangat sulit untuk di teliti seluruh operasinya, sebelum programnya selesai
dibuat.
·
Threads (rangkaian / untaian)
Digunakan
jika, keputusan dibuat terlebih dahulu untuk fungsi program yang akan dibuat,
kemudian modul yang akan mendukungnya baru dibuat dan kemudian
diimplementasikan untuk menghasilkan fungsi yang penting. Keuntungannya
adalah fungsi yang paling penting di implementasikan terlebih dahulu.
Kerugiannya adalah integrasi dari modul yang berikutnya mungkin akan lebih
sulit, jika dibandingkan dengan pendekatan top-down atau bottom-up.
Auditor perlu mencari bukti yang
benar dengan cara uji coba oleh manajemen program dalam memilih strategi
implementasi modul dan integrasi. Khususnya pada program yang besar, penggunaan
strategi yang salah (jelek) dapat mengakibatkan program yang dihasilkan menjadi
kurang berkualitas.
Auditor dapat melakukan wawancara
untuk menguji apakah manajemen menggunakan pendekatan sistematik untuk memilih
strategi implementasi modul dan integrasi.
Mereka juga dapat menguji
dokumentasi program untuk memperoleh bukti tipe strategi yang telah di adopsi
(di pilih).
Strategi Coding
Menurut konvensi (kesepakatan)
program terstruktur, terdapat tiga dasar struktur utama dalam struktur kontrol
yaitu :
·
Urutan sederhana (simple sequence -
SEQUENCE)
·
Pemilihan dengan seleksi (selection
based on a test – IF-THEN-ELSE)
·
Pengulangan
kondisi (conditional repetition-DO WHILE)
Jika konvensi pemrograman
terstruktur di penuhi, dapat dipastikan bahwa para programmer akan membuat
source-code yang tingkat kesalahannya kecil, mudah untuk dimengerti dan mudah
untuk dirawat. Auditor dapat mencari bukti untuk memastikan apakah manajemen
programming di jamin di buat oleh programmer mengikuti struktur programming
yang telah di sepakati. Mereka dapat melakukan wawancara dengan manager atau
programmer tentang tugas dan cara yang dilakukannya dalam membuat program. Auditor
juga dapat mengecek apakah programmer dalam membuat programnya menyediakan
fasilitas otomatis sebagai alat bantu untuk mereka.
Beberapa tipe penggunaan fasilitas koding
otomatis anatara lain :
·
Shorthand preprocessor,
memungkinkan programmer untuk menulis kode secara singkat, jugadapat
menerjemahkan kode singkat ini dalam sintak yang lebih lengkap, contoh COBOL.
·
Decision-table preprocessor,
memindahkan bentuk teks program ke dalam bentuk sourcecodemenggunakan bahasa
pengolahan compiler.
·
Copy facility, memungkinkan penggunaan
kode secara berulang
·
Editor, yang memungkinkan kode di
ciptakan, di format, dan dimodifikasi secara mudah.
·
User-interface management system,
memungkinkan desain dari implementasi yang cepat,seperti windows, icons, menus,
dan dialog boxes.
·
CASE tools, berisi bermacam-macam
fasilitas yang dapat membantu proses koding.
Strategi Dokumentasi
Pedoman untuk menghasilkan dokumentasi
yang berkualiatas adalah sbb :
·
Sediakan petunjuk yang menunjukan
proes pembuatan program ke dalam beberapa tahap dankomponen secara keseluruhan
dan hubungan antara komponen-komponen tersebut.
·
Gunakan baris komentar dalam
program secara bebas untuk menerangkan jalannya (logika)program.
·
Beri nama untuk variabel, konstanta tipe,
paragraf, modul, dan seksi yang berarti kepada parapembaca source-code program.
·
Buat lay-out dari source-program sehingga
mudah untuk dibaca.
·
Kelompokan tipe kode yang saling
berhubungan.
4.
Pengetesan (Testing)
Testing software adalah proses
mengoperasikan software dalam suatu kondisi yang dikendalikan, untuk
memverifikasi apakah telah berlaku sebagaimana telah ditetapkan (menurut
spesifikasi), mendeteksi error , dan memvalidasi apakah spesifikasi yang telah
ditetapkan sudah memenuhi keinginan atau kebutuhan dari pengguna yang
sebenarnya.
·
Verifikasi adalah pengecekan atau
pengetesan entitas-entitas, termasuk software, untuk pemenuhan dan konsistensi
dengan melakukan evaluasi hasil terhadap kebutuhan yang telah ditetapkan. (Are
we building the system right?)
·
Validasi melihat kebenaran sistem,
apakah proses yang ditulis dalam spesifikasi adalah apa yang
sebenarnya diinginkan atau dibutuhkan oleh pengguna. (Are we building the right
system?)
·
Deteksi error. Testing seharusnya
berorientasi untuk membuat kesalahan secara intensif, untuk menentukan apakah
suatu hal tersebut terjadi bilamana tidak seharusnya terjadi atau suatu hal
tersebut terjadi dimana seharusnya mereka ada.
Jenis-jenis testing antara lain
sebagai berikut :
·
Pengujian white box
Pengujian yang didasarkan pada pengecekan terhadap detail
perancangan, menggunakan struktur kontrol dari desain program secara procedural
untuk membagi pengujian ke dalam beberapa kasus pengujian.
·
Pengujian basis path
Metode ini memungkinkan perancang test case mendapatkan
ukuran kekompleksan logical dari perancangan prosedural dan menggunkan ukuran
ini sbg petunjuk untuk mendefinisikan basis set dari jalur pengerjaan. Test
case yg didapat digunakan untuk mengerjakan basis set yg menjamin pengerjaan
setiap perintah minimal satu kali selama uji coba. Contoh : diagram alir
·
Pengujian struktur control
Merupakan pengujian kondisi dimana sebuah metode desain test
case yang menggunakan kondisi logis yang ada pada suatu program. Contoh :
Kondisi sederhana dari persamaan relasional
·
Pengujian black box
Merupakan pengujian yang berfokus pada spesifikasi
fungsional dari perangkat lunak, tester dapat mendefinisikan kumpulan kondisi
input dan melakukan pengetesan pada spesifikasi fungsional program.
5.
Pengoperasian dan Pemeliharaan
(Operation and Maintenance)
Dalam sudut pandang Sistem Audit, perhatian utama pada operasional program adalah bagaimana
performance program tersebut dapat dimonitor setiap saat. Seseorang harus
bertanggung jawab untuk mengidentifikasi apabila program perlu perawatan,
kemungkinan lain adalah identifikasi dari kebutuhan
perawatan mungkin tidak terjadi.
Akibatnya, bisa terjadi kekeliruan pada database program, kegagalan
dalam pencapaian keinginan user, atau operasi program tidak efisien. Mekanisme formal dalam monitoring status operasional program sangat diperlukan, ketika pengguna
dari program adalah seluruh anggota organisasi yang terdiri dari berbagai macam
latar belakang.
Ada 3 macam tipe dari perawatan
(maintenance) yang diperlukan agar program tetap beroperasi:
·
Repair-maintenance-errors, perawatan
dengan cara memperbaiki kesalahan.
·
Adaptive maintenance-users needs,
perawatan dengan mengadaptasi pada keinginan user.
·
Perfective maintenance, perawatan
dengan maksud agar diperoleh program yang sempurna.
Sedangkan auditor tugas utamanya
adalah sebagai berikut :
·
Untuk memastikan bahwa fase ini
berjalan dengan efektif dan pelaporan secara berkala dapat dilakukan, serta
proses perawatan bisa di kontrol dengan baik.
·
Auditor harus bisa mencari bukti bawa manajemen telah meninjau
system dengan baik dan bertanggung jawab dalam monitoring status dari
operasional program. Caranya dengan melakukan interview (wawancara), obsevasi,
tinjauan pada dokumen yang menunjukan bahwa system telah beroperasi dengan
baik.
·
Selanjutnya mereka harus fokus pada
kualitas dari kontrol proses maintenance.
0 komentar:
Posting Komentar