Dalam System Development life cycle Models,
terdapat 12 model yang dijadikan acuan dalam rekayasa perangkat lunak, yaitu
1.Waterfall Models
2. V-Shaped Models
3. Prototype Models
4. RAD Models
5. incremental Models
6. Spiral Models
7. Agile Models
8. Extreme Programming Models
9. Opportunistic Softwere System Development Model (OSSDM) Models
10. Rational Unified Process (RUP) Models
11. Component-based development Models
12. Evolutionary development Models
1.
Model Waterfall
Model SDLC air terjun (waterfall) sering juga disebut model sekuensial
linier (sequential linear) atau alur hidup klasik (classic life cycle). Model
air terjun menyediakan pendekatan alur hidup perangkat lunak secara sekuensial
atau terurut dimulai dan analisis, desain, pengodean, pengujian, dan tahap
pendukung (support). Berikut adalah gambar model air terjun:
-
Analisis kebutuhan perangkat lunak
proses pengumpulan kebutuhan
dilakukan secara intensif untuk mespesifikasikan kebutuhan perangkat lunak agar
dapat dipahami perangkat lunak seperti apa yang dibutuhkan oleh user.
Spesifikasi - Desain
desain perangkat lunak adalah proses
multi langkah yang fokus pada desain pembuatan program perangkat lunak termasuk
struktur data, arsitektur perangkat lunak, representasi antarmuka, dan prosedur
pengodean.
-
Pembuatan kode program
desain harus ditranslasikan ke dalam
program perangkat lunak. Hasil dan tahap ini adalah program komputer sesuai
dengan desain yang telah dibuat pada tahap desain.
-
Pengujian
pengujian fokus pada perangkat lunak
secara dan segi lojik dan fungsional dan memastikan bahwa semua bagian sudah
diuji.
Kelebihan Metode Waterfall
- Kualitas dari sistem yang
dihasilkan akan baik. Ini dikarenakan oleh pelaksanaannya secara bertahap.
Sehingga tidak terfokus pada tahapan tertentu.
- Document pengembangan system
sangat terorganisir, karena setiap fase harus terselesaikan dengan lengkap
sebelum melangkah ke fase berikutnya.
- Metode ini masih lebih baik
digunakan walaupun sudah tergolong kuno, daripada menggunakan pendekatan
asal-asalan.
Kelemahan waterfall
- Diperlukan majemen yang baik,
karena proses pengembangan tidak dapat dilakukan secara berulang sebelum
terjadinya suatu produk.
- Kesalahan kecil akan menjadi
masalah besar jika tidak diketahui sejak awal pengembangan yang berakibat
pada tahapan selanjutnya.
- Pelanggan sulit menyatakan
kebutuhan secara eksplisit sehingga tidak dapat mengakomodasi ketidak
pastian pada saat awal pengembangan.
- Pelanggan harus sabar, karena
pembuatan perangkat lunak akan dimulai ketika tahap desain sudah selesai.
II. Model Prototipe
Model prorotipe (prototyping model) dimulai dan mengumpulkan
kebutuhan pelanggan terhadap perangkat lunak yang akan dibuat. Lalu dibuatlah
program protipe agar pelanggan lebih terbayang dengan apa yang sebenarnya
diinginkan. Program prototipe biasanya merupakan program yang belum jadi.
Program ini biasanya menyediakan tampilan dengan simulasi alur perangkat lunak
sehingga tampak seperti perangkat lunak yang sudah jadi. Program prototipe ini
dievaluasi oleh pelanggan atau user sampai ditemukan spesifikasi yang sesuai
dengan keinginan pelanggan atau user.
Berikut adalah gambar dan model
prototipe:
Mock-up adalah sesuatu yang
digunakan sebagai model desain yang digunakan untuk mengajar, demonstrasi,
evaluasi desain, promosi, atau keperluan lain. Sebuah mock-up disebut sebagai
prototipe perangkat lunak jika menyediakan atau mampu mendemonstrasikan sebagian
besar fungsi sistem perangkat lunak dan memungkinkan pengujian desain sistem
perangkat lunak. Iterasi terjadi pada pembuatan prototipe sampai sesuai dengan
keinginan pelanggan (customer) atau user.
Kelebihan:
· Menghemat
waktu untuk pengembangan.
· Adanya
komunikasi yang terjalin baik antara Pengembang dan Customer.
· Pengembang
dapat bekerja dengan lebih baik dalam menentukan kebutuhan pelanggan.
· Penerapan
menjadi lebih mudah karena pemakai mengetahui apa yang diharapkannya.
·
User dapat berpartisipasi aktif dalam pengembangan sistem.
·
Untuk digunakan secara Standalone (Berdiri Sendiri).
· Digunakan
untuk memperluas SDLC (System Development Life Cycle).
Kelemahan:
· Pada
Model Prototype tentu saja banyak kebutuhan yang tidak ditampilkan seluruhnya
karena data yang dikumpulkan hanya sebagian.
· Prototype
yang telah disetujui oleh Client harus dikembangkan oleh developer tanpa ada
data tambahan dari client dan software dari prototype harus memiliki fungsi
yang lengkap.
· Banyak
ketidaksesuaian pada bentuk Prototype.
· Proses
analisis dan perancangan terlalu singkat.
III. Model Rapid Appliçation
Development (RAD)
Rapid Application Development (RAD)
adalah model proses pengembangan perangkat lunak yang bersifat inkremental
terutama untuk waktu pengerjaan yang pendek. Model RAD adalah adaptasi dan
model air terjun versi kecepatan tinggi dengan menggunakan model air terjun
untuk pengembangan setiap komponen perangkat lunak.
komponen masing-masing tim
pengerjaan dapat dilakukan secara paralel. Berikut adalah gambar dan model RAD:
1. Pemodelan bisnis
pemodelan yang dilakukan untuk
memodelkan fungsi bisnis untuk mengetahui informasi apa yang terkait proses
bisnis, informasi apa saja yang harus dibuat, siapa yang harus membuat
informasi itu, bagaimana alur informasi itu, proses apa saja yang terkait
informasi itu.
2. Pemodelan data
memodelkan data apa saja yang
dibutuhkan berdasarkan pemodelan bisnis dan mendefinisikan atribut-atributnya
beserta relasinya dengan data-data yang lain.
3. Pemodelan proses
mengimplementasikan fungsi bisnis
yang sudah didefinisikan terkait dengan pendefinisian data.
4. Pembuatan aplikasi
mengimplementasikan pemodelan proses
dan data menjadi program. Model RAD sangat menganjurkan pemakaian komponen yang
sudah ada jika dimungkinkan.
5. Pengujian dan pergantian
menguji komponen-komponen yang
dibuat. Jika sudah teruji maka tim pengembang komponen dapat beranjak untuk
mengembangkan komponen berikutnya.
Kelebihan:
·
Lebih efektif dari pendekatan waterfall/sequential linear
dalam menghasilkan sistem yang dapat memenuhi kebutuhan langsung dari
pelanggan.
· Cocok
untuk proyek yang memerlukan waktu yang singkat.
·
Pengerjaan proyek dilakukan secara team dengan tugas yang
berbeda sehingga tidak ada team proyek yang menganggur selama proses pembuatan
proyek.
(-) Kelemahan:
·
RAD tidak cocok digunakan untuk sistem yang mempunyai resiko
teknik yang lebih tinggi.
·
Memerlukan anggota yang lebih banyak untuk menyelesaikan
sebuah proyek berskala besar.
·
Pengembang dan Customer harus mempunyai komitmen yang kuat
untuk menyelesaikan sebuah software.
· Jika
sistem tidak dibangun dengan benar, maka RAD akan bermasalah.
·
Jika ada perubahan ditengah-tengah pengerjaan maka harus
membuat kontrak baru antara Pengembang dan Customer.
4. Pengertian Incremental Model
Incremental model adalah model pengembangan sistem pada
software engineering berdasarkan requirement software yang dipecah menjadi
beberapa fungsi atau bagian sehingga model pengembangannya secara bertahap.
dilain pihak ada mengartikan model incremental sebagai perbaikan dari model
waterfall dan sebagai
standar pendekatan topdown. Layaknya Model Waterfall, model ini pun juga memiliki tahapan
tahapan untuk perancangan perangkat lunaknya, yaitu:
- Requirement ,
Requirment adalah proses tahapan awal yang dilakukan pada incremental
model adalah penentuan kebutuhan atau analisis kebutuhan.
- Specification, Specification
adalah proses spesifikasi dimana menggunakan analisis kebutuhan
sebagai acuannya.
- Architecture Design,
adalah tahap selanjutnya, perancangan software yang terbuka agar dapat
diterapkan sistem pembangunan per-bagian pada tahapan selanjutnya.
- Code
setelah melakukan proses desain selanjutnya ada pengkodean.
- Test
merupakan tahap pengujian dalam model ini.
Beberapa Kelebihan Dari Mode
Incremental atara lain :
- Merupakan model dengan manajemen yang sederhana
- Pengguna tidak perlu menunggu sampai seluruh sistem
dikirim untuk mengambil keuntungan dari sistem tersebut
- Resiko untuk kegagalan proyek secara keseluruhan lebih
rendah. Walaupun masalah masih dapat ditemukan pada beberapa increment.
- Nilai penggunaan dapat ditentukan pada setiap increment
sehingga fungsionalitas sistem disediakan lebih awal.
- Memiliki risiko lebih rendah terhadap keseluruhan
pengembagan sistem,
- Prioritas tertinggi pada pelayanan sistem adalah yang
paling diuji
Kelemahannya adalah :
- 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
- Mungkin terjadi kesulitan untuk memetakan kebutuhan
pengguna ke dalam rencana spesifikasi masing-masing hasil increment.
Model
Spiral
Model spiral (spiral model)
memasangkan iteratif pada model prototipe dengan kotrol dan aspek sistematik
yang diambil dan model air terjun. Model spiral menyediakan pengembangan dengan
cara cepat dengan perangkat lunak yang memiliki versi yang terus bertambah
fungsinya (increment).
Model spiral dibagi menjadi beberapa
kerangka aktifitas atau disebut juga wilayah kerja (task region). Banyaknya
wilayah kerja biasanya diantara tiga sampai enam wilayah sebagai berikut:
1. Komunikasi dengan pelanggan
(customer communication) aktifitas ini diperlukan untuk membangun komunikasi
yang efekiif antara pengembang (developer) dan pelanggan (customer).
2. Perencanaan (planning) aktifitas
ini diperlukan untuk mendefinisikan sumber daya, waktu, dan informasi yang
terkait dengan proyek.
3. Analisis risiko (risk analysis)
aktifitas ini diperlukan untuk memperkirakan risiko dan segi teknis maupun
manajemen.
4. Rekayasa (engineering) aktifitas
ini diperlukan untuk membangun satu atau lebih representasi dan aplikasi
perangkat lunak (dapat juga berupa prototipe).
5. Konstruksi dan peluncuran
(construction and release) aktifitas ini dibutuhkan untuk mengonstruksi,
menguji, melakukan instalasi, dan menyediakan dukungan terhadap user (misalnya
dan segi dokumentasi dan pelatihan).
6. Evaluasi pelanggan (customer
evaluation) aktifitas ini dibutuhkan untuk mendapatkan umpan balik berdasarkan
evaluasi representasi perangkat lunak yang dihasilkan dan proses rekayasa dan
diimplementasikan pada tahap instalasi.
Berikut adalah gambar model spiral:
Kelebihan dalam menggunakan Model
Spiral, yaitu :
- Perubahan-perubahan yang terjadi dapat diselesaikan
secara sistematis
- Estimasi biaya menjadi mudah karena pembuatan prototipe
telah selesai dalam fragmen yang kecil
- Manajemen dan analisis risiko yang lebih baik
- Pembangunan yang cepat dan mudah secara sistematis
- Manajemen waktu yang lebih baik
- Mudah dalam melakukan perubahan kebutuhan dan
dokumentasi jika perubahan terjadi di tengah-tengah perubahan
- Produksi software terjadi lebih cepat
Kekurangan dalam menggunakan Model
Spiral, yaitu :
- Tidak cocok ketika digunakan dalam proyek-proyek kecil
- Tidak terlalu berguna dalam proyek-proyek kecil
- Sulit dalam mengikuti strategi proyek kecil
- Kurang efisien dalam penerapan model spiral karena
waktu yang digunakan
- Membutuhkan sumber pengalaman sebagai proses sehingga
sangat kompleks
- Dalam melakukan proyek kecil, estimasi biaya akan
sangat tinggi
V-Model
Model ini merupakan perluasan dari model waterfall.
Disebut sebagai perluasan karena tahap-tahapnya mirip dengan yang terdapat
dalam model waterfall. Jika dalam model waterfall proses dijalankan secara
linear, maka dalam model V proses dilakukan bercabang. Dalam model V ini
digambarkan hubungan antara tahap pengembangan software dengan tahap
pengujiannya.
lustrasi berikut menggambarkan berbagai tahap dalam V-Model
SDLC.
Ada beberapa tahapan verifikasi di V-Model, yaitu :
Business Requirement Analysis
Fase ini melibatkan komunikasi rinci dengan pelanggan untuk
memahami harapan dan kebutuhan yang tepat, Ini merupakan kegiatan yang sangat penting dan
perlu dikelola dengan baik,
System Design
Desain sistem akan memiliki pemahaman dan merinci hardware
lengkap dan setup komunikasi untuk produk dalam pengembangan.
Architectural Design
spesifikasi arsitektur dipahami dan dirancang dalam fase
ini. Biasanya lebih dari satu pendekatan teknis diusulkan dan berdasarkan kelayakan
teknis dan finansial keputusan akhir diambil. Module Design
Pada fase ini, desain internal rinci untuk semua modul
sistem yang ditentukan, disebut "Desain Tingkat Rendah".
Coding Phase
Bahasa pemrograman yang paling cocok ditentukan berdasarkan sistem
dan persyaratan arsitektur. pengkodean dilakukan berdasarkan pedoman coding dan
standar.
Kelebihan
dari V-Model SDLC
- Ini adalah model yang sangat-disiplin dan Tahapan
selesai satu per satu.
- Bekerja dengan baik untuk proyek-proyek yang lebih
kecil dimana persyaratan dipahami dengan baik.
- Sederhana dan mudah dimengerti dan digunakan.
- Mudah dikelola karena setiap fase memiliki spesifik
kiriman dan proses review.
Kekurangan
dari V-Model SDLC
- Berisiko tinggi dan ketidakpastian.
- Tidak cocok untuk proyek-proyek yang kompleks dan
berorientasi objek.
- Tidak cocok untuk proyek-proyek dimana persyaratan
beresiko tinggi
- Tidak cocok untuk proyek-proyek yang lama dan
berkelanjutan.
- Setelah aplikasi dalam tahap pengujian, sulit untuk
kembali dan mengubah fungsionalitas.
gile Process merupakan sekelompok aktifitas pembangunan perangkat lunak
secara iteratif yang menekankan pada aktifitas konstruksi (desain dan koding). Agile
Process mengeliminasi sebagian besar waktu untuk melakukan perencanaan
sistem dan berusaha sebisa mungkin mematuhi jadwal deliver sistem yang
telah dijanjikan. Requirements yang dibutuhkan secara langsung di-drive
oleh pelanggan itu sendiri, dan apabila terjadi perubahan terhadap requirements
tersebut, pengembang dituntut mampu beradaptasi dengan perubahan yang terjadi.
Agil Prosese terbagi menjadi beberapa bentuk, diantaranya
adalah:
- Adaptive Software Development (ASD)
- Dynamic Systems Development Method (DSDM)
- Scrum
- Crystal
- Feature Driven Development (FDD)
- Agile Modeling (AM)
- Lean Software Development (LSD)
- Agile Unified Process (AUP)
Kelebihan dari
agile
Meningkatkan
kepuasan kepada klien.
Dapat melakukan
review pelanggan mengenai software yang dibuat lebih awal.
Pembangunan
system dibuat lebih cepat.
Mengurangi
resiko kegagalan implementasi software dari segi non-teknis.
Jika pada saat pembangunan system terjadi kegagalan
kerugian dari segi materi relatif kecil.
Kekurangan dari
agile
Developer harus selalu siap dengan
perubahan karena perubahan akan selalu diterima.
Extreme Programming Models
Extreme
Programming (XP) merupakan salah satu metode pengembangan software yang
termasuk dalam Agile Software Development. XP menggunakan pendekatan
object-oriented.
proses Extreme
Programming,yaitu :
Planning. Tahap planning dimulai dengan membuat
user stories yang menggambarkan output, fitur, dan fungsi-fungsi dari software
yang akan dibuat.
- Design. Design di Extreme Programming
mengikuti prinsip Keep It Simple (KIS). Untuk design yang sulit, Extreme
Programming akan menggunaan Spike Solution dimana pembuatan design dibuat
langsung ke tujuannya.
- Coding. Proses coding pada XP diawali
dengan membangun serangkaian unit test. Setelah itu pengembang akan
berfokus untuk mengimplementasikannya.
- Testing. Tahap ini dilakukan pengujian kode
pada unit test. Dalam Extreme Programming, diperkenalkan XP
acceptance test atau biasa disebut customer test.
Kelebihan model Extreme Programming
:
- Komunikasi dalam XP dibangun
dengan melakukan pemrograman berpasangan (pair programming). Developer
didampingi oleh pihak clien dalam melakukan coding dan unit testing
sehingga klien bisa terlibat langsung dalam pemrograman sambil
berkomunikasi dengan developer.
- Setiap feed back ditanggapi
dengan melakukan tes, unit test atau system integration dan jangan menunda
karena biaya akan membengkak (uang, tenaga, waktu).
- Banyak ide baru dan berani
mencobanya, berani mengerjakan kembali dan setiap kali kesalahan
ditemukan, langsung diperbaiki.
Kelemahan model Extreme Programming
:
- Developer harus selalu siap
dengan perubahan karena perubahan akan selalu diterima.
- Tidak bisa membuat kode yang
detail di awal (prinsip simplicity dan juga anjuran untuk melakukan apa
yang diperlukan hari itu juga).