Catatan Perkuliahan: Software Engineering
Tujuan Pembelajaran
- Memahami kebutuhan perangkat lunak.
- Memahami definisi rekayasa perangkat lunak.
- Memahami stakeholder dalam software engineering.
- Memahami kualitas perangkat lunak.
Karakteristik Perangkat Lunak
- Perangkat Lunak: Tidak dapat diindra secara fisik.
- Mudah Direproduksi: Mudah diproduksi ulang dibandingkan hardware.
- Intensif Sumber Daya Manusia: Butuh kreativitas manusia, sulit diautomasi.
Keuntungan dan Tantangan
- Keuntungan: Mudah dimodifikasi, tidak kedaluwarsa secara perangkat.
- Tantangan: Kemungkinan kesalahan sulit dideteksi.
Krisis Perangkat Lunak
- Permintaan yang tinggi memerlukan antisipasi lebih baik dalam merekayasa perangkat lunak.
Tipe-tipe Perangkat Lunak
- Custom Software: Dibuat khusus untuk kebutuhan spesifik.
- Commercial Off-the-Shelf (COTS): Dibuat untuk pasar umum.
- Embedded Software: Ditentukan dalam perangkat keras.
- Real-time Software: Mengelola data secara langsung dan instan.
- Data Processing Software: Mengolah dan memanipulasi data.
Definisi Rekayasa Perangkat Lunak
- Proses memecahkan masalah pelanggan melalui pengembangan sistem perangkat lunak yang sistematis.
Profesi Software Engineer
- Diperkenalkan pada tahun 1968.
- Memerlukan lisensi dan praktik etis.
Stakeholders dalam Software Engineering
- Pengguna
- Pelanggan
- Pengembang Perangkat Lunak
- Manajer Pengembangan
Kualitas Perangkat Lunak
- Usability: Mudah dipelajari dan digunakan.
- Efficiency: Efisien dalam penggunaan sumber daya.
- Reliability: Andal dalam jangka waktu tertentu.
- Maintainability: Mudah dirawat dan dimodifikasi.
Konflik Kualitas Perangkat Lunak
- Efisiensi vs Daya Tahan
- Kemudahan Penggunaan vs Efisiensi
Optimasi dan Proyek Perangkat Lunak
- Optimasi: Menentukan aspek apa yang perlu dioptimalkan.
- Proyek: Evolusi, perawatan, atau pengembangan baru.
Aktivitas Umum Proyek Perangkat Lunak
- Analisis domain
- Desain sistem
- Implementasi
- Pengujian dan inspeksi
- Deployment dan manajemen
Ini adalah gambaran umum dari materi yang dibahas dalam kuliah ini mengenai rekayasa perangkat lunak dan berbagai aspeknya. Materi ini mengharapkan mahasiswa dapat memahami konsep dasar rekayasa perangkat lunak, tipe-tipe software, dan tantangan yang dihadapi dalam industri ini.