Rekayasa Perangkat Lunak

Download Report

Transcript Rekayasa Perangkat Lunak

Pertemuan 8 dan 9
Tujuan Perkuliahan
 Untuk menjelaskan bagaimana pengembangan proses
bertingkat ( incremental development ) memberikan hasil
yang cepat dalam pembuatan perangkat lunak
 Membahas esensi dari metode agile development
 Menjelaskan prinsip dan praktek dari extreme
programming
 menjelaskan peran prototype dalam proses software
Topik
 Keterkaiatan RPL dengan Ilmu lain
 Method Agile
 Method Prototipe
RPL dengan Ilmu lain





bidang
ilmu
manajemen
meliputi
akuntansi, finansial, pemasaran, manajemen
operasi,
ekonomi,
analisis
kuantitatif,
manajemen sumber daya manusia, kebijakan,
dan strategi bisnis
bidang ilmu matematika meliputi aljabar
linier, kalkulus, peluang, statistik, analisis
numerik, dan matematika diskrit
bidang ilmu manajemen proyek meliputi
semua hal yang berkaitan dengan proyek,
seperti ruang lingkup proyek, anggaran,
tenaga kerja, kualitas, manajemen resiko dan
keandalan, perbaikan kualitas, dan metodemetode kuantitatif
bidang ilmu ergonomika menyangkut
hubungan ( interaksi) antar manusia dengan
komponen-komponen lain dalam sistem
komputer
bidang ilmu rekayasa sistem meliputi teori
sistem, analisis biaya-keuntungan, pemodelan,
simulasi, proses, dan operasi bisnis
Perkembangan RPL
Tahun
Kejadian
1940an
Komputer pertama yang membolehkan pengguna menulis kode
program langsung
1950an
Generasi awal interpreter dan bahasa macro Generasi pertama
compiler
1960an
Generasi
kedua
compiler
Komputer
mainframe
mulai
dikomersialkan Pengembangan perangkat lunak pesanan
Konsep Software Engineering mulai digunakan
1970an
Perangkat
pengembang
perangkat
lunak
Perangkat
minicomputer komersial
1980an
Perangkat Komputer Personal (PC) komersial Peningkatan
permintaan perangkat lunak
1990an
Pemrograman berorientasi obyek (OOP) Agile Process dan
Extreme Programming Peningkatan drastis kapasitas memori
Peningkatan penggunaan internet
2000an
Platform interpreter modern (Java, .Net, PHP, dll) Outsourcing
Model Pengembangan RPL
 Waterfall
 Incremental
 Prototyping Model
 Spiral Model
 Rational Unified Process (RUP)
 Extreme Programming (XP)
Model Rapid Aplication Development (RAD)
 Adalah model proses pengembangan perangkat lunak
yang bersifat inkremental terutama untuk waktu
pengerjaan yang pendek. Model RAD adalah adaptasi
dari waterfall model versi kecepatan tinggi.
Cat:
Model RAD membagi tim pengembangan menjadi
beberapa tim untuk mengerjakan beberapa komponen
masing-masing tim pengerjaan dapat dilakukan secara
pararel.
Ilustrasi Model RAD
Defenisi
 Pemodelan Bisnis yaitu pemodelan yang dilakukan untuk
memodelkan fungsi bisnis untuk mengetahui informasi apa
yang terkait proses bisnis, informasi apa saja yang harus dibuat,
siapa yang membuat informasi itu, proses apa saja yang terkait
informasi itu.
 Pemodelan data yaitu memodelkan data apa saja yang
dibutuhkan berdasarkan pemodelan bisnis dan mendenisikan
atribut-atributnya beserta relasinya dengan data-data yang lain.
 Pemodelan proses yaitu mengimplementasikan fungsi bisnis
yang sudah didefinisikan terkait dengan pendefenisi an data.
 Pembuatan aplikasi yaitu mengimplementasikan pemodelan
proses dan data menjadi program
Kelemahan RAD
 Untuk pembuatan sistem perangkat lunak dengan skala
