PENDAHULUAN
- Apakah Perangkat Lunak?
- Apakah Rekayasa Perangkat Lunak
(RPL) ?
- Apa perbedaan antara RPL dengan
ilmu komputer (computer science) ?
- Apa perbedaan RPL dan rekayasa
sistem ?
- Apa yang dimaksud dengan proses
perangkat lunak ?
- Apakah model proses perangkat
lunak ?
- Berapa biaya rekayasa perangkat
lunak ?
- Apa saja metode-metode RPL ?
- Apa yang dimaksud dengan CASE (Computer-Aided
Software Engineering) ?
- Apakah atribut-atribut
perangkat lunak yang baik ?
- Apa tantangan kunci yang dihadapi
RPL ?
PERANGKAT
LUNAK
• Perangkat Lunak (Software)
tidak sama dengan program komputer. Perangkat lunak tidak hanya mencakup
program, tetapi juga semua dokumentasi dan konfigurasi data yang berhubungan,
yang diperlukan untuk membuat agar program beroperasi dengan benar.
• Sistem Perangkat Lunak terdiri dari
:
– Sejumlah program yg terpisah
– File-file konfigurasi
– Dokumentasi sistem
– Dokumentasi User
• Dua tipe produk perangkat lunak :
– Produk Generik à Sistem stand-alone standar
yg diproduksi oleh organisasi pengembang dan dijual ke pasar terbuka ke
siapapun yg membelinya. Biasa disebut sebagai software shrink-wrapped. Contoh
: pengolah kata (word processor).
– Produk pesanan (yang disesuaikan) à Sistem yg dipesan oleh pelanggan
tertentu. Dikembangkan khusus bagi pelanggan oleh kontraktor perangkat lunak.
Contoh : Sistem untuk mendukung proses bisnis tertentu dan sistem kontrol lalu
lintas udara.
• Perbedaan PENTING antara
tipe2 perangkat lunak :
– Pada produk generik, organisasi yang
mengembangkan perangkat lunak mengontrol spesifikasi perangkat lunak.
– Pada produk pesanan, spesifikasi
biasanya dikembangkan dan dikontrol oleh organisasi yang membeli perangkat
lunak tersebut.
REKAYASA
PERANGKAT LUNAK
• RPL atau Software Engineering
(SE) à
Disiplin ilmu yang membahas semua aspek produksi perangkat lunak, mulai dari
tahap awal spesifikasi sistem sampai pemeliharaan sistem setelah digunakan. Ada
2 istilah kunci disini :
– “disiplin rekayasa” à Perekayasa membuat suatu alat
bekerja. Menerapkan teori, metode, dan
alat bantu yang sesuai, selain itu mereka menggunakannya dengan selektif dan
selalu mencoba mencari solusi terhadap permasalahan.
– “semua aspek produksi perangkat
lunak” à RPL
tidak hanya berhubungan dengan proses teknis dari pengembangan perangkat lunak
tetapi juga dengan kegiatan seperti Manajemen proyek PL dan pengembangan alat
bantu, metode, dan teori untuk mendukung produksi PL.
Perbedaan
antara RPL dengan Computer Science ?
• Intinya, computer science berhubungan
dengan teori dan metode yang mendasari sistem komputer dan perangkat lunak,
sedangkan RPL berhubungan dengan praktek dalam memproduksi perangkat lunak.
Perbedaan
RPL dengan Rekayasa Sistem ?
• Rekayasa sistem berkaitan dengan
semua aspek dalam pembangunan sistem berbasis komputer termasuk hardware,
rekayasa PL dan proses. RPL adalah bagian dari rekayasa sistem yang meliputi
pembangunan PL, infrasktruktur, kontrol, aplikasi dan database pada sistem.
Proses
Perangkat Lunak
• Serangkaian kegiatan dan hasil-hasil
relevannya yang menghasilkan perangkat lunak à sebagian besar dilakukan oleh
perekayasa perangkat lunak. Ada 4 kegiatan/aktivitas pada proses PL :
1. Spesifikikasi Perangkat Lunak à Fungsionalitas perangkat lunak dan
batasan kemampuan operasinya harus didefinisikan.
2. Pengembangan Perangkat Lunak à Perangkat lunak yang memenuhi
spesifikasi harus di produksi
3. Validasi Perangkat Lunak à Perangkat lunak harus divalidasi
untuk menjamin bahwa perangkat lunak melakukan apa yang diinginkan oleh
pelanggan.
4. Evolusi Perangkat Lunak à Perangkat lunak harus berkembang
untuk memenuhi kebutuhan pelanggan.
Model
Proses Perangkat Lunak
• Merupakan deskripsi yang
disederhanakan dari proses perangkat lunak di presentasikan dengan sudut
pandang tertentu.
• Bisa mencakup kegiatan yang
merupakan bagian dari proses perangkat lunak, produk perangkat lunak, dan peran
orang yang terlibat pada rekayasa perangkat lunak (Perekayasa PL).
Contoh
Jenis Model Proses PL
- Model aliran kerja (workflow)
à menunjukkan kegiatan pada proses bersama
dengan input, output, dan ketergantungannya. Merepresentasikan pekerjaan
manusia.
- Model aliran data (data
flow) à merepresentasikan proses sebagai suatu set
kegiatan yang melakukan transformasi data. Menunjukkan bagaimana input ke
proses, misalnya spesifikasi ditransformasi menjadi output, misalnya
menjadi desain.
- Model peran/aksi à merepresentasikan peran orang
yang terlibat pada PL dan kegiatan yg menjadi tanggung jawab mereka.
Model atau
paradigma umum pada proses PL
- Model air terjun (waterfall)
à Mengambil kegiatan dasar seperti
spesifikasi, pengembangan, validasi, dan evolusi dan merepresentasikannya
sebagai fase-fase proses yang berbeda seperti spesifikasi persyaratan,
perancangan perangkat lunak, implementasi, pengujian dan seterusnya.
- Pengembangan evolusioner à Pendekatan ini berhimpitan
dengan kegiatan spesifikasi, pengembangan, dan validasi. Sistem awal
dikembangkan dengan cepat dari spesifikasi abstrak. Sistem ini kemudian di
perbaiki dengan masukan dari pelanggan untuk menghasilkan sistem yang
memuaskan kebutuhan pelanggan.
- Pengembangan Sistem Formal à Pendekatan ini menghasilkan
suatu sistem matematis yang formal dan mentransformasikan spesifikasi ini,
dengan menggunakan metode matematik menjadi sebuah program.
- Pengembangan berdasarkan
pemakaian ulang (Reusable) à Teknik ini menganggap bahwa
bagian-bagian sistem sudah ada. Proses pengembangan sistem terfokus pada
pengintegrasian bagian-bagian sistem dan bukan pengembangannya dari awal.
Biaya
Rekayasa Perangkat Lunak
• Umumnya sekitar 60% untuk biaya
pengembangan (development) dan 40% biaya pengujian (testing).
• Distribusi biaya yang tepat selama
proses perangkat lunak bergantung pada proses yang digunakan dan jenis
perangkat lunak yang dikembangkan.
Metode-metode
RPL
• Pendekatan-pendekatan terstruktur
terhadap pengembangan perangkat lunak mencakup model, notasi, aturan, saran
pengembangan sistem (rekomendasi), dan panduan proses.
– Deskripsi model sistem à Deskripsi model yang harus
dikembangkan dan notasi yang digunakan untuk mendefinisikan model-model ini. Ex
: model aliran data.
– Aturan à Batasan yang berlaku bagi model
sistem. Ex : Setiap entitas pada model sistem harus memiliki nama yang unik.
– Rekomendasi à Saran dalam membentuk perancangan
yang baik. Ex : Tidak ada objek yang memiliki lebih dari tujuh sub-objek yang
berhubungan dengannya.
– Panduan Proses à Aktifitas yang bisa diikuti untuk
mengembangkan model sistem. Ex : Atribut objek harus didokumentasi sebelum
mendefinisikan operasi yang berhubungan dengan objek.
CASE (Computer-Aided
Software Engineering)
• Mencakup berbagai macam program yang
digunakan untuk mendukung kegiatan PL seperti analisis persyaratan, pemodelan
sistem, debugging, dan pengujian.
Atribut-atribut
PL yang baik
• Perangkat Lunak seharusnya
memberikan user kebutuhan fungsionalitas dan kinerja yang :
1. Dapat dipelihara (Maintanability)
à PL
harus dapat memenuhi perubahan kebutuhan user.
2. Dapat diandalkan (Dependability) à PL harus dapat dipercaya dan tidak menyebabkan
kerusakan fisik atau ekonomi jika terjadi kegagalan sistem.
3. Efisien à PL harus efisien dalam penggunaan
sumber daya sistem.
4. Kemampupakaian (Usability) à PL harus dapat dipakai sesuai dengan yang
direncanakan.
Tantangan
Kunci yang dihadapi RPL ?
- Tantangan Warisan (Legacy) à Tantangan memelihara dan
meng-update PL sedemikian sehingga biaya yg berlebihan dapat dihindari dan
layanan bisnis yg penting tetap dilakukan.
- Tantangan Heterogenitas à Tantangan teknik pengembangan
untuk membangun perangkat lunak yang dapat diandalkan dan cukup flexibel
untuk menghadapi heterogenitas yang ada.
- Tantangan Pengiriman à Tantangan mempersingkat waktu
kirim sistem besar dan kompleks, tanpa mengurangi kualitas sistem.