9.
Jelaskan secara detail Software Development Process model berikut, apa yang
dimaksud dengan Waterfall Model, Prototyping, Iterative Development, Rational
Unified Process, Timeboxing Model, Extreme Programming and Agile Processes.
a. Waterfall Model adalah suatu proses pengembangan perangkat lunak
berurutan, dimana kemajuan dipandang sebagai terus mengalir ke bawah
(seperti air terjun) melewati fase-fase perencanaan, pemodelan,
implementasi (konstruksi), dan pengujian (Pressman, Roger S. 2001).
Nama model ini sebenarnya adalah Linear Sequential Model. Model ini
sering disebut dengan classic life cycle atau model waterfall. Model ini
pertama kali diperkenalkan oleh Winston Royce sekitar tahun 1970
sehingga sering dianggap kuno, tetapi merupakan model yang paling
banyak dipakai didalam Software Engineering (SE).
b. Prototyping dapat didefinisikan sebagai proses pengembangan suatu
prototipe secara cepat untuk digunakan terlebih dahulu dan ditingkatkan
terus menerus sampai didapatkan sistem utuh. Prototyping merupakan
proses yang digunakan untuk membantu pengembang perangkat lunak
dalam membentuk model dari perangkat lunak yang harus dibuat. Ciri
khas dari metodologi ini adalah pengembang sistem (system developer),
klien, dan pengguna dapat melihat dan melakukan eksperimen dengan
bagian dari sistem komputer dari sejak awal proses pengembangan.
c. Iterative development merupakan pengembangan dari prototyping model
dan digunakan ketika requirement dari software akan terus berkembang
dalam tahapan-tahapan pengembangan aplikasi tersebut. Sedikit
pengertian tentang requirement software dari developer yang diterapkan
pada tahap pertama iterasi, akan mendapatkan tanggapan dari user.
Ketika requirement menjadi jelas, tahapan iterasi selanjutnya akan
dilaksanakan.
Beberapa tipe dari iterative model di antaranya :
Spiral model : dikembangkan dari sifat iterative prototyping model
dan sifat linier waterfall model. Merupakan model yang ideal bagi
software yang memiliki bermacam jenis.
Win win spiral model : merupakan ekstensi dari spiral model,
disebut win win karena merupakan situasi kemenangan antara tim
pengembang dan pelanggan.
Component based development model : menitikberatkan pada
penggunaan kembali dari komponen-komponen yang dibangun
dalam sebuah aplikasi. Komponen disini dapat berupa fungsi
tertentu atau sebuah kelompok yang berhubungan dengan fungsi
tertentu.
d. Rational unified process (RUP) adalah suatu kerangka kerja proses
pengembangan perangkat lunak iteratif yang dibuat oleh Rational
Software, suatu divisi dari IBM sejak 2003. RUP bukanlah suatu proses
tunggal dengan aturan yang konkrit, melainkan suatu kerangka proses
yang dapat diadaptasi dan dimaksudkan untuk disesuaikan oleh organisasi
pengembang dan tim proyek perangkat lunak yang akan memilih proses
sesuai dengan kebutuhan mereka. RUP menggunakan konsep object
oriented, dengan aktifitas yang berfokus pada pengembangan model
dengan menggunakan Unified Model Languange (UML).
e. Timeboxing model adalah proses menunda fitur untuk versi aplikasi di
masa mendatang untuk melengkapi versi saat ini sebagai ketepatan
waktu. Dalam model timeboxing, unit dasar dari pembangunan adalah
kotak waktu, yang adalah jangka waktu yang tetap. Karena durasi adalah
tetap, faktor kunci dalam memilih persyaratan atau fitur yang akan
dibangun di kotak waktu yang bisa masuk ke dalam waktu box. Hal ini
berbeda dengan pendekatan berulang biasa di mana fungsi dipilih dan
kemudian waktu untuk memberikan ditentukan. Perubahan timeboxing
perspektif pembangunan dan membuat jadwal non dinegosiasikan dan
komitmen prioritas tinggi. Timeboxing merupakan salah satu unsur dari
RAD (Rapid Application Development)
f.
Extreme programming (XP) adalah sebuah pendekatan atau model
pengembangan perangkat lunak yang mencoba menyederhanakan
berbagai tahapan dalam proses pengembangan tersebut sehingga
menjadi lebih adaptif dan fleksibel. XP bukan hanya berfokus pada coding
tetapi meliputi seluruh area pengembangan perangkat lunak. XP
mengambil pendekatan ekstrim dalam iterative development. XP
dimunculkan untuk menangani perubahan-perubahan yang biasanya
sering terjadi pada saat pengembangan berlangsung bahkan pada saat
proses pengembangan sudah hampir berakhir. Selain itu XP juga
dimunculkan untuk mengatasi berbagai requirements yang tidak jelas dari
user. Menurut Pressman (2010), proses XP meliputi : planning, design,
coding, testing.
g. Agile processes adalah sekelompok metodologi pengembangan perangkat
lunak yang didasarkan pada prinsip-prinsip yang sama atau
pengembangan sistem jangka pendek yang memerlukan adaptasi cepat
dari pengembang terhadap perubahan dalam bentuk apapun. Agile
develompent methods merupakan salah satu dari metodologi
pengembangan perangkat lunak yang digunakan dalam pengembangan
perangkat lunak. Agile memiliki pengertian bersifat cepat, ringan, bebas
bergerak, dan waspada. Sehingga saat membuat perangkat lunak dengan
menggunakan agile development methods diperlukan inovasi dan
responsibiliti yang baik antara tim pengembang dan klien agar kualitas
dari perangkat lunak yang dihasilkan bagus dan kelincahan dari tim
seimbang. Agile method juga dapat diartikan sekelompok metodologi
pengembangan software yang didasarkan pada prinsip-prinsip yang sama
atau pengembangan sistem jangka pendek yang memerlikan adaptasi
cepat dari pengembang terhadap perubahan dalam bentuk apapun.
Dalam agile software development interaksi dan personel lebih penting
daripada proses dan alat, software yang berfungsi lebih penting daripada
dokumentasi yang lengkap, kolaborasi dengan klien lebih penting daripada
negosiasi kontrak, dan sikap tanggap terhadap perubahan lebih penting
daripada mengikuti rencana.
Agil processes terbagi menjadi beberapa bentuk, diantaranya adalah :
1) Adaptive software development (ASD)
2) Dynamic systems development method (DSDM)
3) Scrum
4) Crystal
5) Feature driven development (FDD)
6) Agile modeling (AM)
7) Lean software development (LSD)
8) Agile unified process (AUP)