Software(Perangkat Lunak)

35
SOFTWARE (PERANGKAT LUNAK) BY: RIDWAN A. KAMBAU

description

Apa itu Software, Jenis-jenis software, karakteristik dan kegunaan dari software..

Transcript of 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.....