besar makan RAD akan memerlukan sumber daya manusia
yang cukup besar.
 Jika tidak ada persetujuan untuk pengembangan PL secara
dengan cepat(Rapid) makan proyek dengan model ini akan
gagal.
 Jika sistem PL yang akan dibuat tidak bisa dimodeulkan
(dibagi-bagi menjadi beberapa komponen) maka model
RAD tidak dapat digunakan.
 Model RAD tidak cocok digunakan untuk sistem PL yang
memiliki resiko teknis tinggi, mis menggunakan teknologi
baru yng belum banyak dikenal.
Kriteria Proyek RAD
 Anggota tim sudah berpengalaman mengembangkan
PL yang sejenis.
 Pengembangan sudah memiliki komponen-komponen
sistem yg bisa digunakan kembali dalam proyek
tersebut.
Pengembangan Model RAD
 Agile Software (Pengembangan Perangkat Lunak
“Tangkas”)
dimana interaksi antar anggota tim dan pelanggan
dianggap sebagai hal yang penting lebih dari
perangkat ataupun proses pengembangan PL. Hal ini
ditujukan agar pengembangan bersifat sangat tangkas
dalam menengani perubahan yang terjadi. Contoh
pengembangan perangkat lunak “Tangkas” adalah
scrum dan pemrograman ekstrim.
Pengembangan Scrum (semua Tim)
 Semua tim terlibat didalam prioyek secara overlapping
(tumpang tindih) sesuai dengan kebutuhan sumber
daya pada proyek agar dapat meningkatkan kecepatan
pengembangan dan fleksibilitas. Peran tim sudah
ditentukan
Extreme Programming
 Mengizinkan
tim
pengembangan
untuk
berkomunikasi
langsung
dengan
pelanggan
(customer) atau user maupun sesama pembuat
program.
 Ciri khas model ini adalah komunikasi yang dilakukan
setiap hari atau setiap ditemukan hal-hal yang kurang
jelas. Model sangat mengandalkan adanya umpan
balik sehingga dibutuhkan anggota-anggota tim yang
berkualitas.
Extreme Programming
Keunggulan Extreme Programming
 Menjalin komunikasi yang baik dengan klien.




