- Linear Sequential Model atau Waterfall Model
- Incremental Model
- Prototyping Model
- Rapid Application Development (RAD)
- Spiral Model
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.
- 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
- http://itsum.wordpress.com/2010/09/27/kelebihan-dan-kekurangan-setiap-model-pada-software-development-life-cycle-sdlc/
-
http://bluewarrior.wordpress.com/2009/10/12/waterfall-model-vs-v-model/
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
- 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
- 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
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 .
- 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
- http://itsum.wordpress.com/2010/09/27/kelebihan-dan-kekurangan-setiap-model-pada-software-development-life-cycle-sdlc/
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.
- 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
- 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
- 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
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
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
- 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
- http://lindroidspica.blogspot.com/2011/09/metode-dan-model-proses-rekayasa.html