Rekayasa perangkat lunak (rpl) SEMESTER PENDEK 2015/2016 Rekayasa perangkat lunak (rpl) Betha Nurina Sari,M.Kom
PERTEMUAN 3-4 Metodologi Pengembangan Perangkat Lunak
Pengembangan Perangkat Lunak Pengembangan perangkat lunak : proses membuat suatu perangkat lunak baru untuk menggantikan perangkat lunak lama secara keseluruhan atau memperbaiki perangkat lunak yang telah ada.
Metodologi pengembangan perangkat lunak suatu proses pengorganisasian kumpulan metode dan konvensi notasi untuk mengembangkan perangkat lunak. Suatu strategi pengembangan yang memadukan proses, metode, dan perangkat (tools).
Komponen metodologi pengembangan perangkat lunak Metode suatu cara pendekatan yang sistematik untuk mengembangkan PL. Metode ini mencakup Perencanaan proyek,analisis keperluan sistem dan PL, perancangan struktur data, prosedur algoritma, Coding, uji coba dan pemeliharaan. AlatBantu alat-alat bantu yang mendukung pengembangan PL. Seperti Context Diagram, Data Flow Diagram, Kamus Data, Use Case, Activity Diagram,dll. Prosedur urut-urutan pekerjaan dari metode dan alat bantu tersebut.
Proses Pengembangan Perangkat Lunak 1. Menentukan APA yang harus dikerjakan oleh perangkat lunak dalam satu rentang waktu tertentu. 2. Mendefinisikan BAGAIMANA perangkat lunak dibuat, mencakup arsitektur perangkat lunaknya, antar muka internal, algoritma, dan sebagainya. 3. Penerapan (penulisan program) dan pengujian unit-unit program. 4. Integrasi dan pengujian modul-modul program. 5. Validasi perangkat lunak secara keseluruhan (pengujian sistem).
SOFTWARE DEVELOPMENT LIFE CYCLE SDLC berfungsi untuk menggambarkan tahapan-tahapan utama dan langkah-langkah dari setiap tahapan yang secara garis besar terbagi dalam 5 kegiatan utama,yaitu investigasi, analisis, desain, implementasi dan perawatan.
Berbagai Model Proses PL Model Waterfall Model Linear Sequential Model Model Prototyping RAD (Rapid Application Development) Model Model Evolutionary - Model Incremental - Model Spiral - Component Assembly - Concurent Development V- Model
Model Waterfall
Model Waterfall (2) Definisi Kebutuhan Sistem Rancang Sistem Pembentukan kebutuhan Rancang Sistem Mengubah kebutuhan menjadi bentiuk karakteristik yang dimengerti PL Implementasi dan Unit Testing Penulisan Program Integrasi dan Sistem Testing Memeriksa Program, mencari kesalahan Operasi dan Perawatan Pemeliharaan sistem, menambahkan fungsi
Masalah Model Waterfall Jarang sekali proyek yang prosesnya bisa dilakukan secara sequential Sukar bagi customer untuk secara eksplisist mengemukakan semua kebutuhannya. Customer harus sabar Developer sering menunda pekerjaan. Anggota tim harus menunggu anggota lainnya menyelesaikan tugasnya.
Kekurangan Waterfall : 1.Seakan-akan masing-masing kegiatan berbeda, padahal saling berkaitan. 2.Error ditemukan terlambat, yaitu pada tahap implementasi atau maintenance. 3.Jika no 2 terjadi, maka biaya tambah mahal karena harus membuat ulang dari awal, seperti dokumentasi, design, coding, testing
Model Linear Sequential Model
Model Prototyping Paradigma Prototype Customer tidak bisa mendefinisikan input, proses, output yang diminta secara detail Developer menjadi tidak yakin terhadap PL yang dikembangkan (efisiensi algoritma, bentuk interaksi mesin dengan manusia,dst). Paradigma Prototype
Paradigma Prototyping
Tahapan Prototyping Pengumpulan kebutuhan dan Perbaikan (Awal) Quick Design Pembentukan Prototype Iterasi Evaluasi Pelanggan (Pengulangan) Perbaikan Prototype Produk PL (Akhir)
Macam Model Prototyping Evolutionary : dimulai dari model dikembangkan akhirnya dimanfaatkan Throw Away : hanya dibuat sebagai model untuk mencari bentuk yang diinginkan (cetak biru)
EVOLUTIONARY PROTOTYPE GUNAKAN PROTOTIPE BUAT TENTUKAN KEBUTUHAN EVALUASI TIDAK SESUAI SESUAI
THROWAWAY PROTOTYPE EVALUASI PROGRAM TENTUKAN KEBUTUHAN UJI BUAT GUNAKAN SISTEM UJI PROGRAM EVALUASI TIDAK SESUAI BUAT PROTOTIPE TENTUKAN KEBUTUHAN THROWAWAY PROTOTYPE
Masalah Model Prototyping Customer melihat prototipe tersebut sebagai versi dari software. Development membuat implemetasi yang kompromitas dengan tujuan untuk memperoleh prototipe pekerjaan secara cepat.
RAD (Rapid Application Development) Model Model RAD : adaptasi tingkat tinggi dari model Linear Sequential, sehingga tercapai pengembangan cepat/rapid yaitu 60-90 hari, dengan menggunakan pendekatan berbasis komponen. Pendekatan RAD model menekankan cakupan : 1. Pemodelan bisnis (Bussiness Modelling) 2. Pemodelan data (Data Modelling) 3. Pemodelan proses (Process Modelling) 4. Pembuatan aplikasi (Application generation) 5. Pengujian dan pergantian (Testing and turnover)
RAD (Rapid Application Development) Model
Evolutionary Model (Incremental)
Evolutionary Model (2) Spiral
Evolutionary Model (3) Component Assembly
Evolutionary Model (4) Concurent Development
V- Model
Software Re- Engineering (Reverse) - Restrukturisasi atau menulis ulang sebagian atau keseluruhan dari sistem yang telah ada tanpa merubah fungsionalitasnya. Kapan? - Ketika sebagian tetapi tidak semua sub sistem yang besar membutuhkan perawatan yang sering - Ketika PK dan PL sudah lama hampir tidak berfungsi
Software Re- Engineering Bagaimana? - Sistem bisa direstrukturisasi dan didokumentasi ulang untuk membuat menjadi mudah dalam perawatan Mengapa? - Mengurangi resiko PL yang baru dibangun membawa resiko yang tinggi - Mengurangi biaya Biaya untuk re-engineering sering lebih kecil dibanding membangun PL baru
Pembagian tugas tim pengembangan PL Manajer Manajer Proyek, Manajer Konfigurasi, Manajer Penjamin kualitas PL, dll Software Developer Analis Sistem, Desainer, Programmer, Inspektor PL, Pengontrol Perubahan Pendukung Staf admin, Humas, Pencatat teknis, Admin database, Admin Jaringan.
TUGAS Tentukan model pengembangan dalam merancang dan mengembangkan software yang sudah kelompok Anda rencanakan. Beri alasan mengapa memilih model itu ? Buat jadwal (timeline) dan pembagian tugas tim untuk pengembangan software yang sudah Anda rencanakan sebelumnya(sampai siap dipresentasikan pada 1 Agustus 2016) Dokumen dikumpulkan maksimal 11 Juli pukul 15.00 ke betha.nurina@staff.unsika.ac.id