STMIK AMIKOM YOGYAKARTA
METODOLOGI PENGEMBANGAN PERANGKAT LUNAK Donni Prabowo @donnipra | donnipra.com
WATERFALL
WATERFALL : Summary • “Classic Life Cycle” atau model Waterfall merupakan model yang paling banyak dipakai didalam Software Engineering (SE). • Model ini melakukan pendekatan secara sistematis dan urut mulai dari
level kebutuhan sistem lalu menuju ke tahap analisis, desain, coding, testing / verification, dan maintenance. • Disebut dengan waterfall karena tahap demi tahap yang dilalui harus
menunggu selesainya tahap sebelumnya dan berjalan berurutan.
www.amikom.ac.id
WATERFALL : Summary Roger S. Pressman memecah model ini menjadi 6 tahapan, yaitu :
www.amikom.ac.id
WATERFALL : Summary Kelebihan
• Proses menjadi teratur • Estimasi proses menjadi lebih baik • Jadwal menjadi lebih menentu • Progress untuk setiap tahap dapat dilihat secara pasti.
www.donni.web.id
WATERFALL : Summary Kekurangan
• Sifatnya kaku, sehingga susah melakukan perubahan di tengah proses • Membutuhkan daftar kebutuhan yang lengkap di awal, tapi jarang konsumen bisa memberikan kebutuhan secara lengkap diawal
www.donni.web.id
PROTOTYPE
PROTOTYPE : Summary • Prototyping adalah salah satu pendekatan dalam rekayasa perangkat lunak yang secara langsung mendemonstrasikan bagaimana sebuah perangkat lunak atau komponen-komponen perangkat lunak akan
bekerja dalam lingkungannya sebelum tahapan konstruksi aktual dilakukan (Howard, 1997).
www.amikom.ac.id
PROTOTYPE : Summary Skema dari prototype secara umum adalah sebagai berikut :
www.amikom.ac.id
PROTOTYPE : Summary Kelebihan
• Adanya komunikasi yang baik antara pengembang dan pelanggan. • Pengembang dapat bekerja lebih baik dalam menentukan kebutuhan pelanggan. • Penerapan menjadi lebih mudah karena pemakai mengetahui apa yang diharapkannya. • User dapat berpartisipasi aktif dalam pengembangan sistem.
www.donni.web.id
PROTOTYPE : Summary Kekurangan • Proses analisis dan perancangan terlalu singkat. • 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. • Pengembang biasanya ingin cepat menyelesaikan proyek. Sehingga menggunakan algoritma dan bahasa pemrograman yang sederhana untuk membuat prototyping lebih cepat selesai tanpa memikirkan lebih lanjut bahwa program tersebut hanya merupakan cetak biru sistem.
www.donni.web.id
RAD (Rapid Application Development)
RAD : Summary • Rapid application development (RAD) atau rapid prototyping adalah model proses pembangunan perangkat lunak yang tergolong dalam teknik incremental (bertingkat). RAD menekankan pada siklus
pembangunan pendek, singkat, dan cepat. • Sistem yang tidak bisa dimodularisasi tidak cocok untuk model RAD
www.amikom.ac.id
RAD : Summary Skema dari RAD secara umum adalah sebagai berikut :
www.amikom.ac.id
RAD : Summary Kelebihan
• Memungkinkan membeli suatu modul tertentu untuk lebih menghemat biaya daripada mengembangkan sendiri. • Bisa mengurangi penulisan kode yang kompleks karena menggunakan wizard. • Mempercepat waktu pengembangan sistem secara keseluruhan karena cenderung mengabaikan kualitas. • Modul yang telah dibuat pada project sebelumnya ada kemungkinan masih bisa digunakan untuk project selanjutnya. www.donni.web.id
RAD : Summary Kekurangan • Model RAD membutuhkan sumber daya yang besar, terutama untuk proyek dengan skala besar.
• Proyek bisa gagal jika waktu yang disepakati tidak terpenuhi . • Sistem yang tidak bisa dimodularisasi tidak cocok untuk model RAD • Resiko teknis yang tinggi juga kurang cocok untuk model RAD
www.donni.web.id
AGILE DEVELOPMENT
AGILE DEVELOPMENT : Summary • Agile merupakan adalah jenis pegembangan sistem jangka pendek yang memerlukan adaptasi cepat dan pengembang terhadap perubahan dalam bentuk apapun.
• Dalam Agile Software Development interaksi dan personel lebih penting dari pada proses dan alat, software yang berfungsi lebih penting daripada dokumentasi yang lengkap, kolaborasi dengan klien lebih penting dari pada negosiasi kontrak, dan sikap tanggap terhadap perubahan lebih penting daripada mengikuti rencana.
www.amikom.ac.id
AGILE DEVELOPMENT : Summary Skema dari Agile secara umum adalah sebagai berikut :
www.amikom.ac.id
AGILE DEVELOPMENT : Summary Kelebihan
• Meningkatkan kepuasan kepada klien • Pembangunan system dibuat lebih cepat • Mengurangi resiko kegagalan implementasi software dari segi non-teknis • Jika pada saat pembangunan system terjadi kegagalan,kerugian dari segi materi relative kecil.
www.donni.web.id
AGILE DEVELOPMENT : Summary Kekurangan • Developer harus selalu siap dengan perubahan karena perubahan akan selalu diterima. • Agile tidak akan berjalan dengan baik jika komitmen tim kurang. • Tidak cocok dalam skala tim yang besar (>20 orang).
• Perkiraan waktu release dan harga perangkat lunak sulit ditentukan.
www.donni.web.id
Extreme Programming (XP)
Extreme Programming : Summary • Extreme Programming (berikutnya akan disingkat sebagai 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.
• Dipublikasikan oleh Kenn Beck pada tahun 1999 dengan menggunakan pendekatan OOP (Object Oriented Programming), terdiri dari aktivitas perencanaan, aktivitas desain, aktivitas pengkodean dan aktivitas pengujian. www.amikom.ac.id
Extreme Programming : Summary Skema dari Extreme Programming secara umum adalah sebagai berikut :
www.amikom.ac.id
Extreme Programming : Summary Cocok utk : • Keperluan berubah dengan cepat • Resiko tinggi dan ada proyek dengan tantangan yang besar • Tim programmer sedikit, yaitu 2-10 orang • Mampu mengotomatiskan tes
• Ada peran serta pelanggan secara langsung
www.donni.web.id
Extreme Programming : Summary Kekurangan • Cerita-cerita yang menunjukkan requirements kemungkinan besar tidak lengkap sehingga Developer harus selalu siap
dengan perubahan karena perubahan akan selalu diterima. • Tidak bisa membuat kode yang detail di awal (prinsip simplicity dan juga anjuran untuk melakukan apa yang diperlukan hari itu juga).
www.donni.web.id
ASD
ASD : Summary • Di usulkan oleh Jim Highsmith sebagai tehnik untuk membangun software dan sistem yang komplek, filosofi dari ASD adalah kolaborasi manusia dan tim yang mengatur diri sendiri, aktivitas pada proses ASD
adalah speculation, collaboration & learning.
www.amikom.ac.id
ASD : Summary Skema dari ASD secara umum adalah sebagai berikut :
www.amikom.ac.id
SCRUM
SCRUM : Summary • Pertama kali diperkenalkan oleh Jeff Sutherland tahun awal tahun 1990an, dan dikembangkan selanjutnya dilakukan oleh Schwaber dan Beedle. Pada dasarnya Scrum merupakan salah satu komponen dari
metodologi pengembangan Agile mengenai pertemuan harian untuk membahas kemajuan sedangkan XP adalah menekankan metodologi yang berbeda yaitu ujian, pemrograman dan pembangunan.
www.amikom.ac.id
SCRUM : Summary Skema dari SCRUM secara umum adalah sebagai berikut :
www.amikom.ac.id
SCRUM : Summary Kelebihan • Keperluan berubah dengan cepat • Tim berukuran kecil sehingga melancarkan komunikasi, mengurangi
biaya dan memberdayakan satu sama lain • Pekerjaan terbagi-bagi sehingga dapat diselesaikan dengan cepat • Dokumentasi dan pengujian terus menerus dilakukan setelah software
dibangun • Proses Scrum mampu menyatakan bahwa produk selesai kapanpun diperlukan www.donni.web.id
SCRUM : Summary Kekurangan • Developer harus selalu siap dengan perubahan karena perubahan akan selalu diterima.
www.donni.web.id
What the next? • Pertemuan selanjutnya kita akan diskusikan mengenai “Project Planning”
www.amikom.ac.id
“Dream + Parameter = Vision. Dream + Effort = Mission. Dream + Do nothing = Illusion.”
See You …