Unified Process Model & Agile Development Process Model€¦ · Unified Process •Ivar Jacobson,...

Post on 01-Dec-2020

22 views 0 download

Transcript of Unified Process Model & Agile Development Process Model€¦ · Unified Process •Ivar Jacobson,...

Unified Process Model& Agile Development Process Model

Mata Kuliah Testing & Implementasi SistemProgram Studi Sistem Informasi 2014/2015

STMIK Dumai-- Pertemuan 3 --

This presentation is revised by Hazlinda A., STMIK, 2014

Acknowledgement

Main materials:• [Pressman, 2010] Pressman, Roger S. Software

Engineering: A Practitioner’s Approach. New York:McGraw-Hill Higher Education, 2010. Print

Supplements:• [Yud, 2012] Yudhoatmojo, Satrio Baskoro. “Software &

Software Engineering” IKI30202 - Rekayasa Perangkat Lunak Term 1 - 2011/2012. Faculty of Computer Science University of Indonesia. 2012. Print

• [Prob] Proboyekti , Umi. “Agile Software Development” Bahan Ajar Rekayasa Perangkat Lunak. Print

2

Unified Process

• Ivar Jacobson, Grady Booch, James Rumbaughbertemu di perusahaan Rational Software▫ Mereka mengeluarkan metode-metode yang

berhubungan dengan pengembangan software, salah satunya adalah Rational Unified Process (RUP)

• Menyarankan model alur proses yang “iterative danincremental”

3

Unified Process adalah …

• Suatu metode rekayasa perangkat lunak yang dikembangkan dengan mengumpulkan berbagai best practises yang terdapat dalam industri pengembangan perangkat lunak.

• Ciri utama metode ini adalah menekankan pada use-case dan pendekatan iteratif untuk siklus pengembangan perangkat lunak.

• Menggunakan konsep object oriented, dengan aktifitas berfokus pada pengembangan model yang menggunakan Unified Model Language (UML).

4

Unified Process

5

Fase Unified Process (UP)

Digambarkan dalam Grafik 2 Dimensi…

Dimensi pertama (horizontal)

• Mewakili aspek-aspek dinamis dari pengembangan perangkat

lunak. Setiap fase dapat terdiri dari satu atau beberapa iterasi.

Yang termasuk dimensi ini adalah: Inception, Elaboration,

Construction, Transition, dan Production.

Dimensi kedua (vertikal)

• Mewakili aspek-aspek statis dari proses pengembangan

perangkat lunak. Dimensi ini terdiri atas Requirement,

Analysis, Design, Implementation, Test, Support.

6

Fase Unified Process (UP)

7

UP – Fase Inception

• Melakukan komunikasi (Communication)▫ Berkolaborasi dengan stakeholders▫ Mengidentifikasikan kebutuhan bisnis, yaitu: Menentukan batasan-batasan dalam proyek. Anggaran dan biaya

proyek Menentukan tipe model yang akan dipakai dalam proses

pengembangan software itu sendiri Mendeskripsikan persiapan untuk use case yang akan dibuat

• Perencanaan (Planning)▫ Merencanakan model proyek yang iterative dan incremental Mengidentifikasi sumber Resiko-resiko yang mungkin terjadi Membuat jadwal proyek

8

UP – Fase Elaboration• Planning

▫ Menganalisa problem, memastikan kembali skup proyek.

▫ Mengembangkan perencanaan project.

▫ Menghilangkan kemungkinan munculnya resiko dalam proses perkembangan project itu sendiri, dikarenakan jika sampai terjadi perubahan terhadap project dalam fase berikutnya, akan menyulitkan pengembang project tersebut untuk kembali meninjau ulang.

• Modeling▫ Pengimplementasian use case, sebagai perwujudan dari arsitektur

system software.

▫ Menetapkan ‘base line’, yaitu copy dari suatu project. Kita dapat membandingkan antara baseline dengan kondisi yang sekarang untuk mengevaluasi progress, dan melakukan update jadwal bila perlu.

9

UP – Fase Construction

