• Komponen dalam suatu sistem atau software terdiri dari database, interface, API, dan
lainnya
• Struktur merupakan relasi antar komponen dalam suatu sistem
• Behavior/sifat merupakan perilaku bagaimana sistem itu nanti memberikan
feedback/respon ketika terjadi suatu input/stimulus yang diberikan oleh user
• suatu software dapat dikatakan kuat jika memiliki sifat reliable, atau seberapa mampu
suatu software dapat mengatasi atau menghindari kegagalan
• Reliability → maksimum failure yang dapat ditoleransi. Makin tinggi relilability →
makin minim failure yang terjadi
• bekerja dalam sebuah tim melalui seluruh project life cycle dengan semua fase mulai
dari requirements engineering sampai delivery
• mengembangkan software yang berfungsi dengan baik dan berguna yang setidaknya
berfungsi sebagai prototype
o software harus didokumentasikan dengan baik dan maintainable (dapat
dijaga/dipelihara)
What is software?
Software - IEEE definition Software adalah Program komputer, prosedur, dan dokumentasi
atau data yang berkaitan dengan operasi sistem komputer
→ Program komputer, struktur data dan dokumentasi terkait. Produk perangkat lunak dapat
dikembangkan untuk pelanggan tertentu atau dapat dikembangkan untuk pasar umum.
Menurut definisi IEEE yang hampir identik dengan definisi ISO, Software merupakan
produk yang memiliki 4 komponen sebagai berikut:
Software vs Hardware
Failure rate graph dari sebuah software lifecycle, dimana changenya karena update
atau penyesuaian kebutuhan lingkungan
Software Products
• Generic products,
o dikembangkan dengan target pasar yang luas dengan target konsumer yang
berbeda-beda
o Contoh - software PC, software CAD, android untuk keperluan sehari-hari,
dan software dengan pasar yang spesifik seperti sistem janji temu untuk dokter
gigi
• Customized products,
o dikembangkan untuk pelanggan tertentu berdasarkan permintaan atau
keperluan spesifik pelanggan
o Contoh - embedded control systems, software untuk mengontrol lalu lintas
udara, sistem untuk memantau lalu lintas
Kategori Sotware
• Commercial software
o Contohnya: Low level OS → Console (text)
• Shareware/trial software
• Rentalware (software as a service)
• Freeware
• Abandonware
• Counterfeit/pirated software
Software Crisis
Definisi IEEE: Software Engineering: (1) Penerapan pendekatan sistematis, disiplin, terukur
untuk pengembangan, pengoperasian, dan pemeliharaan software; yaitu, penerapan
engineering ke software. (2) Studi tentang pendekatan seperti pada (1).
Harus punya quantifiable approach biar punya produk software yg useful untuk user (user
friendly)
• Individu dan masyarakat bergantung pada sistem perangkat lunak canggih. Kita harus
bisa menghasilkan sistem yang dapat diandalkan dan dipercaya secara ekonomis dan
cepat.
• Modern software dikembangkan oleh tim spesialis software, bukan lagi dilakukan
oleh programmer tunggal. Namun, kekhawatiran pengembang software tetap sama
yaitu
o Mengapa software membutuhkan waktu lama untuk diselesaikan?
o Mengapa biaya produksinya begitu mahal?
o Mengapa semua kesalahan tidak dapat ditemukan dan dihapus sebelum
software dikirimkan ke pelanggan?
• Biasanya lebih murah, dalam jangka panjang, dengan menggunakan metode dan
teknik software engineering untuk sistem software.
o Karena sebagian besar biaya adalah biaya untuk mengubah software setelah
mulai digunakan
• Software engineering concerned dengan pengembangan software yang cost-effective
Computer science fokus ke teori dan fundamental, sedangkan software engineering fokus
pada kepraktisan mengembangkan dan memberikan software yang berguna.
Perbedaan Software Engineering dan System Engineering
System engineering fokus pasa semua aspek pada computer-based system development
termasuk hardware, software, dan proses engineering. Sedangkan, software engineering
merupakan bagian dari proses general
• Maintainability: Bisa dipelihara, software harus dibuat agar dapat beradaptasi dengan
perubahan yg dibutuhkan pelanggan. Dapat berkembang untuk memenuhi perubahan
kebutuhan pelanggan. Hal ini adalah atribut penting karena perubahan software
merupakan persyaratan yang tak terelakkan dari lingkungan bisnis yang berubah.
• Dependability and Security: Mencakup berbagai karakteristik termasuk keandalan,
keamanan, dan keselamatan. Dimana jika terjadi kegagalan sistem tidak akan
menyebabkan kerusakan fisik atau ekonomi. Pengguna malicious (jahat) seharusnya
tidak bisa mengakses atau merusak sistem, aman dari unauthorized access (hanya user
tertentu yg dapat mengakses sistem).
• Effiiciency: Tidak boleh menggunakan resource sistem secara boros, seperti siklus
memori dan prosesor. Efisiensi mencakup daya tanggap (responsiveness), waktu
pemrosesan, pemanfaatan memori, dll.
• Acceptability: Dapat diterima oleh tipe pengguna yang dirancang, fungsi2 yg
diharapkan user tersedia. Dapat dimengerti, dapat digunakan dan kompatibel dengan
sistem lain yang pengguna gunakan.
Software Process
• Proses adalah kumpulan aktivitas, termasuk tindakan dan tugas yang dilakukan untuk
membuat produk kerja.
• Bukan rekomendasi/prescription yang kaku tentang bagaimana membangun computer
software
• Pendekatannya adaptable atau dapat disesuaikan dengan kebutuhan. Sehingga
memungkinkan orang melakukan pekerjaan, serta memilah dan memilih kumpulan
tindakan dan tugas yang sesuai.
• Bertujuan untuk menghasilkan software dengan tepat waktu dan berkualitas untuk
memuaskan sponsor dalam pembuatannya dan orang yang akan menggunakannya
Umbrella Activities
Melengkapi five activities of a generic process dan membantu tim mengelola dan
mengendalikan perkembangan, kualitas, perubahan, dan risiko.