Download - Software(Perangkat Lunak)
PowerPoint Presentation
Software(Perangkat Lunak)
By:
RIDWAN A. KAMBAU
Apa itu Software ?
Program komputer dan dokumentasi yang berhubungan.
Produk perangkat lunak dapat dikembangkan untuk pelanggan tertentu atau pasar umum.
Software adalah seperangkat item-item atau obyek yang membentuk suatu konfigurasi, dimana didalamnya ada:
Programs
Documents
data ...
Jenis Software (Market)
Software Generik
Perangkat lunak standar yang diproduksi oleh perusahaan pengembang dan dijual pada pasar terbuka ke siapapun yang bisa membelinya (Shrink-wrapped)
Software Pesanan (Customized)
Perangkat lunak yang dikembangkan khusus dan disesuaikan dengan kebutuhan pelanggan.
Jenis Software (Platform)
Software Sistem
Software Real-Time
Software Bisnis
Software Teknik dan Ilmu Pengetahuan
Software Tertanam (Embedded Software)
Software Komputer Personal
Software Kecerdasan Buatan
Software Mobile?
Jenis Software (Lisensi)
Proprietary Software
Open Source Software
Open Source Software
Software yang source codenya terbuka dan didistribusikan dalam suatu format lisensi yang memungkinkan pihak lain secara bebas memperbanyak dan memodifikasi source code (informasi) didalamnya
Hak cipta tetap ada, tapi lisensi memungkinkan orang lain bebas untuk menggunakan dan memodifikasi software tersebut.
Jenis lisensi open source software:
GNU General Public License (GPL)
Apache License
BSD license
MIT License
Mozilla Public License
Proprietary Software
Software yang source codenya tertutup dan didistribusikan dengan suatu format lisensi yang membatasi pihak lain untuk menggunakan, memperbanyak dan memodifikasi
Lisensi proprietary software memungkinkan orang lain menggunakan software yang kita buat dengan diikuti penyerahan royalti (uang) ke pemilik hak ciptanya
Shareware dan Freeware adalah proprietary software. Free for use belum tentu free for (redistribute) atau free for modify
Peranan Software -1-
Menggantikan peran manusia: Dengan otomasi terhadap suatu tugas atau proses.
Memperkuat peran manusia: Dengan membantu manusia mengerjakan suatu tugas atau proses dengan lebih baik dan tertata
Peranan Software -2-
Restrukturisasi Peran Manusia: Dengan melakukan perubahan-perubahan thd sekumpulan tugas atau proses.
Hiburan dan Permainan: Dengan menyajikan aplikasi interaktif hiburan yang semakin dekat dengan kenyataan
Konsep Peranan Software
Software dikembangkan karena ada kebutuhan (requirement) dari manusia untuk komputerisasi suatu proses konvensional
Software datang untuk memecahkan masalah dan memberi solusi bagi manusia
Software datang bukan untuk membuat masalah (baru)
Ada Kebutuhan akan KemudahanMembaca Data
Software Sebagai Solusi
Kualitas Software -1-
Kualitas Software -2-
Product (Diukur Berdasarkan Factor dan Criteria Produk)
Taxonomy McCall
ISO 9126
Process (Diukur dari Kematangan Development Process)
CMM, SPICE, BOOTSTRAP
ISO 9001
Mengukur Product (Hasil)
Efektif dan Efisien
Kok aplikasinya lambat banget yach?
PETUNJUK PEMAKAIAN: matikan seluruh program lain, karena program ini perlu memory 1GB untuk dapat dijalankan
Mengatur pemakaian resource (CPU, RAM dan harddisk) tersebut secara efektif dan efisien
Penggunaan algoritma pemrograman yang efektif dan efisien
Gunakan resolusi dan kualitas image, serta lakukan pemotongan (cropping) sesuai kebutuhan
Realibilitas
A: Pak, program ini kok sering hang ya?
B: Kenapa? Apa pesan errornya?
A: Gak tahu, nggak ada pesan error tuh ...
Program dikatakan reliable atau handal bila program dapat berjalan dengan baik, tidak mudah hang, crash atau berhenti pada saat pengoperasian
Kehandalan program juga dinilai dari seberapa jauh dapat tetap berjalan meskipun terjadi kesalahan pada pengoperasian (error tolerance ).
Maintainabilitas
Program disusun dengan memperhatikan algorithma, alur penyajian, dan pengorganisasian, sehingga mudah dalam pemeliharaan
Kode program tetap dibuat sederhana dan mudah dipahami meskipun menjalankan fungsi yang kompleks
Kode program harus bersifat modular dengan dokumentasi pada tiap bagian, sehingga siapa saja yang ingin memperbaiki program dapat dengan mudah melakukannya
Menerapkan standard pengkodean
Usabilitas
Usabilitas software diukur dengan menggunakan parameter seberapa mudah sebuah software digunakan (user-friendly)
Ketersediaan tooltip, help , icon, logo, tombol, dsb akan sangat membantu pengguna yang baru pertama kali menggunakan
Desain dan tata letak navigasi sangat membantu pengguna untuk memanfaatkan suatu software
Kompatibilitas
Software yang baik dapat dijalankan di berbagai platform dan versi yang beragam
Sistem operasi apapun (Microsoft Windows, Linux, Macintosh)
Versi manapun (Windows NT/XP/Vista, Linux Mandriva/Redhat/Debian).
Software yang baik harus bisa dijalankan di spesifikasi komputer yang paling rendah sekalipun
Dokumentasi
Ian Sommerville :Program komputer dan dokumentasi yang berhubungan
Perangkat lunak tidak hanya program komputer, tetapi juga termasuk dokumentasi yang berhubungan yang diperlukan untuk menjalankannya dengan benar
Dokumentasi multimedia pembelajaran: petunjuk instalasi (jelas, singkat, lengkap), trouble shooting (jelas dan terstruktur), desain program (jelas, menggambarkan alur kerja program).
Reusabilitas
Eric S. Raymond: Good programmers know what to write. Great ones know what to rewrite and reuse
Bagaimana kita mendesain sebuah source code (kode sumber), icon, logo, tombol dan sebagainya sehingga dengan mudah dapat digunakan kembali (reuse ) pada program multimedia pembelajaran lain
Contoh Pengukuran Product -1-
Dapat dipelihara (maintainable)
Dapat diandalkan (reliable)
Aman (Secure)
Efektif dan Efisien
Software game harus interaktif dan responsif
Software phone switching harus handal
Software ecommerce dan perbankan harus aman (secure)
Mengukur Proses (Pengembangan)
Level 1 Initial, tanpa prosedur dan planning, tidak konsisten
Level 2 Repeatable, ada manajemen, jaminan kualitas, prosedur, individual performance tanpa model formal
Level 3 Defined, proses terdefinisi, dan mengarah ke perbaikan proses secara kualitatif
Level 4 Managed, perbaikan dan prediksi proses secara kuantitatif
Level 5 Optimizing, memperbaiki proses secara berkesinambungan, inovatif, direncanakan, dianggarkan dan integral dalam proses organisasi
Capability Maturity Model (CMM), SEI
Tantangan Pengembangan Software
Kenapa begitu lama untuk menyelesaikan suatu software?
Kenapa biaya pembangunannya begitu tinggi?
Kenapa kita tidak dapat menemukan semua errors sebelum diserahkan kepada pelanggan?
Kenapa kita terus kesulitan mengukur progres dari software yang sedang dibangun?
Karakteristik Software
Software dibangun atau direkayasa, tidak diproduksi seperti barang.
Software tidak usang.
Software cukup kompleks.
Software adalah pembeda.
Software sesuatu yang disimpan sangat lama.
Kurva Kegagalan Hardware
Kurva Kegagalan Software
Mitos Software (Manajemen)
Mitos: Kenapa kita harus mengubah cara membangun software? Padahal kita sudah membangun software dengan cara tersebut selama 10 tahun?
Realitasnya: Permintaan akan produktivitas dan kualitas yang lebih bagus.
Mitos : Kita sudah memiliki semua standar dan prosedur?
Realitasnya: Apakah digunakan? Apakah kaum praktisi memperhatikannya? Apakah mencerminkan praktek pembangunan software modern? Apakah sudah lengkap?
Mitos Software (Manajemen)
Mitos: Kita memiliki tool pembangun software standar dan komputer-komputer terbaru.
Realitasnya: Bukan hanya PC terbaru. Software tools lebih penting daripada hardware
Mitos: Jika kita ketinggalan jadwal, tambahkan saja programmernya.
Realitasnya: penambahan orang justru memperlambat pembuatan software.
Mitos: Jika saya memutuskan meng-outsource proyek software ke pihak ketiga, Saya dapat bersantai...
Realitasnya: pertama perlu mengatur dan mengendalikan sofware tersebut.
Mitos Software (Pelanggan)
Mitos: Suatu general statement dari tujuan pembangunan software sudah cukup untuk mulai menulis code. Kita dapat mengisi detilnya kemudian.
Realitasnya: Buruknya pendefenisian awal adalah penyebab utama kegagalan pembangunan software.
Mitos: Perubahan dapat dengan mudah diakomodasi karena software sangat flexible
Reality: Pengaruh perubahan akan mempengaruhi waktu yang dibutuhkan.
Biaya Perubahan
Mitos Software (Praktisi)
Mitos: Sekali kita menulis program dan program berjalan dengan baik, tugas kita sudah selesai.
Realitasnya: semakin cepat menulis kode, semakin lama software itu akan selesai.
Mitos : Sampai saya memperoleh program itu berjalan, Saya tidak punya cara menguji kualitasnya.
Realitasnya: Review software adalah filter kualitas yang lebih efektif daripada testing.
Mitos Software (Praktisi)
Mitos: Hasil adalah program yang berjalan.
Realitasnya: Plus dokumentasi
Mitos: Software engineering akan membikin kita membuat dokumentasi yang banyak dan tidak perlu, dan akan memperlambat kita.
Realitanya: Software engineering bukan hanya membuat dokumen. Ini tentang membuat suatu kualitas. Kualitas yg baik akan mengurangi kerja ulang (rework) dan mengurangi rework akan mempercepat selesainya proyek.
Lanjut Ke Software Engineering
Next week.....