SOFTWARE ENGINEERING
A.
Pengertian Software Engineering
Software
engineering adalah suatu disiplin ilmu yang membahas semua aspek produksi
perangkat lunak, mulai dari tahap awal requirement capturing (analisa kebutuhan
pengguna), specification
(menentukan spesifikasi dari kebutuhan pengguna),
design, coding, testing sampai pemeliharaan sistem setelah digunakan.Definisi Software Engineering menurut IEEE (Institute of Electrical and Electronics Engineers) pada proyek SWEBOK (Software Engineering Body of Knowledge) adalah aplikasi sistematik, disiplin, pendekatan kuantitatif untuk pengembangan, operasi dan pemeliharaan dari software; atau dapat disimpulkan sebagai teknik aplikasi untuk perangkat lunak. Intinya Software engineering berkaitan dengan pembangunan produk program. 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.
B. Metode software engineering
Metode
software engineering memberikan teknik-teknik bagaimana membentuk software.
Metode ini terdiri dari serangkaian tugas :
o
Perencanaan dan
estimasi proyek
o
Analisis
kebutuhan sistem dan software
o
Desain struktur
data
o
Arsitektur
program dan prosedur algoritma
o
Coding
o
Testing dan
pemeliharaan
Dalam model atau
paradigma software engineering, dikenal ada 3 metode yang secara luas
dipergunakan, yaitu :
1.
Classic Life Cycle Pradigm - Model Water Fall -
Model Siklus Hidup Klasik
C.
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 ele men lain, seperti :
·
Hardware
·
Software
·
Database
D.
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.
E.
Design Desain software
sesungguhnya
adalah proses multi step (proses yang terdiri dari banyak langkah) yang
memfokuskan pada 3 atribut p rogram 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.
E.
Coding
Desain harus diterjemahkan ke dalam
bentuk yang dapat dibaca oleh mesin
F.
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.
G.
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.
1.
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.
1.
Prototype Paradigm
Seringkali seorang
customer sulit menentukan input yang lebih terinci, pros es yang diinginkan dan
output yang diharapkan. Tentu saja ini menyebabkan developer tidak yakin dengan
efisiensi alogoritma yang di buatnya, sulit menyesuaikan sistem operasi, serta
interaksi manusia dan mesin yang harus diambil. Dalam hal seperti ini, pen
dekatan 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 pen gembangan software. Model ini dimulai dengan :
·
Pengumpulan kebutuhan developer dan
customer
·
Menentukan semua tujuan software
Mengidentifikasi kebutuhan-kebutuhan yang
diketahui
3. Fourth Generation Tehnique Paradigm - Model tehnik generasi ke 4 /
Istilah Fourth
Generation Technique (4GT) meliputi seperangkat peralatan software yang
memungkinkan seorang developer software menerapkan beberapa karakteristik
software pada tingkat yang tinggi, yang ke mudian 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
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.
b.
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
Thanks
ReplyDelete