Rekayasa Perangkat Lunak (Software
Engineering).
Bismillahirrohmanirrohim….
Sebelum membahas tentang Rekayasa perangkat lunak, hendaknya
kita mengetahui dahula apa definisi dari perangkat lunak atau software itu
sendiri. Ada banyak definisi tentang software, software adalah sekumpulan
item-item atau objek yang membentuk konfigurasai yang melibatkan program,
dokumen, data dan lain-lain.
Software di buat atau dikembangkan oleh Software Engineer. Software
engineer mempunyai kewajiban moral untuk membangun software yang dapat
diandalkan yang tidak merugikan orang lain. Pengguna (user) hanya focus pada
produk software yang mereka butuhkan untuk memenuhi kebutuhan mereka.
Di zaman modern ini banyak tantangan baru mengenai pembuatan
suatu software, pertama menghubungkan banyak mesin/ computer agar bias berkirim
informasi satu sama lain. Kedua, membuat arsitektur yang sederhana dan semakin
canggih. Ketiga, Mendistribusikan source code untuk aplikasi komputasi sehingga pelanggan dapat membuat modifikasi software dengan mudah.
Keempat, dapat meningkatkan kinerja perekonomian masyarakat.
Selain itu software juga dituntut untuk
menyesuaikan diri dengan perkembangan zaman, kinerja software harus
ditingkatkan dari masa ke masa. Software harus selalu diperluas jangkauannya.
Software
Engineering adalah
teknologi yang harus digunakan oleh setiap orang yang akan membangun software,
dengan melalui serangkaian proses, menggunakan sekumpulan metode dan alat bantu (tools) (Pressman, 1997).
Software Engineering dipilih karena banyak hal, antara lain,
Untuk mendapatkan software yang
benar dan untuk membuat software menjadi benar. Software harus benar berarti
software harus sesuai dengan kebutuhan costumer dan sejalan dengan segala
sesuatu dan semua pihak yang terkait. Pemeliharaanya pun harus dilakukan dengan
baik agar tetap terjaga kebenaranya.
Proses dari Software Engineering meliputi 2 hal, yaitu
Management process dan Technical
process. Management process terdiri
dari Project Management, Configuration management, dan Quality Assurance
management.
Sementara Technical process adalah metode yang akan diterapkan dalam tahap tertentu dari awal
sampai akhir seperti siklus hidup. Meliputi Metode Analisis, Metode Desain,
Metode pemrograman, metode teknis.
Ada beberapa orang yang terlibat dalam pembuatan sebuah
software, yaitu Customer, orang membeli software yang telah dibuat, tapi kadang
costumer tidak mengetahui apa yang diinginkan. Manager, orang yang merencanakan
segala sesuatu tentang pembuata software. Developers, pihak pengembang suatu software,atau dalam arti seorang
penulis code yang mengimplementasi suatu program (programmer).Tester (Penguji),
Orang yang menjaga kualitas software dengan menguji software sebelum di kirim
ke customer. User (Pengguna), orang yang
memakai suatu software.
Masyarakat sering sulit membedakan mana Software
Engineer dan Computer Science. Perbedaanya adalah software engineering fokus
pada praktek dan pembangunan dan pengiriman penggunaan software sedangkan Computer
science fokus pada teori dan dasar-dasar ilmu komputer. Teori Computer science
masih belum cukup untuk menetapkan sebagai sebuah tiang fondasi untuk software
engineering.
Dan patut di bedakan
juga Software Engineer dan System Engineering. System engineering fokus pada
semua aspek pembangunan sistem dasar komputer meliputi hardware, software
and process engineering. System engineers terlibat dalam spesifikasi
sistem, perancangan arsitektur, integrasi dan penyebaran. Sedangkan Software
engineering adalah bagian dari proses ini yang berfokus pada pembangunan
prasarana perangkat lunak, kontrol, aplikasi dan database pada sistem.
Mengingat tingginya
biaya suatu software,banyak orang yang bertanya, bagaimana rincian biaya
tersebut atau dialokasikan kemana sajakah biaya itu?. Ternyata 60% dari biaya
adalah biaya pembangunan, 40% adalah
biaya pengujian. Untuk custom software,
biaya pengembangan sering melebihi biaya pembangunan. Biaya sangat tergantung
pada tipe software yang dibangunan dan kebutuhan atribut sistem seperti
performance dan tingkat kepercayaan sistem.
Ada beberapa atribut
yang harus di penuhi agar suatu software dapat di kategorikan sebagai software
yang baik. Diantaranya, software harus disusun untuk memenuhi kebutuhan
perubahan. Software harus dapat dipercaya. Software tidak melakukan pemborosan
sumberdaya system, dan juga software bias diterima oleh user seperti apa yang
dirancang.