Siklus Hidup Software
Pada dasarnya siklus hidup perangkat lunak merupakan suatu proses desain atas program yang akan dibangun untuk mendapatkan hasil workable.Terdapat beberapa model Life Cycle Software, yaitu:
1. Waterfall
2. V-Model
3. Star Lifecycle Model (Hartson & Hix, 1989)
4. RAD (Rapid Application Development)
5. Simple Interaction Design Model
1. Waterfall
Sejarah model waterfall
Nama model ini sebenarnya
adalah “Linear Sequential Model”. Model ini sering disebut dengan “classic
life cycle” atau model waterfall. Model ini pertama kali yang diperkenalkan
oleh Winston Royce sekitar tahun 1970 sehingga sering dianggap kuno, tetapi
merupakan model yang paling banyak dipakai didalam Software Engineering
(SE). Model ini melakukan pendekatan secara sistematis dan berurutan. Disebut
dengan waterfall karena tahap demi tahap yang dilalui harus menunggu
selesainya tahap sebelumnya dan berjalan berurutan
Pengertian Waterfall
Waterfall atau AIR terjun
adalah model yang dikembangkan untuk pengembangan perangkat lunak, membuat
perangkat lunak. model berkembang secara sistematis dari satu tahap ke
tahap lain dalam mode seperti air terjun.
Model ini mengusulkan sebuah
pendekatan kepada pengembangan software yang sistematikdan sekuensial yang
mulai dari tingkat kemajuan sistem pada seluruh analisis, desain, kode,
pengujian dan pemeliharaan. Model ini melingkupi aktivitas-aktivitas sebgai
berikut : rekayasa dan pemodelan sistem informasi, analisis kebutuhan, desain,
koding, mengujian dan pemeliharaan.
Model pengembangan ini
bersifat linear dari tahap awal pengembangan system yaitu tahap perencanaan
sampai tahap akhir pengembangan system yaitu tahap pemeliharaan. Tahapan
berikutnya tidak akan dilaksanakan sebelum tahapan sebelumnya selesai
dilaksanakan dan tidak bisa kembali atau mengulang ke tahap sebelumnya.
Karakteristik
Dalam model ini terdapat
beberapa sifat-sifat yang menojol dan cenderung menjadi permasalahan pada model
waterfall.
a) Ketika problem muncul, maka proses berhenti
karena tidak dapat menuju ke tahapan
selanjutnya. Apabila terdapat kemungkinan problem tersebut muncul akibat
kesalahan dari tahapan sebelumnya, maka proses harus membenahi tahapan sebelumnya
agar problem ini tidak muncul.
b) Karena pendekatannya secara sequential, maka
setiap tahap harus menunggu hasil dari tahap sebelumnya. Hal itu tentu membuang
waktu yang cukup lama, artinya bagian lain tidak dapat mengerjakan hal lain
selain hanya menunggu hasil dari tahap sebelumnya.
Tahapan atau fase model waterfall
Ini adalah gambar tahapan atau fase yang paling umum tentang model waterfall
Akan tetapi Roger S. Pressman memecah model ini menjadi 6 tahapan meskipun secara garis besar sama dengan tahapan-tahapan model waterfall pada umumnya. Berikut adalah Gambar dan penjelasan dari tahap-tahap yang dilakukan di dalam model ini menurut Pressman:
a) 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.
b) 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.
c) 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.
d)
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.
e) 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.
f) 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.
Keuntungan dari Model Waterfall
a)
Merupakan model pengembangan
paling handal dan paling lama digunakan.
b)
Cocok untuk system software
berskala besar.
c)
Cocok untuk system software
yang bersifat generic.
d)
Pengerjaan project system akan
terjadwal dengan baik dan mudah dikontrol
Kelemahan Waterfall
a) Waktu pengembangan lama. hal
ini dikarenakan input tahap berikutnya adalah output dari tahap sebelumnya.
Jika satu tahap waktunya molor, maka waktu keseluruhan pengembangan juga ikut
molor.
b) Biaya juga mahal, hal ini juga
dikarenakan waktu pengembangan yang lama
c) Terkadang perangkat lunak yang
dihasilkan tidak akan digunakan karena sudah tidak sesuai dengan requirement
bisnis customer. hal ini juga dikarenakan waktu pengembangan yang lama. selain
itu dikarenakan waterfall meruakan aliran yang linear, sehingga jika
requirement berubah proses tidak dapat diulang lagi.
d) Karena tahap-tahapan pada
waterfall tidak dapat berulang, maka model ini tidak cocok untuk pemodelan
pengembangan sebuah proyek yang memiliki kompleksitas tinggi.
e) Meskipun waterfall memiliki
banyak kelemahan yang dinilai cukup fatal, namun model ini merupakan dasar bagi
model-model lain yang dikembangkan setelahnya.
2. Model V
Pengertian Model V
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.
Tahap Model V
Berikut penjelasan masing-masing tahap beserta tahap pengujiannya:
a)
Requirement Analysis
& Acceptance Testing
Tahap Requirement Analysis sama seperti yang terdapat dalam model
waterfall. Keluaran dari tahap ini adalah dokumentasi kebutuhan pengguna.
Acceptance Testing merupakan tahap yang akan mengkaji apakah dokumentasi
yang dihasilkan tersebut dapat diterima oleh para pengguna atau tidak.
b) System Design & System Testin
Dalam tahap ini analis sistem mulai merancang sistem dengan mengacu pada
dokumentasi kebutuhan pengguna yang sudah dibuat pada tahap sebelumnya.
Keluaran dari tahap ini adalah spesifikasi software yang meliputi organisasi
sistem secara umum, struktur data, dan yang lain. Selain itu tahap ini juga
menghasilkan contoh tampilan window dan juga dokumentasi teknik yang lain
seperti Entity Diagram dan Data Dictionary.
c)
Architecture Design
& Integration Testing
Sering juga disebut High Level Design. Dasar dari pemilihan arsitektur yang
akan digunakan berdasar kepada beberapa hal seperti: pemakaian kembali tiap
modul, ketergantungan tabel dalam basis data, hubungan antar interface, detail
teknologi yang dipakai.
d)
Module Design &
Unit Testing
Sering juga disebut sebagai Low Level Design. Perancangan dipecah menjadi
modul-modul yang lebih kecil. Setiap modul tersebut diberi penjelasan yang
cukup untuk memudahkan programmer melakukan coding. Tahap ini menghasilkan
spesifikasi program seperti: fungsi dan logika tiap modul, pesan kesalahan,
proses input-output untuk tiap modul, dan lain-lain.
e)
Coding
Dalam tahap ini dilakukan pemrograman terhadap setiap modul yang sudah
dibentuk.
Keuntungan V Model
Bahasa yang digunakan untuk merepresentasikan konsep V model menggunakan
bahasa formal. Contoh : dengan menggunakan objek model ataupun frame-frame •
Meminimalisasikan kesalahan pada hasil akhir karena ada test pada setiap
prosesnya
a)
Penyesuaian yang cepat
pada projek yang baru
b)
Memudahkan dalam
pembuatan dokumen projek
c)
Biaya yang murah dalam
perawatan dan modifikasinya
d) V Model sangat
fleksibel. V Model mendukung project tailoring dan penambahan dan pengurangan
method dan tool secara dinamik. Akibatnya sangat mudah untuk melakukan
tailoring pada V Model agar sesuai dengan suatu proyek tertentu dan sangat
mudah untuk menambahkan method dan tool baru atau menghilangkan method dan tool
yang dianggap sudah obsolete.
e) V Model dikembangkan
dan di-maintain oleh publik. User dari V Model berpartisipasi dalam change
control board yang memproses semua change request terhadap V Model.
Kerugian V Model
a) Aktifitas V-Model hanya
difokuskan pada projectnya saja, bukan pada keseluruhan organisasi. V-Model
adalah proses model yang hanya dikerjakan sekali selama project saja, bukan
keseluruhan organisasi.
b) Prosesnya hanya secara
sementara. Ketika project selesai, jalannya proses model dihentikan. Tidak
berlangsung untuk keseluruhan organisasi.
c) Metode yang ditawarkan
terbatas. Sehingga kita tidak memiliki cara pandang dari metode yang lain. Kita
tidak memiliki kesempatan untuk mempertimbangkan jika ada tools lain yang lebih
baik.
d) Toolnya tidak selengkap
yang dibicarakan. SDE (Software Development Environment).Tidak ada tools untuk
hardware di V-Model. Tool yang dimaksud adalah “software yang mendukung
pengembangan atau pemeliharaan / modifikasi dari system IT.
e) V Model adalah model
yang project oriented sehingga hanya bisa digunakan sekali dalam suatu proyek.
f) V Model terlalu
fleksibel dalam arti ada beberapa activity dalam V Model yang digambarkan
terlalu abstrak sehingga tidak bisa diketahui dengan jelas apa yang termasuk
dalam activity tersebut dan apa yang tidak.
3. Star Lifecycle Model (Hartson & Hix, 1989; p.52)
Penjelasan
Dalam Siklus permodelan ini pengujian dilakukan terus
menerus, tidak harus dikahir. Misalnya dimulai dari menentukan kosep desain
(conceptual design ) dalam proses ini akan langsung terjadi evaluasi untuk
langsung ternilai apakah sudah sesuai dengan kebutuhan user, bila belum maka
akan terus berulang di evaluasi hingga benar-benar pas, selanjutnya apabila
sudah sesuai, maka dari tahap evaluasi yang pertama akan lanjut ke proses yang
selanjutnya yaitu requirements/specification dimana di lakukan pemverifikasikan persyaratan
rancangan tersebut, dan pada tahap itu juga langsung terjadi pengevaluasian
seperti tahap pertama, dan selanjutnya akan tetap sama terjadi pada
tahapan-tahapan selanjutnya yaitu task analysis/fungsion analysis,
pengimplementasian, prototyping hingga pada akhirnya terciptalah sebuah
aplikasi yang sesuai dengan kebutuhan user. Intinya pada rancangan model ini
pengevaluasian dilakukan disetiap tahapan tidak hanya pada tahapan akhir
seperti model-model rancangan yang lainnya.
Tahapan
a)
Analisa
Identifikasi kemampuan user, strategi yang digunakan untuk meningkatkan ketrampilannya, alat yang saat ini dipakai, masalah-masalah yang dialami, perubahan yang diinginkan baik dalam ketrampilan maupun peralatan.
Metode : tanya kemampuan user dan buat daftar dengan skala prioritas, observasi ketrampilan di lapangan.
Identifikasi kemampuan user, strategi yang digunakan untuk meningkatkan ketrampilannya, alat yang saat ini dipakai, masalah-masalah yang dialami, perubahan yang diinginkan baik dalam ketrampilan maupun peralatan.
Metode : tanya kemampuan user dan buat daftar dengan skala prioritas, observasi ketrampilan di lapangan.
b)
Evaluasi kompetisi
Tentukan kekuatan dan
kelemahan rancangan Metode : pengguna diminta untuk mencoba menggunakan berbagi produk dan
minta untuk menyebutkan kelebihan dan kelemahan dari masing-masing
produk.
c) Rancang sambil jalan Gunakan
hasil analisa untuk membuat alternatif solusi, minta masukan sampai dengan
penentuan pilihan yang terbaik.
Metode : tanyai user sehubungan dengan pengalaman menggunakan prototipe.
Metode : tanyai user sehubungan dengan pengalaman menggunakan prototipe.
d)
Evaluasi dan validasi Secara
periodik user memberikan masukan selama pengembangan dan perancangan akan
diulang berdasarkan masukan tadi.
Metode : amati kebutuhan pokok user dalam menggunakan sistem.
Metode : amati kebutuhan pokok user dalam menggunakan sistem.
e) Benchmark
Memadukan hal-hal terbaik yang dimiliki pesaing untuk diterapkan dalam sistem yang dibangun Metode : menggali informasi dari user hal-hal yang sebaiknya ada dibandingkan dengan kompetitor, contoh : situs IBM.
Memadukan hal-hal terbaik yang dimiliki pesaing untuk diterapkan dalam sistem yang dibangun Metode : menggali informasi dari user hal-hal yang sebaiknya ada dibandingkan dengan kompetitor, contoh : situs IBM.
4. RAD (Rapid Application Development)
Pengertian
Rapid application development (RAD) atau rapid prototyping adalah model proses pembangunan perangkat lunak yang tergolong dalam teknik
incremental (bertingkat). RAD menekankan pada siklus pembangunan pendek,
singkat, dan cepat. Waktu yang singkat adalah batasan yang penting untuk model
ini. Rapid application development menggunakan metode iteratif (berulang) dalam
mengembangkan sistem dimana working model (model bekerja) sistem
dikonstruksikan di awal tahap pengembangan dengan tujuan menetapkan kebutuhan
(requirement) user dan selanjutnya disingkirkan. Working model digunakan kadang-kadang
saja sebagai basis desain dan implementasi sistem final.
Penerapan
Model RAD mengadopsi model waterfall dan pembangunan dalam waktu singkat yang dicapai dengan menerapkan :
1. Component based construction ( pemrograman berbasis komponen bukan prosedural).
2. Penekanan pada penggunaan ulang (reuse) komponen perangkat lunak yang telah ada.
3. Pembangkitan kode program otomatis/semi otomatis.
4. Multiple team (banyak tim), tiap tim menyelesaikan satu tugas yang
selevel tapi tidak sama. Banyaknya tim tergantung dari area dan
kompleksitasnya sistem yang dibangun.
Jika
keutuhan yang diinginkan pada tahap analisis kebutuhan telah lengkap
dan jelas, maka waktu yang dibutuhkan untuk menyelesaikan secara lengkap
perangkat lunak yang dibuat adalah berkisar 60 sampai 90 hari. Model
RAD hampir sama dengan model waterfall, bedanya siklus pengembangan yang
ditempuh model ini sangat pendek dengan penerapan teknik yang cepat.
Sistem
dibagi-bagi menjadi beberapa modul dan dikerjakan beberapa tim dalam
waktu yang hampir bersamaan dalam waktu yang sudah ditentukan. Model ini
melibatkan banyak tim, dan setiap tim mengerjakan tugas yang selevel,
namun berbeda. Sesuai dengan pembagian modul sistem.
Kelemahan
Beberapa hal (kelebhan dan kekurangan) yang perlu diperhatikan dalam implementasi pengembangan menggunakan model RAD :
1. Model RAD memerlukan sumber daya yang cukup besar, terutama untuk proyek dengan skala besar.
2. Model ini cocok untuk proyek dengan skala besar.
3. Model RAD memerlukan komitmen yang kuat antara pengembang dan pemesssan, bahkan keduanya bisa tergabung dalam 1 tim
4.
kinerja dari perangkat lunak yang dihasilkan dapat menjadi masalah
manakala kebutuhan-kebutuhan diawal proses tidak dapat dimodulkan,
sehingga pendekatan dengan model ini kurang bagus.
5. sistem yang tidak bisa dimodularisasi tidak cocok untuk model ini.
6. penghalusan dan penggabungan dari beberapa tim di akhir proses sangat diperlukan dan ini memerlukan kerja keras.
7. proyek bisa gagal karena waktu yang disepakati tidak dipenuhi
8. risiko teknis yang tinggi juga kurang cocok untuk model ini.
5. Simple Interaction Design Model
Simple Interaction Design Model Lifecycle Software adalah model yang
menggabungkan tiga prinsip pengguna berpusat desain dan
empat kegiatan desain interaksi.
Prinsip User-Centered Design
Prinsip-prinsip ini dikembangkan oleh John D. Gould dan Clayton Lewis.
prinsipnya adalah sebagai berikut:
a)
Fokus pada pengguna dan
tugas
b)
Pengukuran empiris
c)
Desain Interatif
Dasar kegiatan Desain Interaksi
Preece et al. menggambarkan model dasar untuk proses desain interaksi yang
mencakup empat kegiatan seperti yang ditunjukkan di bawah ini. Sejumlah akademisi
dan lembaga desain terkenal telah menciptakan model yang sama. Zimmerman, J.,
Forlizzi, J., dan Evenson, S., dari Sekolah Desain di Carnegie Mellon University.
Kegiatannya adalah sebagai berikut:
a)
Mengidentifikasi
kebutuhan dan persyaratan mendirikan untuk pengalaman pengguna
b)
Mengembangkan alternatif
desain yang memenuhi persyaratan
c)
Membangun versi
interaktif dari desain
d)
Mengevaluasi apa yang
sedang dibangun di seluruh proses dan pengalaman pengguna yang menawarkan
Sumber:
Wijaya. Ibnu Sani. Modul Human Computer Interaction. 2015
http://tomibejo.blogspot.co.id/2014/12/siklus-hidup-software.html
http://apriy68.blogspot.co.id/2014/11/penjelasan-waterfall-v-model-dll.html