Rekayasa Perangkat Lunak (Lanjut) Pendahuluan
RPL adalah… Pendekatan sistematis untuk pengembangan software Disiplin ilmu yang berhubungan dengan segala aspek pembuatan software (R. S. Pressman, "Software Engineering: A Practitioner's Approach (5th Ed.)", Mc Graw-Hill, 2001.) Metode dan teknik yang digunakan untuk mengembangkan dan merawat software (Software Engineering: Methods and Management,Pfleeger, 1990)
Permasalahan yang berhubungan dengan RPL Bagaimana cara untuk memastikan kualitas dari PL yang dikembangkan? Bagaimana mengatasi tambahan kebutuhan dengan tetap mengontrol budget? Bagaimana cara menghindari pemborosan waktu?
Pentingnya RPL RPL memberikan proses yang terstruktur dan mudah dipahami untuk pengembangan sistem RPL menjadikan sistem yang dikembangkan mudah diubah dan dimaintain Mengembangkan software dan sistem yang tangguh Memudahkan pengaturan dan pengulangan setiap proses yang diperlukan untuk membuat sistem berbasis komputer
Tujuan Perkuliahan Memberikan pemahaman terhadap Pemodelan yang berorientasi objek Rekayasa kebutuhan dan desain Cara untuk memastikan kualitas sistem berbasis komputer
Kontrak Kuliah
Topik Analisis desain berbasis objek Rekayasa kebutuhan Konsep OOP UML Use Case Diagram Class Diagram Activity Diagram Rekayasa kebutuhan Kebutuhan Fungsional Kebutuhan Non Fungsional
Pola-pola desain Keamanan Desain sistem Pola-pola kemananan Kriteria umum kemanan
INTRO
3 Fase umum dalam pengembangan perangkat lunak Definition Phase (Fase Definisi) Development Phase (Fase Pengembangan) Maintenance Phase (Fase pemeliharaan) Umbrella activities
Fase Definisi Perencanaan proyek Analisis sistem Mengalokasikan sumber daya, mengestimasi biaya, menentukan job desc, dan penjadwalan Analisis sistem Mengalokasikan sumber daya sistem kepada hardware, software dan user Pendefenisian dan analisis kebutuhan Domain aplikasi, fungsionalitas dan performa yang dibutuhkan, user interface
Fase Development Desain software Coding Integration User interface, high level design, detailed design Coding Melakukan pemograman untuk setiap modul, testing per unit Integration Mengkombinasikan modul, pengujian sistem
Maintenance Correction Adaptation Enhancement Prevention Memperbaiki kesalahan software Adaptation Memfasilitasi perubahan kebutuhan Ex: karena hardware baru, atau peraturan baru Enhancement Menambah fungsionalitas Prevention Agar mudah dimaintain
Proses Pengembangan Perangkat lunak WaterFall
Prototype
RAD
Incremental Model
Spiral
Umbrella Activities Reviews Dokumentasi Kontrol Versi Menguji kualitas Dokumentasi Mempermudah maintain Kontrol Versi Mencatat perubahan Manajemen Konfigurasi Mengintegrasikan sejumlah komponen
Kesulitan dalam pengembangan PL Komunikasi Antara customer dan pengembang Kurangnya pemahaman terhadap permasalahan adalah salah satu penyebab gagalnya sebuah proyek software Sesama tim pengembang Semakin banyak anggota=semakin banyak jalur komunikasi
Kesulitan dalam pengembangan PL Project characteristics Perubahan kebutuhan=biaya yang lebih besar Konfigurasi hardware dan software Kebutuhan thd keamanan Kebutuhan thd data real time Kebutuhan terhadap kehandalan system
Kesulitan dalam pengembangan PL Karakateristik anggota tim Kemampuan Pengalaman Kemampuan berkomunikasi Kerjasama dengan anggota tim yang lain Pelatihan Fasilitas dan sumber daya Identifikasi Akuisisi
Kesulitan dalam pengembangan PL Manajemen Tujuan yang realistis Estimasi biaya Penjadwalan Alokasi sumber daya Kualitas Kontrol versi Kontrak