Rekayasa
Perangkat Lunak adalah disiplin manajerial dan teknis
yang berkaitan dengan pembuatan dan pemeliharaan produk perangkat lunak secara
sistematis, termasuk pengembangan dan modifikasinya, yang dilakukan pada waktu
yang tepat dan dengan mempertimbangkan faktor biaya.
- Tujuan : Memperbaiki kualitas produk perangkat lunak, meningkatkan produktivitas
- Pengertian produk perangkat lunak : perangkat lunak yang digunakan oleh berbagai pengguna
- Hal-hal yang perlu diperhatikan dalam pengembangan sebuah produk perangkat lunak : kebutuhan dan batasan-batasan pengguna, mengakomodasi paling tidak kepentingan tiga pihak, tahap ujicoba, dokumen pendukung, pelatihan
Beberapa atribut yang
merupakan ukuran kualitas perangkat lunak adalah
- Maintainability, harus dapat dengan mudah dirubah sesuai dengan perubahan kebutuhan pengguna
- Dependability, harus dapat dipercaya (trustworthy) sehingga pengguna dapat menggantungkan sepenuhnya proses bisnis mereka
- Eciency, harus efisien dan tidak memakai resources yang tinggi
- Usability, PL harus dapat digunakan (usable) oleh penggunanya dalam memenuhi kebutuhan mereka
Yang Disebut Perangkat
Lunak :
A.
1.
Instruksi (program komputer) yang
bila dieksekusi dapat menjalankan fungsi tertentu.
2.
Struktur datayang
dapat membuat program memanipulasi informasi.
3.
Dokumen yang
menjelaskan operasi dan penggunaan program (Roger Pressman).
B.
Program komputer,
prosedur, aturan, dan dokumentasi yang berkaitan dengannya
serta data yang berkaitan dengan
operasi suatu sistem komputer (IEEE)
JENIS-JENIS PERANGKAT LUNAK
1. Perangkat lunak sistem (system software)
Adalah
sekumpulan program yang ditulis untuk melayani atau menunjang program lainnya.
Beberapa sistem software seperti compiler, editor, komponen-komponen sistem
operasi, driver dan prosesor telekomunikasi.
2. Perangkat lunak waktu nyata (real-time software)
Software
yang mengukur, menganalisis dan mengontrol kejadian yang sesungguhnya terjadi
di dunia. Elemen-elemen real time software terdiri dari:
a. Komponen pengumpul data : Yang
mengumpulkan dan menyusun informasi dari lingkungan external.
b. Komponen analisis : Yang
mentransformasikan informasi yang diperlukan oleh aplikasi.
c. Komponen kontrol : Yang memberikan
respon kepada lingkungan external.
d. Komponen monitor : Yang
mengkoordinasi semua komponen-komponen lainnya, sehingga respons real time yang
berkisar 1 milisecond sampai 1 menit dapat dipertahankan.
Istilah real time berbeda dari istilah interactive atau time
sharing. Sistem real time harus memberikan respons pada waktu yang ditentukan,
sedangkan pada sistem interactive atau time sharing respons time biasanya
melebihi batas waktu yang ditentukan tanpa merusak hasil.
3. Perangkat lunak bisnis (business software)
Software yang paling banyak digunakan
dalam bidang aplikasi software. Software ini digunakan oleh manajemen untuk
mengambil keputusan ( Decision Making ) dalam bidang bisnis.
Contoh :
·
DAC
EASY ACCOUNTING
·
FINANCE
MANAGER
4. Perangkat lunak rekayasa dan ilmu pengetahuan (engineering and
scientific software)
Software
yang dicirikan dengan algoritma numerik, aplikasinya berkisar dari astronomi
sampai vulkanologi, dari analis ketegangan otomotif sampai dinamika orbit ruang
angkasa. Software ini banyak digunakan dalam bidang engineering dan science.
Contoh
: CAD / CAM ( Computer Aided Design / Computer Aided Manufacture – Simulasi
sistem )
5. Embedded Software
Perangkat
lunak ini terintegrasi dengan perangkat keras dan berfungsi mengatur kinerja
dari perangkat keras tersebut.
contoh : microwave oven, telpon genggam, pengaturan avionik pesawat udara, dan lain-lain.
contoh : microwave oven, telpon genggam, pengaturan avionik pesawat udara, dan lain-lain.
6. Perangkat lunak pribadi (personal software)
Banyak
digunakan pada aplikasi yang bersifat perorangan
contoh : pengolah kata, spreadsheet, game, DBMS dan lain-lain.
contoh : pengolah kata, spreadsheet, game, DBMS dan lain-lain.
7. Perangkat lunak intelegensia buatan (artificial inteligent
software)
Dibuat
dengan menggunakan teknik algoritma non-numerik untuk memecahkan masalah yang
kompleks, digunakan dalam bidang aplikasi kecerdasan buatan
contoh : game, expert sistem, neural network, dan lain-lain
contoh : game, expert sistem, neural network, dan lain-lain
Tambahan :
Sebuah Software pasti memiliki copyrights atau hak pakai atau bahasa
sederhana-nya adalah hak cipta/hak paten sebagai syarat bagi pengguna untuk
memakai sebuah software. Berdasarkan cara mendapatkannya dan hak pemakaian,
software dapat digolongkan:
a.
Shareware => Berbayar dan tanpa kode
sumber
b.
Freeware => Tidak berbayar (gratis)
dan tanpa kode sumber
c.
Free dan Open Source Software =>
Tidak berbayar dan disertai kode sumber
SOFTWARE ENGINEERING BODY OF KNOWLEDGE
SWEBOK
Areas:
a.
Software
requirements berhubungan dengan spesifikasi kebutuhan dan
persyaratan perangkat lunak
b.
Software
design mencakup proses penentuan arsitektur, komponen, antarmuka dan
karakteristik lain dari perangkat lunak
c.
Software
construction berhubungan dengan detil pengembangan perangkat lunak
termasuk algoritma, pengkodean, pengujian dan pencarian kesalahan
d.
Software
testing meliputi pengujian pada keseluruhan perilaku perangkat lunak
e.
Software
maintenance mencakup upaya-upaya perawatan ketika perangkat lunak
telah dioperasikan
f.
Software
configuration management berhubungan dengan usaha perubahan konfigurasi
perangkat lunak untuk memenuhi kebutuhan tertentu
g.
Software
engineering management berkaitan dengan pengelolaan dan pengukuran RPL,
termasuk perencanaan proyek perangkat lunak
h.
Software
engineering tools and methods mencakup kajian teoritis tentang
alat bantu dan metode RPL
i.
Software
engineering process berhubungan dengan definisi, implementasi,
pengukuran, pengelolaan, perubahan dan perbaikan proses RPL
j.
Software
quality menitikberatkan pada kualitas dan daur hidup perangkat lunak
PENGEMBANGAN PERANGKAT LUNAK
Proses
dimana persoalan/kebutuhan pemakaiditerjemahkan menjadi produk perangkat
lunakmelalui suatu rangkaian aktivitas tertentu sesuai model proses, metode,
danalat bantuyang digunakan.
Kebutuhan pemakai : Mewakili
persoalan yang akan dibantu komputer
Pengembangan PL : Proses
yang dilaksanakan dengan urut-urutan aktivitas tertentu
PL : Produk
yang dihasilkan sebagai solusi persoalan
Elemen-elemen
proses pengembangan :
MODEL PROSES PENGEMBANGAN
Cara atau strategi bagaimana perangkat lunak dibuat sedemikian rupa sehingga produk
perangkat lunak tersebut dapat
diwujudkan.
Beberapa
model proses pengembangan PL:
- Waterfall
- Incremental
- Prototyping Model
- Spiral Model
- Rational Unified Process (RUP)
- Extreme Programming (XP)
sumber :


