Systems development life cycle atau dalam bahasa Indonesia disebut siklus hidup pengembangan sistem. SDLC adalah tahapan kerja yang bertujuan untuk menghasilkan sistem berkualitas tinggi yang sesuai dengan keinginan pelanggan atau tujuan dibuatnya sistem tersebut. SDLC menjadi kerangka yang berisi langkah-langkah yang harus dilakukan untuk memproses pengembangan suatu perangkat lunak.
SDLC digunakan untuk membangun suatu sistem informasi agar dapat berjalan sesuai dengan apa yang diharapkan. Konsep ini umumnya merujuk pada sistem komputer atau informasi. Dalam rekayasa perangkat lunak, konsep SDLC mendasari berbagai jenis metodologi pengembangan perangkat lunak. Metodologi-metodologi ini membentuk suatu kerangka kerja untuk perencanaan dan pengendalian pembuatan sistem informasi, yaitu proses pengembangan perangkat lunak.
SDLC juga bergungsi sarana komunikasi antara tim pengembang dengan pemegang kepentingan. SDLC juga berfungsi membagi peranan dan tanggung jawab yang jelas antara pengembang, desainer, analis bisnis, dan manajer proyek.
Â
Berikut beberapa tahapan dari SDLC:
- Planning
- Planning adalah tahap perencanaan dimana tim akan mengidentifikasi dan menentukan scope atau ruang lingkup yang perlu dilakukan dalam proses pengembangan proyek. Setelah itu, tim akan merencanakan struktur tim, time frame, budget, security, dan berbagai faktor penting lain yang dibutuhkan untuk pengembangan software.
Â
- Analysis
- Tahapan SDLC yang selanjutnya adalah proses analisis. Jadi, tim akan melakukan analisis untuk mengetahui apa masalah bisnis, apa target yang ingin dicapai, apa tujuan utama dari pengembangan software tersebut, apa fungsi dari software yang akan dikembangkan, dan lain-lain.
Â
- Design
- Berdasarkan requirement yang telah ditentukan sebelumnya, maka tim akan membuat rencana desain atau spesifikasi desain. Beberapa aspek desain yang akan ditentukan seperti:
- Architecture: bahasa pemrograman yang akan digunakan, desain software secara keseluruhan, dan lain-lain.
- User Interface: mendefinisikan bagaimana cara users ketika berinteraksi dengan software serta bagaimana cara software memberikan respon.
- Platform: platform tempat software dapat berjalan seperti Android, iOs, Linux, dan lain-lain.
- Security: langkah-langkah untuk mengamankan sistem software seperti enkripsi lalu lintas SSL, perlindungan kata sandi, atau yang lain.
Tim akan menjelaskankan dengan berbagai parameter seperti risiko, teknologi yang akan digunakan, kapabilitas tim, kendala proyek, waktu dan anggaran. Setelah itu, pemangku kepentingan akan meninjau kembali desain tersebut dan menawarkan umpan balik dan saran.
- Development
- Dalam fase ini, proses pengembangan software dimulai. Tahapan SDLC ini dapat dikatakan sebagai fase terpanjang dari proses pengembangan software. Database admin akan membuat data yang diperlukan dalam database, front-end developer bertugas membuat UI dan GUI untuk berinteraksi dengan back-end.
- Testing
- Tim QA akan menguji semua area software untuk memastikan bahwa sistem terbebas dari cacat, error, ataupun bug. Jika ternyata masalah ditemukan di dalam software yang dikembangkan, maka tim QA akan menginformasikannya dengan tim pengembang agar perbaikan dapat segera dilakukan. Proses ini berlanjut hingga software benar-benar terbebas dari bug, bekerja stabil, dan berfungsi sesuai harapan.
Â
- Implementation dan Release
- Setelah fase pengujian perangkat lunak selesai dan tidak ada bug yang tersisa pada sistem, maka tahap implementasi dapat dimulai. Tahap ini biasanya juga disebut sebagai tahap deployment. Tujuan dari tahap ini adalah untuk men-deploy perangkat lunak ke lingkungan produksi sehingga users dapat mulai menggunakannya.
- Maintenance
- Tahapan SDLC yang terakhir adalah proses maintenance atau pemeliharaan software.
Â
Biasanya beberapa aktivitas maintenance yang dilakukan adalah:
- Perbaikan bug: perbaikan bug ketika ada masalah yang dilaporkan
- Upgrade sistem : meningkatkan kinerja software dengan sistem yang lebih baru
- Peningkatan fitur: menambahkan fitur atau fungsionalitas pada pada software yang dikembangkan
Â
Namun dalam SDLC tentunya ada Kelebihan dan kekurangannya:
Kelebihan:
- Metode pengembangan perangkat lunak SDLC mudah untuk di aplikasikan.
- Memberikan template tentang metode analisis, desain, pengkodean, pengujian, dan pemeliharaan.
Kekurangan:
- Jarang sekali proyek riil mengikuti aliran sekuensial yang dianjurkan model karena model ini bisa melakukan itersi tidak langsung . Hal ini berakibat ada perubahan yang diragukan pada saat proyek berjalan.
- Pelanggan sulit untuk menyatakan kebutuhan secara eksplisit sehingga sulit untuk megakomodasi ketidakpastian pada saat awal proyek.
- Pelanggan harus bersikap sabar karena harus menunggu sampai akhir proyek diselesaikan.
- Pengembang sering malakukan penundaan yang tidak perlu karena anggota tim proyek harus menunggu tim lain untuk melengkapi tugas karena memiliki ketergantungan hal ini menyebabkan penggunaan waktu tidak efesien.