PROSES
(LANJUTAN)
REKAYASA
PERANGKAT
LUNAK
RPL-3
Ridwan Andi Kambau
SEBELUMNYA
Lingkup RPL
• Metodologi
“Structured Design”
• Waterfall Model
• Parallel Development
BERIKUT INI
RAD DEVELOPMENT
• Phased Development
• Prototyping Model
• Throw Away Prototyping
AGILE DEVELOPMENT
• Extreme Programming
• Scrum
MODEL PROSES (Review)
• Model proses disebut juga dengan aliran
kerja (workflow), yakni tata cara
bagaimana elemen-elemen proses
berhubungan satu dengan lainnya.
• Aliran kerja ini dapat juga disebut
dengan siklus hidup (life-cycle) sistem
yang dimulai dari sejak sistem diajukan
untuk dibangun hingga saat ia ditarik
dari peredaran.
• Model proses tidak ditentukan mana
yang lebih baik, melainkan karakteristik
dari berbagai faktor yang
mempengaruhi, seperti : waktu,
kebijakan perusahaan, harga, SDM, dan
lain-lain.
• Suatu model proses bisa bagus
diterapkan pada perangkat lunak
tertentu, tapi menjadi kurang bagus
pada perangkat lunak lainnya.
Metodologi “RAD Development”
• RAD merupakan singkatan dari Rapid Application Development. Metode
ini juga menggunakan pendekatan iteratif dan inkremental, tetapi
lebih menekankan pada tenggat waktu dan efisiensi biaya yang sesuai
dengan kebutuhan.
• Proses pengembangan dengan Metode RAD dianggap lebih singkat.
Pasalnya, semua pihak, baik pelanggan maupun pengembang, terus
terlibat secara aktif dalam setiap proses hingga hasil dapat tercapai. Di
samping itu, tahapan kerja pada metode ini juga lebih sedikit.
• Alur kerja hanya dibagi menjadi tiga tahap yang semuanya padat.
Identifikasi tujuan yang langsung diiringi dengan komunikasi dan
perancangan, di mana seluruh pihak terlibat aktif dalam setiap
perumusannya.
Phased Development
Phased Development
• Memecah sistem ke dalam beberapa
serangkaian versi (Analis, Design, dan
Implementasi)
• Output dari suatu versi merupakan input
untuk versi selanjutnya
• Tahapan analisis mengidentifikasi
keseluruhan konsep sistem kemudian
mengkategorikan kebutuhan ke dalam
beberapa versi.
• Kebutuhan mendasar dan penting
dimasukkan ke versi pertama dari sistem.
Prototyping Model
Prototyping Model
• Prototype dalam bahasa Indonesia diartikan dengan istilah
purwarupa. Istilah tersebut berarti model awal atau rancangan
sementara yang masih membutuhkan berbagai penyesuaian
sebelum dinyatakan telah memenuhi hasil yang diinginkan.
• Terdapat beberapa tahapan dalam pengembangan perangkat lunak
menggunakan metode prototype. Dimulai dengan pengumpulan
informasi/data (requirement) dari pelanggan ke tim pengembang.
Lalu, tim akan merencanakan dan mendesain sistem kemudian
mengerjakan purwarupa perangkat lunak.
• Hasilnya kemudian diserahkan kepada pelanggan untuk dievaluasi.
Jika terdapat permasalahan, tim akan merevisi sistem tersebut
hingga benar-benar sesuai dengan kebutuhan pelanggan (customer
satisfaction).
• Ketika revisi selesai dan telah diterima oleh pelanggan, berarti
perangkat lunak di coding (develop) dan telah siap diterjemahkan ke
dalam perangkat keras. Kemudian, dilanjutkan dengan proses uji coba
dan berbagai revisi sebelum mulai dapat digunakan.
• Terakhir dirawat (maintain) setelah digunakan
Kelebihan Prototyping
• Cepat dalam pengerjaan (dibanding
model waterfall)
• Mudah meyakinkan klien bahwa tim
proyek bekerja dengan baik (tidak ada
penundaan yang lama di mana
pengguna melihat kemajuan),
• Pengguna dapat berinteraksi dengan
prototipe untuk lebih memahami apa
yang bisa dan tidak bisa lakukan.
Kelemahan Prototyping
• Prototipe hanya bisa berhasil jika pemakai bersungguh-sungguh
dalam menyediakan waktu dan pikiran untuk mengerjakan
prototipe.
• Kemungkinan dokumentasi terabaikan karena pengembangan lebih
berkonsentrasi pada pengujian dan pembuatan prototipe
• Mengingat target waktu yang pendek, ada kemungkinan sistem
yang dibuat tidak lengkap dan bahkan sistem kurang teruji
• Jika terlalu banyak proses pengulangan dalam membuat prototipe,
ada kemungkinan pemakai menjadi jenuh dan memberikan reaksi
yang negatif
• Apabila tidak terkelola dengan baik, maka prototipe menjadi tidak
pernah berakhir. Hal ini disebabkan permintaan terhadap
perubahan terlalu mudah untuk dipenuhi.
Throw Away Prototyping
Throw Away Prototyping
• Model throw away prototyping adalah pendekatan
dalam rekayasa perangkat lunak yang memungkinkan
pengembangan cepat dari prototipe untuk
memvalidasi persyaratan dan mengeksplorasi
kelayakan. Prototipe kemudian dibuang atau “dibuang”
setelah proyek selesai.
• Perbedaan dengan model protyping; model ini hanya
mengambil spesifikasi dari evaluasi akhir sistem
prototype (kemudian sistem akhir didevelop terpisah),
dan tidak menggunakan sistem prototype-nya
(dibuang)
Kelebihan dan Kekurangan
Throw-away Prototyping
Kelebihannya
• Mirip dengan kelebihan model prototyping.
Kelemahannya
• Pengembang (programmer) kadang ditekan oleh Manajer untuk
menyerahkan prototipe Throw-away untuk di pakai, terutama jika
sudah mepet waktunya.
• Hal diatas tidak bijaksana karena :
– Bisa saja tidak mungkin menyesuaikan prototipe untuk memenuhi
persyaratan non-fungsional seperti persyaratan kinerja, keamanan,
keandalan dll.
– Prototipe pada akhirnya tidak didokumentasikan karena pengembangan
dilakukan dengan cepat.
– Perubahan yang dilakukan pada saat pengembangan prototipe mungkin
akan merusak struktur system.
– Standar kualitas organisasi biasanya dilonggarkan untuk pengembangan
prototipe
Metodologi “Agile Development”
• Agile Software Development adalah metodologi pengembangan
software yang didasarkan pada proses pengerjaan yang dilakukan
berulang dimana, aturan dan solusi yang disepakati dilakukan
dengan kolaborasi antar tiap tim secara terorganisir dan terstruktur.
• Agile development sendiri merupakan model pengembangan
perangkat lunak dalam jangka pendek. Kemudian, membutuhkan
adaptasi yang cepat dalam mengatasi setiap perubahan.
• Nilai terpenting dari Agile development ini adalah memungkinkan
sebuah tim dalam mengambil keputusan dengan cepat, kualitas dan
prediksi yang baik, serta memiliki potensi yang baik dalam
menangani setiap perubahan.
• Proses pengembangan Agile mengacu pada konsep dari Agile
Manifesto. Konsep tersebut dikembangkan oleh 14 tokoh terkenal
dalam industri software.
Agile
Manifesto
Agile Development