Dunia komputer, khususnya bidang pengembangan
software (software development), dalam beberapa aspek atau bagiannya memiliki
kemiripan istilah dengan dunia nyata atau dunia kehidupan kita sehari-hari.
Dalam beberapa hal, istilah-istilah yang digunakan pada bidang komputer
memiliki kesamaan dengan istilah yang biasa digunakan sehari-hari. Salah satu
contoh istilah tersebut adalah daur hidup (life cycle). Software komputer,
seperti halnya makhluk hidup secara umum, juga memiliki daur hidup (life cycle)
yang biasa disebut sebagai software development life cycle (daur hidup
pengembangan software). Artikel ini akan coba membahas secara ringkas, padat,
dan jelas mengenai software development life cycle. Semoga bahasan yang terdapat
pada artikel ini dapat bermanfaat.
Menurut Wikipedia, software development life cyle
(SDLC) atau yang dapat disebut pula sebagai software development process (SDP)
merupakan suatu struktur yang ditekankan atau difokuskan pada pengembangan
suatu produk software. Sementara itu, ada pula yang mendefinisikan software
development life cycle sebagai serangkaian langkah atau tahapan yang
menyediakan suatu model bagi pengembangan dan pengelolaan daur hidup suatu
software maupun bagian dari software. Beberapa istilah lain yang dapat dianggap
mirip dengan SDLC adalah software life cycle dan software process. SDLC juga
sering dianggap sebagai bagian dari systems development life cycle. Terdapat
beberapa model yang umum digunakan terkait dengan pengembangan software, dimana
masing-masing model tersebut mendeskripsikan berbagai kumpulan pendekatan
berbeda terhadap setiap tugas atau aktivitas yang dilakukan dalam setiap
tahapan proses. Perbedaan pendekatan tersebut dipengaruhi oleh perbedaan
industri maupun organisasi yang menjalankan proses pengembangan software. ISO/IEC
12207 adalah standar internasional untuk software life-cycle process yang
ditujukan sebagai suatu standar yang mendefinisikan semua upaya (pemilihan
metode, penerapan, dan pengawasan terhadap daur hidup software) yang diperlukan
untuk pengembangan dan pemeliharaan software.
Selama beberapa dekade sebelumnya, terdapat suatu
tujuan jangka panjang terkait dengan pengembangan software, yaitu untuk
menemukan proses-proses yang dapat diprediksi serta diulangi (dilakukan
kembali) yang pada akhirnya diharapkan dapat meningkatkan produktivitas dan
kualitas dari pengembangan software serta software itu sendiri. Sejumlah pihak
mencoba untuk mensistematisasikan atau memformulasikan aturan-aturan terkait
dengan penulisan software yang sebelumnya dianggap tak teratur. Sementara itu,
sejumlah pihak lain mencoba menerapkan teknik-teknik manajemen proyek terhadap
penulisan software. Pihak-pihak tersebut mempercayai bahwa tanpa adanya
manajemen proyek yang efektif, proyek-proyek software dapat saja terlambat
dikirimkan ke pihak customer maupun memungkinkan terjadinya over budget untuk
proyek tersebut. Guna mendukung peningkatan manajemen proses proyek software,
suatu organisasi dapat membentuk suatu Software Engineering Process Group
(SEPG) yang dapat menjadi elemen penting dalam upaya meningkatkan kualitas
proses-proses pengembangan software. SEPG terdiri dari para praktisi dengan
berbagai macam keahlian, dimana kelompok tersebut menjadi pusat dari upaya
kolaboratif dari setiap individu dalam organisasi yang terlibat secara langsung
dalam upaya manajemen peningkatan proses rekayasa software.
Aktivitas Pengembangan Software
Setelah definisi mengenai software development life
cycle, standar internasional untuk software development life cycle, dan juga
mengenai organisasi pengembangan software dibahas pada sejumlah paragraf di
atas, maka pada bagian ini akan dibahas aktivitas-aktivitas yang terdapat dalam
seluruh proses pengembangan software.
Aktivitas paling awal dari pengembangan software
adalah planning (perencanaan). Planning ditujukan untuk merumuskan tujuan
secara umum dari aktivitas pengembangan software maupun secara spesifik untuk
setiap tahapan proses pengembangan software, dimana tujuan akhir dari aktivitas
ini adalah untuk menemukan hal-hal atau komponen-komponen yang menjadi bagian
dari proyek pengembangan software. Suatu aktivitas penting dalam pengembangan
software adalah melakukan perolehan kebutuhan atau analisa kebutuhan. Pada
umumnya, para pelanggan memiliki gagasan abstrak mengenai hasil akhir yang
diharapkannya, namum mereka tidak benar-benar mengetahui fitur-fitur atau proses-proses
apa saja yang perlu ada di dalam software agar dapat benar-benar memperoleh
hasil akhir yang mereka inginkan. Pada keadaan inilah, seorang pengembang
software yang terlatih dan berpengalaman bertanggung jawab untuk membantu mengenali
kebutuhan-kebutuhan yang masih ambigu, belum lengkap, maupun yang saling
bertentangan. Segera setelah seluruh kebutuhan umum telah berhasil digali dari
pelanggan, berikutnya perlu ditetapkan suatu ruang lingkup pengembangan
software dengan jelas.
Tiga tahapan atau aktivitas berikutnya dalam
rangkaian aktivitas pengembangan software adalah implementation (implementasi),
testing (pengujian), dan documenting (pendokumentasian). Aktivitas implementasi
adalah aktivitas dimana para pengembang software mulai menuliskan kode-kode
program berdasarkan pada hasil analisa kebutuhan yang telah dilakukan.
Aktivitas software testing (pengujian software) merupakan aktivitas penting dan
terpadu pada proses pengembangan software. Aktivitas ini berfungsi untuk
memastikan bahwa seluruh penyimpangan atau kesalahan yang mungkin ada pada
software dapat dengan segera diketahui pada setiap proses pengembangannya.
Aktivitas documenting (pendokumentasian) ditujukan untuk mendokumentasikan
seluruh detail rancangan internal dari suatu software dengan tujuan untuk
memudahkan ketika melakukan perubahan (perbaikan atau penambahan fitur) maupun
perawatan (maintenance) suatu software di masa depan. Aktivitas
pendokumentasian biasa dilakukan pada setiap tahapan pengembangan. Penulisan
dokumentasi juga dapat meliputi penulisan API (Application Programming
Interface), baik internal maupun eksternal API. Banyaknya dokumentasi yang
dibuat tergantung pada jenis proses rekayasa software yang digunakan oleh tim
pengembang software.
Dua tahapan terakhir pada proses pengembangan
software adalah deployment (installment atau pemasangan) dan maintenance
(perawatan). Tahapan deployment dijalankan segera setelah kode-kode program
telah mengalami pengujian yang tepat, disetujui untuk dirilis, dan kemudian
dipergunakan pada lingkungan kerja yang sesungguhnya. Deployment meliputi
instalasi, kustomisasi, pengujian, maupun perpanjangan masa evaluasi software jika
dianggap diperlukan. Dukungan dan pelatihan penggunaan software juga menjadi
bagian dari tahapan deployment yang merupakan suatu proses penting untuk
menyediakan dukungan agar pengguna dapat lebih mudah memahami cara menggunakan
software dengan optimal. Tahapan maintenance software ditujukan untuk tetap
dapat mencakup atau menjangkau setiap kesalahan pemrograman yang ditemukan
maupun kebutuhan-kebutuhan baru yang diperlukan dalam software. Tahapan ini
dapat memerlukan upaya dan waktu yang cukup besar, sebab setiap kebutuhan yang
gagal dikenali sejak dari awal dapat mendorong perlunya perancangan ulang
desain suatu software.
Demikianlah pembahasan ringkas mengenai software
development life cycle. Semoga bahasan yang kami berikan ini dapat turut
membantu setiap orang atau setiap pihak yang sedang ingin mempelajari mengenai
pengembangan software.
No comments:
Post a Comment