Professional Documents
Culture Documents
Tujuan
Bagian ini menjelaskan tentang pengertian perangkat lunak dan rekayasa perangkat lunak. Setelah mempelajari bagian ini dengan baik, pembaca diharapkan dapat: Mengetahui arti, karakteristik, dan jenis-jenis perangkat lunak sebagai produk rekayasa perangkat lunak. Memahami arti, latar belakang, dan tujuan pengggunaan rekayasa perangkat lunak. Mengetahui ruang lingkup rekayasa perangkat lunak. Memahami perbedaan antara rekayasa perangkat lunak dengan sistem informasi.
Pokok Bahasan
Pokok bahasan pada bagian ini meliputi: Perangkat Lunak Rekayasa Perangkat Lunak Ruang Lingkup Rekayasa Perangkat Lunak Rekayasa Perangkat Lunak vs Sistem Informasi
Perangkat lunak merupakan produk yang dihasilkan dari rekayasa perangkat lunak. Apa yang dimaksud dengan perangkat lunak ini? Mengapa perangkat lunak harus dihasilkan melalui rekayasa perangkat lunak? Berikut adalah penjelasan untuk menjawab pertanyaan-pertanyaan tersebut.
BAB 1: PENDAHULUAN
Ada tiga karakteristik yang menjadi ciri suatu perangkat lunak, yaitu: [PRE01] 1. 2. 3. 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.
Selain itu tiga karakteristik di atas, suatu perangkat lunak: [ZOR99] 1. 2. 3. 4. Merupakan produk yang unik (tidak ada seri produksi). Tidak terlihat (invisible ). Fleksibel, sehingga mudah dimodifikasi. Terhubung dengan perangkat keras.
Cukup penting untuk mengetahui karakteristik perangkat lunak ini, karena proses rekayasa yang nanti akan dilaksanakan harus mampu menghasilkan produk dengan karakteristik seperti itu.
2.
Sedangkan jika dilihat dari bentuk aplikasinya, perangkat lunak dibedakan menjadi: 1. Perangkat lunak sistem (system software ) Sekumpulan program yang ditulis untuk mendukung operasional komputer atau kepentingan program lain. Contoh: sistem operasi
2.
Perangkat lunak waktu nyata (real-time software ) Perangkat lunak yang memonitor, menganalisis, atau mengendalikan kejadian-kejadian dunia nyata berdasarkan kejadian (event) yang diterimanya dengan kendala waktu yang ketat (teliti). Contoh: perangkat lunak untuk mengatur mekanisme kerja lift ATCS (Automatic Traffic Control System) Perangkat lunak bisnis (business software ) Perangkat lunak yang memberikan fasilitas operasi untuk bisnis atau fasilitas pengambilan keputusan manajemen. Contoh: aplikasi untuk sistem informasi, misalnya sistem persediaan, akuntansi, produksi, dan lain-lain. sistem pendukung keputusan Enterprise Resources Planning (ERP) Perangkat lunak rekayasa dan ilmu pengetahuan (engineering and scientific software) Perangkat lunak jenis ini biasanya berhubungan dengan komputasi data numerik, CAD (Computer Aided Design), simulasi sistem, dan lain-lain. Contoh: aplikasi statistika (misalnya SPSS), matematika (Math Lab) aplikasi untuk merancang lengkung sayap pesawat terbang Embedded Software Perangkat lunak yang menyatu (terintegrasi) dengan perangkat tertentu yang digunakan untuk mengontrol produk atau sistem, baik untuk konsumen atau pasar industri. Contoh: aplikasi programmable logic circuit (PLC) permainan (game) pada mobile phone Perangkat lunak pribadi (personal software) Perangkat lunak yang banyak digunakan pada aplikasi-aplikasi yang bersifat perorangan. Contoh: pengolah kata (word processor), lembar kerja elektronik (spreadsheet), organizer aplikasi keuangan pribadi Perangkat lunak intelegensia buatan (artificial inteligent software) Perangkat lunak yang dibuat dengan menggunakan teknik algoritma non-numerik untuk memecahkan masalah yang kompleks. Contoh: sistem pakar (expert system) pemrosesan bahasa alami (natural language) permainan catur
3.
4.
5.
6.
7.
BAB 1: PENDAHULUAN
Dari sekian banyak dan ragam jenis-jenis perangkat lunak yang ada, perangkat lunak bisnislah yang paling banyak dibuat sampai saat ini.
Penerapan pendekatan yang sistematis, disiplin dan terukur untuk pengembangan, operasi, dan pemeliharaan perangkat lunak. [IEE93]
Peningkatan ukuran perangkat lunak dilakukan tanpa dibarengi dengan suatu pengorganisasian. Perbaikan lainnya. satu kesalahan mengakibatkan timbulnya kesalahan
Akibatnya timbul masalah-masalah yang berkaitan dengan perangkat lunak: [ZOR99]: Perangkat lunak sudah diselesaikan dan diserahkan (delivered) tetapi tidak pernah digunakan (47%). Pemakai (user) sudah membayar untuk perangkat lunak tetapi tidak pernah jadi dan diserahkan (29,7%). Perangkat lunak sudah digunakan tetapi kritis atau ditinggalkan (19%). Perangkat lunak digunakan setelah dilakukan modifikasi (3%). Perangkat lunak digunakan sebagaimana mestinya (2%).
Selain itu, faktor pendukung kehadiran rekayasa perangkat lunak adalah: [SOM96] Ketidakmampuan organisasi untuk memprediksi 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. Kemajuan teknologi perangkat keras. Kemajuan teknik perangkat lunak. Kebutuhan yang meningkat terhadap perangkat lunak. Kebutuhan akan perangkat lunak yang lebih besar dan kompleks.
Dari penjelasan di atas, terlihat bagaimana fenomena pembuatan suatu perangkat lunak tanpa menggunakan pendekatan rekayasa perangkat lunak. Selain hasil yang tidak baik, dampak yang diakibatkannya pun cukup merugikan, terutama dari sisi biaya dan waktu. Dengan digunakannya pendekatan rekayasa perangkat lunak, diharapkan proses pembuatan perangkat lunak dan hasil yang diperoleh akan menjadi lebih baik, memberikan manfaat, serta mengurangi dampak yang merugikan.
BAB 1: PENDAHULUAN
Lebih jauh lagi, rekayasa perangkat lunak harus mampu menghasilkan produk perangkat lunak dengan atribut kualitas: [IEE93] Maintainability Perangkat lunak harus memungkinkan untuk dikembangkan sesuai dengan perubahan kebutuhan pemakai. Dependability Berkaitan dengan rentang karakteristik yang mencakup 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 daya seperti memory dan siklus pemroses. Usability Perangkat lunak harus mempunyai antarmuka pengguna yang tepat dan dokumentasi yang memadai.
proses perangkat lunak ranah (domain) kajian teknologi metode dan alat bantu
Setiap proses yang ada pada masing-masing kelompok proses terdiri dari beberapa aktivitas, dan setiap aktivitas dibagi menjadi beberapa pekerjaan. Setiap pekerjaan mengacu pada produk perangkat lunak atau dokumen yang tertentu yang harus dibuat.
2.
3.
4.
Pengoperasian (Operation ) Mendefinisikan aktivitas operator, yaitu organisasi yang menyediakan layanan pengoperasian sistem komputer di lingkungannya sendiri untuk pemakainya sendiri.
BAB 1: PENDAHULUAN
5.
Pemeliharaan (Maintenance ) Mendefinisikan aktivitas pemelihara, yaitu organisasi yang menyediakan layanan pemeliharaan produk perangkat lunak untuk menjaga supaya perangkat lunak dapat tetap beroperasi sesuai yang dibutuhkan.
2. 3.
4.
5.
6.
7.
8.
10
2.
3.
4.
Keterkaitan antar ketiga kelompok proses di atas ditunjukkan oleh Gambar 1.1 berikut, sementara rincian aktivitas untuk setiap prosesnya secara lengkap dapat dilihat pada dokumen IEEE/EIA 12207.0 Standard for Information Technology - Software Life Cycle Processes.
Manajemen
PROSES UTAMA
Akuisisi Pengembangan Pasokan Operasi Pemeliharaan
PROSES PENDUKUNG
Manajemen Konfigurasi Jaminan Kualitas Dokumentasi Kaji Ulang Bersama Pemecahan Persoalan Audit Verifikasi Validasi
Infrastruktur
Perbaikan
BAB 1: PENDAHULUAN
11
2.
3.
4.
5.
6.
7.
12
1.3.3 Teknologi
Kaidah-kaidah ilmu seperti prinsip, konsep dan metode, atau produk teknologi itu sendiri, yang diadaptasi dan diterapkan pada rekayasa perangkat lunak. Beberapa contoh: konsep sistem terdistribusi untuk lingkungan operasional perangkat lunak. teknik komputasi client/server untuk proses pengolahan data. konsep bahasa formal untuk memvalidasi kebutuhan. teknik analisis kuantitatif untuk memperkirakan biaya proyek. Konsep protokol nirkabel (wireless ) untuk komunikasi data.
Alat Bantu Perangkat bantu atau kakas otomatis dan semi-otomatis yang akan digunakan untuk mendukung proses dan metode. Beberapa contoh: diagram-diagram pengembangan. untuk memodelkan hasil setiap tahap
perangkat lunak untuk membantu pelaksanaan analisis, perancangan, pembuatan program, atau pengelolaan proyek. bahasa pemrograman berbasis web atau komponen untuk penulisan program.
BAB 1: PENDAHULUAN
13
3. 4.
5.
Secara ringkasnya, rekayasa perangkat lunak akan mempelajari cara bagaimana membuat perangkat lunak untuk kegunaan tertentu pada bidang ilmu apa saja dengan menggunakan pendekatan rekayasa. Sementara itu, sebagai bidang ilmu sistem informasi mencakup dua area yang luas: [ACM02]
14
1. 2.
Akuisisi, penggunaan (deployment), dan pengelolaan sumber daya dan layanan teknologi informasi (fungsi sistem informasi). Pengembangan, pengoperasian, dan evolusi infrastruktur dan sistem untuk digunakan pada proses-proses organisasi (pengembangan sistem, pengoperasian sistem, pemeliharaan sistem).
Secara ringkasnya, sistem informasi akan 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 tujuannya. Badan pengetahuan (body of knowledge) dari rekayasa perangkat lunak dan sistem informasi sebagai suatu bidang ilmu dapat dilihat pada Lampiran A.
BAB 1: PENDAHULUAN
15
komputerisasi sebagian dari sistem manual (karena ada sistem manual yang sudah bagus). komputerisasi sistem semi manual. memperbaiki dan melengkapi kekurangan sistem lama (upgrading). meningkatkan unjuk kerja sistem yang sudah terkomputerisasi sehingga menjadi lebih baik lagi. memindahkan (migrasi) sistem lama ke lingkungan yang baru dengan platform yang berbeda.
Gambar 1.2 berikut mengilustrasikan bagaimana suatu sistem informasi dikembangkan dari sistem manual.
M anajemen M anajemen
perintah
Server
data/informasi
data/informasi
Gambar 1.2 Transformasi Sistem Manual menjadi Sistem Komputerisasi Cakupan pelaksanaan pekerjaan pengembangan sistem informasi secara teknis dapat berbentuk: pengembangan perangkat lunak aplikasi pembangunan basis data penentuan konfigurasi, perangkat keras pengadaan, pemasangan, dan instalasi
penyusunan prosedur kerja, prosedur pemakaian komputer, prosedur pemakaian perangkat lunak pengadaan dan pelatihan personal yang akan menggunakan dan mengoperasikan sistem informasi
Kecuali untuk pengembangan sistem secara total, hanya sebagian dari cakupan pekerjaan di atas yang harus dilakukan, dan itu pun tergantung kepada jenis pekerjaan dan kondisi lingkungan dimana sistem yang akan dikembangkan berada. Sebagai contoh, untuk pekerjaan migrasi sistem dari lingkungan sistem
16
operasi DOS ke Windows, cakupan pekerjaan yang mungkin harus dilakukan adalah pembangunan perangkat lunak dan basis datanya saja. Dan pekerjaan inilah yang persis sama dilakukan pada rekayasa perangkat lunak. Dari penjelasan di atas, dapat disimpulkan bahwa berdasarkan sudut pandang sistem informasi, rekayasa perangkat lunak merupakan bagian dari proses pengembangan sistem informasi. Tetapi jika merujuk pada penjelasan tentang ranah kajian rekayasa perangkat lunak, sistem informasi merupakan salah satu bidang kajian dari rekayasa perangkat lunak. Untuk lebih jelasnya, perhatikan Gambar 1.3 berikut.
Ranah Kajian Rekayasa Perangkat Lunak Sistem & Jaringan Komputer
Basis Data
Sistem Informasi
Komputer Grafik
Pengolahan Citra
Intelegensia Buatan
Matematika
Penyusunan Prosedur
Analisis Kebutuhan
Implementasi
Pengujian
SI
Area kesamaan SI dan RPL
RPL
BAB 1: PENDAHULUAN
17
Rangkuman
1. Perangkat lunak dibentuk oleh program, data, dan dokumen. Masingmasing item tersebut terdiri dari suatu konfigurasi yang dibuat sebagai bagian dari proses rekayasa perangkat lunak. Rekayasa perangkat lunak 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 rekayasa perangkat lunak adalah cakupan dimana prinsipprinsip rekayasa perangkat lunak dapat diterapkan, seperti proses, ranah kajian, serta teknologi dan alat bantu. Perbedaan antara rekayasa perangkat lunak dengan sistem informasi dapat dilihat dari sudut pandang bidang atau kajian keilmuan, wujud atau bentuk fisik, dan proses pengembangan.
2.
3.
4.
Daftar Pustaka
[ACM02] Association for Computing Machinery (ACM); Association for Information Systems (AIS); and Association of Information Technology Professionals (AITP), Model Curriculum and Guidelines for Undergraduate Degree Programs in Information Systems, 2002. [IEE93] The Institute of Electrical and Electronics Engineers, IEEE Std 610.12-1993 Standard Glossary of SW Engineering Terminology, 1993. The Institute of Electrical and Electronics Engineers; Electronic Industries Association (EIA), IEEE/EIA 12207.0 Standard for Information Technology - Software Life Cycle Processes, 1998.
[IEE98]
[MYN95] Mynat, Barbee T., Software Engineering with Student Project Guidance, Prentice-Hall, Englewood Cliffs, New Jersey, 1995. [PRE01] Pressman, Roger S., Software Engineering: A Practioners Approach, Fifth Edition, MacGraw-Hill International Editions, 2001.
18
[SEP99] Software Engineering Process Office (SEPO - D12) and Software Process Improvement Working Group (SPIWG), An Introduction to IEEE/EIA 12207, 1999. [SOB02] Sobel, Ann E.K., Computing Curricula - Software Engineering Volume, First Draft of the Software Engineering Education Knowledge (SEEK), 2002. [SOM96] Sommerville, Ian, Software Engineering, Fiftth Edition, AddisonWesley, 1996. [ZOR99] Zoro, Hira L., Introduction to Software Engineering, International Seminar and Tutorial on Software Engineering for Real Time Systems, Institut Teknologi Bandung & Universite Thomson, Bandung, Maret 1999.