• Tidak ada hasil yang ditemukan

Unified Process Model & Agile Development Process Model

N/A
N/A
Protected

Academic year: 2021

Membagikan "Unified Process Model & Agile Development Process Model"

Copied!
54
0
0

Teks penuh

(1)

& Agile Development Process Model

Mata Kuliah Testing & Implementasi Sistem

Program Studi Sistem Informasi 2013/2014 STMIK Dumai -- Pertemuan 3 --

(2)

Acknowledgement

Main materials:

• [Pressman, 2010] Pressman, Roger S. Software Engineering: A Pra titioner s Approa h. 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

(3)

Unified Process

Ivar Jacobson, Grady Booch, James Rumbaugh

bertemu 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 dan

incremental

(4)

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

(5)
(6)

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,

(7)
(8)

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

(9)

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 ase line , yaitu copy dari suatu project. Kita dapat

membandingkan antara baseline dengan kondisi yang sekarang untuk mengevaluasi progress, dan melakukan update jadwal bila perlu.

(10)

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 hasil software dengan use-case

(11)

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

(12)

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)

(13)
(14)
(15)

Unified Process Model - SELESAI

(16)
(17)

Apa itu

Agility ?

Kata Agile berarti bersifat cepat, ringan, bebas

bergerak, waspada.

Efektif (cepat dan adaptif) dalam merespon

perubahan

Komunikasi yang efektif ke semua stakeholders

Menggambarkan kustomer masuk ke dalam tim

(18)

The Manifesto for

Agile 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

(19)

Agile Development paling bagus???

Sama seperti model proses yang lain, Agile Software

Development memiliki kelebihan dan tidak cocok

untuk semua jenis proyek, produk, orang dan situasi.

Agile Software Development memungkinkan model

proses yang toleransi terhadap perubahan

kebutuhan sehingga perubahan dapat cepat

ditanggapi. Namun di sisi lain menyebabkan

produktifitas menurun.

(20)

Faktor Humanisme

Faktor manusia yang harus ada pada tim agile juga harus ada

pada tim itu sendiri adalah:

1. Kompetensi: ketrampilan dalam membangun dan pengetahuan tentang proses membangun

2. Fokus: memiliki fokus yang sama sekalipun peran dalam tim berbeda

3. 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 hasil pekerjaan masing-masing.

(21)
(22)

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.

(23)

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

(24)

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.

(25)

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.

(26)

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)

(27)

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 diterimanya hasil increment.

(28)

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 untuk manangkap elemen-elemen dari class.

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

▫ Lakukan refa tori g , yaitu mengembangkan disain dari program yang telah ditulis (program diperbaiki)

(29)

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 A epta e tests disiapkan dan dilakukan oleh kustomer.

(30)
(31)

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

(32)

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 software yang secara berkala diserahkan).

Collaboration

Bekerja sama dalam tim: saling membantu dan

mengkomunikasikan masalah untuk hasil penyelesaian yang efektif.

(33)

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 melakukan review.

Postmortems: Tim ASD melakukan instrospeksi pada kinerja dan proses.

(34)
(35)

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 lingkungan yang terkondisikan.

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

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

(36)

Aktivitas DSDM

Feasibility study: menyiapkan requirement dan

batasan, kemudian menguji apakah sesuai bila

menggunakan proses DSDM

Business Study: susun kebutuhan fungsional dan

informasi, tentukan arsitektur aplikasi dan

identifikasi kebutuhan pemeliharaan untuk aplikasi.

Aktivitas DSDM (continued...)

