Dalam pembuatan sistem perangkat lunak, pasti membutuhkan model proses. Jenis-jenis model proses terdapat banyak jenis, yaitu :
- Linear Sequential Model atau Waterfall Model
- Evolutionary Software Process Model
- Rapid Application Development
- Prototyping Model
- Component-based Development Model
- Extreme Programming Model
Model ini adalah model klasik yang bersifat sistematis, berurutan dalam membangun software. Berikut ini ada dua gambaran dari waterfall model. Sekalipun keduanya menggunakan nama-nama fase yang berbeda, namun sama dalam intinya. Fase-fase dalam Waterfall Model menurut referensi Pressman:
Fase-fase dalam Waterfall Model menurut referensi Sommerville :
Aktivitas yang terdapat pada Waterfall Model adalah :
- 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.
- System and software design: Desain dikerjakan setelah kebutuhan selesai dikumpulkan secara lengkap.
- 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.
- Integration and system testing: Penyatuan unit-unit program kemudian diuji secara keseluruhan (system testing).
- 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 :
- Perubahan sulit dilakukan karena sifatnya yang kaku.
- 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.
- Waterfall pada umumnya digunakan untuk rekayasa sistem yang besar dimana proyek dikerjakan di beberapa tempat berbeda, dan dibagi menjadi beberapa bagian sub-proyek.
Evolutionary Software Process Model
Bersifat iteratif/ mengandung perulangan. Hasil proses berupa produk yang makin lama makin lengkap sampai versi terlengkap dihasilkan sebagai produk akhir dari proses. Dua model dalam evolutionary software process model adalah:
1. Incremental Model (Original: Mills)
Aktivitas yang terdapat pada Incremental Model :
- Kombinasikan element-element dari waterfall dengan sifat iterasi/perulangan.
- Element-element dalam waterfall dikerjakan dengan hasil berupa produk dengan spesifikasi tertentu, kemudian proses dimulai dari fase pertama hingga akhir dan menghasilkan produk dengan spesifikasi yang lebih lengkap dari yang sebelumnya. Demikian seterusnya hingga semua spesifikasi memenuhi kebutuhan yang ditetapkan oleh pengguna.
- Produk hasil increment pertama biasanya produk inti (core product), yaitu produk yang memenuhi kebutuhan dasar. Produk tersebut digunakan oleh pengguna atau menjalani review/pengecekan detil. Hasil review tersebut menjadi bekal untuk pembangunan pada increment berikutnya. Hal ini terus dikerjakan sampai produk yang komplit dihasilkan.
- Model ini cocok jika jumlah anggota tim pengembang/pembangun PL tidak cukup.
- Mampu mengakomodasi perubahan secara fleksibel.
- Produk yang dihasilkan pada increment pertama bukanlah prototype, tapi produk yang sudah bisa berfungsi dengan spesifikasi dasar.
- Cocok untuk proyek berukuran kecil (tidak lebih dari 200.000 baris coding).
- Mungkin terjadi kesulitan untuk memetakan kebutuhan pengguna ke dalam rencana spesifikasi masing-masing hasil increment
Sumber :
- http://tonyjustinus.wordpress.com/2007/11/11/spiral-model/
- http://dl2yourpcstory.blogspot.com/2011/03/model-proses.html
- Pressman, Roger.S. "Software Engineering : A Practioner's Approach." 4th . McGrawHill. 1997
- Sommerville, Ian. "Software Engineering". 6th. Addison Wesley. 2001.
- Beck, Kent. “Extreme Programming”. www.extremeprogramming.org
0 comments:
Post a Comment