rekayasa perangkat lunak

35
Pertemuan 8 dan 9

Upload: lihua

Post on 31-Jan-2016

129 views

Category:

Documents


6 download

DESCRIPTION

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 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Rekayasa Perangkat Lunak

Pertemuan 8 dan 9

Page 2: Rekayasa Perangkat Lunak

Tujuan PerkuliahanUntuk 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

programmingmenjelaskan peran prototype dalam proses

software

Page 3: Rekayasa Perangkat Lunak

TopikKeterkaiatan RPL dengan Ilmu lainMethod AgileMethod Prototipe

Page 4: Rekayasa Perangkat Lunak

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 metode-metode 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

Page 5: Rekayasa Perangkat Lunak

Perkembangan RPLTahun 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

Page 6: Rekayasa Perangkat Lunak

Model Pengembangan RPLWaterfallIncremental Prototyping ModelSpiral ModelRational Unified Process (RUP)Extreme Programming (XP)

Page 7: Rekayasa Perangkat Lunak

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.

Page 8: Rekayasa Perangkat Lunak

Ilustrasi Model RAD

Page 9: Rekayasa Perangkat Lunak

DefenisiPemodelan 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

Page 10: Rekayasa Perangkat Lunak

Kelemahan RADUntuk 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.

Page 11: Rekayasa Perangkat Lunak

Kriteria Proyek RADAnggota tim sudah berpengalaman

mengembangkan PL yang sejenis.Pengembangan sudah memiliki komponen-

komponen sistem yg bisa digunakan kembali dalam proyek tersebut.

Page 12: Rekayasa Perangkat Lunak

Pengembangan Model RADAgile 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.

Page 13: Rekayasa Perangkat Lunak

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

Page 14: Rekayasa Perangkat Lunak

Extreme ProgrammingMengizinkan 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.

Page 15: Rekayasa Perangkat Lunak

Extreme Programming

Page 16: Rekayasa Perangkat Lunak

Keunggulan Extreme ProgrammingMenjalin 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)

Page 17: Rekayasa Perangkat Lunak

kelemahanTidak 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

Page 18: Rekayasa Perangkat Lunak

Pertemuan 9

Page 19: Rekayasa Perangkat Lunak

Model IteratifMengombinasikan 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)

Page 20: Rekayasa Perangkat Lunak

Model Iteratif

Page 21: Rekayasa Perangkat Lunak

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

Page 22: Rekayasa Perangkat Lunak

Kelebihan dan KekuranganKebutuhan pengguna / customer dipenuhi pada setiap

bagian yang selesai terlebih dahuluBagian yang selesai terlebih dahulu menjadi prototipe Resiko rendahBagian yang punya prioritas tertinggi dapat dites secara

intensivePermasalahanBatasan proses tidak jelasSistem kurang terstrukturKemampuan aplikasiUntuk sistem dengan interaksi skala kecil dan mediumUntuk antarmuka userUntuk sistem dengan masa penggunaan pendek

Page 23: Rekayasa Perangkat Lunak
Page 24: Rekayasa Perangkat Lunak

PrototipeMembuat 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

Page 25: Rekayasa Perangkat Lunak

Mock-upSesuatu yang digunakan sebagai model

desain yang digunakan untuk mengajar, demontrasi, evaluasi desain, promosi, atau keperluan lain.

Page 26: Rekayasa Perangkat Lunak

Kelemahan PrototipePelanggan 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

Page 27: Rekayasa Perangkat Lunak

KeuntunganCocok 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 baikKesesuaian sistem yang lebih dekat dengan

kebutuhan user.Kualitas desain yang lebih baikKeterpeliharaan yang lebih baikUsaha pengembangan yang lebih ringan

Page 28: Rekayasa Perangkat Lunak
Page 29: Rekayasa Perangkat Lunak

Model SpiralMendefinisikan kebutuhan dengan sedetail

mungkinPembuatan desain untuk sistem yang baruProses direpresentasikan dalam aktivitas

berbentuk spiralSetiap perulangan (loop) dalam spiral

merepresentasikan sebuah fase dalam prosesFase-fase tidak fix (spesikasi -design loop)

dipilih sesuai dengan yang diperlukanResiko selalu secara transparan dimonitor

dan dipecahkan selama proses berlangsung

Page 30: Rekayasa Perangkat Lunak

Model Spiral

Page 31: Rekayasa Perangkat Lunak

Interface GenerationBanyak 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

Page 32: Rekayasa Perangkat Lunak

Visual ProgrammingBahasa pemrograman yang digunakan untuk mengembangkan prototipe dengan mengembangkan antarmuka ( VB )

Banyak library component yang digunakan untuk mendukung sistem

Page 33: Rekayasa Perangkat Lunak

Visual programming with reuse

Page 34: Rekayasa Perangkat Lunak

Permasalahan pada Visual Development

Sulit untuk berkoordinasi dengan teamKetergantungan dengan software dapat menimbulkan kesulitan untuk melakukan maintenance

Page 35: Rekayasa Perangkat Lunak

Soal LatihanApa 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?