Blog kali ini saya akan membahas mengenai model - model software. Model - model software yang kami bahas yaitu :
- Linear Sequential Model / Waterfall Model
- Incremental Model
- Prototyping Model
- Spiral Model
- RAD ( Rapid Application Development)
Mari kita liat dari model pertama yaitu Waterfall Mode ^^
Ini gambarnya :
Waterfall model adalah model pengembangan sistem berskala besar dimana prosesnya harus dikerjakan secara bertahap / berurutan dari awal sampai akhir agar sistem dapat berjalan. Apabila tidak dikerjakan secara bertahap , maka sistem yang dikerjakan tidak akan selesai.
Yang perlu diketahui lagi dari Waterfall Model, apabila terjadi kesalahan di salah satu prosesnya, maka akan diulang dari awal dan dikerjakan secara bertahap lagi.
Langkah - langkah Waterfall Model :
- System / Information Engineering and Modeling. Permodelan ini diawali dengan mencari kebutuhan dari keseluruhan sistem yang akan diaplikasikan ke dalam bentuk software. Hal ini sangat penting, mengingat software harus dapat berinteraksi dengan elemen-elemen yang lain seperti hardware, database, dsb. Tahap ini sering disebut dengan Project Definition.
- Software Requirements Analysis. Proses pencarian kebutuhan diintensifkan dan difokuskan pada software. Untuk mengetahui sifat dari program yang akan dibuat, maka para software engineer harus mengerti tentang domain informasi dari software, misalnya fungsi yang dibutuhkan, user interface, dsb. Dari 2 aktivitas tersebut (pencarian kebutuhan sistem dan software) harus didokumentasikan dan ditunjukkan kepada pelanggan.
- Design. Proses ini digunakan untuk mengubah kebutuhan-kebutuhan diatas menjadi representasi ke dalam bentuk “blueprint” software sebelum coding dimulai. Desain harus dapat mengimplementasikan kebutuhan yang telah disebutkan pada tahap sebelumnya. Seperti 2 aktivitas sebelumnya, maka proses ini juga harus didokumentasikan sebagai konfigurasi dari software.
- Coding. Untuk dapat dimengerti oleh mesin, dalam hal ini adalah komputer, maka desain tadi harus diubah bentuknya menjadi bentuk yang dapat dimengerti oleh mesin, yaitu ke dalam bahasa pemrograman melalui proses coding. Tahap ini merupakan implementasi dari tahap design yang secara teknis nantinya dikerjakan oleh programmer.
- Testing / Verification. Sesuatu yang dibuat haruslah diujicobakan. Demikian juga dengan software. Semua fungsi-fungsi software harus diujicobakan, agar software bebas dari error, dan hasilnya harus benar-benar sesuai dengan kebutuhan yang sudah didefinisikan sebelumnya.
- Maintenance. Pemeliharaan suatu software diperlukan, termasuk di dalamnya adalah pengembangan, karena software yang dibuat tidak selamanya hanya seperti itu. Ketika dijalankan mungkin saja masih ada errors kecil yang tidak ditemukan sebelumnya, atau ada penambahan fitur-fitur yang belum ada pada software tersebut. Pengembangan diperlukan ketika adanya perubahan dari eksternal perusahaan seperti ketika ada pergantian sistem operasi, atau perangkat lainnya.
Kelebihan dari Waterfall Model :
- 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 dari Waterfall Model :
- Persyaratan system harus digambarkan dengan jelas
- Rincian proses harus benar-benar jelas dan tidak boleh berubah
- Sulit beradaptasi jika terjadi perubahan spesifikasi pada suatu tahap pengembangan.
Referensi dari :
Nah, model selanjutnya yaitu Incremental Model ^^
Kelebihan Incremental Model
Incremental model yaitu proses pengembangan perangkat lunak dimana perangkat lunak tersebut dipecah - pecah menjadi bagian - bagian atau modul - modul yang dikerjakan secara terpisah dan bertahap. Increment pertama sudah memenuhi kebutuhan dasar pengguna maka increment pertama sudah dapat berfungsi karena sudah memenuhi spesifikasi dasar. Apabila terjadi kesalahan di salah satu increment maka kesalahan tersebut dapat diperbaiki di increment tersebut atau ditambahkan dan increment itu akan terus dilanjutkan tanpa harus diulang dari tahap awal. Proses ini akan terus dilakukan berulang - ulang sampai memenuhi keebutuhan si pengguna.
Langkah-langkah Incremental Model:
- Tahapan awal yang dilakukan pada incremental model adalah penentuankebutuhan (requirement). Setelah dilakukan analisis kebutuhan, maka dilakukanspesifikasi (specification)dengan menggunakan analisis kebutuhan tersebut sebagaiacuannya. Tahap selanjutnya adalah perancangan arsitektur software (architecture design) yang terbuka agar dapat diterapkan sistem pembangunan per-bagian pada tahapan selanjutnya.Apabila desain telah dibuat, maka tahap selanjutnya adalah pengkodean (coding) kemudian dilakukan uji coba (testing). Tahapan-tahapan tersebut dilakukan secara berurutan. Setiap bagian yang sudah selesai dilakukan testing, kemudian dikirim ke pemakai untuk langsung dapat digunakan. Setelah pengembangan suatu increment dimulai, kebutuhan dibekukan dulu hingga increment berikutnya dimulai. Padaincremental model, tiga tahapan awal harus diselesaikan terlebih dahulu sebelum tahap pembangunan tiap modul/increment .
- 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 :
Model ketiga yaitu Prototyping Model ^^
Prototyping model adalah salah satu model pengembangan perangkat lunak dimana pembuat dan pengguna saling berinteraksi dalam pengembangan perangkat lunak yang diinginkan oleh pengguna. Perangkat lunak yang dikerjakan oleh si pembuat murni adalah keinginan si pengguna, maka apabila terjadi kesalahan pada saat pembuat memperlihatkan hasil kerjanya atau adanya komplain dari pengguna maka harus dikerjakan dari awal lagi sampai pengguna menyetujuinya.
Penjelasan dari
gambar di atas sebagai berikut:
- User merasa prototipe merupakan PL yang sesungguhnya, padahal ketika membuat prototipe belum disertakan kualitas PL secara keseluruhan / kemampuan pemeliharaan untuk jangka panjang.
- Developer sering membuat kompromi-kompromi implementasi untuk membuat prototipe bekerja dengan cepat sehingga akan ditemui ketidakcocokan pada prototipe ketika prototipe dibangun dengan bahasa yang sederhana.
- Program dibuat ulang / prototipe selalu baru Mengacu pada pemilahan fungsi yang harus ditampilkan oleh prototyping. Pemilahan harus selalu dilakukan berdasarkan pada tugas-tugas yang relevan yang sesuai dengan contoh kasus yang akan diperagakan.
Keunggulan
Prototyping:
- User dapat berpartisipasi aktif
- Penentuan kebutuhan lebih mudah diwujudkan
- Mempersingkat waktu pengembangan SI
Kelemahan Prototyping :
- Proses
analisis dan perancangan terlalu singkat
- Mengesampingkan
alternatif pemecahan masalah
- Bisanya
kurang fleksible dalam mengahadapi perubahan
- Prototype yang dihasilkan tidak selamanya
mudah dirubah
- Prototype terlalu cepat selesai
Referensi dari :
Model keempat yaitu Spiral Model ^^
Berikut adalah
aktivitas-aktivitas yang dilakukan dalam spiral model:
- Customer communication. Aktivitas yang dibutuhkan untuk membangun komunikasi yang efektif antara developer dengan user / customer terutama mengenai kebutuhan dari customer.
- Planning. Aktivitas perencanaan ini dibutuhkan untuk menentukan sumberdaya, perkiraan waktu pengerjaan, dan informasi lainnya yang dibutuhkan untuk pengembangan software.
- Analysis risk. Aktivitas analisis resiko ini dijalankan untuk menganalisis baik resiko secara teknikal maupun secara manajerial. Tahap inilah yang mungkin tidak ada pada model proses yang juga menggunakan metode iterasi, tetapi hanya dilakukan pada spiral model.
- Engineering. Aktivitas yang dibutuhkan untuk membangun 1 atau lebih representasi dari aplikasi secara teknikal.
- Construction & Release. Aktivitas yang dibutuhkan untuk develop software, testing, instalasi dan penyediaan user / costumer support seperti training penggunaan software serta dokumentasi seperti buku manual penggunaan software.
- Customer evaluation. Aktivitas yang dibutuhkan untuk mendapatkan feedback dari user / customer berdasarkan evaluasi mereka selama representasi software pada tahap engineering maupun pada implementasi selama instalasi software pada tahap construction and release.
- Dapat disesuaikan agar perangkat
lunak bisa dipakai selama hidup perangkat lunak komputer.
- Lebih cocok untuk pengembangan
sistem dan perangkat lunak skala besar
- Pengembang dan pemakai dapat lebih
mudah memahami dan bereaksi terhadap resiko setiap tingkat
evolusi karena perangkat lunak terus bekerja selama proses .
Kelemahan model
Spiral:
- Sulit untuk menyakinkan pelanggan bahwa
pendekatan evolusioner ini bisa dikontrol.
- Memerlukan penaksiran resiko yang masuk
akal dan akan menjadi masalah yang serius jika resiko mayor tidak
ditemukan dan diatur.
- Butuh waktu lama untuk menerapkan
paradigma ini menuju kepastian yang absolute
Model terakhir yaitu RAD ( Rapid Application Development) ^^
Model RAD yaitu pengembangan dari model waterfall dimana model ini dalam mengembangkan perangkat lunaknya hanya memiliki waktu yang singkat karena dalam model ini terdapat tim kerja yang menjalankan bagian-bagiannya masing - masing dalam waktu bersamaan.
Penjelasan gambarnya
mungkin seperti ini:
- Business modelling : berfungsi menjawab
pertanyaan-pertanyaan seperti informasi apa yang mengendalikan proses
bisnis? Informasi apa yang dihasilkan? Siapa yang menghasilkan informasi?
Kemana informasi itu diberikan? Siapa yang mengolah informasi?
- Data modelling: aliran informasi yang
sudah didefinisikan, disusun menjadi sekumpulan objek data.
karakteristik/atribut dan hubungan antar objek-objek tersebut à analisis
kebutuhan dan data
- Process Modelling : objek data yang sudah
didefinisikan diubah menjadi aliran informasi yang diperlukan
untukmenjalankan fungsi-fungsi bisnis.
- Application Generation: RAD menggunakan
component program yang sudah ada atau membuat component yang bisa
digunakan lagi, selama diperlukan.
- 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.
Begitu juga Model ini
mempunyai kelemahan dan kelebihannya:
Kelemahan model RAD:
- Sangat Tidak cocok untuk proyek skala
besar
- Proyek bisa gagal karena waktu yang
disepakati tidak dipenuhi
Kelebihan model RAD:
- Lebih efektif dari pendekatan air terjun
dalam menghasilkan sistem yang memenuhi kebutuhan langsung dari pelanggan.
- Cocok untuk proyek yang memerlukan waktu yang singkat.
Referensi dari :
Sekian Blog dari saya x_x
Thank you xD
No comments:
Post a Comment