REKAYASA PERANGKAT LUNAK
Pengantar RPL
Pertemuan 1 - 3
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 :
Spesifikikasi Perangkat Lunak à
Fungsionalitas perangkat lunak dan batasan kemampuan operasinya harus
didefinisikan.
Pengembangan Perangkat Lunak à Perangkat lunak yang
memenuhi spesifikasi harus di produksi
Validasi Perangkat Lunak à
Perangkat lunak harus divalidasi untuk menjamin bahwa perangkat lunak melakukan
apa yang diinginkan oleh pelanggan.
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 :
Dapat dipelihara (Maintanability) à
PL harus dapat memenuhi perubahan kebutuhan user.
Dapat diandalkan (Dependability) à
PL harus dapat dipercaya dan tidak menyebabkan kerusakan fisik atau ekonomi
jika terjadi kegagalan sistem.
Efisien à
PL harus efisien dalam penggunaan sumber daya sistem.
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.
Pemilihan Bahasa Pemrograman
2 faktor yang berhubungan terhadap pemilihan bahasa pemrograman :
1. Pramagtik Pemilihan Bahasa
2. Bahasa Pemrograman Yang dipilih
Pragmatik Pemilihan Bahasa
Sponsor Requirement; permintaan sponsor.
Knowledge of Coders; pengetahuan yang mudah dipahami programmer.
Languages used in previous and/or concurrent projects; bahasa
pemrograman yang digunakan proyek sebelumnya atau proyek yang berbarengan
terkait dengan pengetahuan programmer.
Pragmatik Pemilihan Bahasa…
Availability and quality of language compiler;
ketersediaan dan kualitas kompiler bahasa pemrograman yang sesuai target
hardware yang digunakan.
Availability of supporting software development tools; ketersediaan
alat bantu perangkat lunak pendukung editor, debugger, linker dan lainnya.
Portabilitty; sistem yg dikembangkan dpt beroperasi di berbagai mesin
komputer dan berjalan pd aneka OS yg berbeda.
Programming in the small
Menguji atau mencoba fitur-fitur yang mendukung dg
pengkodean program modul-modul tunggal dan program-program kecil oleh
kepentingan programmer secara individu.
Karakteristik fitur-fitur
Sifat simplicity, clarity dan orthogonality dari bahasanya.
Sintaks dari bahasa pemrogramannya.
Jumlah dan tipe kontrol struktur
Abstraksi data terhadap tipe struktur datanya.
Karakteristik fitur-fitur
Simplicity ; merupakan ukuran dari kamus data dari bahasa seperti
jumlah operator, operan dan reserved word (seperti if…then, dsb)
Clarity; merupakan tingkat dari bahasa berkaitan
dengan pengertian sintaks natural, pemahaman dan ketidakbingungan programmer
dalam menggunakan bhs pemrograman sampai berjalan.
Karakteristik fitur-fitur
Orthogonality merupakan tingkat dari programmer bebas mengkombinasikan
fitur-fitur yg ada di bhs pemrograman itu seperti pemnafaat .
ProgrammingintheLarge
(Pemrograman Berskala Besar)
(Pemrograman Berskala Besar)
Dibutuhkan saat sebuah sistem mengandung banyak
baris kode/mempunyai skala yg besar yg membutuhkan pendekatan pengembangan
sistem secara integrasi thdp sekelompok proyek sistem.
Karakteristik Fitur
Mekanisme utk enkapsulasi atau pembentukan kelompok tingkat tinggi
thdp abstraksi prosedural dan data.
Pemisahan yg jelas antara spesifikasi deskripsi sebuah
abstraksi dan implementasi abstraksi.
Mekanisme utk meproteksi akses dari luar thdp informasi yg
dienkapsulasi.
Metode yg sederhana pd pemberian modul ke bagian modul lain
(reusable/penggunaan kembali suatu modul ke modul lain)
Mutu Perangkat Lunak
Sponsor : seseorang atau organisasi yg
membiayai selama pengembangan sistem software dan mempunyai respon thdp bangsis
S/W dan melibatkan perhitungan biaya yg optimal.
User : setiap orang yg secara langsung berinteraksi
thdp eksekusi S/W, memberi inout dan menikmati output dr komputer
Mutu Perangkat Lunak
3. Developer : seseorang atau organisasi yg memberikan
modifikasi dan memelihara thdp error serta mengembangkan sistem S/W tsb.
·
Sponsor
·
Harga yg wajar
·
Luwes
·
On time
·
Peningkatan produktifitas
·
Efisiensi
·
User
·
Kemudahan mempelajari
·
Kemudahan mengingat
·
Kemudahan penggunaan fungsionalitas
·
Efisiensi
·
Developer
·
Dokumentasi yg baik
·
Minimum Error
·
Desain yg baik
·
Kode yg mudah dibaca dan dimodifikasi
Tidak ada komentar:
Posting Komentar