Tugas 1. Pengertian Waterfall, Prototyping, Iterative, RUP, Time boxing, extreme programing & Agile
Nama : Santi
Npm : 43A8007150347
Kelas : S1/SI/3B/P
Kelas : S1/SI/3B/P
Tugas : Rekayasa Perangkat Lunak
Pengertian dari waterfall
Waterfall atau AIR terjun adalah model yang dikembangkan untuk
pengembangan perangkat lunak, membuat perangkat lunak. model berkembang
secara sistematis dari satu tahap ke tahap lain dalam mode seperti air terjun.
Model ini mengusulkan sebuah pendekatan kepada pengembangan
software yang sistematikdan sekuensial yang mulai dari tingkat kemajuan sistem
pada seluruh analisis, desain, kode, pengujian dan pemeliharaan. Model ini
melingkupi aktivitas-aktivitas sebgai berikut : rekayasa dan pemodelan sistem
informasi, analisis kebutuhan, desain, koding, mengujian dan pemeliharaan.
Model pengembangan ini bersifat linear dari tahap awal pengembangan
system yaitu tahap perencanaan sampai tahap akhir pengembangan system yaitu
tahap pemeliharaan. Tahapan berikutnya tidak akan dilaksanakan sebelum tahapan
sebelumnya selesai dilaksanakan dan tidak bisa kembali atau mengulang ke tahap
sebelumnya.
Diagram waterfall
proses atau cara kerja
Ini adalah gambar tahapan atau fase yang paling umum tentang model waterfall
Akan tetapi Roger S. Pressman memecah model ini menjadi 6 tahapan
meskipun secara garis besar sama dengan tahapan-tahapan model waterfall pada umumnya.
Berikut adalah Gambar dan penjelasan dari tahap-tahap yang dilakukan di dalam
model ini menurut Pressman:
1) System /
Information Engineering and Modeling. Permodelan ini diawali
dengan mencari kebutuhan dari keseluruhan sistem yang akan diaplikasikan ke
dalam bentuk software. Hal ini sangat penting, mengingat software harus dapat
berinteraksi dengan elemen-elemen yang lain seperti hardware, database, dsb.
Tahap ini sering disebut dengan Project Definition.
2) Software Requirements Analysis.
Proses pencarian kebutuhan diintensifkan dan difokuskan pada software. Untuk
mengetahui sifat dari program yang akan dibuat, maka para software engineer
harus mengerti tentang domain informasi dari software, misalnya fungsi yang
dibutuhkan, user interface, dsb. Dari 2 aktivitas tersebut (pencarian kebutuhan
sistem dan software) harus didokumentasikan dan ditunjukkan kepada pelanggan.
3) Design.
Proses ini digunakan untuk mengubah kebutuhan-kebutuhan diatas menjadi
representasi ke dalam bentuk “blueprint” software sebelum coding dimulai.
Desain harus dapat mengimplementasikan kebutuhan yang telah disebutkan pada
tahap sebelumnya. Seperti 2 aktivitas sebelumnya, maka proses ini juga harus
didokumentasikan sebagai konfigurasi dari software.
4) Coding.
Untuk dapat dimengerti oleh mesin, dalam hal ini adalah komputer, maka desain
tadi harus diubah bentuknya menjadi bentuk yang dapat dimengerti oleh mesin,
yaitu ke dalam bahasa pemrograman melalui proses coding. Tahap ini merupakan
implementasi dari tahap design yang secara teknis nantinya dikerjakan oleh
programmer.
5) Testing
/ Verification. Sesuatu yang dibuat haruslah diujicobakan.
Demikian juga dengan software. Semua fungsi-fungsi software harus diujicobakan,
agar software bebas dari error, dan hasilnya harus benar-benar sesuai dengan
kebutuhan yang sudah didefinisikan sebelumnya.
6) Maintenance.
Pemeliharaan suatu software diperlukan, termasuk di dalamnya adalah
pengembangan, karena software yang dibuat tidak selamanya hanya seperti itu.
Ketika dijalankan mungkin saja masih ada errors kecil yang tidak ditemukan
sebelumnya, atau ada penambahan fitur-fitur yang belum ada pada software
tersebut. Pengembangan diperlukan ketika adanya perubahan dari eksternal
perusahaan seperti ketika ada pergantian sistem operasi, atau perangkat lainnya
keuntungan
1) Merupakan model pengembangan
paling handal dan paling lama digunakan.
2) Cocok untuk system software
berskala besar.
3) Cocok untuk system software
yang bersifat generic.
4) Pengerjaan project system
akan terjadwal dengan baik dan mudah dikontrol
Kelemahan waterfall
1. Tidak mengakomodasi perubahan
requitment ( tidak bisa diubah )
2. Resiko ketidakpastian tinggi
3. Model yang buruk untuk proyek
berorentasi objek
4. Model yang buruk untuk proyek
kerja jangka panjang
Pengertian Prototyping
Dalam
Proses Analis Ini Pendekatan Perlu di lakukan bagi user / costumer, dan
salahsatunya di lakukan dengan model Prototyping ini. Prototyping adalah prosesPengumpulan
Persyaratan , Pengaplikasian, Prinsip Analisis, dan Penyusunan
model perangkat lunak untuk di bangun dan di nilai Perkembangannya.
Diagram
prototyping
Tahapan-tahapan dalam Prototyping adalah sebagai
berikut:
- Pengumpulan kebutuhan adalah Pelanggan dan pengembang bersama-sama mendefinisikan format seluruh perangkat lunak, mengidentifikasikan semua kebutuhan, dan garis besar sistem yang akan dibuat.
- Membangun prototyping adalah Membangun prototyping dengan membuat perancangan sementara yang berfokus pada penyajian kepada pelanggan (misalnya dengan membuat input dan format output).
- Evaluasi protoptyping adalah Evaluasi ini dilakukan oleh pelanggan apakah prototyping yang sudah dibangun sudah sesuai dengan keinginann pelanggan. Jika sudah sesuai maka langkah 4 akan diambil. Jika tidak prototyping direvisi dengan mengulang langkah 1, 2 , dan 3.
- Mengkodekan system adalah Dalam tahap ini prototyping yang sudah di sepakati diterjemahkan ke dalam bahasa pemrograman yang sesuai.
- Menguji system adalah Setelah sistem sudah menjadi suatu perangkat lunak yang siap pakai, harus dites dahulu sebelum digunakan. Pengujian ini dilakukan dengan White Box, Black Box, Basis Path, pengujian arsitektur dan lain-lain.
- Evaluasi Sistem adalah Pelanggan mengevaluasi apakah sistem yang sudah jadi sudah sesuai dengan yang diharapkan. Jika ya, langkah 7 dilakukan; jika tidak, ulangi langkah 4 dan 5.
Kelebihan Prototyping
1. Komunikasi user & Developer meningkat karena dev akan selalu minta pendapat user.
2. Membantu analis menentukan kebutuhan yang sebenarnya
3. Pengembangan lebih cepat
4. Implementasi mudah karena user sudah familiar dengan sistem yang dikembangkan
Kelemahan Prototyping:
1. Bentuk prototipe dapat berubah-ubah sehingga sulit dievaluasi
2. Mengingat waktu target pendek, kemungkinan sistem yang dibuat tidak lengkap dan kurang teruji
3. Membutuhkan komitmen bersama antara user dan developer untuk berkomunikasi
4. Dokumentasi sering terabaikan karena fokus pada prototype
3.Iterative
Metode yang
merupakan pengembangan dari prototyping model dan digunakan ketika requirement
dari software akan terus berkembang dalam tahapan-tahapan pengembangan aplikasi
tersebut. Sedikit pengertian tentang requirement software dari developer yang
diterapkan pada tahap pertama iterasi, akan mendapatkan tanggapan dari user.
Ketika requirement menjadi jelas, tahapan iterasi selanjutnya akan
dilaksanakan.
Diagram iterative
Proses/cara kerja dari iterative
1) Mendefinisikan tujuan dan kebutuhan
bisnis, mengembangkan desain konseptual, rancangan konsep, rencana pengujian,
dan analis terhadap resiko dengan melibatkan pemakai.
2) Mendefinisikan kebutuhan sistem,
mengembangkan desail logikal, mengkompilasi (software-build) rancangan awal,
mengevaluasi hasil dengan melibatkan pemakai.
3) Mendefinisikan kebutuhan subsistem,
menghasilkan desain fisikal, mengkompilasi rancangan berikutnya, mengevaluasi
hasil dengan melibatkan pemakai.
4) Mendefinisikan kebutuhan setiap unit,
menghasilkan desain akhir, mengkompilasi rancangan akhir.
kelebihan dari iterative model
- User dapat mencoba
sistem yg sudah dikembangkan dan kemudian dapat memberikan masukka.
- Keterlibatan user semakin intens dampak positif dalam pengembangan.
- Prototype relatif lebih
mudah dibangun dan tidak memerlukan waktu yang lama.
- Dengan prototype,
kesalahan & kelalaian dalam pengembangan dapat segera diketahui.
kekurangan dari iterative
model
- Setiap iterasi
bergantung prototype sebelumnya solusi final umumnya terjadi apabila ada
perbedaan yg nyata pada prototype sebelumnya
- Formal
end-of-phasemungkin tidak terjadi, karena sangat sulit menentukan scope dari
suatu prototype > proyek tidak pernah selesai
- Dokumentasi seringkali
tdk lengkap > fokus pada pembuatan prototype
- Isu2 mengenai system
backup & recovery, system performance dan system security, kurang/tidak
diperhatikan dan sering terlupakan4.Rational unified process
RUP, singkatan dari Rational Unified Process, adalah suatu kerangka
kerja proses pengembangan perangkat lunak iteratif yang dibuat oleh Rational
Software, suatu divisi dari IBM sejak 2003. RUP bukanlah suatu proses tunggal
dengan aturan yang konkrit, melainkan suatu kerangka proses yang dapat
diadaptasi dan dimaksudkan untuk disesuaikan oleh organisasi pengembang dan tim
proyek perangkat lunak yang akan memilih elemen proses -sesuai dengan kebutuhan mereka.
Diagram RUP
Tahapan-tahapan
RUP
Insepsi
Merupakan tahap awal dari proses Rational Unified Process, melakukan
analisis kebutuhan user, dan melakukan perancangan awal perangkat lunak
(perancangan arsitektural dan use case). Menjawab pertanyaan apakah yang
dikerjakan dapat menciptakaan good business sense sehingga proyek dapat
dijalankan.
Elaborasi
Merupakan tahapan kedua dalam perancangan perangkat lunak mulai dari
menspesifikasikan fitur perangkat lunak hingga perilisan prototype versi Betha
dari perangkat lunak serta Menganalisa risiko dan berbagai persyaratan.
Konstruksi
Tahap ketiga dalam pengimplementasian perancangan perangkat lunak, pada
setiap iterasi juga melibatkan proses-proses seperti analisa, desain,
implementasi, coding.
Transisi
Tahapan terakhir untuk instalasi, deployment, dan sosialisasi perangkat
lunak, melaksanakan apa yang sudah dimodelkan menjadi suatu produk jadi.
Kelebihan dari RUP
1. Menyediakan akses yang mudah terhadap pengetahuan dasar bagi anggota tim.
2. Menyediakan petunjuk bagaimana
menggunakan UML secara efektif.
3 . Mendukung proses pengulangan dalam pengembangan software.
3 . Mendukung proses pengulangan dalam pengembangan software.
4. Memungkinkan adanya
penambahan-penambahan pada proses.
5. Memungkinkan untuk secara sistematis
mengontrol perubahan- perubahan yang terjadi pada
6. Software selama proses
pengembangannya.
Kekurangan dari RUP
1.Metodologi ini hanya dapat digunakan
pada pengembangan perangkat lunak yang berorientasi
objek dengan berfokus pada UML (Unified Modeling Language).
objek dengan berfokus pada UML (Unified Modeling Language).
2.Membutuhkan waktu yang cukup lama dibandingkan XP dan Scrum.
5. TIME BOXING MODEL
Time boxing
adalah proses menunda fitur untuk versi aplikasi di masa mendatang untuk
melengkapi versi saat ini sebagai ketepatan waktu.Ketepatan waktu merupakan
aspek penting dari RAD, karena tanpa itu ruang lingkup dapat mengancam untuk
memperpanjang iterasi pembangunan, sehingga membatasi umpan balik dari klien,
meminimalkan manfaat dari pembangunan berulang, dan berpotensi mengembalikan
proses kembali ke pendekatan metodologi air terjun.
Diagram dari time
boxing
Proses
/ Cara Kerja Timeboxing Model
Timeboxing model menentukan jangka waktu
tertentu yang dialokasikan untuk menyelesaikan berbagai macam tugas. Apabila
waktu yang ditentukan tersebut selesai, maka pembangunan sistem akan pindah ke
tugas berikutnya, dengan harapan bahwa sebagian besar dari critical work telah
berhasil diselesaikan sebelum waktu keseluruhan berakhir.
RAD: rapid application
development
Keuntungan Timeboxing Model
1) Kecepatan model ini sampai proses
pengerjaan dan dapat mempersingkat waktu pengiriman.
2) Model ini cocok untuk mengembangkan
projek dengan beberapa fitur dalam waktu singkat.
Kekurangan Timeboxing Model
1) Managemen projek akan menjadi lebih
kompleks
2) Tidak cocok untuk projek dimana seluruh
pengerjaan tidak dapat dibagi menjadi beberapa iterations.
6.
EXTREME PROGRAMMING DAN AGILE
EXTEREME PROGRAMMING
Extreme Programming (berikutnya akan disingkat
sebagai XP) adalah sebuah pendekatan atau model pengembangan perangkat lunak
yang mencoba menyederhanakan berbagai tahapan dalam proses pengembangan
tersebut sehingga menjadi lebih adaptif dan fleksibel. XP bukan hanya berfokus
pada coding tetapi meliputi seluruh area pengembangan perangkat lunak.
XP mengambil pendekatan ‘ekstrim’ dalam iterative development.
XP mengambil pendekatan ‘ekstrim’ dalam iterative development.
- Whole Team adalah Seluruh kontributor dalam proyek yang menggunakan pendekatan XP duduk bersama sebagai suatu tim. Tim ini terdiri beberapa peran, antara lain programmer, penguji,orang yang mengerti bisnis, analis, manajer, dan lain-lain. Setiap peran yang ada tidak mutlak menjadi peran dari satu orang saja. Tim terbaik dalam XP tidak harus memiliki pakar, hanya kontributor umum dengan keterampilan khusus saja. Semua orang di tim XP memberikan kontribusi dengan cara apapun yang mereka dapat lakukan.
- Planning
game adalah Perencanaan dalam XP mengemukakan dua pertanyaan kunci
dalam pengembangan perangkat lunak, yaitu memprediksi apa yang akan
dicapai pada waktu tertentu, dan menentukan apa yang harus dilakukan
setelah itu. Ada dua langkah kunci dalam perencanaan XP, yang menangani
dua pertanyaan tersebut:
Release Planning yaitu praktek dimana Customer mengutarakan fitur yang diinginkannya ke programer, dan programer memperkirakan tingkat kesulitannya. Dengan estimasi biaya di tangan, dan dengan pengetahuan tentang pentingnya fitur yang diinginkan, Pelanggan meletakkan satu rencana untuk proyek tersebut. Rencana rilis awal yang selalu tepat: baik prioritas maupun perkiraan yang benar-benar solid, dan sampai tim mulai bekerja, kita tidak akan tahu seberapa cepat mereka akan pergi. Bahkan rencana rilis pertama cukup akurat untuk pengambilan keputusan, namun, dan tim XP melakukan revisi terhadap rencana rilis secara teratur. - Iteration Planning adalah praktek di mana tim diberikan petunjuk atau arahan setiap beberapa minggu sekali. Tim XP membangun perangkat lunak dalam “iterasi” dua minggu, memberikan menjalankan perangkat lunak yang berguna pada setiap akhir iterasi. Selama Iteration Planning, Customer mengutarakan fitur yang diinginkan selama dua minggu ke depan. Para programer memecahnya ke dalam pekerjaan yang lebih kecil, dan memperkirakan biaya yang diperlukan.
- Customer Tests adalah Sebagai bagian dari presentasi masing-masing fitur yang diinginkan, Customer XP mendefinisikan satu atau lebih tes penerimaan otomatis untuk menunjukkan bahwa fitur tersebut bekerja dengan baik. Tim membangun tes ini dan menggunakannya untuk membuktikan pada kepada Customer bahwa fitur ini telah diimplementasikan dengan benar. Tes secara otomatis ini penting karena dalam XP hanya diberikan waktu yang singkat sehingga tes manual tidak akan digunakan karena memakan waktu yang lama.
- Small Release adalah Pada setiap Iterasi, tim mengerjakan sebuah unit atau bagian dari perangkat lunak, melakukan tes terhadap unit perangkat lunak yang dibangun, kemudian di akhir iterasi perangkat lunak yang dibangun diberikan kepada Customer. Oleh customer, perangkat lunak ini bisa dijadikan bahan evaluasi maupun langsung dirilis kepada end user. Bisa juga tim XP langsung merilis ke end user secara rutin.
- Simple Design adalah Tim XP membangun perangkat lunak dengan desain yang sederhana. Dimulai dengan desain yang sederhana, kemudian melalui pengujian program dan perbaikan desain. Desain yang dibuat harus benar-benar cocok untuk fungsi saat ini dari sistem sehingga tidak ada yang sia-sia dan perangkat lunak siap dikembangkan lagi selanjutnya. Namun, pembuatan desain dalam XP tidak dilakukan hanya sekali. Tahapan desain dalam Extreme Programming yang menghasilkan desain yang bagus dianggap sangat penting, sehingga selama proses development banyak difokuskan ke tahapan desain.
- Pair Programming adalah Semua perangkat lunak yang dibangun dengan pendekatan XP dibangun oleh dua orang programmer. Keduanya duduk berdampingan di satu komputer yang sama. Seorang programmer akan membuat code dan programmer yang lainnya akan mengoreksinya. Praktik seperti ini mungkin kelihatan tidak efisien. Namun dari segi hasil dari pair programming, desain akan lebih baik, pengujian lebih baik, dan code yang dihasilkan pun akan lebih baik.
- Test-Driven Development adalah XP begitu terobsesi dengan umpan balik, dan dalam pengembangan perangkat lunak, umpan balik yang baik mensyaratkan pengujian yang baik pula. Test-Driven Development bergantung pada pengulangan siklus development yang sangat pendek. Pertama tim XP akan menuliskan automated test case yang mendefinisikan perbaikan yang diinginkan atau fungsi baru. Kemudian dari test case tersebut dihasilkan jumlah minimal code yang harus dituliskan untuk lulus tes tersebut. Setelah itu melakukan refactoring code baru agar memenuhi standar baru.
- Design Improvement, yaitu XP berfokus pada memberikan nilai bisnis dalam setiap perulangan. Agar dapat mencapai tujuan tersebut selama proyek berlangsung, perangkat lunak harus dirancang dengan baik. XP menggunakan proses perbaikan desain secara terus menerus dengan Refactoring. Proses refactoring berfokus pada penghapusan duplikasi dari code yang telah dibuat. Disamping itu, proses refactoring didukung dengan pengujian yang komprehensif utnuk memastikan bahwa desain yang dibuat berkembang dan tiidak ada yang rusak.
- Continuous Integration, yaitu Beberapa kali dalam sehari, tim XP akan menggabungkan seluruh salinan pekerjaan tim menjadi satu dalam jaringan utama. Sehingga tim XP harus menjaga tim agar terintegrasi setiap saat.
- Collective Code Ownership, yaitu Pada proyek XP, setiap pasang programmer dapat meningkatkan code apapun setiap saat. Semua code yang ada dimiliki secara kolektif oleh tim. Manfaatnya setiap code akan mendapat perhatian dari banyak orang, sehingga dapat meningkatkan kualitas code dan mengurangi cacat. Selain itu dapat mengurangi duplikasi code yang sama walaupun dibuat oleh pasangan programmer yang berbeda.
- Coding Standard, yaitu Setiap anggota tim XP harus mengikuti standar coding yang umum, sehingga semua code dalam sistem seolah-olah tampak dibuat oleh satu orang yang sangat kompeten. Selain itu hal ini sangat mendukung Collective Code Ownership.
- Metaphor, yaitu Tim XP akan membuat suatu deskripsi umum bagaimana program yang mereka kembangkan bekerja dengan benar.
- Sustainable Pace, yaitu Tim XP akan bekerjasama dalam jangka waktu lama. Mereka bekerja keras dengan kecepatan tertentu tanpa batas waktu. Tim XP akan bekerja lembur pada hari efektif dan memaksimalkan produktivitas setiap minggunya. Hal ini perlu diperhatikan dengan baik, karena akan mengurangi produktivitas atau sebaliknya menghasilkan perangkat lunak yang berkualitas.
Proses
/ Cara kerja Extreme Programming
Berikut merupakan proses Extreme
Programming menurut Pressman (2010):
Planning.
Tahap planning dimulai dengan membuat
user stories yangmenggambarkan output, fitur, dan fungsi-fungsi dari software
yang akan
dibuat. User stories tersebut kemudian diberikan bobot seperti prioritas dan
dikelompokkan untuk selanjutnya dilakukan prosesdelivery secara
incremental.
Design.
Design di Extreme Programming mengikuti
prinsip Keep It Simple (KIS).
Untuk design yang sulit, Extreme Programming akan menggunaan Spike
Solution dimana pembuatan design dibuat langsung ke tujuannya.
Extreme Programming juga mendukung adanya
refactoring dimana software system diubah sedemikian rupa dengan cara mengubah
stuktur kode dan menyederhanakannya namun hasil dari kode tidak
berubah.
Coding.
Proses coding pada XP diawali dengan
membangun serangkaian unittest. Setelah itu pengembang akan berfokus
untukmengimplementasikannya. Dalam Extreme Programming diperkenalkan istilah
Pair Programming dimana proses penulisan program dilakukan
secara berpasangan. Dua orang programmersaling bekerjasama di satu komputer
untuk menulis program. Denganmelakukan ini akan didapat real-time problem solving dan real-time quality
assurance.
Testing.
Tahap ini dilakukan pengujian kode pada
unit test. Dalam ExtremeProgramming, diperkenalkan XP
acceptance test atau biasa disebutcustomer test. Tes ini dilakukan oleh
customer yang berfokus kepada fitur
dan fungsi sistem secara keseluruhan. Acceptance test ini berasal dari user stories yang
telah diimplementasikan.
Kelebihan dari Extreme Programming
1) Menjalin komunikasi yang baik dengan
klien. (planning phase)
2) Menurunkan biaya pengembangan. (implementation
phase)
3) XP merupakan metodologi yang semi
formal. (planning phase)
4) Developer harus selalu siap dengan
perubahan karena perubahan akan selalu diterima atau dengan kata lain
fleksibel. (maintenace phase)
Kekurangan dari Extreme
Programming
1) Tidak bisa membuat kode yang detail
diawal (prinsip simplicity dan juga anjuran untuk melakukan apa yang diperlukan
hari itu juga) XP juga memiliki keunggulan yang sekaligus menjadi kelemahannya
yaitu XP tidak memiliki dekumentasi formal yang dibuat selama pengembangan.
Satu satunya dokumentasi adalah dekumentasi awal yang dilakukan oleh user
AGILE
Agile Development Methods adalah
sekelompok metodologi pengembangan perangkat lunak yang didasarkan pada
prinsip-prinsip yang sama atau pengembangan sistem jangka pendek yang
memerlukan adaptasi cepat dari pengembang terhadap perubahan dalam bentuk
apapun. Agile development methods merupakan salah satu dari Metodologi pengembangan perangkat lunak yang
digunakan dalam pengembangan perangkat lunak. Agile memiliki pengertian
bersifat cepat, ringan, bebas bergerak, dan waspada. Sehingga
saat membuat perangkat lunak dengan menggunakan agile development methods diperlukan inovasi dan responsibiliti
yang baik antara tim pengembang dan klien agar kualitas dari perangkat lunak
yang dihasilkan bagus dan kelincahan dari tim seimbang.
Dalam proses
pengembangan agile kita mengenal dengan iterasi atau perulangan. Jika suatu
proyek pengembangan software dikerjakan dengan menggunakan metode agile, maka
selama waktu pengerjaannya akan selalu dijumpai proses pengembangan yang
dilakukan berulang. Setiap perulangan (iterasi) meliputi berbagai kegiatan yang
wajib dilakukan dalam proyek pengembangan software itu sendiri, yaitu:
Diagram dari agile
proses
atau cara kerja dari agile
1). Perencanaan XP: pengumpulan user stories
dari klien yang klien tetapkan prioritasnya. Setiap story ditetapkan harga dan
lama pembangunan, jika terlalu besar, story dapat dipecah menjadi beberapa
story yang lebih kecil. Periksa dan pertimbangkan resiko
2). Desain XP berprinsip: sederhana
memanfaatkan kartu CRC (Class-Responsibility-Collaborator) untuk identifikasi
dan mengatur class-class di konsep OO. Jika temui kesulitan, prototype dibangun
(ini namanya spike solution). Lakukan refactoring, yaitu mengembangkan desain
dari program setelah ditulis.
3). Pengkodean XP: siapkan unit test sebelum
pengkodean dipakai sebagai fokus pemrogram untuk membuat program. Pair
programming dilakukan untuk real time program solving dan real time quality
assurance
4). Pengujian XP: menggunakan unit test yang
dipersiapkan sebelum pengkodean.
Kelebihan dari agile
a.
Meningkatkan kepuasan kepada
klien.
b.
Dapat melakukan review
pelanggan mengenai software yang dibuat lebih awal.
c.
Pembangunan system dibuat lebih
cepat.
d.
Mengurangi resiko kegagalan
implementasi software dari segi non-teknis.
e.
Jika pada saat pembangunan
system terjadi kegagalan kerugian dari segi materi relatif kecil.
Kekurangan dari agile
a.
Developer harus selalu siap
dengan perubahan karena perubahan akan selalu diterima.
b.
Agile tidak akan berjalan
dengan baik jika komitmen tim kurang.
c.
Tidak cocok dalam skala tim
yang besar (>20 orang).
d.
Perkiraan waktu release dan
harga perangkat lunak sulit ditentukan.
Komentar
Posting Komentar