430 likes | 960 Views
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
E N D
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 • bidangilmumanajemenmeliputiakuntansi, finansial, pemasaran, manajemenoperasi, ekonomi, analisiskuantitatif, manajemensumberdayamanusia, kebijakan, danstrategibisnis • bidangilmumatematikameliputialjabar linier, kalkulus, peluang, statistik, analisisnumerik, danmatematikadiskrit • bidangilmumanajemenproyekmeliputisemuahal yang berkaitandenganproyek, sepertiruanglingkupproyek, anggaran, tenagakerja, kualitas, manajemenresikodankeandalan, perbaikankualitas, danmetode-metodekuantitatif • bidangilmuergonomikamenyangkuthubungan ( interaksi) antarmanusiadengankomponen-komponen lain dalamsistemkomputer • bidangilmurekayasasistemmeliputiteorisistem, analisisbiaya-keuntungan, pemodelan, simulasi, proses, danoperasibisnis
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.
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.
Keunggulan Extreme Programming • Menjalinkomunikasi yang baikdenganklien. (Planning Phase) • 2. Menurunkanbiayapengembangan(Implementation Phase) • 3. Meningkatkankomunikasidansifatsalingmenghargaiantar developer. (Implementation Phase) • 4. XP merupkanmetodologi 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. Satu-satunya dokumentasi adalah dokumentasi awal yang dilakukan oleh user. http://www.agilemodeling.com/artifacts/userStory.htm
Model Iteratif 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)
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 selesaiterlebihdahulumenjadiprototipe • Resikorendah • Bagian yang punyaprioritastertinggidapatditessecara intensive Permasalahan • Batasanprosestidakjelas • Sistemkurangterstruktur Kemampuanaplikasi • Untuksistemdenganinteraksiskalakecildan medium • Untukantarmuka user • Untuksistemdenganmasapenggunaanpendek
Prototipe • Membuatsebuahcontohprototipeuntukmenunjukkankebutuhandandesainkepemakai • Harusadaversi yang dapatdijalankansebagaiprototipesebelumsistemdikembangkan (bisaberupacontohsistem lain) • Harusadaimplementasisistem yang dikembangkansebelumdibuatsebuahsistem 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 • Mendefinisikankebutuhandengansedetailmungkin • Pembuatandesainuntuksistem yang baru • Prosesdirepresentasikandalamaktivitasberbentuk spiral • Setiapperulangan (loop) dalam spiral merepresentasikansebuahfasedalamproses • Fase-fasetidak fix (spesikasi -design loop) dipilihsesuaidengan yang diperlukan • Resikoselalusecaratransparandimonitordandipecahkanselamaprosesberlangsung
Interface Generation • Banyak aplikasi yang berdasarkan seputar form yang kompleks, dan mengembangkan form tersebut secara manual sangat memakan waktu. • Environment RAD menyediakan dukungan untuk men-generate 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
Permasalahan pada Visual Development • Sulit untuk berkoordinasi dengan team • Ketergantungan dengan software dapatmenimbulkan kesulitan untuk melakukan maintenance
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 batasan-batasan/ruang lingkup/spesifikasi perangkat lunak secara umum. • Mengapa metode RAD bisa memberikan hasil yang lebih cepat dibandingkan metode waterfall?