• Membuat code (Architectural model --> operational use-cases)▫ Pendefinisian kebutuhan dan disain model harus sudah selesai.

Versi final dari software increment

▫ Semua fungsi dan fitur diimplementasikan ke dalam source code

• Testing▫ Unit test didisain dan dijalankan

▫ Termasuk tes integrasi (Software Integration Test)

▫ Use-case digunakan saat tes untuk melihat kesesuaian hasilsoftware dengan use-case

10

UP – Fase Transition

• Testing

▫ Beta testing, yaitu testing yang dilakukan pihak end

user setelah software di-install di perusahaan.

• Deployment

▫ Membuat dokumentasi pendukung (contoh: user

manual, panduan instalasi, dll)

• End of transition phase

▫ Yaitu pada saat software sudah siap untuk di-release

11

UP – Fase Produksi

• Deployment▫ Memonitori perangkat lunak yang sudah di-install di

perusahaan

▫ Dokumentasi pendukung sudah selesai (versi final)

▫ Kerusakan atau perubahan kebutuhan fungsi (jika ada) software akan dievaluasi

12

Unified Process Phases – Lihat kembali

13

Unified Process’ Work Product

14

Unified Process Model - SELESAI

Pertanyaan???

15

Agile Development

16

Apa itu “Agility”?

• Kata Agile berarti bersifat cepat, ringan, bebas bergerak, waspada.

• Efektif (cepat dan adaptif) dalam meresponperubahan

• Komunikasi yang efektif ke semua stakeholders

• Menggambarkan kustomer masuk ke dalam tim

17

The Manifesto forAgile Software Development

Dari Kent Beck, dkk:

• Agile Software Development adalah cara membangun software

dengan melakukannya dan membantu orang lain membangunnya

sekaligus, sehingga menghasilkan nilai-nilai sbb:

▫ Interaksi dan personel lebih penting dari pada proses dan alat

▫ Software yang berfungsi lebih penting daripada dokumentasi yang

lengkap

▫ Kolaborasi dengan kustomer lebih penting dari pada negosiasi kontrak

▫ Sikap tanggap terhadap perubahan lebih penting daripada mengikuti

rencana

18

Agile Development paling bagus???

• Sama seperti model proses yang lain, Agile SoftwareDevelopment memiliki kelebihan dan tidak cocok untuk semua jenis proyek, produk, orang dan situasi.

• Agile Software Development memungkinkan model proses yang toleransi terhadap perubahankebutuhan sehingga perubahan dapat cepat ditanggapi. Namun di sisi lain menyebabkan produktifitas menurun.

19

Faktor Humanisme

• Faktor manusia yang harus ada pada tim agile juga harus adapada tim itu sendiri adalah:1. Kompetensi: ketrampilan dalam membangun dan

pengetahuan tentang proses membangun2. Fokus: memiliki fokus yang sama sekalipun peran dalam tim

berbeda3. Kolaborasi: kerja sama dengan kustomer, anggota tim dan

manajer.4. Kemampuan ambil keputusan: tim pembangun memiliki

otonomi dalam mengambil keputusan terkait teknis dan proyek

5. Kemampuan fuzzy problem-solving: mampu menyelesaikan masalah yang penting untuk dipecahkan segera atau nanti.

6. Saling percaya dan hormat: kekompakan tim yang didukung oleh rasa percaya dan saling menghargai satu sama lain.

7. Manajemen diri: tim mengatur diri untuk menyelesaikan proyek, tim menjadwal dirinya untuk menyerahkan hasilpekerjaan masing-masing.

20

Agility and the Cost of Change

21

12 Prinsip Agility

1. Kepuasan kustomer adalah prioritas utama dengan menghasilkan produk lebih awal dan terus menerus (konsep increment).

2. Menerima perubahan kebutuhan, sekalipun diakhir pengembangan.

3. Penyerahan hasil produk/software dalam hitungan waktu dua minggu sampai dua bulan.

4. Membangun kerja sama tiap hari selama proyek berlangsung.

22

