Anda di halaman 1dari 7

Introduction

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 di review 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.

Anda mungkin juga menyukai