2 November 2015

Proses Rekayasa Perangkat Lunak

  1. 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