12 Prinsip Agility

5. Membangun proyek di lingkungan orang-orang yang bermotivasi tinggi dan saling mendukung serta dapat dipercaya untuk menyelesaikan proyek.

6. Komunikasi dengan “face-to-face” adalah komunikasi yang efektif dan efisien.

7. Software yang berfungsi dengan sesuai adalah ukuran utama dari kemajuan proyek.

8. Dukungan yang stabil dari sponsor, pembangun, dan pengguna diperlukan untuk menjaga perkembangan yang berkesinambungan.

23

12 Prinsip Agility

9. Perhatian kepada kehebatan teknis dan disain yang bagus meningkatkan sifat agile.

10. Menggunakan prinsip kesederhanaan (KIS).

11. Arsitek. Kebutuhan dan disain yang bagus muncul dari tim yang mengatur dirinya sendiri.

12. Tim melakukan evaluasi secara periodik untuk lebih efektif kedepannya.

24

3 Asumsi Tentang Proyek Software

• Dengan prinsip-prinsip tersebut Agile Process Model berusaha untuk menyiasati 3 asumsi penting tentang proyek perangkat lunak pada umumnya:

1. Kebutuhan software sulit diprediksi dari awal dan selalu akan berubah. Selain itu, prioritas kustomer juga sering berubah seiring berjalannya proyek.

2. Disain dan pembangunan sering tumpang tindih. Sulit diperkirakan seberapa jauh disain yang diperlukan sebelum pembangunan.

3. Analisis, disain, konstruksi dan testing tidak dapat diperkirakan seperti yang diinginkan.

25

Agile Development Process Models

Antara lain:

1. XP (Extreme Programming)

2. ASD (Adaptive Software Development)

3. DSDM (Dynamic System Development Method)

4. Scrum

5. Crystal

6. FDD (Feature Driven Development)

7. AM (Agile Modeling)

26

1. XP (Extreme Programming)

• Dipublikasikan pertama kali oleh Kent Beck tahun 1999

• Menggunakan pendekatan berorientasi objek

• XP Planning▫ Dimulai dengan pengumpulan “user stories” dari kustomer

yang kustomer tetapkan prioritasnya.

▫ Setiap story ditetapkan harga dan lama pembangunannya.

▫ Jika terlalu besar, story dapat dipecah menjadi beberapa story yang lebih kecil (konsep increment).

▫ Periksa dan pertimbangkan resiko serta jadwal diterimanyahasil increment.

27

1. XP (Extreme Programming)

• XP Design▫ Berprinsip sederhana (KIS Principle)

▫ Memanfaatkan kartu CRC (Class-Responsibility-Collaborator) untuk identifikasi dan mengatur class-class di konsep OO. Kartu CRC berfungsi untukmanangkap elemen-elemen dari class.

▫ Jika temui kesulitan, maka dibangun prototype (langkah ini disebut spike solution)

▫ Lakukan “refactoring”, yaitu mengembangkan disain dari program yang telah ditulis (program diperbaiki)

28

1. XP (Extreme Programming)

• XP Coding▫ Siapkan unit test sebelum pengkodean dipakai sebagai

fokus pemrogram untuk membuat program.▫ Menggunakan konsep “Pair programming”, untuk real

time problem solving dan real time quality assurance.

• XP Testing▫ Testing dilakukan dengan menggunakan unit test yang

dipersiapkan sebelum pengkodean.▫ Dokumen untuk “Acceptance tests” disiapkan dan

dilakukan oleh kustomer.

29

1. XP (Extreme Programming)

30

2. ASD (Adaptive Software Development)

• Diajukan oleh Jim Highsmith sebagai teknik untuk membangun software dan sistem yang kompleks.

• Filosofi yang mendasari adalah kolaborasi manusia dan tim yang mengatur diri sendiri (self organization).

• Terdiri dari 3 Aktifitas: ▫ Speculation▫ Collaboration▫ Learning

31

2. ASD (Adaptive Software Development)

• Speculation▫ “Adaptive cycle planning” yaitu menggunakan

