Professional Documents
Culture Documents
XP FIX New
XP FIX New
Disusun Oleh :
INFORMATIKA
UNIVERSITAS BRAWIJAYA
MALANG
2018
1. WATERFALL MODEL
Metode Waterfall sering disebut dengan classic life cycle (Pressman, 2010).
Metode ini merupakan metode pengembangan perangkat lunak terstruktur yang
paling dikenal dan banyak digunakan secara luas, tidak hanya di lingkup akademisi
tetapi juga di industri. Hal ini disebabkan Waterfall merupakan metode yang tua dan
oleh sebab itu, metode ini hampir selalu digunakan untuk pengembangan perangkat
lunak terutama di lingkup akademisi khususnya mahasiswa yang sedang
menyelesaikan Tugas Akhirnya.
Nama XP atau Extreme Programming, diciptakan oleh Kent Beck pada tahun
2000, karena pendekatan ini dikembangkan dengan mendorong kebiasaan yang
baik, seperti pengembangan secara iteratif, sampai ke tingkat ekstrim. Sebagai
contoh, beberapa versi baru dari sistem dapat dikembangkan oleh programmer yang
berbeda, lalu diintegrasikan dan diuji dalam waktu satu hari. Meskipun sebenarnya
awal berjalannya ide dan metode yang terkait dengan XP sudah berlangsung selama
akhir tahun 1980-an. XP mungkin merupakan metode agile yang paling dikenal atau
paling banyak digunakan.
Communication
Untuk mencapai komunikasu yang efektif antara software engineer dengan
stakeholders lainnya, XP menekankan kerjasama yang erat namun informal secara
verbal antara klien dengan pengembang. Dengan membentuk metafora yang efektif
untuk mengkomunikasikan konsep penting, feedback berkelanjutan, dan untuk
menghindari dokumentasi yang banyak sebagai media komunikasi.
Feedback
Feedback berasal dari sumber: dari perangkat lunak yang diimplementasikan
itu sendiri, dari klien, dan dari anggota tim perangkat lunak lainnya. XP merancang
dan menerapkan strategi pengujian yang efektif, perangkat lunak memberikan agile
team dengan feedback. Derajat dimana perangkat lunak mengimplementasi output,
fungsi dan prilaku dari use case adalah dari feedback.
Simplicity
Untuk mencapai simplicity, XP membatasi pengembang mendesain hanya
untuk kebutuhan yang mendesak (dekat), daripada mempertimbangkan kebutuhan
di masa depan. Tujuannya adalah untuk membuat desain sederhana yang dapat
dengan mudah diimplementasikan dalam kode.
Courage
Tim XP harus memiliki disiplin (keberanian) dalam merancang untuk hari ini,
mengakui bahwa persyaratan selanjutnya dapat berubah secara dramatis, sehingga
menuntut pengerjaan ulang yang substansial dari desain dan penerapan kode
Respect
Dengan mengikuti masing-masing nilai di atas, XP menanamkan rasa hormat di
antara anggota-anggotanya, antara stakeholders lain dan anggota tim dan secara
tidak langsung untuk perangkat lunak itu sendiri.
Proses XP
Planning :
Kegiatan perencanaan dimulai dari mendengarkan (kegiatan pengumpulan
kebutuhan) yang memungkinkan anggota teknis dari Tim XP untuk memahami
konteks bisnis dari perangkat lunak dan untuk mendapatkan mendapatkan output
yang dibutuhkan dan fitur utama serta fungsionalitas. Mendengarkan mengarah
pada penciptaan satu set "story" (disebut juga user story) yang menggambarkan
output yang diperlukan, fitur, dan fungsionalitas untuk perangkat lunak yang akan
dibangun. Selama pengembangan berlangsung klien dapat menambahkan story,
mengubah nilai dari story yang ada, membagi story, atau menghilangkannya. Tim XP
kemudian mempertimbangkan kembali semua rilis yang tersisa dan memodifikasi
rencananya.
Design
Design XP secara ketat mengikuti prinsip tetap sederhana. Desain sederhana
selalu lebih disukai daripada representasi yang lebih kompleks. XP menggunakan
CRC card yang berfungsi untuk mengenali dan mengatur object oriented class yang
sesuai dengan kriteria software increment yang relavan dengan peningkatan
perangkat lunak saat ini.
Jika masalah desain yang sulit ditemui sebagai bagian dari desain sebuah
cerita, XP merekomendasikan pembuatan langsung prototipe operasional dari
bagian desain tersebut, disebut dengan spike solution, desain prototipe di
implementasikan dan dievaluasi untuk menurunkan resiko ketika implementasi yang
sebenarnya dimulai. Gagasan utama di XP adalah desain yang terjadi baik sebelum
dan sesudah coding dimulai. Refactoring berarti bahwa desain terjadi secara terus
menerus saat sistem dibangun. Bahkan, kegiatan konstruksi itu sendiri akan
memberikan tim XP dengan panduan tentang cara meningkatkan desain.
Coding
Setelah cerita dikembangkan dan desain awal selesai, tim tidak berpindah ke
kode, melainkan mengembangkan serangkaian tes unit yang akan melatih masing-
masing cerita yang akan dimasukkan dalam current release (software increment).
Setelah tes unit telah dibuat, pengembang lebih mampu fokus pada apa yang harus
dilaksanakan untuk melewati tes tersebut. Setelah kode selesai, pengujian unit dapat
segera dilakukan, sehingga memberikan umpan balik instan kepada pengembang.
Konsep kunci selama aktivitas pengkodean (dan salah satu aspek XP yang
paling banyak dibicarakan) adalah pair programming. XP merekomendasikan agar
dua orang bekerja bersama di satu komputer workstation untuk membuat kode
untuk sebuah cerita. hal ini membuat para pengembang fokus pada masalah yang
dihadapi. Dalam prakteknya, setiap orang mengambil peran yang sedikit berbeda.
Misalnya, satu orang mungkin berpikir tentang rincian pengkodean bagian tertentu
dari desain sementara yang lain memastikan bahwa standar pengkodean (bagian
yang diperlukan dari XP) sedipatuhi atau bahwa kode untuk cerita akan memenuhi
tes unit. Saat pair programmer menyelesaikan pekerjaan mereka, kode yang mereka
kembangkan diintegrasikan dengan pekerjaan orang lain.
Testing
Pembuatan unit tests sebelum coding dimulai adalah elemen kunci dari
pendekatan XP. Unit tests yang dibuat harus diimplementasikan menggunakan
kerangka kerja yang memungkinkan mereka menjadi otomatis. Hal ini Ini mendorong
strategi pengujian regresi setiap kali kode diubah. XP acceptance test juga disebut
customer test, ditentukan oleh pelanggan dan fokus pada fitur dan fungsionalitas
sistem secara keseluruhan yang dapat dilihat dan ditinjau oleh pelanggan. Tes
penerimaan berasal dari story pengguna yang telah diimplementasikan sebagai
bagian dari rilis perangkat lunak.
Advantage of XP models:
Memungkinkan penghematan biaya dan waktu, karena XP menghilangkan
aktivitas yang tidak produktif untuk mengurangi biaya dan fustasi semua
orang yang terlibat. Hal ini memungkinkan pengembang untuk fokus pada
pengkodean.
Feedback yang konsisten, XP memiliki kemampuan untuk menjadwalkan
implementasi fungsi secara fleksible dalam menanggapi kebutuhan bisnis
yang berubah.
Meningkatkan koordinasi & berbagi pengetahuan antara programmer selama
pair programming
Partisipasi klien lebih aktif
Disadvantage of XP models:
Terlalu banyak keterlibatan pelanggan bisa menjadi masalah bagi tim
pengembang
Beberapa poyek memiliki berbagai macam klien, masiang-masing dengan
kebutuhannya sendiri. Di XP, tim itu sendiri bertugas mengasimilasi
kebutuhan pelanggan yang berbeda, pekerjaan yang mungkin berada di luar
jangkauan otoritas mereka.
Pedoman standar pengkodean harus diikuti untuk memastikan kode dapat
dimengerti oleh keseluruhan tim
Desain arsitektur pada XP tidak diutamakan, karena metode XP memang
membatasi kompleksitas dan mengutamakan pengkodean.
Agile yaitu berarti cepat, ringan, bebas bergerak, waspada. Kata ini digunakan
sebagai penggambaran konsep model proses yang berbeda dari konsep model-
model proses yang sudah ada. Konsep Agile Software Development dicetuskan oleh
Kent Beck dan 16 rekannya dengan menyatakan bahwa Agile Software Development
adalah cara membangun software dengan melakukannya dan membantu orang lain
membangunnya sekaligus pada tahun 2001 melalui manifesto.
Agile Development Methods memiliki empat nilai, yang disebut Agile Alliace’s
Manifesto
1. Dalam Agile Software Development interaksi dan personel lebih penting
daripada proses dan alat
2. Software yang berfungsi lebih penting daripada dokumentasi yang lengkap
3. Kolaborasi dengan klien lebih penting daripada negosiasi kontra
4. Dan sikap tanggap terhadap perubahan lebih penting daripada mengikuti
rencana.
Namun, sama seperti proses model yang lain, Agile juga mempunyai
kelebihab dan kekurangan sehingga tidak dapat diterapkan untuk semua jenis
perancangan Software. Tergantung pada proyek, produk, orang dan situasi.