0% found this document useful (0 votes)
76 views

5 Extreme Programming

Extreme Programming (XP) is an agile software development methodology that focuses on iterative development, frequent integration, testing, simplicity, communication, and feedback. Key practices of XP include pair programming, test-driven development, frequent refactoring, and planning in two-week iterations where requirements are captured as user stories. The customer is involved full-time to prioritize stories for each iteration and ensure the system meets needs.

Uploaded by

fannybrawijaya
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
76 views

5 Extreme Programming

Extreme Programming (XP) is an agile software development methodology that focuses on iterative development, frequent integration, testing, simplicity, communication, and feedback. Key practices of XP include pair programming, test-driven development, frequent refactoring, and planning in two-week iterations where requirements are captured as user stories. The customer is involved full-time to prioritize stories for each iteration and ensure the system meets needs.

Uploaded by

fannybrawijaya
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 18

Extreme Programming (XP)

Topik
Extreme Programming
Refactoring
Uji coba (Testing)
Pair Programming

2 Extreme Programming 02/11/2021


Extreme Programming
Metode agile yang paling terkenal dan banyak
digunakan.
Pendekatan “ekstrim” terhadap pengembangan
iteratif.
Versi-versi baru dibangun beberapa kali dalam satu
hari.
Tahapan-tahapan diselesaikan setiap 2 minggu.
Semua uji coba harus dijalankan untuk setiap build,
dan sebuah build diterima jika uji coba berjalan
dengan lancar.

3 Extreme Programming 02/11/2021


XP dan Prinsip Agile
Pengembangan bertahap didukung melalui rilis
sistem kecil namun sering.
Keterlibatan pengguna berarti keterlibatan penuh
pengguna di dalam tim.
Fokus pada orang melalui pair programming,
kepemilikan bersama, dan proses yang menghindari
waktu kerja yang panjang.
Perubahan diakomodir melalui rilis sistem yang
teratur.
Menjaga kesederhanaan sistem dengan melakukan
refactoring kode.
4 Extreme Programming 02/11/2021
Putaran Rilis XP

5 Extreme Programming 02/11/2021


Praktek-praktek XP
Principle or practice Description
Incremental planning Requirements are recorded on story cards and the stories to be
included in a release are determined by the time available and
their relative priority. The developers break these stories into
development ‘Tasks’. See Figures 3.5 and 3.6.

Small releases The minimal useful set of functionality that provides business
value is developed first. Releases of the system are frequent
and incrementally add functionality to the first release.

Simple design Enough design is carried out to meet the current requirements
and no more.
Test-first development An automated unit test framework is used to write tests for a
new piece of functionality before that functionality itself is
implemented.
Refactoring All developers are expected to refactor the code continuously as
soon as possible code improvements are found. This keeps the
code simple and maintainable.

6 Extreme Programming 02/11/2021


Praktek-praktek XP
Pair programming Developers work in pairs, checking each other’s work and
providing the support to always do a good job.
Collective ownership The pairs of developers work on all areas of the system, so that
no islands of expertise develop and all the developers take
responsibility for all of the code. Anyone can change anything.
Continuous integration As soon as the work on a task is complete, it is integrated into
the whole system. After any such integration, all the unit tests in
the system must pass.
Sustainable pace Large amounts of overtime are not considered acceptable as
the net effect is often to reduce code quality and medium term
productivity
On-site customer A representative of the end-user of the system (the customer)
should be available full time for the use of the XP team. In an
extreme programming process, the customer is a member of the
development team and is responsible for bringing system
requirements to the team for implementation.

7 Extreme Programming 02/11/2021


Skenario Kebutuhan
Dalam XP, pengguna adalah bagian dari tim XP, dan
bertanggung jawab untuk mengambil keputusan
dalam spesifikasi kebutuhan.
Kebutuhan pengguna dituangkan dalam bentuk
skenario atau “user stories.”
Skenario tertulis diatas kertas dan tim pengembang
membagi menjadi tugas-tugas implementasi
(implementation tasks). Tugas tersebut menjadi basis
penjadwalan dan perhitungan biaya.
Pengguna menentukan skenario yang akan diikutkan
pada rilis selanjutnya berdasarkan skala prioritas.

8 Extreme Programming 02/11/2021


Contoh: skenario “prescribing medication”

9 Extreme Programming 02/11/2021


Contoh “task cards” untuk prescribing
medication

10 Extreme Programming 02/11/2021


Refactoring
Tim programmer mencari kemungkinan untuk
meningkatkan kualitas PL meskipun tidak ada
kebutuhan mendesak untuk peningkatan kualitas PL.
Membuat kode PL mudah dipahami sehingga
mengurangi kebutuhan akan dokumentasi PL.
Perubahan lebih mudah dilakukan karena kode yang
terstruktur dan jelas.
Akan tetapi, beberapa perubahan membutuhkan
refactoring pada arsitektur dan membutuhkan usaha
yang lebih besar.

11 Extreme Programming 02/11/2021


Contoh Refactoring
Organisasi ulang hirarki kelas untuk
menghilangkan duplikasi kode.
Membersihkan dan mengganti nama-nama atribut
dan method agar mudah dipahami.
Mengganti kode dengan method-method yang
sudah tersedia didalam pustaka.

12 Extreme Programming 02/11/2021


Uji coba dalam XP
Uji coba memegang peranan penting dalam XP.
Program diuji coba setiap ada perubahan.
Fitur-fitur uji coba dalam XP:
Pengembangan berbasis uji coba (test first driven
development)
Pengembangan uji coba bertahap dari skenario
(incremental test development)
Keterlibatan pengguna dalam pembuatan uji coba dan
validasi
Uji coba otomatis.

13 Extreme Programming 02/11/2021


Test-first development
Menulis kode uji coba sebelum kode implementasi
untuk mengklarifikasi spesifikasi kebutuhan yang
akan diimplementasikan.
Uji coba ditulis sebagai program sehingga dapat
dijalankan secara otomatis.
Mengandalkan framework uji coba, contoh: JUnit.
Kode uji coba terdahulu dan kode baru dijalankan
secara otomatis jika fungsionalitas baru
ditambahkan. Untuk memastikan bahwa
penambahan fungsi tidak menimbulkan error.

14 Extreme Programming 02/11/2021


Pair Programming (1)
Dalam XP, programmer bekerja secara
berpasangan, duduk bersama membuat kode.
Membantu membangun rasa kepemilikan kode dan
menyebarkan pengetahuan ke seluruh tim.
Berperan sebagai proses review informal.
Produktivitas pair programming setara dengan dua
orang bekerja secara independen.
Dua programmer duduk bersama dengan satu
komputer.

15 Extreme Programming 02/11/2021


Pair Programming (2)
Programmer dipasangkan secara dinamis sehingga
seluruh anggota tim saling mengenal selama proses
pengembangan PL.
Berbagi pengetahuan menyebabkan menurunnya
resiko kegagalan proyek jika anggota meninggalkan
tim.

16 Extreme Programming 02/11/2021


Keuntungan Pair Programming
Mendukung ide kepemilikan dan tanggung jawab
bersama terhadap sistem.
Berperan sebagai proses review informal karena
setiap baris kode paling tidak dilihat oleh minimal 2
programmer.
Mendukung proses refactoring yang merupakan
proses peningkatan kualitas PL.

17 Extreme Programming 02/11/2021


Referensi
Sommerville, I., Software Engineering 8th edition,
Addison-Wesley, 2007

18 Extreme Programming 02/11/2021

You might also like