informasi awal sebagai misi dari kustomer, batasan proyek dan kebutuhan dasar untuk definisikan rangkaian software increment-nya (produk softwareyang secara berkala diserahkan).

• Collaboration▫ Bekerja sama dalam tim: saling membantu dan

mengkomunikasikan masalah untuk hasil penyelesaian yang efektif.

32

2. ASD (Adaptive Software Development)

• Learning

▫ Menekankan pada proses pembelajaran. Tim pembangun sering merasa sudah tahu semua hal tentang proyek, padahal tidak selamanya begitu.

• Karena itu proses ini membuat tim belajar lebih tentang proyek melalui 3 cara:

▫ Focus group: kustomer dan pengguna memberi masukan terhadap perangkat lunak.

▫ Formal Technique Reviews: Semua anggota tim ASD melakukanreview.

▫ Postmortems: Tim ASD melakukan instrospeksi pada kinerja dan proses.

33

2. ASD (Adaptive Software Development)

34

3. DSDM (Dynamic System Development Method)

• Diperkenalkan oleh the DSDM Consortium (www.dsdm.org)

• Menyajikan kerangka kerja (framework) untuk membangun dan memelihara sistem dalam waktu yang terbatas melalui penggunaan prototyping yang incremental dalam lingkunganyang terkondisikan.

• Membangun perangkat lunak dengan cepat: 80% dari proyekdiserahkan dalam 20% dari waktu total untuk menyerahkan proyek secara utuh.

• DSDM dapat dikombinasikan dengan XP (proses modelnyamengikuti DSDM, dan prakteknya sejalan dengan XP).

35

Aktivitas DSDM

• Feasibility study: menyiapkan requirement dan batasan, kemudian menguji apakah sesuai bilamenggunakan proses DSDM

• Business Study: susun kebutuhan fungsional dan informasi, tentukan arsitektur aplikasi dan identifikasi kebutuhan pemeliharaan untuk aplikasi.

• Aktivitas DSDM (continued...)

36

37

Aktivitas DSDM

• Functional model iteration: hasilkan prototipe increment yang memperlihatkan fungsi software ke kustomer dan mengkonfirmasikannya. Ada proses iterasi disini.

• Design and Build Iteration: cek ulang prototipe yang dibangun untuk memastikan bahwa prototipe dibangun dengan cara yang memungkinkan fungsi tersebut benar-benar bekerja pada software utuh nantinya.

• Implementation: menempatkan prototipe software pada lingkungan sebenarnya sekalipun fungsinya belum lengkap, atau masih ada perubahan.

Aktivitas DSDM38

4. Scrum

39

4. Scrum

• Pertama kali diperkenalkan oleh Jeff Sutherlandpada tahun awal tahun 1990an

• Pengembangan Scrum selanjutnya dilakukan oleh Schwaber dan Beedle

40

Prinsip Scrum

• Ukuran tim yang kecil melancarkan komunikasi, mengurangi biaya, dan memberdayakan satu sama lain.

• Proses dapat beradaptasi terhadap perubahan dan bisnis/fungsi.

• Proses menghasilkan beberapa increment perangkatlunak.

• Pembangunan dan orang yang membangun dibagi dalam tim yang kecil.

• Dokumentasi dan pengujian terus menerus dilakukan setelah software dibangun.

• Proses scrum mampu menyatakan bahwa produk selesai kapanpun diperlukan.

41

Aktivitas Scrum

• Backlog: adalah daftar kebutuhan yang jadi prioritas kustomer. Daftar dapat bertambah.

• Sprints: unit pekerjaan yang diperlukan untuk memenuhi kebutuhan yang ditetapkan pada proses backlog sesuai dengan waktu yang ditetapkan dalam time-box (biasanya 30 hari). Selama proses ini berlangsung backlog tidak ada penambahan.

• Scrum Meeting: pertemuan 15 menit per-hari untuk mengevaluasi apa yang dikerjakan, hambatan yang ada, dan target penyelesaian untuk bahan meeting selanjutnya.

