Kali ini saya akan membahas mengenai model-model software. Model-model software yang ada sebagai berikut :
- Linear Sequential Model atau Waterfall Model
- Incremental Model
- Prototyping Model
- Rapid Application Development (RAD)
- Spiral Model
Mari kita membahas satu per satu model software .....
1). Linear Sequential Model atau Waterfall Model
Model ini merupakan model yang paling banyak dipakai oleh para pengembang software. Ada lima tahap dalam model waterfall,
yaitu: Requirement Analysis, System Design, Implementation, Integration
& Testing, Operations & Maintenance. Sesuai dengan namanya
waterfall (air terjun) maka tahapan dalam model ini disusun bertingkat,
setiap tahap dalam model ini dilakukan berurutan, satu sebelum yang
lainnya (lihat tanda anak panah). Selain itu dari satu tahap kita dapat
kembali ke tahap sebelumnya.
Berikut ini penjelasan tentang masing-masing tahap dalam model waterfall:
1. Requirement Analysis
Seluruh kebutuhan software harus bisa didapatkan dalam fase ini,
termasuk didalamnya kegunaan software yang diharapkan pengguna dan
batasan software. Informasi ini biasanya dapat diperoleh melalui
wawancara, survey atau diskusi. Informasi tersebut dianalisis untuk
mendapatkan dokumentasi kebutuhan pengguna untuk digunakan pada tahap
selanjutnya.
2. System Design
Tahap ini dilakukan sebelum melakukan coding. Tahap ini bertujuan
untuk memberikan gambaran apa yang seharusnya dikerjakan dan bagaimana
tampilannya. Tahap ini membantu dalam menspesifikasikan kebutuhan
hardware dan sistem serta mendefinisikan arsitektur sistem secara
keseluruhan.
3. Implementation
Dalam tahap ini dilakukan pemrograman. Pembuatan software dipecah
menjadi modul-modul kecil yang nantinya akan digabungkan dalam tahap
berikutnya. Selain itu dalam tahap ini juga dilakukan pemeriksaaan
terhadap modul yang dibuat, apakah sudah memenuhi fungsi yang diinginkan
atau belum.
4. Integration & Testing
Di tahap ini dilakukan penggabungan modul-modul yang sudah dibuat dan
dilakukan pengujian ini dilakukan untuk mengetahui apakah software yang
dibuat telah sesuai dengan desainnya dan masih terdapat kesalahan atau
tidak.
5. Operation & Maintenance
Ini merupakan tahap terakhir dalam model waterfall. Software yang
sudah jadi dijalankan serta dilakukan pemeliharaan. Pemeliharaan
termasuk dalam memperbaiki kesalahan yang tidak ditemukan pada langkah
sebelumnya. Perbaikan implementasi unit sistem dan peningkatan jasa
sistem sebagai kebutuhan baru.
Kelebihan Waterfall
- 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 Waterfall
- 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
Refensi dari :
2). Incremental Model
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.
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.
Kelebihan Incremental Model
- Personil bekerja optimal
- Pihak konsumen dapat langsung menggunakan dahulu bagian-bagian yang telah selesai dibangun. COntohnya pemasukan data karyawan
- Mengurangi trauma karena perubahan sistem. Klien dibiasakan perlahan-lahan menggunakan produknya bagian per bagian
- Memaksimalkan pengembalian modal investasi konsumen
Kekurangan Incremental Model
- kemungkinan tiap bagian tidak dapat diintegrasikan
- Dapat menjadi build and Fix Model, karena kemampuannya untuk selalu mendapat perubahan selama proses rekayasa berlangsung
- Harus Open Architecture
Referensi dari :
- http://trisnowlaharwetan.wordpress.com/2010/03/10/perbandingan-model-dalam-rekayasa-perangkat-lunak/
- http://evi-mursalim.blogspot.com/2011/01/rekayasa-perangkat-lunak-incremental.html
3). Prototyping Model
Prototyping merupakan
salah satu metode pengembangan perangkatlunak yang banyak digunakan. Dengan
metode prototyping ini pengembang dan pelanggan dapat saling berinteraksi
selama proses pembuatan sistem. Sering terjadi seorang pelanggan hanya
mendefinisikan secara umum apa yang dikehendakinya tanpa menyebutkan secara
detal output apa saja yang dibutuhkan, pemrosesan dan data-data apa saja yang
dibutuhkan. Sebaliknya disisi pengembang kurang memperhatikan efesiensi
algoritma, kemampuan sistem operasi dan interface yang menghubungkan manusia
dan komputer. Untuk mengatasi ketidakserasian antara pelanggan dan pengembang ,
maka harus dibutuhakan kerjasama yanga baik diantara keduanya sehingga
pengembang akan mengetahui dengan benar apa yang diinginkan pelanggan dengan
tidak mengesampingkan segi-segi teknis dan pelanggan akan mengetahui
proses-proses dalm menyelasaikan system yang diinginkan. Dengan demikian akan
menghasilkan sistem sesuai dengan jadwal waktu penyelesaian yang telah
ditentukan. Kunci agar model prototype ini berhasil dengan baik adalah dengan
mendefinisikan aturan-aturan main pada saat awal, yaitu pelanggan dan
pengembang harus setuju bahwa prototype dibangun untuk mendefinisikan
kebutuhan. Prototype akan dihilangkan sebagian atau seluruhnya dan perangkat
lunak aktual aktual direkayasa dengan kualitas dan implementasi yang sudah
ditentukan.
Tahapan-tahapan
Prototyping :
1. Pengumpulan kebutuhan
Pelanggan dan pengembang bersama-sama mendefinisikan format
seluruh perangkat lunak, mengidentifikasikan semua kebutuhan, dan garis besar sistem
yang akan dibuat.
2. Membangun prototyping
Membangun prototyping dengan membuat perancangan sementara yang
berfokus pada penyajian kepada pelanggan (misalnya dengan membuat input dan
format output)
3. Evaluasi protoptyping
Evaluasi ini dilakukan oleh pelanggan apakah prototyping yang
sudah dibangun sudah sesuai dengan keinginann pelanggan. Jika sudah sesuai maka
langkah 4 akan diambil. Jika tidak prototyping direvisi dengan mengulangu
langkah 1, 2 , dan 3.
4. Mengkodekan sistem
Dalam tahap ini prototyping yang sudah di sepakati diterjemahkan
ke dalam bahasa pemrograman yang sesuai
5. Menguji system
Setelah sistem sudah menjadi suatu perangkat lunak yang siap
pakai, harus dites dahulu sebelum digunakan. Pengujian ini dilakukan dengan
White Box, Black Box, Basis Path, pengujian arsitektur dan lain-lain
6. Evaluasi Sistem
Pelanggan mengevaluasi apakah sistem yang sudah jadi sudah sesuai
dengan yang diharapkan . Jika ya, langkah 7 dilakukan; jika tidak, ulangi
langkah 4 dan 5.
7. Menggunakan system
Perangkat lunak yang telah diuji dan diterima pelanggan siap untuk
digunakan .
Kelebihan Prototyping
- Prototype melibatkan user dalam analisa dan desain.
- Punya kemampuan menangkap requirement secara konkret daripada secara abstrak.
- Untuk digunakan secara standalone.
- Digunakan untuk memperluas SDLC.
- Mempersingkat waktu pengembangan Sistem Informasi
Kekurangan Prototyping
- Proses analisis dan perancangan terlalu singkat.
- Mengesampingkan alternatif pemecahan masalah.
- Bisanya kurang fleksible dalam mengahdapi perubahan.
- Protitype yang dihasilkan tidak selamanya mudah dirubah
-
Protype terlalu cepat selesai
Referensi dari
- http://itsum.wordpress.com/2010/09/27/kelebihan-dan-kekurangan-setiap-model-pada-software-development-life-cycle-sdlc/
4). Rapid Application Development (RAD)
RAD (Rapid Application Development) adalah sistem pemrograman yang
memungkinkan programmer membuat program dengan cepat. Secara umum,
Sistem RAD menyediakan sejumlah alat-bantu untuk membuat antarmuka
pengguna grafis (graphical user interfaces) yang biasanya membutuhkan
usaha dan waktu yang lama untuk membuatnya. Dua sistem RAD yang paling
populer untuk Windows adalah Visual Basic dan Delphi.
RAD Mempunyai 4 Unsur Penting : Manajemen, Manusia, Metodologi, dan Peralatan.
Tahapan-tahapan dalam RAD :
- Bussiness Modelling. Fase ini untuk mencari aliran informasi yang
dapat menjawab pertanyaan berikut: Informasi apa yang menegndalikan
proses bisnis? Informasi apa yang dimunculkan? Di mana informasi
digunakan ? Siapa yang memprosenya ?
- Data Modelling.Fase ini menjelaskanobjek data yang dibutuhkan
dalam proyek. Karakteristik (atribut) masing-masing data
diidentifikasikan dan hubungan anta objek didefinisikan.
- Process Modelling. Aliran informasi pada fase data medelling
ditransformasikan untuk mendapatkan aliran informasi yang diperlukan pad
implementasi fungsi bisnis. Pemrosesan diciptakan untuk menambah,
memodifikasi, menghapus, atu mendapatkan kembali objek data tertentu
- Aplication Generation. Selain menggunakan bahasa pemrograman
generasi ketiga, RAD juga memakai komponen program yang telah ada atau
menciptakan komponen yang bisa dipakai lagi. Ala-alat baantu bisa
dipakai untuk memfasilitasi konstruksi perangkat lunak.
- Testing and Turnover. Karena menggunakan kembali komponen yang telah
ada, maka akan mengurangi waktu pengujian. Tetapi komponen baru harus
diuji dan semua interface harus dilatih secara penuh.
Kelebihan dari model RAD
- Waktu pengerjaannya yang terbilang singkat yaitu kira-kira 60-90 hari
- RAD dalam prosesnya dapat menggunakan kembali komponen software
maupun program yang sudah ada sebelumnya sehingga menghemat waktu dan
lebih mudah
Kekurangan dari model RAD
- Membutuhkan sumber daya manusia yang besar, untuk membentuk tim-tim
- Developers dan customers dituntut harus commit pada kecepatan
aktivitas kerja untuk menyelesaikan sistem sesuai dengan frame time,
jika tidak maka project RAD akan gagal
- Jika sistem tidak dapat dimodulkan dengan benar, maka dalam pembangunan komponen dari RAD akan bermasalah
- Jika performance hanya berfokus pada perbaikan interface dari komponen sistem, maka pendekatan RAD mungkin tidak bekerja
- Jika resiko terlalu tinggi maka model RAD bukanlah model yang tepat untuk digunakan
Referensi dari
- http://artikelsayasaja.blogspot.com/2011/09/metode-rad.html
- http://yuliagroups.wordpress.com/pengertian-rad/
- http://lindroidspica.blogspot.com/2011/09/metode-dan-model-proses-rekayasa.html
5). Spiral Model
Spiral model adalah salah satu bentuk evolusi yang menggunakan metode
iterasi natural yang dimiliki oleh model Prototyping dan digabungakan
dengan aspek sistematis yang dikembangkan dengan model Waterfall. Tahap
desain umumnya digunakan pada model Waterfall, sedangkan tahap
Prototyping adalah suatu model dimana software dibuat prototype
(incomplete model), “blue-print”-nya, atau contohnya dan ditunjukkan ke
user / customer untuk mendapatkan feedback-nya. Jika prototype-nya sudah
sesuai dengan keinginan user / customer, maka proses SE dilanjutkan
dengan membuat produk sesungguhnya dengan menambah dan memperbaiki
kekurangan dari prototype tadi.
Model ini digambarkan dengan bentuk spiral dimana didalamnya terdapat
daerah yang disebut dengan region. Proses dimulai dari dalam atau pusat
spiral yang berlanjut searah jarum jam menuju tahapan selanjutnya
kemudian melebar seperti terlihat pada gambar dibawah ini.
Tahapan proses pada model Spiral :
- Communication
- Planning
- Modeling
- Construction
- Deployment
Akan tetapi tidak sama halnya dengan model lain yang ketika software
sudah dikirimkan maka proses sudah selesai, pada model Spiral proses
akan berlanjut terus, saat software sudah dikirim proses berlanjut
membuat project baru dan kembali ke tahap awal yaitu Communication dan
seterusnya seperti gambar spiral diatas guna memperbaiki
kekurangan-kekurangan pada software yang pertama dikirimkan.
Kelebihan model Spiral
- Pendekatan dengan model ini sangat baik digunakan untuk pengembangan
sistem software dengan skala besar, karena perkembangan dari Software
Engineering dapat dipantau oleh kedua belah pihak baik developer maupun
customer, sehingga mereka dapat mengerti dengan baik mengenai software
ini begitu juga dengan resiko yang mungkin didapat pada setiap aktivitas
yang dilakukan
- Karena merupakan gabungan dari model Waterfall dan Prototyping
sehingga terdapat analisis resiko yang dilakukan maka resiko dapat
direduksi sebelum menjadi suatu masalah yang besar yang dapat menghambat
Software Engineering
- Dengan iterasi yang dilakukan pada model ini menyebabkan model ini lebih realistis untuk merefleksikan dunia nyata
Kekurangan model Spiral
- Sulit meyakinkan customer bahwa pendekatan evolutionary bisa dilakukan, khusus pada kontrak kerja
- Kemampuan untuk memperkirakan dan menanggulangi resiko yang datang
sangat menentukan, sebab apabila resiko utama tidak dapat diatasi maka
permasalahan akan muncul kembali tanpa diragukan lagi
Referensi dari
- http://lindroidspica.blogspot.com/2011/09/metode-dan-model-proses-rekayasa.html