Rekayasa perangkat lunak adalah disiplin ilmu
yang membahas semua aspek produksi perangkat lunak, mulai dari tahap awal
spesifikasi sistem sampai pemeliharaan sistem setelah digunakan. (Sommerville,
2003). Pada definisi ini, ada dua istilah kunci yaitu:
(1) Disiplin
rekayasa, perekayasa membuat suatu alat bekerja. Menerapkan teori, metode,
dan alat bantu yag sesuai, selain itu mereka menggunakannya dengan selektif dan
selalu mencoba mencari solusi terhadap permasalahan, walaupun tidak ada teori
atau metode yang mendukung. Perekayasa juga menyadari bahwa mereka harus
bekerja dalam batasan organisasi dan keuangan, sehingga mereka berusaha mencari
solusi dalam batasan-batasan ini.
(2) Semua aspek produksi perangkat lunak,
rekayasa perangkat lunak tidak hanya berhubungan dengan proses teknis dari
pengembangan perangkat lunak tetapi juga dengan kegiatan seperti manajemen
proyek perangkat lunak dan pengembangan
alat bantu, metode, dan teori untuk
mendukung produksi perangkat lunak.
Secara umum, rekayasa perangkat lunak memakai
pendekatan sistematis dan terorganisasi terhadap pekerjaan mereka karena cara
ini seringkali paling efektif untuk menghasilkan perangkat lunak berkualitas tinggi. Namun
demikian, rekayasa ini sebenarnya mencakup masalah pemilihan metode yang paling
sesuai untuk satu set keadaan dan pendekatan yang lebih kreatif, informal
terhadap pengembangan yang mungkin efektif pada beberapa keadaan. Pengembangan
informal sangat cocok untuk pengembangan sistem e-commerce web membutuhkan gabungan keahlian perangkat lunak dan
perancangan grafis.
Proses
Perangkat Lunak
Proses perangkat lunak adalah
serangkaian kegiatan-kegiatan dan hasil-hasil relevannya yang menghasilkan
perangkat lunak. Kegiatan-kegiatan ini sebagian besar dilakukan perekayasa
perangkat lunak. Ada empat kegiatan proses dasar yang umum bagi seluruh
kegiatan proses perangkat lunak. Kegiatan-kegiatan ini adalah :
(1) Spesifikasi perangkat lunak, fungsionalitas perangkat lunak dan batasan
kemampuan operasinya harus didefinisikan
(2) Pengembangan perangkat lunak, perangkat lunak yang memenuhi spesifikasi
tersebut harus diproduksi.
(3) Validasi perangkat lunak, perangkat lunak harus divalidasi untuk
menjamin bahwa perangkat lunak melakukan apa yang diinginkan oleh pelanggan.
(4) Evolusi perangkat lunak, perangkat lunak harus berkembang untuk
memenuhi kebutuhan pelanggan yang berubah-ubah.
Proses
perangkat lunak yang berbeda mengatur kegiatan ini dengan cara berbeda dan
dijelaskan dengan tingkat kerincian yang berbeda pula. Waktu kegiatan
bervarias, sebagaimana hasilnya. Pegaturan yang berbeda dapat menggunakan
proses yang berbeda untuk menghasilkan produk dengan jenis yang sama. Namun
demikian, untuk beberapa jenis aplikasi tertentu, beberapa proses lebih sesuai
dari yang lainnya jika digunakan proses yang tidak sesuai, maka kualitas
penggunaan produk perangkat lunak yang akan dikembangkan tersebut mungkin
berkurang.
Model
Proses Perangkat Lunak
Model
proses pengembangan perangkat lunak
adalah sebagai berikut :
(1) Model air terjun (waterfall). Model ini mengambil kegiatan proses dasar
seperti spesifikasi, pengembangan, validasi dan evolusi, dan
merepresentasikannya sebagai fase-fase proses yang berbeda seperti spesifikasi
persyaratan, perancangan perangkat lunak, implemetasi, pengujian dan
seterusnya.
(2) Pengembangan evolusioner. Pendekatan ini berhimpitan dengan kegiatan
spesifikasi, pengembangan, dan validasi. Suatu sistem awal dikembangkan dengan
cepat dari spesifikasi abstrak. Sistem ini kemudian diperbaiki dengan masukan
dari pelanggan untuk menghasilkan sistem yang memuaskan bagi kebutuhan
pelanggan.
(3) Pengembangan sistem formal. Pendekatan ini didasarkan atas pembuatan
spesifik sistem matematis dan pentransformasian spesifikasi, dengan memakai
metode matematis untuk membangun program. Verifikasi komponen sistem dilakukan
dengan membuat argumen matematis yang disesuaikan dengan spesifikasi.
Pengembangan
berdasarkan pemakaian ulang. Pendekatan ini didasarkan atas adanya komponen
yang dapat dipakai untuk jumlah yang signifikan . Proses pengembangan sistem
terfokus pada integrasi komponen-komponen ini ke dalam suatu sistem dan bukan
mengembangkan dari awal.
0 komentar:
Posting Komentar