Haii ^^
Pada pelajaran
RPL kali ini, saya belajar tentang Model Proses Perangkat Lunak
(Software Process). Software Process yang saya pelajari terbagi menjadi 5
model, yaitu :
- Linear
Sequential Model / Waterfall Model
- Prototyping
Model
- Rapid
Application Development (RAD) Model
- Incremental
Model
- Ireactive-Incremental
(Spiral) Model
Untuk lebih
jelasnya, silakan baca ulasan singkat berikut ini :D
Software Process Model (Model Proses Perangkat Lunak) merupakan suatu representasi proses perangkat lunak yang disederhanakan, dipresentasikan, dan perspektif secara khusus.
Fungsi utama
model proses pengembangan perangkat lunak :
- Menentukan tahap-tahap
yang diperlukan untuk pengembangan perangkat lunak.
- Menentukan
urutan pelaksanaan dari tahap-tahap tersebut dalam
rangka pengembangan perangkat lunak.
- Menentukan kriteria transisi / perpindahan dari satu tahap ke tahap berikutnya.
Terdapat
beberapa model proses perangkat lunak (Software Process Model) antara lain
sebagai berikut :
- Linear Sequential Model /
Waterfall Model
Model ini adalah model klasik yang bersifat sistematis, berurutan dalam
membangun software. Waterfall Model juga dikenal dengan Model Air Terjun.
Proses dalam Waterfall Model akan berlanjut jika proses sebelumnya telah
selesai dilakukan, jika tidak maka proses selanjutnya juga tidak dapat
berjalan (prosesnya berjalan secara berurutan). Berikut ini ada dua
gambaran dari Waterfall Model.
Fase-fase dalam Waterfall Model menurut referensi Pressman :
Fase-fase dalam Waterfall Model menurut referensi Sommerville :
1.
Requirements analysis and definition
Mengumpulkan
kebutuhan secara lengkap kemudian kemudian dianalisis dan didefinisikan
kebutuhan yang harus dipenuhi oleh program yang akan dibangun. Fase ini harus
dikerjakan secara lengkap untuk bisa menghasilkan desain yang lengkap.
2. System and software design
Desain dikerjakan
setelah kebutuhan selesai dikumpulkan secara lengkap.
3. Implementation and unit testing
Desain program diterjemahkan ke dalam
kode-kode dengan menggunakan bahasa pemrograman yang sudah ditentukan. Program
yang dibangun langsung diuji baik secara unit.
4. Integration and system testing
Penyatuan
unit-unit program kemudian diuji secara keseluruhan (system testing).
5. Operation and maintenance
Mengoperasikan program dilingkungannya
dan melakukan pemeliharaan, seperti penyesuaian atau perubahan karena adaptasi
dengan situasi sebenarnya. Kekurangan yang utama dari model ini adalah
kesulitan dalam mengakomodasi perubahan setelah proses dijalani. Fase
sebelumnya harus lengkap dan selesai sebelum mengerjakan fase berikutnya.
Masalah dengan
Waterfall Model :
1. Perubahan
sulit dilakukan karena sifatnya yang kaku.
2. Karena sifat
kakunya, model ini cocok ketika kebutuhan dikumpulkan secara lengkap sehingga
perubahan bisa ditekan sekecil mungkin. Tapi pada kenyataannya jarang sekali
konsumen / pengguna yang bisa memberikan kebutuhan secara lengkap,
perubahan kebutuhan adalah sesuatu yang wajar terjadi.
3. Waterfall pada
umumnya digunakan untuk rekayasa sistem yang besardimana proyek dikerjakan di
beberapa tempat berbeda, dan dibagi menjadibeberapa bagian sub-proyek.
Kelebihan dan
Kekurangan Waterfall Model :
Kelebihan :
-
Merupakan model pengembangan paling handal dan paling lama digunakan.
-
Cocok untuk system software berskala besar.
-
Cocok untuk system software yang bersifat generic.
-
Pengerjaan project system akan terjadwal dengan baik dan mudah dikontrol.
Kekurangan :
-
Persyaratan system harus digambarkan dengan jelas.
-
Rincian proses harus benar-benar jelas dan tidak boleh berubah-ubah.
- Sulit
untuk mengadaptasi jika terjadi perubahan spesifikasi pada suatu tahapan
pengembangan.
Referensi
:
Model prototipe (prototyping model)
merupakan suatu teknik untuk mengumpulkan informasi tertentu mengenai kebutuhan-kebutuhan informasi pengguna
secara cepat. Berfokus pada penyajian dari
aspek–aspek software tersebut yang akan nampak bagi pelanggan atau pemakai
(contohnya pendekatan input dan format output).
Prototipe tersebut dievaluasi oleh pelanggan /
pemakai dan dipakai untuk menyaring kebutuhan
pengembangan software.
Proses (aktivitas) pada
model prototyping bisa dijelaskan sebagai berikut :
1. Mengidentifikasi
kebutuhan : Analisa terhadap kebutuhan calon user.
2. Quick
design : Pembuatan desain global untuk membentuk contoh software.
3. Build prototype : Pembuatan software prototype termasuk pengujian dan penyempurnaan.
4.
Evaluasi pelanggan : Mengevaluasi prototype dan memperhalus analisa
kebutuhan calon pemakai.
5. Pembuatan dan Implementasi : Pembuatan sebenarnya termasuk design, coding, dan testing.
Perulangan ketiga proses ini terus berlangsung hingga semua kebutuhan
customer
terpenuhi. Prototype-prototype dibuat untuk memuaskan kebutuhan klien dan untuk memahami kebutuhan klien lebih baik.
Prototype yang dibuat dapat dimanfaatkan
kembali untuk membangun software lebih cepat, namun tidak semua prototype bisa
dimanfaatkan. Agar model ini bisa berjalan dengan baik, perlu
disepakati bersama oleh klien dan developer bahwa prototype yang dibangun
merupakan alat untuk mendefinisikan kebutuhan software.
Kelebihan dan Kekurangan
Prototyping Model :
Kelebihan :
o Memudahkan user
untuk memetakan pikirannya dengan prototipe.
o Lebih tampak
realistis bagi user.
o Membangun
komunikasi yang baik dengan user.
o Bermanfaat
untuk menyatakan objek yang abstrak.
o Membantu
mengidentifikasi kebingungan spesifikasi.
o Dapat
menggenerasi spesifikasi aplikasi.
o Mendorong
adanya inovasi dan desain yang fleksibel.
o Waktu
pengembangan cepat jika tidak terjadi banyak iterasi.
o Prototype
melibatkan user dalam analisa dan desain.
o Punya kemampuan
menangkap requirement secara konkret daripada secara abstrak.
o Untuk digunakan secara
stand alone.
o Digunakan untuk
memperluas SDLC.
o Mempersingkat waktu
pengembangan Sistem Informasi.
Kekurangan :
o Ketidaksadaran user bahwa
ini hanya suatu model awal bukan model akhir.
o Pengembang
kadang-kadang membuat implementasi yang sembarangan.
o Teknik
dan tools yang tidak optimal pada prototype yang akan tetap digunakan pada
software sesungguhnya.
o Kebutuhan
mempunyai kemungkinan sering berubah, sedangkan protitype yang dihasilkan tidak selamanya
mudah dirubah.
o Sulit
dalam hal dokumentasi.
o Banyaknya
perulangan proses dapat membuat pembengkakan biaya dan jadwal.
o Proses
analisis dan perancangan terlalu singkat.
o
Mengesampingkan alternatif pemecahan masalah.
o Bisanya
kurang fleksibel dalam menghadapi perubahan.
Referensi
:
- Rapid
Application Development (RAD) Model
RAD adalah model
proses pembangunan PL yang incremental. RAD menekankan pada siklus pembangunan
yang pendek/singkat. RAD mengadopsi model waterfall dan pembangunan dalam waktu
singkat dicapai dengan menerapkan component based construction. Waktu yang singkat
adalah batasan yang penting untuk model ini. Jika kebutuhan lengkap dan jelas
maka waktu yang dibutuhkan untuk menyelesaikan secara komplit software yang
dibuat adalah misalnya 60 sampai 90 hari.
Fase-fase di
atas menggambarkan proses dalam model RAD. Sistem dibagi-bagi menjadi beberapa
modul dan dikerjakan dalam waktu yang hampir bersamaan dalam batasan waktu yang
sudah ditentukan.
1. Bussiness
Modelling
Menjawab
pertanyaan-pertanyaan :
-
Informasi apa yang mengendalikan proses bisnis?
- Informasi apa
yang dihasilkan?
- Siapa yang
menghasilkan informasi?
- Kemana
informasi itu diberikan?
- Siapa yang
mengolah informasi?
- Kebutuhan dari
sistem
2. Data Modelling
Aliran informasi
yang sudah didefinisikan, disusun menjadi sekumpulan objek data. Ditentukan
karakteristik/atribut dan hubungan antar objek-objek tersebut analisis
kebutuhan dan data.
3. Process Modelling
Objek data yang
sudah didefinisikan diubah menjadi aliran informasi yang diperlukan
untukmenjalankan fungsi-fungsi bisnis.
4. Application Generation
RAD menggunakan
component program yang sudah ada atau membuat component yang bisa digunakan
lagi, selama diperlukan.
5. Testing and
Turnover
Karena
menggunakan component yang sudah ada, maka kebanyakan component sudah melalui
uji atau testing. Namun component baru dan interface harus tetap diuji.
Kelebihan dan
Kekurangan RAD Model :
Kelebihan :
- RAD mengikuti
tahapan pengembangan sistem sepeti umumnya, tetapi mempunyai kemampuan untuk
menggunakan kembali komponen yang ada (reusable object).
- Setiap fungsi
dapat dimodulkan dalam waktu tertentu dan dapat dibicarakan oleh tim RAD yang
terpisah dan kemudian diintegrasikan sehingga waktunya lebih efesien.
Kekurangan :
- Tidak cocok
untuk proyek skala besar.
- Proyek bisa
gagal karena waktu yang disepakati tidak dipenuhi.
- Sistem yang
tidak bisa dimodularisasi tidak cocok untuk model ini.
- Resiko teknis
yang tinggi juga kurang cocok untuk model ini.
Referensi :
Model incremental
menggabungkan elemen-elemen model sekuensial linier (diimplementasikan secara
berulang) dengan filosofi prototype interatif. Model ini memakai urutan-urutan
linier di dalam model yang membingungkan, seiring dengan laju waktu kalender.
Setiap urutan linier menghasilkan pertambahan perangkat lunak yang kemudian
dapat disampaikan kepada pengguna. Model ini juga merupakan perbaikan dari
model waterfall dan sebagai standar pendekatan top-down. Ide dasar dari model
ini adalah membangun software secara meningkat (increment) berdasarkan
kemampuan fungsional.
Pada saat model
incremental (pertambahan) ini digunakan, pertambahan pertama sering merupakan
produk inti (core product), yaitu sebuah model pertambahan yang
dipergunakan, tetapi beberapa muka tambahan (beberapa diketahui dan beberapa
tidak) tetap tidak disampaikan. Produk inti tersebut dipergunakan oleh
pelanggan (atau mengalami pengkajian detail). Sebagai hasil dari pemakaian dan
/ atau evaluasi maka dikembangkan rencana bagi pertambahan selanjutnya. Rencana
tersebut menekankan modifikasi produk inti untuk secara lebih baik memenuhi
kebutuhan para pelanggan dan penyampaian fitur serta fungsional tambahan.
Proses ini mengikuti penyampaian setiap pertambahan sampai bisa menghasilkan
produk yang lengkap.
Model proses
incremental tersebut, seperti model prototype dan pendekatan-pendekatan
evolusioner yang lain, bersifat iterative. Tetapi tidak seperti model
prototype, model pertambahan berfokus pada penyampaian produk operasional dalam
setiap pertambahannya. Pertambahan awal ada di versi stripped down dari
produk akhir, tetapi memberikan kemampuan untuk melayani pemakai dan juga
menyediakan platform untuk evaluasi oleh pemakai.
Perkembangan
pertambahan, khususnya berguna pada saat staffing, tidak bisa
dilakukan dengan menggunakan implementasi lengkap oleh batasan waktu bisnis
yang sudah disepakati untuk proyek tersebut. Jika produk inti diterima dengan
baik, maka staf tambahan (bila dibutuhkan) bisa ditambahkan untuk mengimplementasi
pertambahan selanjutnya. Sebagai tambahan, system mayor yang sedang pada masa
perkembangan serta waktu penyampaiannya belum pasti, mungkin membutuhkan
keberadaan perangkat keras yang baru. Bisa juga rencana tertentu dibuat untuk
menghindari pemakaian perangkat lunak ini, sehingga memungkinkan fungsionalitas
partial disampaikan kepada pemakai tanpa harus banyak tertunda.
Contoh Penggunaan
Incremental Model :
Misalnya,
perangkat lunak pengolah kata yang dikembangkan dengan menggunakan paradigma
penambahan akan menyampaikan manajemen file dasar, editing serta fungsi
penghasilan dokumen pada penambahan pertama; kemudian editing dan kemampuan
penghasilan dokumen yang lebih canggih pada pertambahan kedua; pengecekan
spelling dan tata bahasa pada pertambahan ketiga; serta kemampuan pengaturan
halaman tingkat lanjut pada tahap pertambahan keempat. Harus dicatat bahwa
aliran proses untuk berbagai pertambahan tersebut dapat menggabungkan paradigma
prototype.
Kelebihan dan
Kekurangan Incremental Model :
Kelebihan :
- Merupakan model dengan manajemen
yang sederhana.
- Pelanggan tidak perlu menunggu
sampai seluruh system dikirim untuk mengambil keuntungan dari system
tersebut. Inkremen yang pertama sudah memenuhi persyaratan mereka yang
paling kritis, sehingga perangkat lunak dapat segera digunakan.
- Pelanggan dapat memakai inkremen
yang pertama sebagai bentuk prototype dan mendapatkan pengalaman yang
dapat menginformasikan persyaratan untuk inkremen system berikutnya.
- Resiko untuk kegagalan proyek
secara keseluruhan lebih rendah. Walaupun masalah dapat ditemukan pada
beberapa inkremen, bisa saja beberapa inkremen diserahkan dengan sukses
kepada pelanggan.
- Karena layanan dengan prioritas
tertinggi diserahkan pertama dan inkremen berikutnya diintegrasikan
dengannya, sangatlah penting bahwa layanan system yang paling penting
mengalami pengujian yang paling ketat. Ini berarti bahwa pelanggan akan
memiliki kemungkinan kecil untuk memenuhi kegagalan perangkat
lunak pada inkremen system yang paling kecil.
Kekurangan :
- Inkremen harus relative lebih
kecil (tidak lebih dari 20.000 baris kode) dan setiap inkremen harus
menyediakan sebagian dari fungsional system.
- Adanya kesulitan untuk memetakan
persyaratan pelanggan pada inkremen dengan ukuran yang benar.
- Tiap bagian tidak dapat
diintegrasikan.
Referensi :
- Ireactive-Incremental (Spiral)
Model
Proses
digambarkan sebagai spiral. Setiap loop mewakili satu fase dari software
process. Loop paling dalam berfokus pada kelayakan dari sistem, loop
selanjutnya tentang definisi dari kebutuhan, loop berikutnya berkaitan dengan
desain sistem dan seterusnya. Setiap Loop dibagi menjadi beberapa sektor, yaitu
:
1. Objective
settings (menentukan tujuan)
Menentukan tujuan
dari fase yang ditentukan. Batasan-batasan pada proses dan produk sudah
diketahui. Perencanaan sudah disiapkan. Resiko dari proyek sudah diketahui.
Alternatif strategi sudah disiapkan berdasarkan resiko-resiko yang diketahui,
dan sudah direncanakan.
2. Risk assessment and reduction (Penanganan dan pengurangan resiko)
Setiap resiko
dianalisis secara detil pada sektor ini. Langkahlangkah penanganan dilakukan,
misalnya membuat prototype untuk mengetahui ketidakcocokan kebutuhan.
3. Development
and Validation (Pembangunan dan pengujian)
Setelah evaluasi
resiko, maka model pengembangan sistem dipilih. Misalnya jika resiko user
interface dominan, maka membuat prototype User Interface. Jika bagian keamanan
yang bermasalah, maka
4. Planning
Proyek dievaluasi
atau ditinjau-ulang dan diputuskan untuk terus ke fase loop selanjutnya atau
tidak. Jika melanjutkan ke fase berikutnya rencana untuk loop selanjutnya.
5. Menggunakan
model formal dengan perhitungan matematis, dan jika masalahnya adalah integrasi
sistem model waterfall lebih cocok.
Pembagian sektor tidak bisa saja dikembangkan seperti pada pembagian sektor
berikut pada model variasi spiral di bawah ini :
1. Customer
communication : membangun komunikasi yang baik dengan pengguna / customer.
2. Planning : mendefinisikan sesumber, batas waktu, informasi-informasi lain
seputar proyek.
3. Risk analysis : identifikasi resiko managemen dan teknis
4. Engineering : pembangunan contoh-contoh aplikasi, misalnya prototype
5. Construction and release : pembangunan, test, install dan support.
6. Customer evaluation : mendapatkan feedback dari pengguna berdasarkan
evaluasi PL pada fase engineering dan fase instalasi. Pada model spiral,
resiko sangat dipertimbangkan. Resiko adalah sesuatu yang mungkin mengakibatkan
kesalahan. Model spiral merupakan pendekatan yang realistik untuk PL berskala
besar. Pengguna dan pembangun bisa memahami dengan baik software yang dibangun
karena setiap kemajuan yang dicapai selama proses dapat diamati dengan baik.
Namun demikian, waktu yang cukup panjang mungkin bukan pilihan bagi pengguna,
karena waktu yang lama sama dengan biaya yang lebih besar.
Kelebihan dan
Kekurangan Spiral Model :
Kelebihan :
1. Dapat disesuaikan agar perangkat lunak bisa dipakai selama
hidup perangkat lunak
komputer.
2. Lebih cocok untuk pengembangan sistem dan perangkat lunak skala
besar
3. Pengembang dan pemakai dapat lebih mudah memahami dan bereaksi
terhadap
resiko setiap tingkat evolusi karena
perangkat lunak terus bekerja selama proses .
4. Menggunakan prototipe sebagai mekanisme pengurangan resiko dan
pada setiap
keadaan di dalam evolusi produk.
5. Tetap mengikuti langkah-langkah dalam siklus kehidupan klasik
dan memasukkannya
ke dalam kerangka kerja iteratif .
6. Membutuhkan pertimbangan langsung terhadp resiko teknis
sehingga mengurangi
resiko sebelum menjadi permaslahan yang
serius.
Kekurangan :
1. Sulit untuk menyakinkan pelanggan bahwa pendekatan evolusioner
ini bisa dikontrol.
2. Memerlukan penaksiran resiko yang masuk akal dan akan menjadi
masalah yang
serius jika resiko mayor tidak ditemukan
dan diatur.
3. Butuh waktu lama untuk menerapkan paradigma ini menuju
kepastian yang absolut.
Referensi :
Demikianlah
ulasan singkat saya mengenai Software Process Model...
Semoga dapat bermanfaat bagi pembaca sekalian \(-^o^-)/ thank you !