Rekayasa
Perangkat Lunak Lanjut
Nama : Wa Ode Rahma A.U.M
NRP : G651150631
1. Perbedaan Traditional Adaptive dan
Predictive SDLC Method.
SDLC adalah
singkatan dari Software Development Life cycle atau biasa disebut sebagai
proses pengembangan perangkat lunak. SDLC adalah proses yang digunakan untuk
merancang, mengembangkan dan menguji software. SDLC bertujuan untuk
menghasilkan software yang berkualitas tinggi yang memenuhi harapan pelanggan,
target waktu, sumber daya dan biaya.
SDLC memiliki 2
jenis pengembangan atau pendekatan dalam menyelesaikan sebuah project yaitu:
·
Prediktif dimana dari awal sudah diprediksi dan
diasumsikan dengan baik.
·
Adaptif dimana proyek di buat lebih fleksibel
terhadap berbagai kemungkinan-kemungkinan, proyek tidak dapat di asumsikan
secara detail dari awal.
SDLC pendekatan traditional (Prediktif)
-
Project planning, bertujuan untuk
mengidentifikasi semua yang berkaitan dengan proyek mulai dari fisibility,
jadwal pembuatan, sumber daya, waktu yang diperlukan hingga anggaran.
-
Analysis bertujuan untuk memahami dan mendokumentasikan
semua kebutuhan yang dibutuhkan pada system.
-
Design bertujuan untuk mendesain solusi yang
dibutuhkan system yang didefinisikan dan kemudian membuat keputusan terhadap
hasil analisis.
-
Implementation yaitu membangun, menginstall dan
menguji system sehingga dipercaya dapat dipakai.
-
Support bertujuan untuk memelihara kualitas
system sehingga baik digunakan bertahun-tahun.
SDLC pendekatan
Adaptif
-
Didasarkan pada model spiral.
-
Iterasi tahapan-tahapan pembuatan system sampai
system selesai dibangun.
-
Prototype system dihasilkan pada akhir iterasi.
-
Digunakan untuk meminimasi resiko.
-
Masing-masing iterasi merupakan perbaikan dari
hasil sebelumnya.
-
Asumsinya semua pekerjaan belum merupakan hasil
akir yang sempurna pada tahapan yang pertama.
-
Pada proses iterasi terdapat proyek-proyek kecil
pada setiap tahap iterasi.
2. Current Trends in Development
a. Extreme Programming (XP)
Extreme Programming (XP) adalah salah satu metode yang
merupakan salah satu dari Angile Software Development Methodologies yang
berfokus pada coding sebagai sebagai aktifitas utama pada semua tahapan. Nilai
dasar yang terkandung pada XP adalah komunikasi (communication), kesederhanaan
(simplicity), umpan balik (feedback), keberanian (courage) dan menghormati
(respect).
Tujuan utama XP adalah menurunkan biaya dari adanya perubahan software. Dalam
metodologi pengembangan sistem tradisional, kebutuhan sistem ditentukan pada
tahap awal pengembangan proyek dan bersifat fixed. Hal ini berarti biaya
terhadap adanya perubahan kebutuhan yang terjadi pada tahap selanjutnya akan
menjadi mahal. XP diarahkan untuk menurunkan biaya dari adanya perubahan dengan
memperkenalkan nilai-nilai basis dasar, prinsip dan praktis. Dengan menerapkan
XP, pengembangan suatu sistem haruslah lebih fleksibel terhadap perubahan.
Menurut penggagas dari metode
XP, Kent Beck mendefinisikan empat kunci utama (inti) dari XP yaitu:
1. Communication
(Komunikasi)
Tugas utama developer dalam
membangun suatu sistem perangkat lunak adalah mengkomunikasikan kebutuhan
sistem kepada pengembang perangkat lunak. Komunikasi dalam XP dibangun dengan
melakukan pemrograman berpasangan (pair programming). Developer didampingi oleh
pihak klien dalam melakukan coding dan unit testing sehingga klien bisa
terlibat langsung dalam pemrograman sambil berkomunikasi dengan developer.
Tujuannya untuk memberikan pandangan pengembang sesuai dengan pandangan
pengguna sistem.
2. Simplicity
(Kesederhanaan)
XP
mencoba untuk mencari solusi paling sederhana dan praktis. Perbedaan metode ini
dengan metodologi pengembangan sistem konvensional lainnya terletak pada proses
desain dan coding yang terfokus pada kebutuhan saat ini daripada kebutuhan
besok, seminggu lagi atau sebulan lagi. Lebih baik melakukan hal yang sederhana
dan mengembangkannya besok jika diperlukan.
3. Feedback (Masukan)
Hal
ini diperlukan untuk mengetahui kemajuan dari proses dan kualitas dari aplikasi
yang dibangun. Informasi ini harus dikumpulkan setiap interval waktu yang
singkat secara konsisten. Ini dimaksudkan agar hal-hal yang menjadi masalah
dalam proses pengembangan dapat diketahui sedini mungkin. Setiap feed back
ditanggapi dengan melakukan tes, unit test atau system integration dan jangan
menunda karena biaya akan membengkak (uang, tenaga, waktu).
4. Courage
(Keberanian)
Berani
mencoba ide baru. Berani mengerjakan kembali dan setiap kali kesalahan
ditemukan, langsung diperbaiki. Contoh dari courage adalah komitmen untuk
selalu melakukan design dan coding untuk saat ini dan bukan untuk esok. Ketika
ada kode yang terlalu rumit, sulit dibaca dan dipahami, tidak sesuai dengan
kemauan pelanggan, dll maka seharusnya kode program seperti itu di refactor
(kalau perlu dibangun ulang). Hal ini menjadikan pengembang merasa nyaman
dengan refactoring program ketika diperlukan.
5. Respect
(Menghormati)
Pentingnya
respect terhadap anggota team lainnya karena dengan siklus pendek dan integrasi
continue, programmer tidak boleh melakukan perubahan yang dapat merusak
kompilasi dan menyebabkan keberadaan unit uji gagal atau memperlambat kerja
team. Respects tiap individu akan selalu menghasilkan kualitas tinggi.
Keuntungan XP:
-
Menjalin komunikasi yang baik dengan client.
-
Meningkatkan komunikasi dan
sifat saling menghargai antar developer.
Kerugian XP:
-
Developer harus selalu siap dengan perubahan karena perubahan akan
selalu diterima.
-
Tidak bisa membuat kode yang detail di awal (prinsip simplicity
dan juga anjuran untuk melakukan apa yang diperlukan hari itu juga).
b. Angile Modeling
Agile mempunyai pengertian,
bahwa secara aktif dan berkesinambungan, antara pengembang dengan pelanggan
harus senantiasa menjalin kerjasama dan komunikasi dengan baik.
Salah
satu ciri dari Agile Software Development adalah tim yang tanggap terhadap
perubahan. Karena perubahan adalah hal yang utama dalam pembangunan software:
perubahan kebutuhan software, perubahan anggota tim, perubahan teknologi dll.
Selain itu Agile Software Development juga melihat pentingnya komunikasi antara
anggota tim, antara orang-orang teknis dan businessman, antara developer dan
managernya. Ciri lain adalah klien menjadi bagian dari tim pembangun software.
Ciri-ciri ini didukung oleh 12 prinsip yang ditetapkan oleh Agile Alliance.
Menurut Agile Alliance, 12 prinsip ini adalah bagi mereka
yang ingin berhasil dalam penerapan Agile Software Development:
1. kepuasan klien adalah prioritas utama dengan menghasilkan
produk lebih awal dan terus menerus
2. menerima perubahan kebutuhan,
sekalipun diakhir pengembangan.
3. Penyerahan hasil/software dalam
hitungan waktu dua minggu sampai dua bulan.
4. Bagian bisnis dan pembangun
kerja sama tiap hari selama proyek berlangsung
5. Membangun proyek dilingkungan orang-orang yang
bermotivasi tinggi yang bekerja dalam lingkungan yang mendukun dan yang dipercaya
untuk dapat menyelesaikan proyek.
6. Komunikasi dengan berhadapan
langsung adalah komunikasi yang efektif dan efisien
7. Software yang berfungsi
adalah ukuran utama dari kemajuan proyek
8. dukungan yang stabil dari sponsor, pembangun, dan
pengguna diperlukan untuk menjaga perkembangan yang berkesinambungan
9. perhatian kepada kehebatan
teknis dan desain yang bagus meningkatkan sifat agile
10. kesederhanaan penting
11. arsitektur, kebutuhan dan desain yang bagus muncuk dari
tim yang mengatur dirinya sendiri
12. secara periodik tim evaluasi diri dan mencari cara untuk
lebih efektif dan segera melakukannya.
Kedua belas prinsip tersebut menjadi suatu dasar bagi
model-model proses yang punya sifat agile.
Dengan prinsip-prinsip tersebur Agile Process Model berusaha
untuk menyiasati 3 asumsi penting tentang proyek software pada umumnya:
1. kebutuhan software sulit diprediksi dari awal dan selalu
akan berubah. Selain itu, prioritas klien juga sering berubah seiring
berjalannya proyek.
2. Desain dan pembangunan sering tumpang tindih. Sulit
diperkirakan seberapa jauh desain yang diperlukan sebelum pembangunan.
3.
Analisis, desain, pembangunan dan testing tidak dapat diperkirakan seperti yang
diinginkan.
Berikut ini adalah
model-model proses yang termasuk agile process model :
1.
XP(Extreme
Programming)
2.
Adaptive
Software Development (ASD)
3.
Dynamic
Systems Development Method
4.
SCRUM
c. Scrum
Scrum merupakan suatu kerangka kerja. Jadi, bukannya menyediakan deskripsi
rinci tentang bagaimana segala sesuatu yang harus dilakukan pada proyek seperti
diserahkan kepada tim pengembangan perangkat lunak pada umumnya. Hal ini
dilakukan supaya tim akan tahu bagaimana cara terbaik untuk memecahkan
masalah yang mereka disajikan. Ada 3 elemen organisasi utama pada scrum
yaitu product owner, Scrum master, dan the Scrum team. Scrum Master dapat dianggap
sebagai pelatih bagi tim, membantu anggota tim menggunakan kerangka Scrum untuk
tampil di tingkat tertinggi. Product Owner mewakili
bisnis, pelanggan atau pengguna dan memandu tim ke arah pegembangan produk yang
tepat. Sedangkan The Scrum Team merupakan grup pengembang kecil biasanya
terdiri dari 5-9 orang. Untuk projek yang sangat besar, pekerjaan biasanya
dibagi dan didelegasikan ke grup-grup kecil. Jika sangat dibutuhkan the scrum
master juga dapat ikut membantu dalam koordinasi team.
Scrum
tepat digunakan saat kondisi:
§ Keperluan
berubah dengan cepat
§ Tim
programmer sedikit, yaitu 5-9 orang
§ Pelanggan
tidak terlalu paham dengan apa yang diinginkan
Scrum
memiliki prinsip yaitu:
§ Ukuran
tim yang kecil melancarkan komunikasi, mengurangi biaya, dan memberdayakan satu
sama lainProses dapat beradaptasi terhadap perubahan teknis dan bisnis
§ Proses
menghasilkan beberapa software increment
§ 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
Kelebihan
Scrum antara lain:
§ Keperluan
berubah dengan cepat
§ Tim
berukuran kecil sehingga melancarkan komunikasi, mengurangi biaya dan
memberdayakan satu sama lain
§ Pekerjaan
terbagi-bagi sehingga dapat diselesaikan dengan cepat
§ Dokumentasi
dan pengujian terus menerus dilakukan setelah software dibangun
§ Proses
Scrum mampu menyatakan bahwa produk selesai kapanpun diperlukan
Kelemahan
Scrum antara lain:
Developer harus
selalu siap dengan perubahan karena perubahan akan selalu diterima.
Sumber :
http://searchsoftwarequality.techtarget.com/tip/Waterfall-or-Agile-Differences-between-predictive-and-adaptive-software-methodologies by David W. Johnson "DJ"
Systems Analysis and
Design in a Changing World, 4th Edition
Umi Proboyekti, Bahan Ajar Rekayasa
Perangkat Lunak Agile Software Development, pdf.
http://dhiekalantana.blog.unas.ac.id/2012/10/perbandingan-up-xp-scrum-agile/


Tidak ada komentar:
Posting Komentar