Rekayasa
perangkat lunak (RPL, atau dalam bahasa Inggris: Software Engineering atau
SE) adalah satu bidang profesi yang mendalami cara-cara pengembangan
perangkat lunak termasuk pembuatan, pemeliharaan, manajemen organisasi
pengembanganan perangkat lunak dan sebagainya
Rekayasa
perangkat lunak juga bisa
diartikan sebagai ilmu yang mempelajari tehnik pembuatan software yang baik
dengan pendekatan tehnik (Engineering approach)
MODEL SOFTWARE ENGINEERING
Krisis software
tidak dapat hilang dalam satu satu malam, di mana tidak ada suatu pendekatan
yang baik dalam mengatasi krisis software, namun gabungan dari metode untuk
semua fase dalam pengembangan siftware seperti peralatan yang lebih baik untuk
mengautomatisasi metode-metode ini, tehnik yang lebih baik untuk mengontrol
kualitas, dan filosofi untuk koordinasi kontrol, serta manajemen dipelajari
dalam suatu disiplin ilmu yang kita sebut software engineering.
Definisi :
Menurut Fritz Badar, software
engineering adalah disiplin ilmu yang menerapkan prinsip-prinsip engineering
agar mendapatkan software yang ekonomis yang dapat dipercaya dan bekerja lebih
efisien pada mesin yang sebenarnya.
Software
engineering terdiri dari 3 elemen kunci, yaitu :
1. Metode,
2. Peralatan (tools),
3. Prosedur,
yang memungkinkan manajer mengontrol
proses pengembangan software dan memberikan praktisi dasar yang baik untuk
pembentukan software berkualitas tinggi.
1. Metode Software Enginnering
Metode software
engineering memberikan tehnik-tehnik bagaimana membentuk software. Metode ini terdiri
dari serangkaian tugas :◊ Perencanaan & estimasi proyek
·
Analisis
kebutuhan sistem dan software
·
Desain struktur data
·
Arsitektur program dan prosedur algoritma
·
Coding
·
Testing dan pemeliharaan
2. Peralatan Software Engineering
Peralatan software
engineering memberikan dukungan atau semiautomasi untuk metode. Contohnya
:
·
CASE (Case Aided Software Engineering), yaitu
suatu software yang menggabungkan software, hardware, dan database software
engineering untuk menghasilkan suatu lingkungan software engineering.
·
Database Software Engineering, adalah sebuah
struktur data yang berisi informasi penting tentang analisis, desain, kode dan
testing.
·
Analogi dengan CASE pada hardware adalah : CAD,
CAM, CAE
3. Prosedur Software Engineering
Terdiri
dari :
·
urut-urutan di mana metode tersebut diterapkan
·
dokumen
·
laporan-laporan
·
formulir-formulir yang diperlukan
·
mengontrol kualitas software
·
mengkoordinasi perubahan yang terjadi pada
software
Dalam penguasaan
atas model software engineering atau software engineering paradigm, dikenal ada
3 metode yang luas dipergunakan, yaitu :
1. Classic Life Cycle Pradigm - Model
Water Fall - Model Siklus Hidup Klasik
Keterangan
:
A. System Engineering and Analysis
Karena software
merupakan bagian terbesar dari sistem, maka pekerjaan dimulai dengan cara
menerapkan kebutuhan semua elemen sistem dan mengalokasikan sebagian kebutuhan
tersebut ke software. Pandangan terhadap sistem adalah penting, terutama pada
saat software harus berhubungan dengan elemen lain, seperti :
·
Hardware
·
Software
·
Database
B. Analisis kebutuhan software
Suatu proses pengumpulan kebutuhan software untuk mengerti
sifat-sifat program yang dibentuk software engineering, atau analis harus
mengerti fungsi software yang diinginkan, performance dan interface terhadap
elemen lainnya. Hasil dari analisis
ini didokumentasikan dan direview / dibahas / ditinjau bersama-sama customer.
C. Design
Desain software sesungguhnya
adalah proses multi step (proses yang terdiri dari banyak langkah) yang
memfokuskan pada 3 atribut program yang berbeda, yaitu :
·
Struktur data
·
Arsitektur
software
·
Rincian prosedur
Proses desain menterjemahkan
kebutuhan ke dalam representasi software yang dapat diukur kualitasnya sebelum
mulai coding. Hasil dari desain ini didokumentasikan dan menjadi bagian dari konfigurasi
software.
D. Coding
Desain harus diterjemahkan ke dalam bentuk
yang dapat dibaca oleh mesin
E. Testing
Segera sesudah
objek program dihasilkan, pengetesan program dimulai. Proses testing difokuskan
pada logika internal software. Jaminan bahwa semua pernyataan atau statements
sudah dites dan lingkungan external menjamin bahwa definisi input akan
menghasilkan output yang diinginkan.
F. Maintenance
Software yang sudah dikirim ke customer data berubah karena
·
Software mengalami error
·
Software
harus diadaptasi untuk menyesuaikan dengan lingkungan external, misalnya adanya
sistem operasi baru atau peripheral baru.
·
Software
yang lebih disempurnakan karena adanya permintaan dari customer.
Masalah yang dihadapi dari model siklus
hidup klasik adalah :
·
Proyek
yang sebenarnya jarang mengikuti aliran sequential yang ditawarkan model ini.
Iterasi (Pengulangan) selalu terjadi dan menimbulkan masalah pda aplikasi yang
dibentuk oleh model ini.
·
Seringkali
pada awalnya customer sulit menentukan semua kebutuhan secara explisit (jelas).
·
Customer
harus sabar karena versi program yang jalan tidak akan tersedia sampai proyek
software selesai dalam waktu yang lama.
2. Prototype
Paradigm
Keterangan
:
Seringkali seorang customer sulit menentukan input yang lebih
terinci, proses yang diinginkan dan output yang diharapkan. Tentu saja ini menyebabkan developer tidak yakin
dengan efisiensi alogoritma yang dibuatnya, sulit menyesuaikan sistem operasi,
serta interaksi manusia dan mesin yang harus diambil. Dalam hal seperti ini,
pendekatan prototype untuk software engineering merupakan langkah yang terbaik.
(”Prototype sebenarnya adalah suatu proses
yang memungkinkan developer membuat sebuah model software.”)
Ada 2 bentuk dari model ini, yaitu :
A. Paper
Prototype
Menggambarkan
interaksi manusia dan mesin dalam sebuah bentuk yang memungkinkan user mengerti
bagaimana interaksi itu terjadi.
B. Working Prototype
Adalah prototype
yang mengimplementasikan beberapa bagian dari fungsi software yang diinginkan
seperti pada pendekatan pengembangan software. Model ini dimulai dengan :
·
Pengumpulan kebutuhan developer dan customer
·
Menentukan semua tujuan software
·
Mengidentifikasi
kebutuhan-kebutuhan yang diketahui
Hasil dari
pengumpulan kebutuhan diteruskan pada Quick Design. Quick Design ini
memfokuskan pada representasi aspek-aspek software yang dapat dilihat oleh
user, misalnya format input dan output, selanjutanya dari desain cepat
diteruskan pada pembentukan prototype (langkah ke 3). Prototype ini dievaluasi
oleh customer / user dan digunakan untuk memperbaiki kebutuhan-kebutuhan
software. Proses iterasi terjadi agar prototype yang dihasilkan memenuhi kebutuhan
customer, juga pada saat yang sama developer mengerti lebih baik tentang apa
yang harus dikerjakan.
Masalah yang dihadapi
oleh prototyping paradigm ini adalah :
·
Customer hanya melihat pada apa yang dihasilkan oleh
software, tidak peduli pada hal-hal yang berhubungan dengan kualitas software
dan pemeliharaan jangka panjang.
·
Developer seringkali menyetujui apa yang diterangkan oleh
customer agar prototype dapat dihasilkan dengan cepat. Akibatnya timbul
pemilihan sistem operasi / bahasa pemrograman yang tidak tepat.
3. Fourth Generation Tehnique Paradigm - Model
tehnik generasi ke 4 / 4GT
Istilah Fourth Generation
Technique (4GT) meliputi seperangkat peralatan software yang memungkinkan
seorang developer software menerapkan beberapa karakteristik software pada
tingkat yang tinggi, yang kemudian menghasilkan source code dan object
code secara otomatis sesuai dengan spesifikasi yang ditentukan developer.
Saat ini peralatan / tools 4GT adalah bahasa non prosedur untuk :
·
DataBase Query
·
Pembentukan
laporan ( Report Generation )
·
Manipulasi data
·
Definisi dan
interaksi layar (screen)
·
Pembentukan
object dan source ( Object and source generation )
·
Kemampuan grafik yang tinggi, dan
·
Kemampuan
spreadsheet
Keterangan gambar :
·
Model 4GT untuk
software engineering dimulai dengan rangkaian pengumpulan kebutuhan. Idealnya,
seorang customer menjelaskan kebutuhan-kebutuhan yang selanjutnay diterjemahkan
ke dalam prototype. Tetapi ini tidak dapat dilakukan karena customer tidak yakin dengan apa
yang diperlukan, tidak jelas dalam menetapkan fakta-fakta yang diketahui dan
tidak dapat menentukan informasi yang diinginkan oleh peralatan 4GT.
·
Untuk aplikasi kecil adalah mungkin bergerak langsung
dari langkah pengumpulan kebutuhan ke implementasi yang menggunakan bahasa non
prosedur fourth generation (generasi ke 4). Tetapi untuk proyek besar,
pengembangan strategi desain sistem tetap diperlukan, sekalipun kita
menggunakan 4GL. Penggunaan 4GT tanpa desain untuk proyek besar akan
menyebabkan masalah yang sama yang ditemui dalam pengembangan software yang menggunakan
pendekatan konvensional.
·
Implementasi yang menggunakan 4GL memungkinkan developer
software menjelaskan hasil yang diinginkan yang kemudian diterjemahkan ke dalam
bentuk source code dan object code secara otomatis.
· Langkah yang terakhir
adalah mengubah implementasi 4GT ke dalam sebuah product. Selanjutnya developer
harus melakukan pengetesan, pengembangan dokumentasi dan pelaksanaan semua
aktifitas lainnya yang diwujudkan dalam model software engineering.
Masalah
yang dihadapi dalam model 4GT adalah adanya sebagian orang yang beranggapan
bahwa :
A. peralatan 4GT tidak semudah penggunaan bahasa
pemrograman,
B. source code yang dihasilkan oleh peralatan ini tidak
efisien,
C.
pemeliharaan sistem software besar yang dikembangkan dengan 4GT masih
merupakan tanda tanya.
4. Model
Kombinasi - Combining Paradigm
Keterangan :
Model
ini menggabungkan keuntungan-keuntungan dari beberapa model sebelumnya. Seperti
pada model sebelumnya, model kombinasi ini dimulai dengan langkah pengumpulan
kebutuhan.
Pendekatan
yang dapat diambil adalah pendekatan siklus hidup klasik (Analisis sistem dan
analisis kebutuhan software) atau dapat juga menggunakan pendekatan seperti
prototyping jika definisi masalahnya tidak terlalu formal.
Jika
kebutuhan untuk fungsi dan performance software diketahui dan dimengerti,
pendekatan yang dianjurkan adalah model siklus hidup klasik. Sebaliknya, jika
aplikasi software menuntut interaksi yang sering antara manusia dan mesin,
membutuhkan algoritma yang tidak dapat dibuktikan, atau membutuhkan tehnik
output / kontrol, maka pendekatan yang dianjurkan adalah model prototyping.
Pada
kasus seperti ini, 4GL dapat digunakan untuk mendapat prototype dengan cepat.
Segera sesudah prototype dievaluasi dan disempurnakan, langkah desain dan
implementasi dalam siklus hidup klasik diterapkan.
Tidak ada komentar:
Posting Komentar