REKAYASA PERANGKAT LUNAK
Dalam pengerjaan suatu bangunan dikenal berbagai macam proses, demikian juga
halnya dengan membangun perangkat lunak. Perbedaan proses yang
digunakan dalam pembuatan akan menguraikan aktivitas-aktivitas proses
dalam cara-cara yang berlainan. Perusahaan yang berbeda menggunakan proses yang
berbeda untuk menghasilkan produk yang sama. Tipe produk yang berbeda mungkin
dihasilkan oleh sebuah perusahaan dengan menggunakan proses yang berbeda. Namun
beberapa proses lebih cocok dari lainnya untuk beberapa tipe aplikasi. Jika
proses yang salah digunakan akan mengurangi kualitas kegunaan produk yang
dikembangkan.
Dan
dalam aktivitas pengembangan perangkat lunak meliputi :
1. Persiapan Pengembangan
2. Analisis kebutuhan sistem
3. Perancangan sistem
4. Analisi kebutuhan perangkat lunak
5. Perancangan perangkat lunak
6. Implementasi perangkat lunak (coding)
7. Pengujian perangkat lunak
8. Integrasi perangkat lunak
9. Pengujian sistem
10. Penyerahan kepada pemakai (User Acceptance)
Proses pengembangan perangkat lunak (Software
development process) adalah suatu struktur yang diterapkan pada pengembangan
suatu produk perangkat lunak yang bertujuan untuk mengembangkan sistem dan
memberikan panduan yang bertujuan untuk menyukseskan proyek pengembangan sistem
melalui tahap demi tahap. Proses ini memiliki beberapa model yang
masing-masing menjelaskan pendekatan terhadap berbagai tugas atau aktivitas
yang terjadi selama proses. Contoh model proses pengembangan perangkat lunak
antara lain adalah proses iteratif, Extreme Programming, serta proses air
terjun (waterfall). Contohnya
sebagai berikut:
1.WATErFALL:
A.
Analisis
kebutuhan(requirements definision)
Mempelaj arti perangkat lunak yang akan di buat dan memahami masalah yang akan dibuat perangkat
lunaknya, menetapkan arahan informasi, fungsi, perilaku, dan hasil kerja
perangkat lunak untuk didefinisikan sebagai kebutuhan perangkat lunak.
B.
Perancangan(system
and softwaredesign)
Transformasi setiap spesifikasi kebutuhan menjadi modul-modul
perancangan yang lebih rinci sehingga menghasilkan model solusi dalam bentuk
rancangan struktur data, arsitektur perangkat lunak, antar muka, dan
prosedur-prosedur atau algoritma.
C.
Pengkodean(impelemntation)
Menerjemahkan model perancangan ke dalam bentuk yang dapat
dimengerti oleh mesin (komputer) dengan menggunakan perangkat implementasi
tertentu.
D.
Pengujian(system
testing)
Memeriksa kebenaran logika internal dan fungsi perangkat lunak untuk
menemukan kesalahan-kesalahan, dan memastikan bahwa perangkat lunak yang
dihasilkan sesuai dengan kebut uhan yang sudah didefinisikan sebelumnya.
E.
Pengoperasian(Operation)
Penggunaan perangkat lunak oleh pemakai di lingkung an sebenarnya.
Untuk men aga supaya perangkat lunak yang dioperasikan ini tetap berjalan
sebagaimana mestinya, dilakukan proses pemeliharaan.
Kelebihan dimana model ini mudah di
aplikasikan, Memberikan template tentang metode analisis,
desain, pengkodean, pengujian, dan pemeliha-raan. Kekurangan Waterfall model Waterfall model bersifat kaku
sehingga sulit untuk melakukan perubahan pada sistem perangkat lunak.Pemakaian
Waterfall model
Waterfall model digunakan untu
pembuatan sistem perangkat lunak yang berukuran besardan pembuatannya secara
terpisah.
2. PROTOTYPING MODEL
A.
Pengumpulan
Kebutuhan dan perbaikan.
Pengembang
bertemu dengan pemakai (pelanggan) untuk menentukan objektif perangkat lunak
secara keseluruhan dan mengidentifikasi kebutuhan-kebutuhan yang sudah
diketahui.
B.
Perancangan cepat
Melakukan perancangan secara cepat dengan fokus
pada hal-hal yang akan langsung terlihat oleh pemakai, seperti antarmuka
pemakai dan fungsi-fungsi dasar.
C.
Membangun prototype
Model perancangan yang dihasilkan selanjutnya
digunakan untuk membuat prototype pertama,yang mungkin berbentuk :
Interactions prototype
Prototype perangkat lunak yang memungkinkan
pemakai untuk memahami bagaimana berinteraksi dengan sistem perangkat lunak.
Subset function prototype
Prototype perangkat lunak yang sudah dapat
digunakan tetapi baru mengimplementasikan sebagian dari fungsi-fungsi yang
diinginkan.
Existing program
Program sebenarnya yang mengimplementasikan
sebagian besar atau seluruh fungsionalitas yang dibutuhkan, tetapi masih ada
hal-hal utama lainnya yang harus disempurnakan pada pengembangan berikutnya.
4) Evaluasi prototype
Menguji coba dan mengevaluasi prototype
bersama-sama dengan pemakai untuk mendapatkan umpan balik yang dapat membantu
pengembang memperbaiki prototype yang sudah dibuat, atau membangun
prototypeyang baru.
5) Perbaikan prototype
Melakukan penambahan dan perbaikan-perbaikan
terhadap prototype berdasarkan hasil evaluasi sampai diperoleh produk yang
diinginkan.
Keuntungan Prototyping Model :
1) Menghemat waktu pengembangan.
2) Adanya komunikasi yang baik antara
pengembang dan pelanggan.
3) Pengembang dapat bekerja lebih baik dalam
menentukan kebutuhan pelanggan.
4) Penerapan menjadi lebih mudah karena pemakai
mengetahui apa yang diharapkannya.
5) User dapat berpartisipasi aktif dalam
pengembangan sistem.
6) Punya kemampuan menangkap requirement secara
konkret daripada secara abstrak.
7) Untuk digunakan secara standalone.
Kekurangan Prototyping Model :
1) Pada prototype tentu saja banyak kebutuhan
yang tidak di tampilkan seluruhnya karena data yang dikumpulkan hanya sebagian.
2) Prototype yang di setujui oleh client harus
dikembangkan oleh developer tanpa ada data tambahan dari client dan software
dari prototype harus memiliki fungsi yang lengkap.
3) Banyak ketidak sesuaian pada bentuk
prototype.
4) Proses analisis dan perancangan terlalu
singkat.
5) Walaupun pemakai melihat berbagai perbaikan
dari setiap versi prototype, tetapi pemakai mungkin tidak menyadari bahwa versi
tersebut dibuat tanpa memperhatikan kualitas dan pemeliharaan jangka panjang.
6) Pengembang kadang-kadang membuat kompromi
implementasi dengan menggunakan sistem operasi yang tidak relevan dan algoritma
yang tidak efisien.
7) Mengesampingkan alternatif pemecahan
masalah.
8) Bisanya kurang fleksible dalam mengahadapi
perubahan.
9) Prototype yang dihasilkan tidak selamanya
mudah dirubah.
3. MODEL SPIRAL
Model
proses perangkat lunak evolusioner yang mengadopsi pengulangan model
prototyping dan pengendalian model linear sequential dengan tambahan elemen
analisis resiko pada proses pengembangannya. Representasi model ini berbentuk
spiral, dimana setiap pengulangan dinyatakan dengan suatu sirkuit yang
melingkari 4 aktivitas utama:
1) Perencanaan
Mendefinisikan
tujuan, kendala, sumber daya, waktu, dan informasi lain yang berhu-bungan
dengan proyek.
2) Analsis
resiko
Mengenali,
menganalisis dan menilai resiko teknis dan manajemen.
3) Rekayasa
Membangun satu
atau beberapa produk yang merepresentasikan aplikasi.
4) Evaluasi
pemakai
Mendapatkan
umpan balik dari pemakai berdasarkan hasil evaluasi produk yang direkayasa.
Kelebihan model Spiral :
Prescriptive Model Proses
Prescriptive model adalah model proses dasar yang dipakai
seperti dengan aturan-aturan yang ditentukan agar dapat menghindari kesalahan
dalam jadwal kegiatan kerja. Tetapi pada kenyataannya bahwa setiap proyek
memiliki keadaan, situasi, dan kondisi yang berbeda dan akan sangat sulit jika
hanya memiliki acuan terhadap aturan –aturan yang ditentukan sebelum proyek
mulai dikerjakan.