Software Engineering: Dasar, Tujuan, dan Prosesnya
Ketahui pengertian, dasar, tujuan, dan proses software engineering di sini!
software-engineer
Hasna Latifatunnisa
Software engineering terdiri dari dua kata, yaitu software dan engineering.
Software adalah kumpulan program yang terintegrasi. Sementara engineering merupakan penerapan ilmu berbasis ilmiah untuk merancang, membangun, memelihara, dan meningkatkan proses maupun framework dalam membuat sesuatu.
Artikel ini akan mengupas lebih detail pengertian, dasar-dasar, tujuan, dan proses software engineering.
Pengertian Software Engineering
Dilansir dari Geeks for Geeks, software engineering adalah proses merancang, mengembangkan, menguji, dan memelihara perangkat lunak. Ini adalah pendekatan sistematis yang bertujuan untuk menciptakan perangkat lunak berkualitas, reliable, dan bisa di-maintenance.
Dalam software engineering ada berbagai teknik, tool, dan metodologi. Bidang ini juga menerapkan pendekatan terstruktur untuk mengembangkan perangkat lunak yang bisa meningkatkan efisiensi waktu dan anggaran.
Software engineering merupakan disiplin ilmu yang terus berkembang. Ilmu ini menggabungkan ilmu komputer dan pemecahan masalah strategis menggunakan prinsip-prinsip engineering, kemajuan teknologi, dan bahasa pemrograman.
Dasar-dasar Software Engineering
Dirangkum dari Geeks for Geeks, berikut beberapa prinsip utama software engineering:
- Modularity: memecah perangkat lunak menjadi komponen yang lebih kecil dan dapat digunakan kembali lalu dikembangkan serta diuji.
- Reusability: membuat komponen yang dapat digunakan ulang di banyak proyek lain. Komponen ini juga dapat menghemat waktu dan sumber daya.
- Testing: memverifikasi bahwa software memenuhi persyaratan dan tidak ada bug.
- Abstraction: menyembunyikan detail komponen dan hanya memperlihatkan fungsionalitas yang diperlukan dari perangkat lunak.
- Encapsulation: mengumpulkan data dan fungsi suatu objek menjadi satu kesatuan serta mencegah akses langsung dari pihak yang tidak punya kewenangan.
- Maintenance: memperbarui dan meningkatkan software secara berkala untuk memperbaiki bug, menambahkan fitur baru, dan memastikan keamanan.
- Design pattern: memecahkan masalah berulang dalam desain software dengan menyediakan template untuk menyelesaikannya.
- Continuous integration & deployment: mengintegrasikan perubahan kode secara terus-menerus dan menerapkannya dalam proses produksi.
- Agile methodologies: menggunakan proses pengembangan iterative dan incremental yang berfokus pada kepuasan pelanggan, kecepatan pengiriman, dan fleksibilitas.
Tujuan Software Engineering
Geeks for Geeks juga menjelaskan tujuan dari software engineering, yaitu:
- Maintainability – software harus dapat dikembangkan untuk memenuhi kebutuhan yang terus berubah.
- Efficiency – software tidak boleh menggunakan perangkat komputasi yang boros, seperti memori dan processor cycle.
- Correctness – produk software harus memenuhi persyaratan yang sudah ditentukan di dokumen software requirements specification (SRS) dan diimplementasikan dengan benar.
- Reusability – software memiliki reusability yang baik jika modul produk bisa digunakan kembali untuk mengembangkan produk baru.
- Testability – software bisa digunakan untuk menetapkan kriteria pengujian dan mengevaluasi perangkat lunak sesuai dengan kriteria yang sudah ditetapkan.
- Reliability – berkaitan dengan sejauh mana suatu program bisa melakukan fungsi sesuai keinginan dalam periode waktu yang berubah-ubah.
- Portability – software dapat ditransfer dari satu sistem komputer ke lainnya.
- Adaptability – software memungkinkan untuk menjalankan sistem sesuai kebutuhan pengguna.
- Interoperability – kemampuan dua atau lebih functional unit untuk memproses data secara bersamaan.
{{COMPONENT_IDENTIFIER}}
Proses Software Engineering
Ada empat proses utama dari software engineering, antara lain:
#1 Specification
Dalam proses ini, software engineer akan membuat deskripsi terperinci tentang sistem perangkat lunak yang akan dikembangkan. Spesifikasi dibuat sesuai functional dan non-functional requirement.
#2 Development
Development adalah proses di mana software engineer mulai melakukan perancangan, pemrograman, pendokumentasian, pengujian, dan perbaikan bug. Pengembangan dilakukan sesuai dengan spesifikasi yang sudah ditentukan.
#3 Validation
Proses validasi berkaitan dengan evaluasi software. Validasi memastikan bahwa software memberikan fungsionalitas yang diperlukan, memenuhi product attribute, dan sesuai dengan keinginan pengguna.
#4 Evolution
Setelah semua proses selesai, pengembangan software tidak berhenti di satu waktu saja. Software engineer perlu memperbaruinya secara berkala untuk memenuhi kebutuhan yang terus berubah.
Penutup
Software engineering adalah penerapan prinsip-prinsip keteknikan yang digunakan dalam pembuatan perangkat lunak. Penerapan ini berkaitan dengan sistem fisik, desain, pengembangan, pengujian, dan pengelolaan sistem perangkat lunak.
Bidang ini merupakan kombinasi ilmu dan teknik komputer. Output dari proses ini yaitu menghasilkan software untuk semua jenis perangkat, baik komputer hingga mobile app.