Proses
pengembangan perangkat lunak
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, extream programming, waterfall serta agile.
Pengembangan perangkat lunak (juga
disebut pengembangan aplikasi, desain perangkat lunak, merancang
perangkat lunak, pengembangan aplikasi perangkat lunak,pengembangan
aplikasi perusahaan, atau pengembangan platform) adalah pengembangan
suatu produk perangkat lunak. Istilah “pengembangan perangkat lunak” bisa
dipakai untuk menyebut aktivitas pemrograman komputer, yaitu proses menulis dan
mengelola kode sumber, namun dalam artian luas istilah ini mencakup semua hal
yang terlibat antara penciptaan perangkat lunak yang diinginkan melalui
pewujudan akhir perangkat lunak, idealnya dalam proses yang terencana dan
terstruktur. Karena itu, pengembangan perangkat lunak bisa mencakup
penelitian, pengembangan baru, purwarupa, modifikasi, pemakaian kembali, rekayasa
ulang, pengelolaan, atau aktivitas lain yang menghasilkan produk perangkat
lunak.
Berikut
penjelasan lebih detail dari model pengembangan perangkar lunak.
1. Linear Sequential Model
Linear
sequential model (atau disebut juga “classic life cycle” atau “waterfall model”)
adalah metode pengembangan perangkat lunak dengan pendekatan sekuensial dengan
cakupan aktivitas :
1. Rekayasa
sistem dan Analisis (Sistem Engineering and Analysis)
Karena perangkat lunak adalah bagian dari sistem yang
lebih besar, pekerjaan dimulai dari pembentukan kebutuhan-kebutuhan untuk
seluruh elemen sistem dan kemudian memilah mana yang untuk pengembangan
perangkat lunak. Hal ini penting, ketika perangkat lunak harus berkomunikasi
dengan hardware, orang dan basis data
2. Analisis
kebutuhan perangkat lunak (Software Requirements Analysis)
Pengumpulan kebutuhan dengan fokus pada perangkat
lunak, yang meliputi:
Domain informasi, fungsi yang dibutuhkan, unjuk
kerja/performansi dan antarmuka. Hasilnya harus didokumentasi dan direview ke pelanggan
3. Perancangan (Design)
Ada 4 atribut untuk program yaitu : Struktur Data,
Arsitektur perangkat lunak, Prosedur detil dan Karakteristik Antarmuka. Proses
desain mengubah kebutuhan-kebutuhan menjadi bentuk karakteristik yang
dimengerti perangkat lunak sebelum dimulai penulisan program. Desain ini harus
terdokumentasi dengan baik dan menjadi bagian konfigurasi perangkat lunak.
4. Pembuatan kode (Coding)
Penterjemahan perancangan ke bentuk yang dapat
dimengerti oleh mesin, dengan menggunakan bahasa pemrograman
5. Pengujian (Testing)
Setelah kode program selesai testing dapat dilakukan.
Testing memfokuskan pada logika internal dari perangkat lunak, fungsi eksternal
dan mencari segala kemungkinan kesalahan dan memriksa apakah sesuai dengan
hasil yang diinginkan.
6. Pemeliharaan (Maintenance)
Merupakan bagian paling akhir dari siklus pengembangan
dan dilakukan setelah perangkat lunak dipergunakan. Kegiatan :
• Corrective Maintenance :
Mengoreksi kesalahan pada perangkat lunak, yang baru terdeteksi pada saat
perangkat lunak dipergunakan
• Adaptive Maintenance :
Penyesuaian dengan lingkungan baru, misalnya sistem operasi atau sebagai
tuntutan atas perkembangan sistem komputer, misalnya penambahanprinter driver
• Perfektive Maintenance :
Bila perangkat lunak sukses dipergunakan oleh pemakai. Pemeliharaan ditujukan
untuk menambah kemampuannya seperti memberikan fungsi-fungsi tambahan,
peningkatan kinerja dan sebagainya.
Berikut
merupakan keuntungan dan kerugian penggunaan model water fall :
Keuntungan:
·
Terstruktur
·
Tiap tahap memiliki metode untuk menghasilkan suatu dokumen yang bisa
diserahkan ke pemakai
·
Dokumen yang dihasilkan tiap tahap bisa di spesifikasikan secara jelas
dan mendetail
Kerugian:
·
Linear, tidak ada umpan balik (feedback)
·
Sumber daya dan penjadwalan harus di perkirakan pada awal proyek
·
Tahap terisolasi, kurang terjalin transisi ke tahap
berikutnya. Akibat paling besar terasa pada tahap requirement
·
Pemakai tidak bisa melihat produk perangkat lunak sampai akhir proyek
·
Penekanan terbesar pada dokumen
Model
waterfall ini cocok untuk produksi suatu aplikasi tunggal yang biayanya rendah
dengan menggunakan:
·
Dekomposisi fungsi top-down
·
3GL konvensional untuk implementasinya
2. Agile Process Model
Agile Processmerupakan sekelompok aktifitas
pembangunan perangkat lunak secara iteratif yang menekankan pada aktifitas
konstruksi (desain dan koding). Agile Process mengeliminasi
sebagian besar waktu untuk melakukan perencanaan sistem dan berusaha sebisa
mungkin mematuhi jadwal deliver sistem
yang telah dijanjikan.Requirements yang dibutuhkan
secara langsung di-drive oleh pelanggan itu
sendiri, dan apabila terjadi perubahan terhadaprequirements tersebut,
pengembang dituntut mampu beradaptasi dengan perubahan yang terjadi.
Secara mendasar, aktifitas-aktifitas umum dalam kerangka
kerja agile antara lain: komunikasi dengan pelanggan,
perencanaan, pemodelan, konstruksi, pengiriman (delivery), dan melakukan
evaluasi. Kemudian aktifitas akan berulang, terutama untuk perencanaan deliver berikutnya. Semua aktifitas tersebut di
buat seminimal mungkin, lebih memfokuskan dan konsentrasi pada konstruksi
serta delivery.
Kemudian, seperti apa saja sih bentuk dari pendekatan Agile ini ?
Terdapat banyak model pendekatan yang tergolong dalam Agile Process, namun tidak semua model saya bahas pada
tulisan ini, saya hanya menjelaskan dua model yaitu: Extreme Programming(XP), dan Adaptive Software Development (ASD).
Extreme
Programming (XP)
XP merupakan suatu model yang tergolong dalam pendekatanagile yang diusulkan oleh Kent Back. Menurut
penjelasan dia, definisi XP adalah sebagai berikut: “Extreme
Programming (XP) is a lightweight, efficient, low-risk, flexible, predictable,
scientific, and fun way to develop software“. Model ini cenderung
menggunakan pendekatan Object-Oriented.
Tahapan-tahapan yang harus dilalui antara lain: Planning,
Design, Coding, danTesting.
Pada saat perencanaan, dimulai dengan membuat semacam “user strories” yang ditempatkan index card. User Story (cerita)
merupakan deskripsi fitur-fitur fungsional yang akan disediakan perangkat lunak
yang akan dibuat. Dari cerita-cerita yang telah dibuat, pelanggan memberikan
semacam nilai (misalnya: prioritas). Kemudian tim XP mengkaji semua cerita tadi
dan menentukan rincian biaya serta memperkirakan waktu yang dibutuhkan untuk
membangun sistem.
Apabila waktu yang dibutuhkan untuk mengimplementasikan cerita
tersebut lebih dari tiga minggu, maka tim XP meminta pelanggan memecah cerita
tersebut menjadi cakupan yang lebih kecil. Cerita-cerita yang telah dibuat
dikelompokkan, sehingga dapat diperkirakan untuk melakukan deliverable increments. Meskipun telah dikelompokkan
dan proses pembangunan perangkat lunak telah dimulai, pelanggan masih bisa
menambah, merubah, memecah dan menghapus cerita-cerita tersebut, namun tentunya
harus sesuai dengan persetujuan bersama.Keuntungan dari model XP antara lain
adalah:
Pertama, dapat merepresentasikan
situasi nyata yang sering terjadi, sehingga sistem yang akan dibuat mendukung
sebagian besar operasional pengguna.
Kedua, memudahkan pengguna
memahami dan memberikan masukan terhadap cerita tersebut.
Ketiga, dapat merepresentasikan
fitur-fitur fungsional secara bertahap (incremental).
Adaptive
Software Development (ASD)
ASD merupakan suatu model yang tergolong dalam pendekatanagile yang diusulkan oleh Jim Highsmith. ASD
menekankan pada pengorganisasian tim secara mandiri, kolaborasi
antar-perseorangan, dan terus belajar, baik secara individu maupun secara tim.
ASD menggunakan tools yang disebut “time-boxing” – yaitu berupa aktifitas yang menentukan
jangka waktu tertentu yang dialokasikan untuk menyelesaikan berbagai macam
tugas. Apabila waktu yang ditentukan tersebut selesai, maka pembangunan sistem
akan pindah ke tugas berikutnya, dengan harapan bahwa sebagian besar dari critical work telah berhasil diselesaikan sebelum
waktu keseluruhan tugas berakhir. Terdapat tiga tahapan pada model ASD,
yaitu: Speculation, Collaboration,
dan Learning.
Pada tahap Speculation, proyek
dimulai dan adaptive cycle planning diselenggarakan.
Pada tahapan ini, didefinisikan visi dan misi pengguna terhadap sistem yang
akan dibuat, selanjutnya mendefinisikan project constraints, misalnya:
waktu deliver. dan selanjutnya mendefinisikan satu set dari
requirements yang akan dikerjakan dalam suatu cycle. Pada
tahap Collaboration, pada tahap ini diorganisasikan tim kerja
untuk membangun sistem. Direkomendasikan menggunakan model Joint Application Development (JAD). Pada
tahap Learning, terdapat tiga aktifitas yaitu: pelanggan atau
end-user menyediakan feedback terhadap hasil incremental delivery, tim ASD melakukan review terhadap komponen
perangkat lunak untuk memperbaiki dan meningkatkan kualitas perangkat lunak
yang sedang dibuat.
Sumber ::



0 komentar:
Posting Komentar