Secara teoritis banyak sekali definisi mengenai RPL, baik yang berasal dari buku teks maupun lembaga mandiri seperti ACM dan IEEE atau juga dari sumber internet.Berikut ini adalah beberapa definisi resmi dari RPL atau Software Engineering yang diambil dari beberapa sumber yakni:
Dari Sommerville [1] :
Software engineering is an engineering discipline which is concerned with all aspect of software production from the early stages of system specification through to maintaining the system after it has gone into use.
Jadi RPL merupakan sebuah disiplin ilmu yang berhubungan dengan seluruh aspek produk perangkat lunak baik dari tahapan awal hingga ke pemeliharaan dari perangkat lunak pasca produksi.
Dari definisi ini tersirat jelas bahwa RPL tidak hanya berkutat pada masalah perencanaan dan perancangan yang hamper selalu menjadi kesalahpahaman dalam proses pengajaran matakuliah RPL. Sehingga RPL sendiri adalahsebuah proses yang terintegrasi dan menyeluruh dari segala aspek, mulai dari sebelum perangkat lunak itu dibuat hingga selesai dan bahkan hingga tahap penggunaan.
Dari IEEE [2] :
Software engineering is definied as the application of systematic, disciplined, quantifiable, approach to development, operation and maintenance software.
Definisi yang kedua menyebutkan bahwa RPL selain sistematik juga merupakan pendekatan yang seharusnya mampu untuk dikuantifikasikan alias diukur keberadaanya dengan angka-angka atau ukuran tertentu dalam sebuah proses pengembangan perangkat lunak.
Dari Conger [3] :
Software engineering is the systematic development, operation, maintenance, and retirement of software.
Definisi ketiga juga menyatakan bahwa RPL adalah sebuah proses yang sistematik, bahkan hingga ke proses saat perangkat lunak tidak lagi digunakan.
Dari Gezli et al [4] :
Software engineering is the field of computer science that deals with the building of software system that are so large or so complex that they are built by a team or teams of engineers
Dari definisi yang keempat terlihat bahwa penekanan dari RPL hanya terjadi jika sebuah perangkat lunak dianggap telah memiliki skala besar dan dianggap kompleks sehingga membutuhkan sebuah tim untuk mengerjakannya. Tentu saja definisi ini sedikit bertentangan dengan definisi sebelumnya telah disebutkan bahwa RPL tidak memiliki hubungan dengan asas skalabilitas (besar kecilnya sebuah perangkat lunak), tetapi lebih kea rah sebuah siklus hidup dari mulai perancangan hingga pemeliharaan.
Dari Bjorner [5] :
Software engineering is the establishment and use of sound methods for the efficient construction of efficient, correct, timely and pleasing software that solves the problems such as users identify them.
Dari definisi yang terakhir ini, disebutkan bahwa RPL lebih bertujuan ke arah sebuah efisiensi pengerjaan perangkat lunak dan mampu memuaskan pengguna dengan asumsi telah mampu memecahkan masalah yang dihadapi oleh pengguna.
Dari Laplante [6] :
Software engineering is systematic approach to the analysis, design, assesment, implementation, test, maintenance and reengineering of software, that is, the application of engineering to software. In the software engineering approach, several models for the software life cycle are definied, and many methodologies for the definition and assesment of the different phases of a life-cycle model.
Meski sekilas terlihat mirip dengan definisi yang lain, tetapi terdapat satu perbedaan signifikan dalam definisi ini yaitu diikutsertakannya siklus hidup sebagai sebuah komponen penting dalam RPL. Hal ini disebabkan bahwa sebuah perangkat lunak tersebut dapat direvisi dan juga dikembangkan lagi menjadi sebuah perangkat lunak yang baru dan lebih baik.
Dari Deek et al [8]
Software engineering is a cognitive reaction to the compelxity of software development. It reflects the inevitable need for analysis and planning, reliability and control of risk, and scheduling and coordination when embarking on any complex human endeavor.
Di definisi ini diikutsertakan unsur resiko dalam sebuah RPL dan juga perilaku dari manusia (baik pengembang maupun dari pengguna) sehingga di dalam proses pengembangan perangkat lunak sesungguhnya juga terdapat unsur ilmu manajemen yang masuk di dalamnya.
Dari definisi tentang RPL maupun pengembang perangkat lunak, jelaslah bahwa seorang programmer bukan berarti secara otomatis menjadi pengembang perangkat lunak, dan juga bahwa seorang pengembang perangkat lunak bukan berarti melakukan pekerjaan pemrograman secara utuh.
Dapat disimpulkan bahwa perangkat lunak alias software adalah: Aplikasi yang dibangun dengan menggunakan program computer dengan fungsi utama untuk melakukan otomatisasi proses bisnis dengan performa dan kegunaan yang telah terdeskripsi dalam suatu dokumentasi bagi para penggunanya.
Produk sebuah perangkat lunak bias dibagi menjadi dua jenis yakni[1] :
1. Generic atau umum
Perangkat lunak jenis ini dijual secara massal kepada publik dengan spesifikasi yang sama untuk semua hasil produksinya. Contoh sederhana dari perangkat lunak jenis ini adalah perangkat lunak seperti Microsoft Office dan Adobe Master Collection
2. Custom (taylor mode) atau spesifik
Merupakan perangkat lunak yang secara khusus dibangun untuk kepentingan pelanggan tertentu. Dari hasil perangkat lunak jenis ini membutuhkan semua konsep RPL dalam proses pengembangannya. Sebagai contoh adalah perangkat lunak GL (general ledger) atau system informasi akuntansi yang memang khusus dibangun untuk perusahaan tertentu oleh sebuah pengembang perangkat lunak atau software house.
Sedangkan berdasarkan proses pengembangannya, perangkat lunak dapat dibuat benar-benar baru (new software) atau dikembangkan dari sebuah perangkat lunak yang sudah ada sebelumnya. Untuk kedua jenis ini akan dibahas lebih lanjut dalam artikel selanjutnya.
Dari definisi awal ini diharapkan bahwa kita semua jauh lebih aware mengenai apa itu perangkat lunak dan proses yang seharusnya ada di dalamnya. Selain itu juga lebih paham mengenai hubungan antara pembelajaran RPL dengan produk perangkat lunak itu sendiri..
0 comment:
Posting Komentar