Software Development Life Cycle (SDLC) atau Siklus Hidup Pengembangan Perangkat Lunak adalah proses yang menjelaskan metode dan strategi seperti bagaimana mengembangkan desain dan memelihara proyek perangkat lunak untuk memastikan bahwa semua tujuan, sasaran, fungsi dan kebutuhan pengguna terpenuhi. SDLC harus menghasilkan perangkat lunak berkualitas tinggi yang memenuhi harapan klien, mencapai penyelesaian sesuai tenggat waktu dan perkiraan biaya, serta bekerja secara efektif dan efisien (Kushwaha et al, 2006).
Model Siklus Hidup pengembangan perangkat lunak (Software development Life Cycle models) oleh (Arora dan Arora, 2016):
1. Waterfall Development
Waterfall Development sebagian besar direncanakan dengan menggunakan diagram Gantt yaitu kita menyelesaikan satu fase dan kemudian menyelesaikannya pindah ke fase berikutnya. Model ini tidak akan pernah meninjau kembali suatu fase setelah fase tersebut selesai. Pendekatan dasar metode Waterfall Development adalah menetapkan stabilitas persyaratan. Persyaratannya menentukan informasi, fungsi, perilaku, kinerja, dan antarmuka yang dibutuhkan. Desainnya terdiri dari arsitektur perangkat lunak, representasi antarmuka, dan implementasinya berdasarkan sumber pengujian.
Model tahapan SLDC Waterfall Development:
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,. Tahap ini sering disebut dengan 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 aktivitas tersebut (pencarian kebutuhan sistem dan software) harus didokumentasikan dan ditunjukkan kepada pelanggan. Tahap ini disebut dengan Software Requirements Analysis.
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. Tahap ini disebut dengan Design.
Desain yang telah dibuat kemudian 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. Tahap ini disebut dengan Coding.
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 Tahap ini disebut dengan Testing
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 Tahap ini disebut dengan Operation and Maintenance.
Keuntungan dari pendekatan Waterfall Development adalah
Sederhana dan mudah digunakan dan dipahami.
Fase-fasenya tidak tumpang tindih sehingga pengelolaannya dilakukan dengan sangat efisien.
Bekerja sangat baik untuk proyek kecil.
Hambatan dalam pendekatan Waterfall Development adalah
Tidak dapat meminta persetujuan dari pengguna sampai akhir
Keberhasilan proyek tidak dapat ditentukan sampai akhir.
Kapan menggunakan metode Waterfall Development : Model ini paling cocok jika semua persyaratannya jelas, tetap, dan sangat tidak diketahui.
Definisi produk dan teknologi dipahami dengan baik: Jangka waktu proyek pendek.
2. Agile Development
Agile Development adalah model iteratif di mana fase-fase proyek berjalan secara bersamaan, yaitu secara paralel. Persyaratan berkembang pada tahap mana pun di fase mana pun. Ada banyak kerangka tangkas yang masing-masing memiliki struktur empiris yang sama (Jovanovich, D., Dogsa, T ,2003).
Keuntungan dari pendekatan Agile Development adalah
Perubahan dapat dimasukkan dengan sangat mudah.
Tanpa perencanaan ulang yang besar, perubahan biaya dapat ditangani dengan baik.
Keterlibatan tim yang konstan.
Kerugian dari pendekatan Agile Development adalah
Lebih sering terjadi masalah pada struktur tim dibandingkan masalah perencanaan.
Dubious planning date
Kapan menggunakan Agile Development: Ketika ada kebutuhan terus-menerus untuk memasukkan perubahan dan Ketika pengembang dan pemangku kepentingan mempunyai kebebasan yang sama untuk menyarankan perubahan.
3. Scrum Development
Scrum Development adalah kombinasi metodologi pengembangan perangkat lunak tangkas yang berulang dan bertahap untuk mengelola pengembangan produk. Fokusnya adalah menghadirkan fitur-fitur kecil yang mandiri dan berharga. Setiap fitur bersifat independen satu sama lain jika salah satu fitur bermasalah maka fitur lainnya tidak terpengaruh (Shikha maheshwari, Dinesh Ch. Jain dkk, 2012)
Keuntungan dari pendekatan Scrum Development adalah
Menjadikan proyek ekonomis dan memungkinkan penggunaan waktu secara efisien.
Karena umpan balik yang konstan, perubahan dapat digabungkan dengan mudah
Kerugian dari pendekatan Scrum Development adalah
Umpan balik yang berkelanjutan terus menuntut fungsionalitas baru.
Manajemen kualitas proyek sulit diterapkan.
Bekerja dengan baik hanya dengan tim kecil.
Kapan menggunakan Scrum Development : Ketika permintaan mempunyai prioritas tinggi dan memerlukan penyelesaian yang tinggi dan Ketika prosesnya bersifat siklus, yaitu perencanaan untuk sprint berikutnya yang tumpang tindih dengan pekerjaan pada topik saat ini.
4. Spiral Development
Menggabungkan fitur-fitur model SDLC berulang dan salah satu, kerangka kerja baru yang disebut spiral dikembangkan. Model dimulai dengan menentukan tujuan dan batasan perangkat lunak.
Keuntungan dari pendekatan Spiral Development adalah
Sangat efisien untuk proyek-proyek besar dan penting.
Perangkat lunak diproduksi pada awal kehidupan pengembangan siklus.
Kerugian dari pendekatan Spiral Development adalah
Tidak cocok untuk proyek kecil.
Mahal untuk jangka pendek.
Kapan menggunakan Spiral Development : Persyaratannya rumit dan Ketika penelitian dan eksplorasi terlibat.
5.V-Model
Dalam model ini kami menguji perangkat lunak pada setiap tahap dengan cara terbalik. Rencana pengujian dan kasus pengujian dibuat di setiap tahap untuk memverifikasi dan memvalidasi produk sesuai dengan kebutuhan setiap tahap. Oleh karena itu, verifikasi dan validasi berjalan secara paralel.
Keuntungan dari pendekatan V-Model adalah
Sederhana dan mudah digunakan.
Perencanaan, perancangan terjadi jauh sebelum pengkodean.
Kerugian dari pendekatan V-Model adalah
Kekakuan tinggi dan fleksibilitas rendah.
Tidak ada prototipe awal yang diproduksi.
Kapan menggunakan V-Model : Ketika sumber daya teknis yang memadai tersedia memerlukan keahlian teknis dan Persyaratan didefinisikan dan dipahami dengan jelas.
Pemilihan model SDLC yang tepat tergantung pada kebutuhan proyek dan lingkungan pengembangan. Model Waterfall mengharuskan setiap tahap selesai sebelum memulai tahap berikutnya, sementara model Agile berfokus pada pengembangan iteratif dan inkremental. Beberapa proyek mungkin lebih cocok untuk model tradisional seperti Waterfall, sementara yang lain lebih cocok dengan pendekatan Agile yang lebih fleksibel.
Baca konten-konten menarik Kompasiana langsung dari smartphone kamu. Follow channel WhatsApp Kompasiana sekarang di sini: https://whatsapp.com/channel/0029VaYjYaL4Spk7WflFYJ2H