Anda di halaman 1dari 41

Rekayasa Perangkat Lunak Sem. Genap 2013/2014 nur.zahrati@polibatam.ac.

id

Waterfall

Model Incremental Model Prototyping Spiral Model Unified Process Agile Development Extreme Programming

Bangun versi pertama


Modifikasi sampai klien puas

Beroperasi

Berhenti digunakan

Tidak

ada langkah-langkah proses, tidak ada spesifikasi, dokumentasi, pengujian, dll. Tidak ada pemisahan urusan (separation of concern) tidak adanya kerjasama tim. Tidak mungkin menangani sistem yang kompleks.

Komunikasi
Inisiasi proyek Pengumpulan kebutuhan

Perencanaan
Estimasi, penjadwalan, pelacakan

Pemodelan
Analisis Perancangan

Konstruksi
Tulis kode Uji

Penempatan
Penyerahan, dukungan, umpan balik

Permasalahan: Proyek sebenarnya jarang yang mengikuti aliran kerja sekuensial Sulit merumuskan semua kebutuhan secara eksplisit Tidak ada pemeliharaan dan evolusi dalam proses pengembangan Pengguna harus sabar karena program yang bisa berjalan baru bisa didapat setelah tahap akhir proyek Kesalahan yang terjadi dapat berefek fatal pada proyek

Fitur

Increment#3

Increment#2

Increment#1

Waktu

Menghasilkan

tambahan fitur produk (increment) tertentu pada perangkat lunak di setiap rangkaian proses. Increment pertama biasanya berupa fitur produk utama, fitur lain ditambahkan pada proses penambahan selanjutnya. Dapat dilakukan pengalokasian sumber daya yang fleksibel

Komunikasi

Rencana Ringkas

Penempatan dan Umpan balik

Rancangan Ringkas

Pembuatan Prototype

Horizontal

prototype menguji layer tertentu (biasanya GUI) sistem Vertical prototype menguji fungsionalitas tertentu di seluruh layer Cocok untuk pembuatan perangkat lunak yang belum dapat mengidentifikasi rincian input, pengolahan, dan keluaran.

Pelanggan

menganggap program sudah jadi Pengembang biasanya memilih metode yang cepat (tapi bukan yang terbaik) untuk membuat prototype terkadang menjadi kebiasaan dalam membuat program yang sebenarnya

(1988)

Sistem

dikembangkan dalam serangkaian rilis yang berevolusi Ada pencapaian yang signifikan di setiap putaran spiral Proses tidak berakhir ketika produk diserahkan kepada pengguna Menggambarkan sifat iteratif pengembangan perangkat lunak

(1999) Software Increment Komunikasi

Insepsi

Perencanaan

Produksi Penempatan

Elaborasi Pemodelan

Transisi

Konstruksi

Konstruksi

Insepsi

Software Increment

Komunikasi

Perencanaan

Mencakup Produksi

Elaborasi + komunikasi dengan pengguna perencanaan Penempatan Menghasilkan sekumpulan use case Pada tahap ini, arsitektur baru berupa garis besar yang bersifat sementara Transisi Konstruksi

Pemodelan

Insepsi

& mengembangkan use case awal Produksi Menghasilkan arsitektur dan model perancangan awal Penempatan

Merinci

Software Increment

Komunikasi

Perencanaan

Elaborasi Pemodelan

Transisi

Konstruksi

Konstruksi

Insepsi

Komunikasi Perencanaan (atau mendapatkan) Increment komponen perangkat lunak sesuai dengan arsitektur Elaborasi Produksi Melengkapi model perancangan Penempatan Pemodelan Mencakup implementasi, uji unit, uji penerimaan

Software Membangun

Transisi

Konstruksi

Konstruksi

lunak diberikan kepada pengguna untuk pengujian beta Software Komunikasi Perencanaan Increment Umpan balik melaporkan cacat dan perubahan yang perlu Elaborasi Produksi Tim menulis informasi dukungan perangkat lunak
Penempatan

Perangkat

Insepsi

Pemodelan

Transisi

Konstruksi

Konstruksi

Insepsi

Software Increment

lunak ditempatkan (deploy ) Komunikasi Perencanaan Permasalahan dipantau


Elaborasi Penempatan Pemodelan

Perangkat

Produksi

Transisi

Konstruksi

Konstruksi

Insepsi

Software Increment

Komunikasi