(Planning Phase)
2. Menurunkan biaya pengembangan (Implementation
Phase)
3. Meningkatkan komunikasi dan sifat saling
menghargai antar developer. (Implementation Phase)
4. XP merupkan metodologi yang semi formal.
(Planning Phase)
5. Developer harus selalu siap dengan perubahan
karena perubahan akan selalu diterima, atau dengan
kata lain fleksibel. (Maintenance Phase)
kelemahan
 Tidak bisa membuat kode yang detail di awal (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 dokumentasi
formal yang dibuat selama pengembangan. Satusatunya dokumentasi adalah dokumentasi awal yang
dilakukan oleh user.
http://www.agilemodeling.com/artifacts/userStory.htm
Pertemuan 9
Model Iteratif
 Mengombinasikan proses-proses pada model air
terjun dan iteratif pada model prototipe. Model
inkremental akan menghasilkan versi-versi perangkat
lunak yang sudah mengalami penambahan fungsi
untuk setiap pertambahannya(inkremen/increment)
Model Iteratif
Incremental (Defenisi)
 Pengembangan dibagi menjadi bagian2 yang dapat
berkembang secara bertambah (increments)
 Setiap bagian harus memenuhi fungsi-fungsi yang
diperlukan
 Kebutuhan pengguna diprioritaskan dan prioritas
tertinggi didahulukan dalam pengembangan
 Begitu dimulai, kebutuhan yang telah tertangani akan
dibekukan sehingga memberikan tempat bagi
kebutuhan lain untuk dapat berevolusi
Kelebihan dan Kekurangan
 Kebutuhan pengguna / customer dipenuhi pada setiap bagian
yang selesai terlebih dahulu
 Bagian yang selesai terlebih dahulu menjadi prototipe
 Resiko rendah
 Bagian yang punya prioritas tertinggi dapat dites secara intensive
Permasalahan
 Batasan proses tidak jelas
 Sistem kurang terstruktur
Kemampuan aplikasi
 Untuk sistem dengan interaksi skala kecil dan medium
 Untuk antarmuka user
 Untuk sistem dengan masa penggunaan pendek
Prototipe
 Membuat sebuah contoh
prototipe untuk menunjukkan
kebutuhan dan desain ke
pemakai
 Harus ada versi yang dapat
dijalankan sebagai prototipe
sebelum sistem dikembangkan
(bisa berupa contoh sistem
lain)
 Harus ada implementasi
sistem yang dikembangkan
sebelum dibuat sebuah sistem
final
Mock-up
 Sesuatu yang digunakan sebagai model desain yang
digunakan untuk mengajar, demontrasi, evaluasi
desain, promosi, atau keperluan lain.
Kelemahan Prototipe
 Pelanggan dapat sering mengubah-ubah menambah-
tambah spesifikasi kebutuhan karena menganggap aplikasi
seudah dengan cepat dikembangkan, karena adanya iterasi
ini dapat menyebabkan pengembangan banyak mengalah
dengan pelanggan.
 Pengembangan lebih sering mengambil kompromi dengan
pelanggan untuk mendapatkan prototipe dengan waktu
yang cepat sehingga pengembangan lebih sering
melakukan segala cara(tanpa idealis) guna menghasilkan
prototipe untuk didemonstrasikan. Hal ini dapat
menyebakan kualitas PL kurang baik.
 Model prototipe kurang cocok untuk aplikasi dengan skala
besar
Keuntungan
 Cocok digunakan untuk menjabarkan kebutuhan
pelanggan secara lebih detail karena pelanggan sering
kali kesulitan menyampaikan kebutuhannya secara
detail tanpa melihat gambaran yang jelas.
 Kegunaan sistem yang lebih baik
 Kesesuaian sistem yang lebih dekat dengan kebutuhan
user.
 Kualitas desain yang lebih baik
 Keterpeliharaan yang lebih baik
 Usaha pengembangan yang lebih ringan
Model Spiral
 Mendefinisikan kebutuhan dengan sedetail mungkin
 Pembuatan desain untuk sistem yang baru
 Proses direpresentasikan dalam aktivitas berbentuk
spiral
 Setiap
perulangan
(loop)
dalam
spiral
merepresentasikan sebuah fase dalam proses
 Fase-fase tidak fix (spesikasi -design loop) dipilih
sesuai dengan yang diperlukan
 Resiko selalu secara transparan dimonitor dan
dipecahkan selama proses berlangsung
Model Spiral
Interface Generation
 Banyak aplikasi yang berdasarkan seputar form yang
kompleks, dan mengembangkan form tersebut secara
manual sangat memakan waktu.
 Environment RAD menyediakan dukungan untuk mengenerate interface seperti:
 Bentuk interaktif pembuatan form dengan menggunakan teknik
drag and drop
 Hubungan antar form dimana urutan dari tampilan form dapat
dispesifikasikan.
 Verifikasi form
Visual Programming
 Bahasa pemrograman yang digunakan untuk
mengembangkan prototipe dengan
mengembangkan antarmuka ( VB )
 Banyak library component yang digunakan untuk
mendukung sistem
Visual programming with reuse
Permasalahan pada Visual Development
 Sulit untuk berkoordinasi dengan team
 Ketergantungan
menimbulkan
maintenance
dengan
kesulitan
software
dapat
untuk
melakukan
Soal Latihan
 Apa resiko yang dihadapi jika pengembangan aplikasi
(RPL) tidak mengikuti tahapan-tahapan SDLC
 Mengapa waterfall model sebagai SDLC yang paling
sederhana dan hanya cocok digunakan untuk aplikasi
sekala kecil.
 Mengapa ketika menerapkan metode prototipe, pada
tahap awal harus benar-benar diperjelas batasanbatasan/ruang lingkup/spesifikasi perangkat lunak
secara umum.
 Mengapa metode RAD bisa memberikan hasil yang
lebih cepat dibandingkan metode waterfall?