Kelas : 1TIF
B. Jenis Software
1. System Software
System Software Kumpulan program di tulis sebagai layanan atau menunjang program
lainnya.
2. Real Time Software
Merupakan software yang berfungsi mengukur, menganalisis dan mengontrol aktifitas secara
langsung.
3. Business Software
Software yang digunakan unutk mengambil Keputusan dalam bidang bisnis.
4. Engineering and Scientific Software
Software yang digunakan dalam bidang engineering dan science.
5. Embedded Software
Software yang digunakan untuk mengontrol product dan system software ini dijalankan
dengan berbagai fungsi terbatas.
6. PC Software
Software yang banyak digunakan di computer pribadi (pc).
7. Artificial intelligence Software
Merupakan Software yang digunakan untuk memcahkan algoritma masalah kompleks yang
tidak dapat dianalisis komputasi biasa.
c. Hardware Vs Software
Realbility
Kehandalan perangkat untuk dioperasikan, dan bebas dari kegagalan untuk jangka waktu
tertentu di lingkumgan tertentu.
a. Hardware Reliability
Keasalahan perangkat keras bagian besar adalah Keasalahan Fisik
Komponen perangkat keras umumnya gagal karena aus
Dalam perangkat keras, kesalahan desain mungkin juga ada tetapi kesalahan fisik
umumnya mendominasi.
Fitur Kegagalan Perangkat keras, disebut bathtub curve.
b. Software Reliability
Kesalahan perangkat lunak adalah kesalahan desain, yang sulit untuk
divisualisasikanm diklasifikasi,dideteksi, dan dikoreksi.
Komponen perangkat lunak gagal karena bug
Kualitas perangkat lunak tidak akan berubah setelah diunggah ke tempat
penyimpanan dan ketiak sudah mulai running.
a. Masalah PL :
Bagaimana membuat perangkat lunak berjalan sesuai dengan fungsinya
Bagaimana mengembangkan perangkat lunak
Bagaimana memelihara suatu volume perangkat lunak yag sedang tumbuh
Bagaimana mengejar kebutuhan akan lebih banyak perangkat lunak lagi.
2. Solusi
Rekayasa Perangkat Lunak (pengembangan Perangkat Lunak )
D. Definisi Rekayasan Perangkat Lunak
A. PANDANGAN MANAGEMENT
1. Kita sudah memiliki buku yang penuh dengan standar dan prosedur untuk membuat
perangkat lunak. Apakah buku itu tidak memberikan semua yang ingin diketahui oleh staf
saya?
Buku standar mungkin ada, tetapi apakah buku-buku tersebut dipakai? Apakah
praktisi perangkat lunak sadar akan keberadaan buku tsb? Apakah dia benar-benra
perangkat lunak modern? Apakah sudah lengkap? Hamper semua jawabannya
“Tidak”.
2. Jika kita tertinggal dari jadwal yang ditetapkan, kita menambah beberapa programmer
saja. Konsep ini sering disebut Mongolian harde concept.
Merekrut lebih banyak orang baru pada proses pembuatan perangkat lunak akan
membuat waktu penyelesaian lebih lamakarena orang lama harus membimbing
orang baru sehingga waktuyang digunakan dalam fase pengembangan produksi
akan semakinberkurang.
3. Staf saya sebenarnya memiliki alat pengembangan perangkat lunak terkini, karena itulah
kita membeli computer baru bagi mereka.
Dibutuhkan lebih dari sekedar mainframe model terakhir, workstation atau PC
untuk mengembangkan perangkat lunak berkualitas tinggi. CASE lebih penting
daripada H/W untuk mendapat kualitas dan produktivitas yang tinggi, tetapi
mayoritas pengembang P/L tetap belum menggunakannya.
4. Kita tidak perlu mengubah pendekatan terhadap pengembangan software, karena jenis
pemrograman yang kita lakukan sekarang ini sudah kita lakukan 10 tahun yang lalu
Walau hasil program sama, produktivitas dan kualitas software
harus ditingkatkan dengan menggunakan pendekatan software developments.
B. PANDANGAN CUSTOMER
1. Pernyataan umum tentang obyektivitas sudah cukup untuk memulai menulis program.
Kita dapat mengisi detailnya nanti.
Definisi awal yang buruk adalah penyebab utama kegagalan terhadap usaha-
usaha pembentukkan software. Penjelasan yang formal dan terinci tentang
informasi fungsi performance interface, hambatan desain dan kriteria validasi
adalah penting. Karakteristik di atas dapat ditentukan hanya setelah adanya
komunikasi antara customer dan developer.
2. Kebutuhan proyek berubah terus menerus, tetapi perubahan tersebut dapat diakomodasi
karena P/L bersifat fleksibel.
Memang benar bahwa kebutuhan-kebutuhan perangkat lunak selalu berubah,
tetapi pengaruh perubahan itu bervariasi sesuai waktu saat perangkat lunak
dikenalkan. Jika perubahan mendekati akhir penyelesaian, maka biaya akan
lebih besar
C. PANDANGAN PRAKTISI.
1. Sekali kita menulis program, dan dapat membuatnya bekerja, pekerjaan kita akan
terselesaikan.
50%-70% dari semua usaha yang dilakukan pada sebuah program akan terus
dilakukan sampai program diantar ke tangan konsumen untuk yang pertama
kalinya
2. Saya benar-benar tidak mempunyai cara untuk “menilai” kualitas program, kecuali jika
saya dapat membuat program itu “berjalan”.
Tinjauan perangkat lunak merupakan “filter kualitas” yang lebih efektif daripada
pengujian untuk menemukan kelas-kelas kesalahan perangkat lunak yang khusus
3. Satu-satunya yang dapat disampaikan untuk sebuah proyek yang sukses adalah program
yang bekerja.
Program yang bekerja hanya merupakan salah satu bagian dari konfigurasi P/L
yang menyangkut program, dokumen, dan data. Dokumentasi membentuk
fondasi bagi perkembangan yang berhasil, serta yang lebih penting lagi,
memeberikan tuntunan bagi tugas pemeliharaan perangkat lunak.
4. Tidak ada metode untuk analisis disain dan testing terhadap suatu pekerjaan, cukup
menuju kedepan terminal dan mulai coding.
Metode untuk analisis desain dan testing diperlukan dalam pengembangan
software
5. Segera setelah software digunakan, pemeliharaan dapat diminimalisasikan dan diatasi
dengan cara “CATCH AS CATCH CAM”
Diperlukan budget yang besar dalam maintenance software. Pemeliharaan
software harus diorganisir, direncanakan dan dikontrol seolah-olah sebagai suatu
proyek besar dalam sebuah organisasi
a. Produk Operation
Correctness : Sesuai spesifikasi kebutuhan pengguna.
Usability/Learnability : Mudah digunakan
Integrity : Tidak mempengaruhi jalannya/kinerja perangkat lunak yang lain
Relibility : Tidak memiliki cacat/cela/kekurangan/kerusakan dan tidak gagal saat
dieksekusi.
Efficiency : Terkait cara perangkat lunak menggunakan sumber daya seperti
memanfaatkan ruang penyimpanan secara efektif dan menjalankan perintah
sesuai kebutuhan waktu yang diinginkan.
Security/Savety : Data maupun perangkat keras tempat berjalannya perangkat
lunak harus aman. Tidak berbahaya bagi lingkungan maupun kehidupan.
b. Produk Revision
Maintainability : Mudah dalam pemeliharaannya
Flexibilitas : Perubahan dalam perangkat lunak mudah dilakukan
Extensibility : Mudah menambahkan fungsionalitas/fitur perangkat lunak
Scalability : Dapat diupgrade untuk menangani lebih banyak pekerjaan atau
pengguna
Testability : Mudah dalam pengujian
Modularity : Jika perangkat lunak dapat dibagi menjadi bagian independen
terpisah (unit atau modul) yang dapat dimodifikasi, diuji secara terpisah,
perangkat lunak tersebut memiliki modularitas tinggi
PROSES PERANGKAT LUNAK
Proses Perangkat Lunak didefinisikan sebagai nsejumlah aktivitas, aksi dan tugas yang
dijalankan ketika suatu produk harus dibuat.
A. PROSES PERANGKAT LUNAK
Kerangka kerja proses membangun dasar bagi proses rekayasa perangkat lunak
yang lengkap dengan cara mengidentifikasi sejumlah kecil aktivitas kerangka kerja yang
cocok bagi semua proyek rekayasa perangkat lunak.
Komunikasi, bertujuan untuk memahami tujuan – tujuan stakeholder atas proyek
perangkat lunak yang sedang dikembangkan dan mengumpulkan kebutuhan – kebutuhan
yang akan membantu mendefinisikan fitur – fitur perangkat lunak berikut dengan fungsi
– fungsinya
Perencanaan, kegiatan perencanaan menciptkan suatu peta yang dapat membantu
membimbing tim perangkat lunak.
Pemodelan, dilakukan bertujuan untuk membuat sketsa sehingga tim perangkat lunak
dapat memahami gambaran besar produk yang akan di buat.
Konstruksi, kegiatan yang menggabungkan pengkodean dan pengujian
Penyerahan perangkat lunak kepada user, penyajian perangkat lunak kepada user untuk di
evaluasi.