Perencanaan

Umpan
Produksi Penempatan

balik menghasilkan iterasi baru untuk Pemodelan rilis selanjutnya


Elaborasi

Transisi

Konstruksi

Konstruksi

Insepsi

Software Increment

Komunikasi

Perencanaan

Produksi Penempatan

Elaborasi Pemodelan

Transisi

Konstruksi

Konstruksi

Mengacu

pada fitur terbaik model proses konvensional Menekankan arsitektur dan perancangan perangkat lunak Terintegrasi dengan teknik pemodelan UML

Proses Agile diibaratkan seperti speedboat, bisa mengubah haluan dengan sangat cepat

Jika, model proses tradisional diibaratkan seperti kapal perang, terlindungi dari segala hal yang mungkin terjadi

Manifesto

Agile Software Development

(2001):

Mengutamakan individu dan aktivitas, daripada proses dan kakas Mengutamakan software yang dapat bekerja, daripada dokumentasi yang komprehensif Mengutamakan kolaborasi dengan pelanggan, daripada negosiasi kontrak Mengutamakan merespon terhadap perubahan, daripada mengikuti rencana

Agile?
Agility

kemampuan untuk bereaksi terhadap perubahan situasi dengan cepat, tepat, dan efektif.

Memberi tahu perubahan seawal mungkin Melakukan tindakan segera Membuat rencana alternatif yang layak dan efektif dengan cepat Reorientasi pekerjaan dan sumber daya dengan cepat dan efektif

Untuk SW/proyek dengan tingkat kepentingan relatif rendah Developer senior Kebutuhan berubah sangat sering Jumlah developer sedikit Budaya yang berkembang dalam kekacauan (chaos)
Agile

Untuk SW/proyek dengan tingkat kepentingan tinggi Developer junior Perubahan kebutuhan tidak terlalu sering Jumlah developer banyak Budaya yang menuntut keteraturan

Berbasis Rencana

Berangkat dari 3 asumsi: Sulit untuk memprediksi di awal, mana kebutuhan yang akan tetap dan yang akan berubah Untuk banyak tipe SW, perancangan dan konstruksi dilakukan terpisah, satu setelah yang lain. Kedua aktivitas tersebut seharusnya dilakukan secara tandem, sehingga model rancangan dapat divalidasi sambil diciptakan. Analisis, perancangan, dan pengujian tidak dapat diprediksi (dari sisi perencanaan) semudah yang kita kira

Bagaimana

menangani ketidakpastian? buat proses yang mudah beradaptasi Memerlukan umpan balik dari pelanggan setiap waktu Strategi pengembangan incremental (bertambah dalam setiap tahapannya)

(1999)

Perencanaan

Perancangan

Pengujian

Coding

Software Increment

Perencanaan

Perancangan

Dalam

XP, perencanaan Pengujian dilakukan dengan cerita (user stories) Setiap cerita menggambarkan Software perilaku penting Increment sistem

Coding

Perencanaan

Perancangan

Rancangan

dibuat sambil jalan, dengan prinsip KISS (Keep It Simple) Coding Pengujian Tidak menggunakan notasi apapun, kecuali CRC Cards (sketsa objek) dan solusi spike (prototype)
Software Increment

Masing-masing cerita Perencanaan

menjadi unit pengujian yang juga berperan sebagai spesifikasi


Pengujian

Perancangan

Coding

Program

direfaktorisasi secara terus-menerus agar rancangan sesuai Software dengan cerita Increment

Untuk

menjamin review yang berkesinambungan, XP menyarankan Perencanaan pemrograman berpasanganPerancangan (pair programming)

Pengujian

Coding

Software Increment

Perencanaan

Pengujian

Pengujian unit: Mendeteksi Perancangan kesalahan Menemukan fungsionalitas yang kurang Coding Mengukur kemajuan proyek

Software Increment

Perencanaan

Perancangan

Prototype

Pengujian

yang dihasilkan, menghasilkan ceritaCoding cerita baru

Software Increment

Perencanaan

Perancangan

Pengujian

Coding

Software Increment

Cepat! Beberapa hasil (deliverables) per hari

Buat

tabel perbandingan model-model proses yang telah Anda pelajari. Jelaskan perbedaannya dari berbagai aspek. Sertakan pula bahasan mengenai kelebihan dan kekurangan masing-masing.

Anda mungkin juga menyukai