Dokumen tersebut membahas tentang perangkat lunak, mulai dari definisi perangkat lunak, jenis perangkat lunak berdasarkan platform, lisensi, dan pasar. Dokumen ini juga menjelaskan tentang peranan perangkat lunak, evolusi perkembangan perangkat lunak, dan rekayasa perangkat lunak sebagai profesi.
4. 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
Perangkat lunak yang
dikembangkan khusus dan
disesuaikan dengan kebutuhan
pelanggan
(Ian Sommerville, Software Engineering 8 Ed., 2010)
5. 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
(Roger Pressman, Software Engineering,: A Practitioner’s Approach 7Ed., 2009)
7. 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!
8. 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
9. Peranan Perangkat Lunak
1. Menggantikan peran manusia:
Dengan otomasi terhadap
suatu tugas atau proses
2. Memperkuat peran manusia:
Dengan membantu manusia
mengerjakan suatu tugas atau
proses dengan lebih baik dan
tertata
10. Peranan Perangkat Lunak
3. Restrukturisasi Peran Manusia:
Dengan melakukan perubahan-perubahan
thd sekumpulan
tugas atau proses
4. Hiburan dan Permainan:
Dengan menyajikan aplikasi
interaktif hiburan yang semakin
dekat dengan kenyataan
11. Konsep Peranan Software
• Software dikembangkan karena ada
kebutuhan (requirement) dari pengguna
untuk komputerisasi suatu proses
konvensional
• Software datang untuk memecahkan masalah
dan memberi solusi bagi manusia
• Software datang bukan untuk membuat
masalah (baru)!
13. Definisi
Disiplin ilmu yang membahas
semua aspek produksi
perangkat lunak, mulai dari
tahap awal spesifikasi, desain,
konstruksi, testing sampai
pemeliharaan setelah
digunakan
Mengapa disebut software
engineering?
14. Generasi Komputer
1. Generasi I (1946-1959)
Menggunakan tabung hampa
ENIAC, EDSAC
2. Generasi II (1959-1964)
Menggunakan transistor
PDP-1, PDP-8, UNIVAC, IBM 70xx
3. Generasi III (1964-1979)
Menggunakan IC
IBM S360, NOVA, UNIVAC 1108
4. Generasi IV (1980-sekarang)
Menggunakan VLSI
15. Mengapa Software Engineering?
• Terminologi rekayasa perangkat lunak (software
engineering) pertama kali digunakan pada sebuah
international conference ttg software crisis tahun 1968
• Krisis perangkat lunak merupakan akibat langsung dari
lahirnya komputer generasi ke 3 yang canggih (pada
waktu itu)
• Perangkat lunak yang dihasilkan menjadi menjadi
beberapa kali lebih besar dan kompleks
• Pendekatan informal tidak cukup efektif (cost, waktu
dan kualitas) dalam pengembangan perangkat lunak
• Biaya hardware jatuh dan biaya perangkat lunak naik
cepat
17. Evolusi Software
TAHUN-TAHUN PERTAMA :
Batch Orientation
• Suatu orientasi di mana proses dilakukan setelah data
dikumpulkan dalam satuan waktu tertentu, atau proses
dilakukan setelah data terkumpul, lawan dari batch
adalah ONLINE atau Interactive Process.
• Keuntungan dari Interactive adalah mendapatkan data
yang selalu up to date.
Limmited distribution
• Suatu penyebaran software yang terbatas pada
perusahaan-perusahaan tertentu.
Custom software
• Software yang dikembangkan berdasarkan perusahaan-perusahaan
tertentu.
18. Evolusi Software
ERA KEDUA :
Multi user
• Suatu sistem di mana satu komputer digunakan oleh beberapa
user pada saat yang sama.
Real Time
• Suatu sistem yang dapat mengumpulkan, menganalisa dan
mentransformasikan data dari berbagai sumber, mengontrol
proses dan menghasilkan output dalam mili second.
Database
• Perkembangan yang pesat dari alat penyimpan data yang
OnLine menyebabkan muncul generasi pertama DBMS
(DataBase Management System).
Product Software
• Adalah software yang dikembangkan untuk dijual kepada
masyarakat luas.
19. Evolusi Software
ERA KETIGA :
Distributed system
• Suatu sistem yang tidak hanya dipusatkan pada komputer induk (Host
computer), daerah atau bidang lainnya yang juga memiliki komputer
yang ukurannya lebih kecil dari komputer induk. Lawan dari
distributed system adalah Centralized System.
Embedded Intelegence
• Suatu product yang diberi tambahan “Intellegence” dan biasanya
ditambahkan mikroprocessor yang mutakhir.
• Contohnya adalah automobil, robot, peralatan diagnostic serum
darah.
Low Cost Hardware
• harga hardware yang semakin rendah, ini dimungkinkan karena
munculnya Personal Computer.
Consummer Inpact
• Adanya perkembangan komputer yang murah menyebabkan
banyaknya software yang dikembangkan, software ini memberi
dampak yang besar terhadap masyarakat.
20. Evolusi Software
ERA KEEMPAT :
Expert system
• Suatu penerapan A.I. (Artificial Intellegence) pada bidang-bidang
tertentu, misalnya bidang kedokteran, komunikasi, dll.
AI Machine
• Suatu mesin yang dapat meniru kerja dari sebagian otak
manusia. Misalnya mesin robot, komputer catur.
Parallel Architecture
• Arsitektur komputer yang memungkinkan proses kerja LAN
paralel, yang dimungkinkan adanya prosesor berbeda dalam
satu komputer
30. Microsoft Certification
• MCAD (Microsoft Certified Application Developers):
Use Microsoft technologies to develop and maintain
department-level applications, components, Web or desktop
clients, or back-end data services.
• MCSD (Microsoft Certified Solution Developers):
Design and develop leading-edge business solutions with
Microsoft development tools, technologies, platforms, and
the Windows architecture.
36. Software dan Customer
Sebuah perangkat lunak dianggap berkualitas jika memenuhi
kebutuhan pelanggan (customer) dan sesuai dengan keinginan
pelanggan (customer)
Hal-hal yang perlu di pahami ketika mengembangkan perangkat
lunak dalam lingkungan tertentu :
• Pengetahuan lingkungan tentang TI
• Social Knowledge atau local knowledge
• Pengetahuan tentang batasan pengembangan
Tahap sosialisasi juga sangat penting karena pengubahan
lingkungan ke lingkungan baru sangatlah sulit