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