Program komputer bila dieksekusi memberikan fungsi dan unjuk kerja sesuai yang diinginkan
Struktur data yang memungkinkan program memanipulasi informasi secara proporsional
Dokumen yang menggambarkan operasi dan kegunaan program
Sebuah Produk › PL memberikan kemampuan komputasi
kepada perangkat keras › Information transformer
Sarana untuk menghasilkan produk › Basis kontrol sistem komputer (OS)
› Komunikasi informasi (network) › Software tools
Dibangun dan dikembangkan dengan proses rekayasa (eingeneering), bukan hasil manufaktur Tidak dapat kedaluarsa (wear out) -> grafik perangkat keras Dibuat secara custom built
Aplikasi Perangkat lunak: 1. Perangkat lunak sistem Program untuk melayani program lain Banyak berinteraksi dengan perangkat keras kompiler, editor, utilitas pengatur file, komponen sistem operasi, driver 2. Perangkat lunak real-time Memonitor, menganalisa, mengendalikan sebuah kejadian dunia nyata Waktu tanggap sampai milidetik
3. Perangkat lunak bisnis Pemrosesan informasi bisnis (penggajian, penjualan, persediaan barang dsb) Kadang terpadu dalam satu SIM (Sistem Informasi Manajemen)
4. Perangkat lunak teknik dan ilmu pengetahuan Memakai algoritma number crunching Astronomi, vulkanologi, analisis otomotif, biologi molekuler 5. Perangkat lunak komputer personal Pengolah kata, multimedia, manajemen database
6. Embeded software Ada dalam ROM Mengontrol hasil serta sistem untuk keperluan konsumen dan pasar industri keypad kontrol microwave, fungsi digital automobil 7. Perangkat lunak kecerdasan buatan Memakai algoritma non numeris
Sistem pakar, jaringan syaraf tiruan, pengenalan pola bentuk
Ciri penting komponen pl Reusability BERISI ALGORITMA
BERISI ALGORITMA & STRUKTUR DATA
SUBROUTINE
OBJECT/ CLASS
Ukuran kualitas perangkat lunak : • kegunaan, yaitu pemenuhan terhadap kebutuhan
pengguna • keandalan, yaitu kemampuan melaksanakan fungsi yang diinginkan • kejelasan, yaitu penulisan program dilakukan secara jelas dan mudah dimengerti • efisiensi, terutama dalam waktu eksekusi dan penggunaan memori
Tiga pihak yang terkait dengan pengembangan perangkat lunak : 1. Manajemen - Mengatur anggaran - Menjaga jadwal dari keterlambatan
- Meningkatkan kualitas 2. Pengembang / praktisi/programmer - Mengembangkan perangkat lunak 3. Pelanggan - pihak yang ingin perangkat lunak dikembangkan
Mitos perangkat lunak : asumsi-asumsi yang kebenarannya tidak dapat dipertanggungjawabkan Pihak manajemen : Mitos : - Buku panduan memenuhi semua keingintahuan staf (pengembang) - Pengembang butuh peralatan baru & modern - Bila terlambat, tambah programmer Kenyataan : - Buku panduan tak disadari keberadaannya, tidak lengkap, tidak digunakan, tidak sesuai kebutuhan - Penguasaan tools lebih penting dari hardware/software - Tambah programmer semakin lambat
Pihak pengembang : Mitos : - Program berfungsi, pekerjaan selesai - Kualitas hanya bisa diketahui setelah program jalan - Yang diserahkan ke user adalah program Kenyataan : - 50 – 70 % usaha pengembangan terus dilakukan sampai program diserahkan ke user - Kualitas dapat dijaga sejak perangkat lunak dikembangkan - yang diserahkan konfigurasi & dokumentasi perangkat lunak
Pihak pelanggan : Mitos : - Tujuan sistem secara umum cukup untuk membuat perangkat lunak,rinciannya dapat menyusul - Perangkat lunak fleksibel, perubahan kebutuhan mudah diakomodasi Kenyataan : - Rincian kebutuhan (fungsi, antarmuka, kriteria validasi, batasan rancangan dsb) sangat penting dan hanya bisa diperoleh dengan komunikasi yang intensif - Dampak sangat tergantung pada tahap mana perubahan terjadi
Rekayasa perangkat lunak (RPL) disiplin manajerial dan teknis berkaitan dengan pembuatan dan pemeliharaan produk perangkat lunak secara sistematis, termasuk pengembangan dan modifikasinya, dilakukan pada waktu yang tepat dan dengan mempertimbangkan faktor biaya. Tujuan RPL : hasilkan produk yang handal, efisien dan ekonomis
Diagram alir pengembangan produk pl KEBUTUHAN USER
BENTUK RANCANGAN
BAHASA KOMPUTER
KODE MESIN
Dua macam produk perangkat lunak Produk yang dikembangkan untuk dijual kepada publik
GENERIK Produk yang dikembangkan khusus untuk sebuah perusahaan SPESIFIK
Faktor penentu kualitas perangkat lunak : Kemampuan programer Komunikasi Team Tingkat teknologi Ketrampilan programer Kemampuan manajemen Pemahaman permasalahan
Ciri perangkat lunak yang direkayasa dengan baik : mudah dirawat
dilengkapi dokumentasi perubahan dapat dilakukan dengan biaya minimum dapat diandalkan bekerja sesuai yang diharapkan kegagalan fungsi hanya jika keluar dari spesifikasinya dibuat sesuai tingkat kemampuan pemakai mempunyai antar muka pemakai yang baik bekerja efisien