1. Definisi Rekayasa Perangkat Lunak
Definisi
Rekayasa : Engineering = rekayasa
Ø
Pemakaian ‘science’ untuk menyelesaikan ‘masalah
praktis’.
Ø
Dari tidak ada menjadi ada
Definisi
Perangkat Lunak :
Ada
beberapa definisi perangkat lunak yang pernah dikemukakan antara lain :
•
Software = Perangkat lunak.
Ø
Kumpulan program komputer dengan fungsi tertentu
•
Perangkat lunak adalah:
1. Instruksi (program komputer) yang bila
dieksekusi dapat menjalankan fungsitertentu,
2. Struktur data yang dapat membuat
program memanipulasi informasi, dan
3. Dokumen yang menjelaskan operasi dan
penggunaan program (Pressman,1997).
•
Perangkat lunak adalah program komputer, prosedur, aturan, dan dokumentasi yang berkaitan serta data, yang bertalian dengan operasi suatu sistem komputer (IEEE,1993).
2.
Model Proses Rekayasa Perangkat Lunak
Proses pemodelan Rekayasa Perangkat Lunak merupakan langkah yang
dilakukan pada tahap awal.
A. Linear Sequential Model
Gambar
Waterfall Model :
Linear Sequential Model atau disebut juga “classic life cycle”
atau “waterfall model” merupakan metode pengembangan perangkat
lunak dengan pendekatan sekuensial dengan cakupan aktivitas :
1. Rekayasa sistem dan Analisis (Sistem
Engineering and Analysis)
Karena perangkat lunak adalah bagian dari sistem
yang lebih besar, maka pekerjaan dimulai dari pembentukan
kebutuhan-kebutuhan untuk seluruh elemen system. Hal ini penting, ketika
perangkat lunak harus berkomunikasi dengan hardware, orang dan basis data.
2. Analisa Kebutuhan Perangkat Lunak
(Software Requirements Analysis)
Pada tahap ini dilakukan dengan pengumpulan kebutuhan yang
berfokus pada perangkat lunak, meliputi : domain informasi, fungsi yang
dibutuhkan, unjuk kerja atau performansi dan antarmuka. Hasilnya harus
didokumentasi dan di review ke pengguna atau user.
3. Perancangan ( Design)
Ada 4 atribut untuk program yaitu : Struktur Data, Arsitektur
perangkat lunak,Prosedur detil dan Karakteristik Antarmuka. Proses desain
mengubah kebutuhan-kebutuhan menjadi bentuk karakteristik
yang dimengerti perangkat lunak sebelum dimulai penulisan program. Desain ini
harus terdokumentasi dengan baik dan menjadi bagian konfigurasi perangkat lunak.
4. Pembuatan kode (Coding)
Penterjemahan perancangan ke bentuk yang dapat dimengerti oleh
mesin, dengan menggunakan bahasa pemrograman seperti bahasa C, pascall ,
php dan sebagainya.
5. Pengujian (Testing)
Setelah kode program selesai testing dapat dilakukan. Testing
memfokuskan pada logika internal dari perangkat lunak, fungsi eksternal dan
mencari segala kemungkinan kesalahan dan memeriksa apakah sesuai dengan hasil
yang diinginkan atau tidak.
6. Pemeliharaan ( Maintenance)
Merupakan bagian paling akhir dari siklus pengembangan dan
dilakukan setelah perangkat lunak dipergunakan. Kegiatannya sebagai
berikut :
• Corrective Maintenance : Mengoreksi kesalahan pada perangkat
lunak, yang baru terdeteksi pada saat perangkat lunak digunakan.
• Adaptive Maintenance : Penyesuaian dengan lingkungan
baru, misalnya system operasi atau sebagai tuntutan atas perkembangan sistem
komputer, misalnya penambahan printer driver.
• Perfektive Maintenance : Bila perangkat lunak
sukses dipergunakan
oleh pemakai. Pemeliharaan ditujukan untuk menambah kemampuannya seperti
memberikan fungsi-fungsi tambahan, peningkatan kinerja dan sebagainya.
Ø
Kelemahan model linear sequential :
1. Proyek yang sebenarnya jarang
mengikuti alur sekuensial seperti diusulkan,sehingga perubahan yang terjadi
dapat menyebabkan hasil yang sudah didapat timharus diubah
kembali/iterasi sering menyebabkan masalah baru.
2. Linear sequential model mengharuskan
semua kebutuhan pemakai sudah dinyatakansecara eksplisit di awal proses, tetapi
kadang-kadang ini tidak dapat terlaksanakarena kesulitan yang dialami pemakai
saat akan mengungkapkan semuakebutuhannya tersebut.
3. Pemakai harus bersabar karena versi
dari program tidak akan didapat sampai akhir rentang waktu proyek.
4. Adanya waktu menganggur bagi
pengembang, karena harus menunggu anggota tim proyek lainnya menuntaskan
pekerjaannya.
B.
Prototyping Model
Pendekatan prototyping model digunakan jika pemakai hanya
mendefenisikan objektif umum dari perangkat lunak tanpa merinci kebutuhan input
, pemrosesan dan outputnya. Cakupan aktivitas dari prototyping model terdiri
dari :
1. Mendefinisikan objektif secara
keseluruhan dan mengidentifikasi kebutuhan yangsudah diketahui.
2. Melakukan perancangan secara cepat
sebagai dasar untuk membuat prototype. Modul Rekayasa Perangkat Lunak
3. Menguji coba dan mengevaluasi
prototype dan kemudian melakukan penambahandan perbaikan-perbaikan terhadap
prototype yang sudah dibuat.
Ø
Kelemahan prototyping model :
1. Pelanggan yang melihat working version
dari model yang dimintanya tidak menyadari, bahwa mungkin saja prototype
dibuat terburu-buru dan rancangan tidak tersusun dengan baik.
2. Pengembang kadang-kadang membuat implementasi sembarang, karena inginworking
version bekerja dengan cepat.
C.
RAD (Rapid Application Development) Model
Merupakan model proses pengembangan perangkat lunak secara
linear sequential yang menekankan pada siklus pengembangan yang sangat
singkat. Pendekatan RAD model menekankan cakupan :
1. Pemodelan bisnis ( Bussiness
Modelling )
Aliran
informasi diantara fungsi-fungsi bisnis dimodelkan dengan suatu
cara untuk menjawab pertanyaan-pertanyaan berikut :
· Informasi apa yang mengendalikan
proses bisnis ?
· Kemana informasi itu pergi?
· Siapa yang memprosesnya ?
2. Pemodelan data ( Data Modelling )
Aliran informasi yang didefinisikan sebagai bagian dari fase
pemodelan bisnis di saring ke dalam serangkaian objek data yang dibutuhkan
untuk menopang bisnis tersebut.
Karakteristik/atribut dari masing-masing objek diidentifikasi
dan hubungan antara objek-objek tersebut didefinisikan.
3. Pemodelan proses (Process Modelling)
Aliran informasi yang didefinisikan dalam fase pemodelan data
ditransformasikan untuk mencapai aliran informasi yang perlu bagi implementasi sebuah
fungsi bisnis. Gambaran pemrosesan diciptakan untuk menambah, memodifikasi,
menghapus atau mendapatkan kembali sebuah objek data.
4. Pembuatan aplikasi ( Application
generation)
Selain menciftakan perangkat lunak dengan menggunakan bahasa pemrograman
generasi ketiga yang konvensional, RAD lebih banyak memproses kerja
untuk memakai lagi komponen program yang telah ada atau menciptakan
komponen yang bisa dipakai lagi.
5. Pengujian dan pergantian (Testing and
turnover)
Karena proses RAD menekankan pada pemakaian kembali, banyak
komponen yang telah diuji. Hal ini mengurangi keseluruhan waktu pengujian. Tapi
komponen baru harus diuji.
Ø
Kelemahan RAD model :
1. Untuk proyek dengan skala besar, RAD
membutuhkan sumber daya manusia yang cukup untuk membentuk sejumlah tim RAD.
2. RAD membutuhkan pengembang dan pemakai
yang mempunyai komitmen untuk melaksanakan aktivitas melengkapi sistem
dalam kerangka waktu yang singkat
Evolusi Model Proses Perangkat Lunak
A.
The Incremental Model
Model
inkremental menggabungkan elemen model sekuensial linier (diterapkan berulang-ulang)
dengan filosofi iteratif prototyping. Dalam model ini langkah yang dilakukan
harus linear atau berurutan. Langkah pertama merupakan langkah yang paling
penting karena pada tahap ini merupakan dasar untuk langkah-langkah berikutnya.
Langkah selanjutnya modifikasi produk inti untuk lebih memenuhi keinginan pengguna
dengan penambahan fitur yang fungsional.
Tidak
seperti model prototyping, model incremental ini lebih berfokus pada pengiriman
produk operasional dengan menaikkan masing-masing awal kenaikan yang diambil
versi dari produk akhir.
B.
Spiral Model
Merupakan model proses perangkat lunak yang memadukan wujud pengulangan dari
model prototyping dengan aspek pengendalian dari sistematika dari linear
sequential model, dengan penambahan elemen baru yaitu analisis resiko.
Model
ini memiliki 4 aktivitas penting, yaitu :
1.
Perencanaan (Planning), penentuan tujuan, alternatif dan batasan.
2.
Analisis resiko (Risk Analysis), analisis alternatif dan identifikasi/pemecahan
resiko.
3.
Rekayasa ( Engineering), pengembangan level berikutnya dari produk.
4.
Evaluasi Pemakai (Customer Evaluation) penilaian terhadap hasil rekayasa.
Ø
Kelemahan spiral model :
1.
Sulit untuk meyakinkan pemakai (saat situasi kontrak) bahwa
penggunaan pendekatan ini akan dapat dikendalikan.
2. Memerlukan
tenaga ahli untuk memperkirakan resiko, dan
arus mengandalkannya supaya sukses.
3. Belum
terbukti apakah metode ini cukup efisien karena usianya
relatif baru.
C.
The WINWIN Spiral Model
Model Spiral
yang telah dijelaskan sebelumnya memiliki tujuan yaitu untuk memperoleh proyek persyaratan
dari pelanggan. Dalam konteks yang ideal, pengembang hanya meminta pelanggan
apa yang dibutuhkan dan pelanggan memberikan rincian yang memadai untuk dilanjutkan
oleh pengembang. Akan tetapi, hal ini jarang terjadi. Pada kenyataannya,
pelanggan dan pengembang masuk dalam proses negosiasi, di mana pelanggan
mungkin akan diminta untuk menyeimbangkan fungsi, kinerja, dan produk lainnya
atau sistem karakteristik terhadap biaya dan waktu.
The WINWIN
Spiral Model ini mendefinisikan setiap negosiasi awal pada tahap spiral. Kegiatannya
sebagai berikut:
1. Identifikasi sistem atau subsistem
2. Penentuan stakeholder '"memenangkan kondisi."
3. Negosiasi kondisi menang pemangku kepentingan untuk mendamaikan
mereka menjadi memiliki satu kesepakatan.
Selain menekankan negosiasi awal, model ini juga menggunakan tiga
proses yang disebut dengan “anchor points”.
D.
Fourth
Generation Techniques (4GT)
Istilah generasi ke empat, mengarah ke perangkat lunak yang umum yaitu
tiap pengembang perangkat lunak menentukan beberapa karakteristik perangkat lunak pada
level tinggi.
Saat ini pengembangan perangkat lunak yang mendukung 4GT, berisi
tool-tool berikut :
• Bahasa non prosedural untuk query basis data.
• Report generation.
• Data manipulation.
• Interaksi layar.
• Kemampuan grafik level tinggi.
• Kemampuan spreadsheet.
Tiap tool ini ada tapi hanya untuk sauatu aplikasi
khusus.Menggunakan perangkat bantu (tools) yang akan membuat kode sumber
secaraotomatis berdasarkan spesifikasi dari pengembang perangkat lunak. Hanya
digunakanuntuk menggunakan perangkat lunak yang menggunakan bahasa khusus atau
notasigrafik yang diselesaikan dengan syarat yang dimengerti pemakai. Cakupan
aktivitas 4GT :
1. Pengumpulan kebutuhan,
idealnya pelanggan akan menjelaskan kebutuhan yangakan
ditranslasikan ke prototype operasional.
2. Translasi kebutuhan menjadi prototype
operasional, atau langsung melakukanimplementasi secara langsung dengan
menggunakan bahasa generasi keempat (4GL) jika aplikasi relatif kecil.
3. Untuk aplikasi yang cukup besar,
dibutuhkan strategi perancangan sistem walaupun4GL akan digunakan.
4. Pengujian.
5. Membuat dokumentasi.
6. Melaksanakan seluruh aktivitas untuk
mengintegrasikan solusi-solusi yang membutuhkan paradigma rekayasa perangkat
lunak lainnya.
Salah satu keuntungan penggunaan model 4GT adalah pengurangan
waktu peningkatan produktivitas secara besar, sementara kekurangannya
terletak pada kesulitan penggunaan perangkat baru (tools) dibandingkan dengan
bahasa pemograman, dan juga kode sumber yang dihasilkannya tidak efisien.
Sumber
:
Pressman,
Roger S. 1997.Software Engineering. New York : Mc Graw Hill
Blog
:
Tidak ada komentar:
Posting Komentar