Sabtu, 04 Juni 2011

Meluruskan Salah Kaprah Rekayasa Perangkat Lunak

           Rekayasa Perangkat Lunak (Software Engineering), sedikitpergeseran makna dalam realitas, bisnis pendidikan dunia industri, dan kurikulum Teknologi Informasi (TI) di tanah air. Dalam industri, para tester, debugger dan programmer sering kelirumemegang Software Engineer. Kejuruan sekolah-sekolah diIndonesia juga latah dengan membuka Jurusan Teknik Perangkat Lunak, meskipun kurikulum hanya mengajarkan bahasa C atauPascal (mungkin lebih pas jurusan pemrograman komputer)Tulisan ini berusaha meluruskan salah terjadi pada Rekayasa Perangkat Lunak (Software Engineering) dengan konsensus,pedoman, dan standar yang ada secara internasional.
           Sejarah munculnya Rekayasa Perangkat Lunak sebenarnyadidorong oleh krisis perangkat lunak (krisis software) di era 1960-an. Krisis Software adalah akibat langsung dari lahirnya komputergenerasi ke-3 yang canggih, ditandai dengan menggunakan sirkuitterpadu (IC) untuk komputer. Meningkatkan kinerja Hardware,membuat kebutuhan untuk memproduksi perangkat lunak yang lebih baik. Akibatnya perangkat lunak yang dihasilkan menjadibeberapa kali lebih besar dan lebih kompleks. Pendekataninformal yang digunakan pada saat dalam pengembangan perangkat lunak, menjadi tidak cukup efektif (dalam biaya, waktudan kualitas). Biaya Hardware mulai jatuh dan biaya perangkat lunak akan meningkat dengan cepat. Itu sebabnya muncul gagasan untuk menggunakan pendekatan engineering ke standar yang lebih pasti, efektif, dan terukur dalam pengembangan perangkat lunak.