• Demo: penyerahan increment perangkat lunak ke kustomer, didemonstrasikan dan dievaluasi oleh kustomer.

42

4. Scrum

43

5. Crystal

• Diperkenalkan oleh Cockburn and Highsmith.

• Disebut keluarga dari proses model (family of process models) yang membolehkan perubahan/pergerakanberdasarkan karakteristik permasalahan.

• Menekankan pada komunikasi secara langsung (Face-to-face).

• Menggunakan ruang kerja refleksi (“reflection workshops”) untuk melihat kebiasaan kerja dari timsebagai bentuk evaluasi terhadap kerja tim.

44

6. Feature Driven Development - 1

• Diperkenalkan oleh Peter Coad et al

• Filosofi FDD:▫ Menekankan komunikasi diantara anggota tim FDD

▫ Manajemen masalah dan kompleksitas proyek diaturdengan melihat fitur.

▫ Komunikasi teknis yang detil dilakukan secara verbal, graphical, dan didokumentasikan.

45

6. Feature Driven Development - 2

• Menekankan pada pendefinisian fitur-fitur▫ Tiap fitur merupakan value bagi kustomer yang dapat

diimplementasikan dalam 2 minggu atau kurang.

• Menggunakan template fitur▫ <action> the <result> <by | for | of | to> a(n) <object>▫ Contoh: add the product to a shopping chart

• Daftar fitur dibuat, dan perencenaan akan dilakukanberdasarkan fitur (plan by feature)

• Proses disain dan konstruksi digabung.

46

FDD’s Collaborating Framework

47

7. Agile Modeling (AM)

“Banyak situasi pembangunan perangkat lunak harusmembangun sistem bisnis yang besar dan penting.Jangkauan dan kompleksitas sistem harus dimodelkansehingga dapat dimengerti, masalah dapat dibagimenjadi lebih kecil dan kualitas dapat dijaga pada tiaplangkah pembangunan perangkat lunak”

• Diperkernalkan oleh Scott Ambler

• AM adalah suatu metodologi yang praktis untuk dokumentasi dan pemodelan sistem perangkat lunak.

• AM adalah kumpulan nilai-nilai, prinsip dan praktek-praktek untuk memodelkan software agar dapat diaplikasian pada software development proyek secara efektif.

48

Prinsip Agile Modeling• Membuat model: menentukan tujuan sebelum membuat model.

• Menggunakan multiple models: tiap model mewakili aspek yang berbeda dari model lain.

• Travel light: hanya menyimpan model-model yang bersifat jangka panjang.

• Konten/isi lebih penting dari pada penampilan: modeling menyajikan informasi kepada pengguna secara tepat.

• Memahami model dan alat yang yang digunakan untuk membuat software.

• Adaptasi secara lokal: Kebutuhan disesuaikan di dalam tim agile.

49

Agile Unified Process (AUP) - 1

• Mengadopsi filosofi “serial in the large” and “iterative in the small” dalam membangun sistem.

• Mengadopsi fase aktivitas UP - inception, elaboration, construction, and transition.

• AUP menggunakan alur kerja yang linear, namun ditiap aktivitas dilakukan iterasi sehingga secepatmungkin dapat menghasilkan produk perangkatlunak yang lebih baik.

50

Agile Unified Process (AUP) - 2Iterasi AUP dari Scott Ambler:• Modeling

▫ Representasi UML dari fungsi dan masalah yang sudahdidefinisikan.

• Implementation▫ Model ditransalasikan ke dalam bentuk source code.

• Testing▫ Seperti XP, tim mendisain dan melakukan testing untuk

memastikan apakah source code yang dibuat sesuai dengankebutuhan.

• Deployment▫ Fokus pada penerimaan software increment dan evaluasi dari

kustomer.• Configuration and project management• Environment management

▫ Menyelaraskan infrastruktur termasuk peralatan dan teknologipendukung lainnya yang tersedia untuk tim.

51

Agile Software Development - SELESAI

Pertanyaan???

52

Terima Kasih …

53