Rekayasa Perangkat Lunak (Software Engineering)
Graha Prakarsa, ST. MT. Sekolah Tinggi Teknologi Bandung
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 lunak. k Memahami perbedaan antara rekayasa perangkat lunak (RPL) dengan sistem informasi (SI).
1
Rekayasa y perangkat p g lunak berasal dari 2 kata yaitu Software (Perangkat Lunak) dan Engineering (Rekayasa).
2
3
Engineering g g atau Rekayasa y adalah aplikasi p terhadap pendekatan sistematis yang berdasar atas ilmu pengetahuan dan matematis serta aplikasi tentang produksi terhadap struktur, mesin, produk, proses atau sistem. sistem
4
1
Perangkat Lunak (Software) <> Program Komputer.
Perangkat lunak tidak hanya mencakup program, tetapi juga semua dokumentasi dan konfigurasi data yang berhubungan, yang diperlukan p untuk membuat agar g p program g beroperasi dengan benar.
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.”
Sementara The 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.”
5
Kesimpulannya perangkat lunak adalah:
6
1.
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 tersimpan padanya d di dimanipulasi i l i oleh l h program. Dokumen Dokumentasi yang menjelaskan bagaimana pengembangan, cara instalasi, penggunaan, dan pemeliharaan program.
2. 3.
7
Perangkat lunak merupakan produk pengembangan atau rekayasa, dan tidak diproduksi dalam pengertian klasik. Perangkat lunak tidak akan pernah rusak atau aus. Perangkat lunak pada umumnya dibangun sesuai keinginan, jadi tidak dibentuk dari komponen yang sudah ada.
8
2
1. 2. 3. 4.
Merupakan produk yang unik (tidak ada seri produksi). Tidak terlihat (invisible). Fleksibel, sehingga mudah dimodifikasi. Terhubung dengan perangkat keras.
Dilihat dari sisi sebagai produk:
Produk Generik Produk yang dijual
Produk Pemesanan Dibuat karena ada pemesanan p
9
Dilihat dari bentuk aplikasinya:
Dilihat dari fungsinya: 1.
2.
10
1. 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 Perangkat g lunak aplikasi p Perangkat g lunak yyang g kegunaannya g y lebih 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)
2. 3.
4. 5.
Perangkat lunak sistem (system software) sistem operasi, compiler/interpreter, dll. Perangkat lunak waktu nyata (real‐time software) ATCS (Automatic Traffic Control System), ticket online. Perangkat lunak bisnis (business software) aplikasi untuk sistem informasi (sistem persediaan, akuntansi, produksi, dll), sistem pendukung keputusan, ERP. Perangkat lunak rekayasa dan ilmu pengetahuan (engineering and scientific software) ft ) SPSS, SPSS Math M th Lab, L b AutoCAD A t CAD , dll. dll Embedded Software permainan (game) pada mobile phone, aplikasi
programmable logic circuit (PLC). Perangkat lunak pribadi (personal software) aplikasi keuangan pribadi, lembar kerja elektronik (spreadsheet). 7. Perangkat lunak intelegensia buatan (artificial inteligent software) sistem pakar (expert system), permainan catur, dll. 6.
11
12
3
Pembentukan dan penggunaan prinsip rekayasa (engineering) untukk mendapatkan perangkat d k k lunak l k secara ekonomis k i 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).
Pada hakikatnya rekayasa perangkat lunak (software engineering) mempunyai prinsip yang sama dengan rekayasa‐rekayasa lain, yaitu membuat sesuatu bekerja (make things work).
13
14
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 y kesalahan lainnya. Tidak ada kendali pemeliharaan.
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).
Akibatnya 15
16
4
Software used, but used, but criticized or dropped 19% Software used after modifications 3%
Software delivered and used as it is 2%
Software delivered but never used 47%
Software paid for but never delivered 29%
Ketidakmampuan organisasi untuk memprediksi waktu, biaya pada perangkat kt usaha h dan d bi d pengembangan b k t lunak. Kualitas perangkat lunak yang diproduksi tidak baik (buruk). Perubahan perbandingan harga perangkat keras dan perangkat lunak. Meningkatnya peran penting dari pemeliharaan. K Kemajuan j t k l i perangkat teknologi k t keras. k Kemajuan teknik perangkat lunak. Kebutuhan yang meningkat terhadap perangkat lunak. Kebutuhan akan perangkat lunak yang lebih besar dan kompleks.
17
Tujuan utama yang menjadi fokus dari rekayasa perangkat lunak adalah kualitas, kualitas 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. 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).
18
19
Maintainability Perangkat lunak harus memungkinkan untuk dikembangkan dk b k sesuai dengan d perubahan b h kebutuhan k b h pemakai. k Dependability Berkaitan dengan keandalan, keamanan, dan keselamatan. Perangkat lunak harus tidak menyebabkan kerusakan fisis dan ekonomis saat sistem mengalami kegagalan. Efficiency Perangkat lunak harus efisien dalam penggunaan sumber b daya d sepertii memory dan d siklus ikl pemroses. Usability Perangkat lunak harus mempunyai antarmuka pengguna yang tepat dan dokumentasi yang memadai.
20
5
Terdapat 3 pihak (minimal) yang mempengaruhi mutu g Lunak yyaitu: Perangkat
Rekayasa perangkat lunak dapat dibicarakan dalam konteks: 1. 2. 3. 4.
Proses perangkat lunak. Ranah (domain) kajian. Teknologi. Metode dan alat bantu.
21
1.
2. 3. 4.
Software Specification apa yang harus dilakukan oleh perangkat lunak dan batasan/kendala pengembangannya. Software Development proses memproduksi sistem perangkat lunak (implementasi). Software Validation pengujian perangkat lunak terhadap keinginan pengguna. pengguna Software Evolution perubahan perangkat lunak berdasarkan perubahan keinginan (pemeliharaan/maintain).
22
1. 2. 3. 4. 5. 6. 7.
23
Sistem dan Jaringan g Komputer p Sistem Informasi Komputer Grafik Pengolahan Citra Intelegensia g Buatan Basis Data Matematika 24
6
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.
p / Teknik komputasi client/server Bahasa pemrograman Teknik analisis kuantitatif Konsep protokol nirkabel (wireless) Dll.
25
Konteks Wujud/ Bentuk Fisik
Rekayasa Perangkat Lunak
Sistem Informasi
Bentuk rekayasa perangkat lunak adalah kaidah, aturan, atau disiplin yang menyediakan kerangka kerja untuk semua proses yang digunakan saat pembuatan perangkat lunak.
Wujud sistem informasi secara fisik adalah perangkat keras, perangkat lunak, data, prosedur, dan manusia. Kelimanya ditata dengan cara tertentu di lingkungan organisasi, berinteraksi sesuai proses tertentu, dan menghasilkan layanan dan informasi tertentu sesuai yang diinginkan.
Proses Pengembangan perangkat Pengembangan lunak adalah proses transformasi persoalan menjadi perangkat lunak
26
Konteks
Rekayasa Perangkat Lunak
Kajian Mempelajari cara bagaimana keilmuan membuat perangkat lunak untuk kegunaan tertentu pada bidang ilmu apa saja dengan menggunakan pendekatan rekayasa.
Sistem Informasi Mempelajari cara bagaimana membangun sistem, mengakuisisi teknologi informasi yang tepat untuk sistem tersebut, dan mengimplementasikannya di lingkungan organisasi untuk memberikan layanan pada organisasi dalam mencapai t j tujuannya.
Pengembangan sistem informasi adalah proses merencanakan, membangun, dan mengimplementasikan sistem informasi. 27
28
7
Bidang atau Kajian Keilmuan
29
Perangkat lunak dibentuk oleh program, data, dan dokumen. Masing‐ 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
Proses Pengembangan Perangkat Lunak
31
8