Rekayasa Perangkat Lunak
Rekayasa Perangkat Lunak
(
Software
Engineering
)
Graha Prakarsa, ST. MT.
Sekolah Tinggi Teknologi Bandung
1
Mengetahui arti, karakteristik, dan jenis
‐
jenis
perangkat
lunak
sebagai
produk
rekayasa
perangkat lunak.
Memahami
arti,
latar
belakang,
dan
tujuan
penggunaan rekayasa perangkat lunak.
Mengetahui ruang lingkup rekayasa perangkat
l
k
lunak.
Memahami perbedaan antara rekayasa perangkat
lunak (RPL) dengan sistem informasi (SI).
2
Rekayasa perangkat lunak berasal dari 2 kata
y
p
g
yaitu
Software
(Perangkat
Lunak)
dan
Engineering
(Rekayasa).
Engineering
g
g
atau Rekayasa adalah aplikasi
y
p
terhadap
pendekatan
sistematis
yang
berdasar
atas
ilmu
pengetahuan
dan
matematis serta aplikasi tentang produksi
terhadap struktur, mesin, produk, proses atau
sistem
Perangkat Lunak
(Software) <>
Program Komputer
.
Perangkat lunak tidak hanya mencakup
program, tetapi juga semua dokumentasi dan
konfigurasi data yang berhubungan, yang
diperlukan untuk membuat agar program
p
g
p g
beroperasi dengan benar.
5
Ada beberapa definisi atau pengertian tentang perangkat lunak.
Menurut Pressman (2001) perangkat lunak adalah:
“1) Instruksi (program komputer) yang bila dieksekusi dapat menjalankan fungsi tertentu; 2) Struktur data yang dapat membuat program memanipulasi informasi; dan 3) Dokumen yang menjelaskan operasi dan penggunaan program.”
SementaraThe Institute of Electrical and Electronics Engineers
(IEEE) [1993] mendefinisikan perangkat lunak sebagai:
“Program komputer, prosedur, aturan, dan dokumentasi yang berkaitan dengannya serta data yang berkaitan dengan operasi suatu sistem komputer.”
6
Kesimpulannya perangkat lunak adalah:
Program Komputer
Kumpulan instruksi yang apabila dieksekusi oleh sistem komputer akan menjalankan proses atau fungsi tertentu.
Data
Struktur data atau basis data yang memungkinkan data yang
t i d di i l i l h
tersimpan padanya dimanipulasi oleh program.
Dokumen
Dokumentasi yang menjelaskan bagaimana pengembangan, cara instalasi, penggunaan, dan pemeliharaan program.
7
1.
Perangkat
lunak
merupakan
produk
pengembangan atau rekayasa, dan tidak diproduksi
dalam pengertian klasik.
2.
Perangkat lunak tidak akan pernah rusak atau aus.
3.
Perangkat lunak pada umumnya dibangun sesuai
keinginan, jadi tidak dibentuk dari komponen yang
sudah ada.
1.
Merupakan produk yang unik (tidak ada seri
produksi).
2.
Tidak terlihat (
invisible
).
3.
Fleksibel, sehingga mudah dimodifikasi.
4.
Terhubung dengan perangkat keras.
9
Dilihat dari sisi sebagai
produk
:
Produk Generik
Produk yang
dijual
Produk Pemesanan
Dibuat karena ada pemesanan
p
10
Dilihat darifungsinya:
1. Perangkat lunak sistem Perangkat lunak yang kegunaannya lebih banyak ditujukan untuk operasional komputer atau perangkat lunak lain. Contoh:
sistem operasi
penerjemah bahasa pemrograman (compiler/interpreter)
utility software
2. Perangkat lunak aplikasig p Perangkat lunak yang kegunaannya lebihg y g g y banyak ditujukan untuk membantu menyelesaikan masalah‐masalah yang dihadapi oleh pemakai. Perangkat lunak aplikasi dapat dibedakan menjadi:
program paket yang sudah jadi (package program)
program aplikasi buatan sendiri (tailor made)
Dilihat daribentuk aplikasinya:
1 Perangkat lunak sistem (system software) sistem
1. Perangkat lunak sistem (system software) sistem
operasi,compiler/interpreter,dll.
2. Perangkat lunak waktu nyata (real‐time software)ATCS (Automatic Traffic
Control System),ticket online.
3. Perangkat lunak bisnis (business software)aplikasi untuk sistem informasi
(sistem persediaan, akuntansi, produksi, dll), sistem pendukung
keputusan, ERP.
4. Perangkat lunak rekayasa dan ilmu pengetahuan (engineering and scientific
ft )SPSS M th L bA t CAD dll
software)SPSS, Math Lab,AutoCAD ,dll.
5. Embedded Software permainan (game) pada mobile phone, aplikasi
programmable logic circuit(PLC).
6. Perangkat lunak pribadi (personal software) aplikasi keuangan
pribadi, lembar kerja elektronik (spreadsheet).
7. Perangkat lunak intelegensia buatan (artificial inteligent software)sistem
Pada
hakikatnya
rekayasa
perangkat
lunak
(
software engineering
) mempunyai prinsip yang
sama
dengan
rekayasa
‐
rekayasa
lain,
yaitu
membuat sesuatu bekerja (
make things work
).
13
Pembentukan dan penggunaan prinsip rekayasa (engineering)
k d k k l k k i
untuk mendapatkan perangkat lunak secara ekonomis namun andal dan dapat bekerja secara efisien pada komputer (Bauer, 1968).
Suatu disiplin yang mengintegrasikan proses, metode, dan alat (tools) untuk pembangunan perangkat lunak komputer (Pressman, 2001).
Suatu teknologi berlapis, yaitu proses, metode dan alat, dengan kualitas sebagai dasar utamanya (Pressman, 2001).
Penerapan pendekatan yang sistematis, disiplin dan terukur untuk pengembangan, operasi, dan pemeliharaan perangkat lunak (IEEE, 1993).
14
Kesimpulannya:
Rekayasa perangkat lunak merupakan suatu proses rancang bangun perangkat lunak yang menggunakan kaidah‐kaidah ilmu, seperti prinsip, konsep, dan metode sehingga dihasilkan perangkat lunak yang berkualitas (dapat digunakan dan beroperasi dengan benar, bermanfaat, serta sesuai dengan kebutuhan yang diinginkan).
15
Hasil konferensi NATO di Garmisch‐Partenkirchen tahun 1968:
Perangkat lunak lebih banyak menyebabkan masalah daripada menyelesaikannya.
Peningkatan ukuran perangkat lunak dilakukan tanpa dibarengi dengan suatu pengorganisasian.
Perbaikan satu kesalahan mengakibatkan timbulnya kesalahan lainnya.y
Tidak ada kendali pemeliharaan.
Akibatnya
Software used, but
Software delivered and
Software delivered but
never used 47% Software used
after modifications
3% used, but criticized or
dropped 19%
used as it is 2%
Software paid for but never delivered 29%
17
Ketidakmampuan organisasi untuk memprediksi
kt h d bi d b k t
waktu, usaha dan biaya pada pengembangan perangkat lunak.
Kualitas perangkat lunak yang diproduksi tidak baik (buruk).
Perubahan perbandingan harga perangkat keras dan perangkat lunak.
Meningkatnya peran penting dari pemeliharaan.
K j t k l i k t k
Kemajuan teknologi perangkat keras.
Kemajuan teknik perangkat lunak.
Kebutuhan yang meningkat terhadap perangkat lunak.
Kebutuhan akan perangkat lunak yang lebih besar dan kompleks.
18
Tujuan utama yang menjadi fokus dari rekayasa perangkat lunak adalahkualitas maksudnya:
adalahkualitas, maksudnya:
Perangkat lunak yang dihasilkan sesuai dengan kebutuhan yang diinginkan.
Dapat digunakan dan beroperasi dengan benar di lingkungan sebenarnya.
Memberikan manfaat bagi pemakai yang menggunakannya.
Biaya yang dikeluarkan untuk membuatnya rendah, dalam arti efektif dan sesuai dengan anggaran yang telah ditetapkan efektif dan sesuai dengan anggaran yang telah ditetapkan.
Tepat waktu, baik saat pembuatan, penyerahan ke pemakai, maupun instalasinya.
Setiap tahap pekerjaan terjamin kualitasnya, terdokumentasi, dan dapat dipertanggungjawabkan kebenarannya (ada proses verifikasi dan validasi).
MaintainabilityPerangkat lunak harus memungkinkan untuk d k b k d b h k b h k dikembangkansesuai dengan perubahan kebutuhan pemakai.
DependabilityBerkaitan dengankeandalan,keamanan, dan keselamatan. Perangkat lunak harus tidak menyebabkan kerusakan fisis dan ekonomis saat sistem mengalami kegagalan.
EfficiencyPerangkat lunak harusefisiendalam penggunaan b d i d ikl
sumber dayasepertimemorydan siklus pemroses.
Terdapat 3 pihak (minimal) yang mempengaruhi mutu Perangkat Lunak yaitu:g y
21
Rekayasa perangkat lunak dapat dibicarakan dalam
konteks:
1.
Proses perangkat lunak.
2.
Ranah (
domain
) kajian.
3.
Teknologi.
4.
Metode dan alat bantu.
22
1.
Software Specification
apa yang harus dilakukan oleh
perangkat
lunak
dan
batasan/kendala
pengembangannya.
2.
Software Development
proses memproduksi sistem
perangkat lunak (implementasi).
3.
Software Validation
pengujian perangkat lunak
terhadap keinginan pengguna
terhadap keinginan pengguna.
4.
Software Evolution
perubahan perangkat lunak
berdasarkan
perubahan
keinginan
(pemeliharaan/
maintain
).
23
1.
Sistem dan Jaringan Komputer
g
p
2.
Sistem Informasi
3.
Komputer Grafik
4.
Pengolahan Citra
5.
Intelegensia Buatan
g
6.
Basis
Data
7.
Matematika
Teknik komputasi client/server
p
/
Bahasa pemrograman
Teknik analisis kuantitatif
Konsep protokol nirkabel (wireless)
Dll.
25
Metode Cara atau teknis bagaimana mengembangkan perangkat lunak, meliputi:
Analisis kebutuhan, perancangan, konstruksi program, dan pengujian.
Alat Bantu Perangkat bantu atau kakas otomatis dan semi‐otomatis yang akan digunakan untuk mendukung proses dan metode, seperti:
Diagram‐diagram untuk memodelkan hasil setiap tahap pengembangan.
Perangkat lunak untuk membantu pelaksanaan analisis, perancangan, pembuatan program, atau pengelolaan proyek.
26
Konteks Rekayasa Perangkat Lunak Sistem Informasi
Wujud/ Bentuk Bentuk rekayasa perangkat Wujud sistem informasi secara fisik Wujud/ Bentuk
Fisik
Bentuk rekayasa perangkat lunak adalah kaidah, aturan, atau disiplin yang
menyediakan kerangka kerja untuk semua proses yang digunakansaat pembuatan perangkat lunak.
Wujud sistem informasi secara fisik adalahperangkat keras, perangkat
lunak, data, prosedur, dan manusia. Kelimanya ditatadengan cara tertentu di lingkungan organisasi, berinteraksi sesuai proses tertentu, dan menghasilkan layanan dan informasi tertentu sesuai yang diinginkan. Proses
Pengembangan
Pengembangan perangkat lunak adalah proses
transformasipersoalan menjadi perangkat lunak
Pengembangan sistem informasi adalah prosesmerencanakan, membangun, dan
mengimplementasikansistem informasi.
Konteks Rekayasa Perangkat Lunak Sistem Informasi
Kajian keilmuan
Mempelajari carabagaimana membuat perangkat lunak
untuk kegunaan tertentu pada bidang ilmu apa saja denganmenggunakan pendekatan rekayasa.
Mempelajari carabagaimana membangun sistem, mengakuisisi teknologi informasi yang tepat untuk sistem tersebut, dan mengimplementasikannyadi lingkungan organisasi untuk memberikan layanan pada organisasi dalam mencapai t j
Bidang atau Kajian Keilmuan
29
Perangkat lunak dibentuk oleh program, data, dan dokumen. Masing‐ masing item tersebut terdiri dari suatu konfigurasi yang dibuat masing item tersebut terdiri dari suatu konfigurasi yang dibuat sebagai bagian dari proses rekayasa perangkat lunak.
RPL adalah suatu kaidah, aturan, atau disiplin yang menyediakan kerangka kerja untuk semua proses pembuatan perangkat lunak. Tujuan dari rekayasa perangkat lunak adalah menghasilkan perangkat lunak berkualitas, dalam arti sesuai kebutuhan, ekonomis, dan benar proses pengerjaannya.
Ruang lingkup RPL adalah cakupan dimana prinsip‐prinsip rekayasa perangkat lunak dapat diterapkan, seperti proses, ranah kajian, serta teknologi dan alat bantu.
Perbedaan antara RPL dengan SI dapat dilihat dari sudut pandang bidang atau kajian keilmuan, wujud atau bentuk fisik, dan proses pengembangan.
30