(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.

(38)
(39)
(40)

4. Scrum

Pertama kali diperkenalkan oleh Jeff Sutherland

pada tahun awal tahun 1990an

Pengembangan Scrum selanjutnya dilakukan oleh

Schwaber dan Beedle

(41)

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 perangkat lunak.

• 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.

(42)

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,

(43)
(44)

5. Crystal

Diperkenalkan oleh Cockburn and Highsmith.

Disebut keluarga dari proses model (family of process

models) yang membolehkan perubahan/pergerakan

berdasarkan karakteristik permasalahan.

Menekankan pada komunikasi secara langsung

(Face-to-face).

• Menggunakan ruang kerja refleksi ( reflection

orkshops ) untuk melihat kebiasaan kerja dari tim

(45)

6. Feature Driven Development - 1

Diperkenalkan oleh Peter Coad et al

Filosofi FDD:

▫ Menekankan komunikasi diantara anggota tim FDD

▫ Manajemen masalah dan kompleksitas proyek diatur dengan melihat fitur.

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

(46)

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 dilakukan

berdasarkan fitur (plan by feature)

(47)
(48)

7. Agile Modeling (AM)

Banyak situasi pembangunan perangkat lunak harus membangun sistem bisnis yang besar dan penting. Jangkauan dan kompleksitas sistem harus dimodelkan sehingga dapat dimengerti, masalah dapat dibagi menjadi lebih kecil dan kualitas dapat dijaga pada tiap langkah 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.

(49)

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.

(50)

Agile Unified Process (AUP) - 1

Mengadopsi filosofi

serial i the large a d

iterati e i the s all dalam membangun sistem.

Mengadopsi fase aktivitas UP - inception,

elaboration, construction, and transition.

AUP menggunakan alur kerja yang linear, namun di

tiap aktivitas dilakukan iterasi sehingga secepat

mungkin dapat menghasilkan produk perangkat

lunak yang lebih baik.

(51)

Agile Unified Process (AUP) - 2

Iterasi AUP dari Scott Ambler:

Modeling

▫ Representasi UML dari fungsi dan masalah yang sudah

didefinisikan.

Implementation

Model ditransalasikan ke dalam bentuk source code.

Testing

▫ Seperti XP, tim mendisain dan melakukan testing untuk

memastikan apakah source code yang dibuat sesuai dengan kebutuhan.

Deployment

Fokus pada penerimaan software increment dan evaluasi dari

kustomer.

Configuration and project management

Environment management

▫ Menyelaraskan infrastruktur termasuk peralatan dan teknologi

(52)

Agile Software Development - SELESAI

(53)

Di Pertemuan ke-

4…

Requirement Modeling Scenario

(54)

Referensi

Dokumen terkait

Latar belakang diatas kemudian menjadi sebuah permasalahan yang akan diteliti dalam penulisan skripsi dengan judul “Analisis Pola Dialog dalam Scene Parallel

Hal tersebut tidak sejalan dengan teori bahwa makin meningkat status imunisasi akan menurunkan kejadian difteri karena imunisasi merupakan salah satu cara untuk

Jadi apabila suatu perusahaan menggunakan jasa KAP dengan reputasi yang baik akan membuat perusahaan tersebut lebih tepat waktu dalam menyampaikan laporan

Faktor-Faktor Yang Mempengaruhi Turnover Intention Dengan Variabel Intervening Kepuasan Kerja Dan Komitmen

In contrast to Rajca’s polyradicals, which lack chemical stability at room temperature, the pendant-type polyradical has the advantages that a chemically stable radical species such

Hasil penelitian menunjukkan bahwa: (1) dalam peningkatan mutu hafalan Al-Qur ’ an, bu nyai memberikan keteladanan, pengawasan, dan pemberian motivasi, (2) hambatan yang

Kosmetik menurut Peemenkes 01 no (*23men.Kes3Per3435 adalah bahan Kosmetik menurut Peemenkes 01 no (*23men.Kes3Per3435 adalah bahan atau campuran bahan untuk digosokkan,

Sebesar 0,000 di bawah 0,05, Dari hasil analisis regresi berganda ternyata variabel budaya organisasi memiliki nilai koefisien regresi sebesar 0,429 yang berarti mempunyai