SIKLUS HIDUP SOFTWARE
Model Waterfall
Model waterfall dulu dikenal dengan nama “Linear Sequential Model” merupakan model tertua dan paling handal dan sering dikenal sebagai “classic life cycle”. Model ini pertama kali diperkenalkan oleh Winston Royce sekitar tahun 1970 sehingga sering dianggap kuno, tetapi model tersebut merupakan model yang paling banyak dipakai didalam Software Engineering (SE).
Model ini mengusulkan sebuah pendekatan kepada pengembangan software yang sistematik dan sekuensial yang mulai dari tingkat kemajuan sistem pada seluruh analisis, desain, kode, pengujian dan pemeliharaan. Model ini melingkupi aktivitas-aktivitas sebagai berikut yaitu; rekayasa dan pemodelan sistem informasi, analisis kebutuhan, desain, koding, pengujian 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 problemtersebut 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.
berikut adalah gambar tahap-tahap pengembangan software menggunakan model waterfall :
- System Engineering : Permodelan ini diawali dengan mencari kebutuhan dari keseluruhan sistem yang akan diaplikasikan ke dalam bentuk software. Tahap ini sering disebut dengan Project Definition.
- 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.
- 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.
- Coding : Untuk dapat dimengerti oleh mesin, maka design yang ada di komputer tadi harus diubah bentuknya menjadi ke dalam bahasa pemrograman melalui proses coding. Tahap ini merupakan implementasi dari tahap design yang secara teknis nantinya dikerjakan oleh programmer.
- Testing : 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. Begitu saoftware berjalan dengan sempurna dan sesuai dengan kebutuhan maka akan diimplementasikan.
- Maintenance : Pemeliharaan suatu software diperlukan, termasuk di dalamnya adalah pengembangan, karena software yang dibuat tidak selamanya hanya seperti itu. Pengembangan diperlukan ketika adanya perubahan dari eksternal perusahaan seperti ketika ada pergantian sistem operasi, atau perangkat lainnya.
- Merupakan 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.
- Waktu pengembangan lama. hal ini dikarenakan input tahap berikutnya adalah output dari tahap sebelumnya.
- Biaya mahal, hal ini juga dikarenakan waktu pengembangan yang lama.
- 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 merupakan aliran yang linear, sehingga jika requirement berubah proses tidak dapat diulang lagi.
- Karena tahap-tahapan pada waterfall tidak dapat berulang, maka model ini tidak cocok untuk pemodelan pengembangan sebuah proyek yang memiliki kompleksitas tinggi.
- Meskipun waterfall memiliki banyak kelemahan yang dinilai cukup fatal, namun model ini merupakan dasar bagi model-model lain yang dikembangkan setelahnya.
V-MODEL
Merupakan model pengembangan perangkat lunak yang didasarkan pada hubungan antara setiap fase pengembangan siklus hidup yang tercantum dalam model Watterfall yang merupakan pengembangan perangkat lunak dan fase yang terkait pengujian. Bisa dikatakan 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.
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.
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
Star Life Cycle Model (Hartson & Hix, 1989)
Dapat dilihat di setiap tahapan memiliki input dari luar (dari berbagai sumber) untuk dilakukan kegiatan sesuai dengan tahapan yang bersangkutan lalu dilakukan evaluasi. Berikut ini merupakan penjelasan dari setiap tahapan yang terdapat pada model Star life cycle :
- Task analysis/Functional analysis : tahapan ini, akan melakukan functional analysis dari input yang di berikan yang kemudian akan dilakukan evaluation.
- Requrements/Specification : tahapan ini, akan mengumpulkan informasi terkait dengan kebutuhan dan segala sesuatu yang bersangkutan dengan software yang akan dikembangkan, lalu dilakukan tahapan evaluation.
- Conceptual design/Formal design representation : tahapan ini akan mendesain sebuah desain konseptual dari software yang akan dikembangkan bersadarkan semua inputan yang masuk ketahapan ini. Kemudian dilakukan tahapan evaluation.
- Prototyping : Sama halnya seperti tahapan pada Simple interaction design model. dimana prototype merupakan desain interaktif yang memiliki fungsi terbatas yang akan di ujicobakan kepada pengguna lalu melakukan tahap evaluation.
- Implementation : tahapan ini merupakan tahapan dimana software diimplementasikan dan digunakan oleh pengguna lalu dilakukannya tahap evaluation.
- Evaluation : tahapan ini adalah melakukan evaluasi terhadap setiap tahapan yang menggunakan tahapan ini untuk melihat apakah hal yang dilakukan pada tahapan sebelumnya telah sesuai dengan kebutuhan terbaru dari pengguna lalu memberikan feedback terhadap tahapan sebelumnya.
Sumber:
- http://ufauzia.mhs.uksw.edu/2015/02/waterfall-model.html
http://www.umsl.edu/~hugheyd/is6840/waterfall.html - https://rifkanisa19.wordpress.com/2014/08/23/macam-macam-model-pengembangan-software/http://rusliyuli25.blogspot.co.id/2013/01/model-siklus-hidup-dan-proses.html
- http://theresianihan.blogspot.co.id/
- http://tomibejo.blogspot.co.id/2014/12/siklus-hidup-software.htm
- http://ilhamfaizin123.blogspot.com/2017/11/siklus-hidup-software_17.html
- http://kumonoraifu.blogspot.com/2015/11/model-siklus-hidup-software.html
- http://tomibejo.blogspot.com/2014/12/siklus-hidup-software.html



