- Pengertian Rekayasa Perangkat Lunak
Ketika kita membangun produk atau sistem, kita
membutuhkan rangkaian langkah yang dapat diprediksi sehingga dapat menuntun
gerak kita. Kita membutuhkan pedoman sehingga kita dapat menciptakan hasil yang
berkualitas dan tepat waktu. Pedoman inilah yang kita sebut sebagai proses
perangkat lunak (software process).
Manajer dan pengembang perangkat lunak
mengadaptasi proses dan menerapkannya dengan melibatkan customer dalam
pengembangan perangkat lunak yang dipesannya.
Proses perangkat lunak ini penting, karena proses
ini memberikan kestabilan, kontrol, dan pengorganisasian aktivitas pengembangan
perangkat lunak. Proses ini menghasilkan integrasi program, data, dan dokumen.
IEEE Computer Society mendefinisikan
rekayasa perangkat lunak (software engineering) sebagai:
1.
Suatu aplikasi dari pendekatan yang sistematis,
disiplin, dan terukur terhadap pengembangan, pengoperasian, dan perawatan
perangkat lunak. Atau dengan kata lain, rekayasa perangkat lunak adalah
aplikasi rekayasa (engineering) terhadap perangkat lunak.
2. Kajian
terhadap pendekatan yang sistematis, disiplin, dan terukur terhadap
pengembangan, pengoperasian, dan perawatan perangkat lunak.
B. RPL:
Proses, Metode, Piranti
Lapisan Rekayasa Perangkat
Lunak
Rekayasa
perangkat lunak ditujukan untuk peningkatan kualitas produk, fokus pada
kualitas.
Proses
adalah Pondasi rekayasa perangkat lunak. Proses rekayasa perangkat lunak
mengintegrasikan teknologi dan memungkinkan proses rasional dan pengembangan
perangkat lunak yang tepat waktu. Proses rekayasa perangkat lunak
mendefinisikan kerangka kerja yang perlu dijalankan untuk mendapatkan efisiensi
pembangunan produk rekayasa perangkat lunak.
Proses rekayasa perangkat lunak menjadi dasar manajemen kontrol proyek
perangkat lunak dan memberikan pedoman penerapan metode teknis dan jadwal
pembangunan produk (model, dokumen, data, reports, form, dsb.),
jaminan kualitas, dan manajemen perubahan kebutuhan.
Metode rekayasa perangkat lunak menyediakan cara
dan petunjuk membangun perangkat lunak. Metode ini mencakup kumpulan tugas
termasuk analisis kebutuhan, desain, implementasi program (coding), testing, dan support.
Piranti (tools) rekayasa perangkat lunak
menyediakan dukungan yang otomatis atau semi otomatis terhadap proses dan
motode rekayasa perangkat lunak. Ketika suatu piranti diintegrasikan, informasi
yang dihasilkan oleh satu tool dapat digunakan oleh tool yang
lain. Sistem ini memberikan dukungan pengembangan perangkat lunak, sehingga
disebut Computer Aided Software Engineering (CASE). CASE
mengintegrasikan perangkat lunak, perangkat keras, dan basisdata rekayasa
perangkat lunak (basisdata yang menyimpan seluruh informasi rekayasa perangkat
lunak: analisis, desain, coding, dan testing).
C. Fase Proses RPL
Rekayasa
adalah analisis, desain, konstruksi, dan proses manajemen suatu entitas (objek
kajian). Apapun (entitas) yang dibangun dan dikembangkan, pertanyaan berikut
perlu kita jawab:
1.
Apa persoalan yang harus dipecahkan?
2. Karakteristik
apa dari entitas yang digunakan untuk dapat memecahkan persoalan?
3. Bagaimana
suatu entitas dan solusinya dapat direalisasikan?
4. Pendekatan
apa yang dapat dan akan digunakan untuk memperbaiki kesalahan yang dilakukan
pada tahap desain dan implementasi?
5. Bagaimana
kita memberikan support setelah menyelesaikan suatu persoalan, ketika
perbaikan, adaptasi, peningkatan fitur (enhancement), dan
perawatan diminta oleh customer?
Rekayasa
perangkat lunak dapat dikategorikan ke dalam tiga fase utama, tidak peduli area
aplikasinya, ukuran, dan kompleksitas proyek. Setiap fase merepresentasikan
pertanyaan-pertanyaan sebelumnya yang perlu kita jawab.
Fase tersebut adalah:
1. Fase definisi (definition)
Fase ini
memfokuskan pada pertanyaan apa / what. Selama proses pendefinisian, software
engineer berusaha untuk mengidentifikasikan:
a. Informasi
apa yang akan diproses?
b. Fungsi dan
performansi apa yang diinginkan?
c. Perilaku
sistem seperti apa yang diharapkan?
d. Antarmuka
apa yang akan dibangun?
e. Batasan
desain apa saja yang ada?
f. Kriteria
validasi apa yang diperlukan untuk dapat mendefiniskan sebuah sistem yang
sukses?
2. Fase pengembangan (development)
Fase ini
memfokuskan pada pertanyaan bagaimana / how. Selama proses ini software
engineer berusaha untuk mengidentifikasikan:
a. Bagaimana
data distrukturkan (struktur data)?
b. Bagaimana
fungsi-fungsi sistem diimplementasikan dalam arsitektur perangkat lunak?
c. Bagaimana
detail prosedur diimplementasikan?
d. Bagaimana
memberikan karakteristik antarmuka?
e. Bagimana
desain akan diimplementasiakan dalam sebuah bahasa pemrograman?
f. Bagaimana
prose pengujiannya?
3. Fase support
Fase ini
memfokuskan pada manajemen perubahan /
change saat diminta oleh customer. Fase support mengaplikasikan
ulang langkah-langkah pada fase pendefinisian dan pengembangan tapi
diimplementasikan pada perangkat lunak yang telah dibangun sebelumnya. Empat
tipe perubahan yang mungkin dilakukan adalah:
a. Koreksi (corrective
maintenance)
Meskipun
dengan mengaplikasikan aktivitas jaminan kualitas, masih terdapat kemungkinan
besar ditemukan error oleh customer, sehingga perlu dilakukan
proses koreksi kesalahan.
b. Adaptasi (adaptive
maintenance)
Dengan
perkembangan waktu, lingkungan operasional perangkat lunak (CPU, sistem
operasi, business rules) oleh customer sangat dimungkinkan untuk
berubah. Adaptasi perangkat lunak perlu dilakukan untuk mengakomodasi perubahan
ini.
c. Enhancement
(perfective
maintenance)
Selama pengoperasian
perangkat lunak, customer akan membutuhkan tambahan fitur yang dapat
meningkatkan efisiensi dan efektivitas bisnisnya.
d. Prevention
(preventive maintenance
= software reengineering)
Pernah
kita membahas efek waktu terhadap kualitas pemanfaatan perangkat lunak. Agar
perangkat lunak tersebut tidak ‘ketinggalan jaman’, maka perlu dilakukan preventive
maintenance agar kualitas
perangkat lunak dapat terus dijaga bahkan ditingkatkan.
D. Model
Proses RPL/ Paradigma Pengembangan PL
Untuk
dapat memecahkan persoalan dalam lingkup industri, seorang software engineer
atau tim engineer harus menerapakan sebuah strategi yang mencakup
proses, metode, dan piranti yang digunakan. Strategi ini sering disebut sebagai
model proses atau paradigma rekayasa perangkat lunak. Pengembangan perangkat
lunak dapat dicirikan sebagai iterasi proses pemecahan persoalan (problem
solving loop) dengan mencakup empat status:
Iterasi Proses Pemecahan Masalah
Status
quo merepresentasikan status perkerjaan yang sedang dilakukan yang merupakan
bagian perkerjaan dari keseluruhan iterasi. Pendefinisian persoalan
mendefinisikan persolan yang sedang dihadapi dan akan dicarikan pemecahannya.
Pengembangan teknis memecahkan masalah melalui penerapan beberapa teknologi.
Integrasi solusi menyampaikan hasil solusi (dokumen, program, data, fungsi
bisnis baru, produk baru) ke pemesan.
Model
proses rekayasa perangkat lunak cukup banyak. Seluruh model tersebut membantu
kita sebagai pedoman dalam mengontrol dan mengkoordinasikan proyek perangkat
lunak. Dalam pembahasan ini, kita akan mengenal dan mencoba memanfaatkan metode
yang relatif sederhana tetapi cukup mendasar dan sering digunakan.
0 comments:
Posting Komentar