Dari literatur, kita dapat menyimpulkan bahwa Rekayasa Perangkat Lunak adalah:
Sebuah disiplin yang membahas semua aspek produksi perangkat lunak, mulai dari tahap awal persyaratan menangkap (analisis kebutuhan pengguna), spesifikasi (menentukan spesifikasi dari kebutuhan pengguna), desain, coding, testing untuk pemeliharaan sistem setelah digunakan.
Ungkapan "semua aspek produksi perangkat lunak" membawa implikasi bahwa bahwa Rekayasa Perangkat Lunak tidak hanya berhubungan dengan masalah teknis pengembangan perangkat lunak tetapi juga kegiatan strategis seperti manajemen proyek perangkat lunak, penentuan metode dan proses pengembangan, serta aspek teoritis, semua yang adalah untuk mendukung perangkat lunak produksi.
Kemudian tidak boleh dilupakan bahwa definisi perangkat lunak tidak hanya untuk program komputer, tetapi juga termasuk dokumentasi dan konfigurasi data yang berhubungan yang diperlukan untuk membuat program beroperasi dengan benar.Dengan definisi ini otomatis keluaran (output) produksi perangkat lunak juga merupakan program komputer selain untuk melengkapi dokumentasi yang terkait dengannya. Kadang-kadang kurang dipahami oleh pengembang, sehingga menganggap cukup untuk menyediakan program jalan (running program) ke pengguna (customer).
Rekayasa Perangkat Lunak bukan merupakan cabang ilmu yang mempelajari Ilmu Komputer dari teknis coding. Hal ini sering keliru dipahami, sehingga mahasiswa, calon mahasiswa fakultas atau bahkan shock ketika dihadapkan dengan buku buku Rekayasa Perangkat Lunak yang selalu tebal dengan penjelasan sangat luas tentang bagaimana perangkat lunak diproduksi, dari aspek kebutuhan menangkap, desain, arsitektur, pengujian, kualitas perangkat lunak, sampai orang / manajemen biaya. Dan ini adalah perjanjian yang telah menerima informasi umum tentang Rekayasa Perangkat Lunak, sejak jaman Roger S Pressman menulis buku "Software Engineering: Praktisi Pendekatan", sampai Ian Sommerville yang kemudian datang dengan buku "Software Engineering" yang menerbitkan ke 7, dan pendatang baru seperti Hans Van Vliet, Shari Lawrence Pfleeger dan James F Peters.
Dan bagaimana jika kita ingin memperdalam masalah teknis coding dan pemrograman? Ada dua cabang ilmu lain dibahas lebih lanjut dalam hal ini, yaitu: Algoritma dan Struktur Data, dan Bahasa Pemrograman.
Bagaimana bisa begitu, dasarnya dari mana? Jadi pada dasarnya, sebagai disiplin, Ilmu Komputer juga memiliki definisi, ruang lingkup, klasifikasi dan kategorisasinya. Klasifikasi yang paling terkenal dikeluarkan Task Force yang dibentuk oleh IEEE (Institute of Electrical and Electronics Engineers) dan ACM (Association for Computing Mesin (http://acm.org)), yang dipimpin oleh Peter J Denning, kemudian dikenal sebagai Matriks Denning.Jelas bahwa cabang matriks Denning terpisah Rekayasa Perangkat Lunak dengan Algoritma dan Struktur Data, dan Bahasa Pemrograman. Itulah yang saya sebut di awal paragraf yang lebih tepat kejuruan, perguruan tinggi atau universitas menggunakan nama jurusan (atau mata kuliah): Pemrograman Komputer, Algoritma dan Struktur Data, atau bahasa pemrograman, jika bahan yang hanya membahas masalah teknisbahasa pemrograman.
Nah terus pertanyaan kembali muncul, jadi sebenarnya apa yang merupakan ruang lingkup apa yang ilmu pengetahuan Rekayasa Perangkat Lunak? Pertanyaan ini adalah pertanyaan banyak orang, para peneliti lebih dan praktisi untuk menulis semakin bervariasi pemahaman yang muncul, semakin sebuah buku yang diterbitkan siswa lebih membingungkan dan mahasiswa dalam pemahaman yang komprehensif tentang apa yang Rekayasa Perangkat Lunak.
Kecemasan dijawab sepenuhnya oleh IEEE Computer Society (http://computer.org) dengan membentuk tim pada tahun 1998 di mana tim mulai mengembangkan pemahaman tentang (tubuh pengetahuan) standar tentang bidang Rekayasa Perangkat Lunak, kemudian dikenal sebagai SWEBOK (Software Engineering Body of Knowledge). Sudah ada dua versi SWEBOK ini, yang diterbitkan pada tahun 1999 dan terakhir pada tahun 2004.
Tidak ada gading yang tak retak kata orang bijak, project IEEE Computer Society tentang SWEBOK ini sebenarnya juga telah dikritik oleh para ahli lainnya. Paling tidak dua tokoh besar dunia Software Engineering yaitu Cem Kaner dan Grady Booch tidak terlalu setuju dengan materi yang ada di SWEBOK, bahkan menyebutnya sebagai panduan yang sesat Selain itu, dapat dianggap sebagai pihak SWEBOK cukup dapat diterima banyak .
Selain SWEBOK, sebenarnya ada proyek serupa lainnya dalam upaya untuk mengembangkan pemahaman di bidang standar rekayasa perangkat lunak, CCSE (Komputasi Kurikulum Rekayasa Perangkat Lunak). Proyek ini juga disponsori oleh IEEE Computer Society dan ACM, hanya sedikit orientasi yang berbeda, yaitu untuk membentuk kurikulum standar yang terkait dengan disiplin Rekayasa Perangkat Lunak. Hal ini berbeda dengan orientasi SWEBOK yang lebih umum seputar dunia akademisi dan praktisi.
Catatan: Edisi lengkap artikel ini dapat dibaca dalam edisi majalah SDA Magazine Juni 2006.
DAFTAR PUSTAKA[1] Guide to the Software Engineering Body of Knowledge 2004 Version (SWEBOK), A Proyek IEEE Computer Society Professional Practices Committee, http://www.swebok.org, 2004.[2] Standar IEEE Istilah Teknologi Rekayasa Perangkat Lunak, IEEE Std 610,12-1.990, Institute of Electrical and Electronics Engineers, New York, 1990.[3] Hans van Vliet, Software Engineering - Prinsip dan Praktek, John Wiley & Sons, 2000.[4] Peter J Denning, Ilmu Komputer: Disiplin, Dalam Ensiklopedia Ilmu Komputer (A. Ralston dan Hemmendinger D., Eds), 1999.[5] James F. Peters dan Witold Pedrycz, Software Engineering: Pendekatan Engineering, John Wiley & Sons, 2000.[6] Roger S. Pressman, Rekayasa Perangkat Lunak: Pendekatan Edisi Kelima Praktisi, McGraw-Hill, 2004.[7] Ian Sommerville, Software Engineering 7th Edition, Addison-Wesley, 2004.


                                                                                     
                     
                                                                                                                        www.ilmukomputer.com

Tidak ada komentar:

Posting Komentar