Adapun Model-model dari pengembangan perangkat Lunak yaitu:
1.
Evolutionary
Software Process Model
Model Evolusioner mengambil konsep
"evolusi" ke dalam paradigma rekayasa. Oleh karena itu Evolusioner
Model yang berulang. Mereka dibangun dengan cara yang memungkinkan para
insinyur perangkat lunak untuk mengembangkan versi yang semakin lebih kompleks
dari perangkat lunak.
2.
Model incremental
Model Incremental dalam
rekayasa perangkat lunak, menerapkan rekayasa perangkat lunak perbagian, hingga
menghasilkan perangkat lunak yang lengkap. Proses membangun berhenti jika
produk telah mencapai seluruh fungsi yang diharapkan.
Incremental Model adalah :
·
Requirement
·
Specification
·
Architecture Design
Incremental Model merupakan gabungan
antara model linear sekuensial dan prototyping. Setiap linear sekuen
menghasilkan produk yang deliveriables. Increment pertama merupakan produk inti
yang mengandung persyaratan/kebutuhan dasar. Penambahan dilakukan pada
increment-incremet berikutnya.
Keunggulan dari 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 dari Incremental Model :
·
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
·
Dapat menjadi build and Fix Model, karena
kemampuannya untuk selalu mendapat perubahan selama proses rekayasa berlangsung
3. Model Spiral
Spiral adalah salah satu
bentuk evolusi yang menggunakan metode iterasi natural yang dimiliki oleh model
prototyping dan digabungkan dengan aspek sistematis yang dikembangkan model
waterfall.
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.
Adapun beberapa Kelebihan dan Kelemahan Model Spiral yang ada:
Kelebihan model Spiral :
·
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
4.The WIN-WIN Spiral Model
Dalam
model ini pengembang dan pelanggan keduanya bersama-sama berusaha untuk
"menang-menang" hasil. Pelanggan menang dengan mendapatkan sistem
atau produk yang memenuhi sebagian besar kebutuhan pelanggan dan menang
pengembang dengan bekerja pada realistis dan dapat dicapai tujuan, anggaran dan
tenggat waktu.
5.Component-based Development Model
Component-based development sangat
berkaitan dengan teknologi berorientasi objek. Pada pemrograman berorientasi
objek, banyak class yang dibangun dan menjadi komponen dalam suatu software.
Class-class tersebut bersifat reusable artinya bisa digunakan kembali. Model
ini bersifat iteratif atau berulang-ulang prosesnya.
Secara
umum proses yang terjadi dalam model ini adalah:
1. Identifikasi class-class yang akan
digunakan kembali dengan menguji class tersebut dengan data yang akan
dimanipulasi dengan aplikasi/software dan algoritma yang baru
2. Class yang dibuat pada proyek
sebelumnya disimpan dalam class library, sehingga bisa langsung diambil dari
library yang sudah ada. Jika ternyata ada kebutuhan class baru, maka class baru
dibuat dengan metode berorientasi objek.
3. Bangun software dengan class-class
yang sudah ditentukan atau class baru yang dibuat, integrasikan.
Penggunaan
kembali komponen software yang sudah ada menguntungkan dari segi:
► Siklus waktu pengembangan software,
karena mampu mengurangi waktu 70%
► Biaya produksi berkurang sampai 84%
arena pembangunan komponen
Berkurang
Pembangunan software dengan menggunakan
komponen yang sudah tersedia dapat menggunakan komponen COTS (Commercial
off-the-shelf) – yang bisa didapatkan dengan membeli atau komponen yang sudah
dibangun sebelumnya secara internal. Component-Based Software Engineering
(CBSE) adalah proses yang menekankan perancangan dan pembangunan software
dengan menggunakan komponen software yang sudah ada. CBSE terdiri dari dua
bagian yang terjadi secara paralel yaitu software engineering (component-based
development) dan domain engineering.
6.Formal Method Models
Pada model ini, digunakan notasi
matematika yang terperinci dan penuh ketelitian dalam mengidentifikasi desain
dan menguji sistem yang berbasis komputer. Metode ini sering dipakai untuk
spesifikasi yang detail, rancangan dan verifikasi pada bagian-bagian sistem
yang penting (bersifat kritikal) seperti pada sistem avionic dan aerospace,
serta pada sistem keamanan yang kritikal pada monitor jantung, ATM (Anjungan
Tunai Mandiri) dan pada perbankan.
·
Secara
khusus, metode formal sangat cocok dijalankan pada sistem yang kompleks.
·
Digunakan ketika objek yang akan didevelop adalah sebuah
spesifikasi matematik
·
Model ini jarang digunakan, sedangkan aktifitas dinyatakan dalam
bentuk matematik