Software Development Life Cycle
SDLC
(SOFTWARE DEVELOPMENT LIFE CYCLE)
A.
Pengertian SDLC
SDLC (Software Development Life Cycle / Siklus Hidup Pengembangan Sistem) atau Systems Life Cycle (Siklus Hidup Sistem), dalam rekayasa sistem dan rekayasa perangkat lunak adalah proses pembuatan dan pengubahan sistem
serta model dan metodologi yang digunakan untuk mengembangkan sistem.
Konsep ini umumnya merujuk pada sistem
komputer atau informasi. SDLC dapat juga dikatakan sebagai proses mengembangkan
atau mengubah suatu sistem perangkat lunak yang memakai metodologi yang dipakai
oleh orang untuk mengembangkan sistem-sistem perangkat lunak sebelumnya,
berdasarkan pengalaman terbaik atau cara-cara yang sudah pasti terjamin sangat
baik. Membuat perangkat lunak memiliki proses yang dilalui agar dapat
menghasilkan perangkat lunak yang berkualitas. Untuk
mengembangkan sistem perangkat lunak, terdiri dari tahap-tahap seperti :
rencana (planing), analisis (analysis), desain (design), implementasi (implementation),
uji coba (testing) dan pengelolaan (maintenance).
SDLC dimulai dari tahun 1960-an, untuk mengembangkan sistem
skala usaha besar secara fungsional untuk para konglomerat pada zaman itu.
Sistem-sistem yang dibangun mengelola informasi kegiatan dan rutinitas dari
perusahaan-perusahaan yang nantinya akan memiliki jumlah data yang sangat
banyak seiring berkembangnya sistem yang berjalan. SDLC adalah tahapan-tahapan
pekerjaan yang dilakukan oleh analis sistem dan programmer dalam membangun
sistem informasi.
Setiap kegiatan dalam SDLC dapat dijelaskan melalui
tujuan (purpose) dan hasil kegiatannya (deliverable). SDLC
didefinisikan oleh Departemen Kehakiman AS sebagai sebuah proses
pengembangan software yang digunakan oleh analyst system,
untuk mengembangkan sebuah sistem informasi. SDLC mencakup kebutuhan (requirement),
validasi, pelatihan, kepemilikan (user ownership) sebuah sistem informasi yang diperoleh melalui
investigasi, analisis, desain, implementasi, dan perawatan software. Software yang dikembangkan berdasarkan SDLC akan menghasilkan sistem dengan
kualitas yang tinggi, memenuhi harapan penggunanya, tepat dalam waktu dan
biaya, bekerja dengan efektif dan efsien dalam infrastruktur teknologi
informasi yang ada atau yang direncanakan, serta murah dalam perawatan dan
pengembangan lebih lanjut.
B. Fungsi, Manfaat dan Tujuan SDLC
Beberapa fungsi dari SDLC yaitu :
1. Mengidentifikasikan
masalah-masalah dari user.
2. Menyatakan secara spesifik
sasaran yang harus dicapai untuk memenuhi kebutuhan user.
3. Memilih
alternatif-alternatif metode pemecahan masalah.
4. Merencanakan dan menerapkan
rancangan sistemnya sesuai dengan permintaan user.
5. Sebagai
sarana komunikasi antara tim pengembang dengan pemegang kepentingan.
6. Membagi
peranan dan tanggung jawab yang jelas antara pengembang, desainer, analis
bisnis, dan manajer proyek.
7. Dapat
memberikan gambaran input dan output yang
jelas dari satu tahap menuju tahap selanjutnya.
Manfaat dari SDLC yaitu :
1.
Perfomance (kinerja)
Peningkatan
terhadap kinerja system yang baru menjadi lebih efektif. Kinerja dapat diukur
dari throughput (jumlah dari pekerjaan yang dapat dilakukan suatu saat
tertentu) dan response time (rata-rata waktu yang tertunda diantara dua
transaksi).
2.
Information
Peningkatan kualitas
informasi yang didapatkan
3.
Ekonomis
Peningkatan terhadap
manfaat-manfaat, keuntungan-keuntungan atau penurunan-penurunan biaya yang
terjadi.
4.
Efisiensi
Peningkatan terhadap
efisiensi operasi. Efisiensi dapat diukur dari outputnya dibagi dengan
inputnya.
5.
Servis (pelayanan)
Peningkatan terhadap pelayanan yang diberikan oleh sistem.
SDLC memiliki tiga tujuan bisnis utama:
1. Memastikan pengiriman
sistem berkualitas tinggi.
2. Menyediakan kontrol
manajemen yang kuat.
3. Maksimalkan produktivitas.
C. Tahapan Umum SDLC
1.
Inisiasi (initiation)
Tahap ini
biasanya ditandai dengan pembuatan proposal proyek perangkat lunak.
2.
Pengembangan konsep sistem (system concept development)
Mendefinisikan
lingkup konsep termasuk dokumentasipengembangan sistem pada analisis lingkup
area sistem dan memanajemen rencana dan mempelajari cara kerja sisitem.
3.
Perencanaan (planning)
Membuat
perencanaan terhadap pekerjaan dan berkas perencanaan yang lainnya. Menyediakan
dasar untuk mendapatkan sumber daya (resources)
yang dibutuhkan untuk memperoleh solusi.
4.
Analisis kebutuhan (requirements analysis)
Analisa
terhadap kebutuhan pengguna sistem perangkat lunak (user) dan mengembangkan kebutuhan user. Membuat dokumen kebutuhan fungsional.
5.
Desain (design)
Mentransformasikan
kebutuhan secara terinci, dokumen desain sistem fokus pada bagaimana dapat
memenuhi fungsi-fungsi yang dibutuhkan oleh sistem.
6.
Pengembangan (development)
Mengubah
perancangan ke sistem informasi yang kompleks dan bagaimana mendapatkan dan
melakukan penginstalan lingkungan sistem yang diharapkan;, membuat basis data
dan menyiapkan standar prosedur pada saat pengujian, menyiapkan dokumen atau file coding, testing, compile, repair
dan cleaning program.
7.
Integrasi dan pengujian (integration and test)
Mepresentasikan
sistem perangkat lunak yang telah memenuhi keadaan yang dispesifikasikan pada
dokumen kebutuhan fungsional. Dengan diarahkan oleh bagian penjamin mutu (quality assurance) dan user. Menghasilkan pelaporan analisis
dari pengujian.
8.
Implementasi (implementation)
Termasuk pada
persiapan implementasi, pelaksanaan perangkat lunak pada area produksi (area
pada user) dan menjalankan resolusi
dari problem yang terdeteksi dari tahap integrasi dan pengujian.
9.
Operasi dan pemeliharaan (operations and maintenance)
Menjelaskan
tentang pekerjaan untuk menjalankan dan me-maintenance
sistem informasi pada area produksi (lingkungan pada user), termasuk implementasi akhir dan masuk pada proses
peninjauan.
10. Disposisi
(Disposition)
Mendeskripasikan
aktifitas dari pengembangan sistem dan membangun data yang sesungguhnya sesuai
dengan aktifitas user.
Siklus SDLC dijalankan secara
berurutan, mulai dari langkah pertama hingga langkah terakhir. Setiap langkah
yang telah selesai harus dikaji ulang, kadang-kadang bersama expert user, terutama dalam langkah
spesifikasi kebutuhan dan perancangan sistem untuk memastikan bahwa langkah
telah dikerjakan dengan benar dan sesuai harapan. Jika tidak maka langkah
tersebut perlu diulangi lagi atau kembali ke langkah sebelumnya.
Kaji ulang yang dimaksud adalah
pengujian yang sifatnya quality control
dan pengujian bersifat quality assurance.
Quality control dilakukan oleh
personal internal tim untuk membangun kualitas, sedangkan quality assurance dilakukan oleh orang di luar tim untuk menguji
kualitas sistem. Semua langkah dalam siklus harus terdokumentasi. Dokumentasi
yang baik akan mempermudah pemeliharaan dan peningkatan fungsi sistem
D. Model SDLC
1. Model Waterfall
Model Sekuensial Linier atau sering disebut Model
Pengembangan Air Terjun, merupakan paradigma model pengembangan perangkat lunak
paling tua, dan paling banyak dipakai. Model ini mengusulkan sebuah pendekatan
perkembangan perangkat lunak yang sistematik dan sekunsial yang dimulai pada
tingkat dan kemajuan sistem pada seluruh tahapan analisis, desain , kode,
pengujian, dan pemeliharaan.
Tahapan model waterfall :
1.
Tahap analisa kebutuhan sistem yang akan dibuat
dan harus dapat dimengerti oleh klien dan developer. Pada tahap ini
klien harus dapat menjelaskan dan mendefinisikan tujuan dari sistem yang ingin
dibangun. Sebagai developer harus dapat menangkap maksud klien
mengenai sistem yang akan di bangun dan juga memberikan saran dan mungkin juga
kendala terhadap sistem yang akan dibangun tersebut. Dokumen yang dihasilkan
pada tahapan ini menjadi dasar kontrak kerja antara klien dengan developer.
2.
Tahap desain sistem, pada tahap ini developer merancang
suatu arsitektur sistem berdasarkan hasil dari tahap sebelumnya yaitu tahap
inisiasi.
3.
Tahap pengkodean, dimana keseluruhan desain
sistem yang telah disusun sebelumnya akan diubah menjadi kode-kode program dan
modul-modul yang nantinya akan diintegrasikan menjadi sebuah sistem yang
lengkap sesuai dengan kontrak kerja.
4.
Tahap pengujian, sistem yang sudah dibuat akan
diintegrasikan dan di test untuk menguji apakah sistem tersebut telah berfungsi
dengan baik dan yang tidak kalah penting adalah sesuai dengan kontrak yang
telah disetujui.
Kelebihan Model Sekuensial Linear
/ Waterfall Development Model :
a. Tahapan proses pengembangannya tetap
(pasti), mudah diaplikasikan, dan prosesnya teratur.
b. Cocok digunakan untuk produk software/program yang sudah jelas kebutuhannya
di awal, sehingga minim kesalahannya.
c. Software yang dikembangkan dengan metode ini biasanya menghasilkan
kualitas yang baik.
d. Dokumen pengembangan sistem sangat
terorganisir, karena setiap fase harus terselesaikan dengan lengkap sebelum
melangkah ke fase berikutnya.
Kekurangan Model Sekuensial Linear / Waterfall
Development Model :
a.
Proyek yang sebenarnya jarang mengikuti alur sekuensial
seperti diusulkan, sehingga perubahan yang terjadi dapat menyebabkan hasil yang
sudah didapatkan tim pengembang harus diubah kembali/iterasi sering menyebabkan
masalah baru.
- Terjadinya
pembagian proyek menjadi tahap-tahap yang tidak fleksibel, karena komitmen
harus dilakukan pada tahap awal proses.
- Sulit untuk
mengalami perubahan kebutuhan yang diinginkan oleh customer/pelanggan.
- Pelanggan harus
sabar untuk menanti produk selesai, karena dikerjakan tahap per tahap, dan
proses pengerjaanya akan berlanjut ke setiap tahapan bila tahap sebelumnya
sudah benar-benar selesai.
- Perubahan
ditengah-tengah pengerjaan produk akan membuat bingung tim pengembang yang
sedang membuat produk.
- Adanya waktu
kosong (menganggur) bagi pengembang, karena harus menunggu anggota tim
proyek lainnya menuntaskan pekerjaannya.
2. Model
Prototipe
Metode Prototipe merupakan suatu paradigma baru dalam metode
pengembangan perangkat lunak dimana metode ini tidak hanya sekedar evolusi
dalam dunia pengembangan perangkat lunak, tetapi juga merevolusi metode
pengembangan perangkat lunak yang lama yaitu sistem sekuensial yang biasa dikenal
dengan nama SDLC (terutama waterfall development model).
Dalam
Model Prototipe, prototipe dari perangkat lunak yang dihasilkan kemudian
dipresentasikan kepada pelanggan, dan pelanggan tersebut diberikan kesempatan
untuk memberikan masukan sehingga perangkat lunak yang dihasilkan nantinya
betul-betul sesuai dengan keinginan dan kebutuhan pelanggan. Metode ini cocok
digunkan untuk menggali spesifikasi kebutuhan pelanggan secara lebih detail
tetapi beresiko tinggi terhadap memebengkaknya biaya dan waktu proyek.
Tahapan Model
Prototipe :
1.
Pengumpulan kebutuhan
Pelanggan
dan pengembang bersama-sama mendefinisikan format seluruh perangkat lunak,
mengidentifikasikan semua kebutuhan, dan garis besar sistem yang akan dibuat.
Pengumpulan kebutuhan ini didengar dari pelanggan dan disesuaikan dengan
keinginannya.
2.
Membangun prototyping
Membangun
prototyping dengan membuat perancangan sementara yang berfokus pada penyajian
kepada pelanggan (misalnya dengan membuat input dan format output).
3.
Evaluasi protoptyping
Evaluasi ini dilakukan
oleh pelanggan, apakah prototyping yang sudah dibangun sudah sesuai dengan
keinginan pelanggan atau belum. Jika sudah sesuai, maka langkah selanjutnya
akan diambil. Namun jika tidak, prototyping direvisi dengan mengulang
langkah-langkah sebelumnya.
Kelebihan
Model Prototipe :
a. Pelanggan berpartisipasi aktif dalam
pengembangan sistem, sehingga hasil produk pengembangan akan semakin mudah
disesuaikan dengan keinginan dan kebutuhan pelanggan.
- Penentuan kebutuhan
lebih mudah diwujudkan.
- Mempersingkat
waktu pengembangan produk perangkat lunak.
- Adanya
komunikasi yang baik antara pengembang dan pelanggan.
- Pengembang dapat
bekerja lebih baik dalam menentukan kebutuhan pelanggan.
- Lebih menghemat
waktu dalam pengembangan sistem.
- Penerapan
menjadi lebih mudah karena pelanggan mengetahui apa yang diharapkannya.
Kekurangan
Model Prototipe :
a. Proses analisis dan perancangan terlalu
singkat.
- Biasanya kurang
fleksibel dalam mengahadapi perubahan.
- Walaupun pemakai
melihat berbagai perbaikan dari setiap versi prototype, tetapi pemakai
mungkin tidak menyadari bahwa versi tersebut dibuat tanpa memperhatikan kualitas
dan pemeliharaan jangka panjang.
- Pengembang
kadang-kadang membuat kompromi implementasi dengan menggunakan sistem
operasi yang tidak relevan dan algoritma yang tidak efisien.
3. Model RAD
Rapid Aplication Development (RAD) adalah sebuah model proses
perkembangan perangkat lunak sekuensial linier yang menekankan siklus
perkembangan yang sangat pendek (kira-kira 60 sampai 90 hari). Model RAD ini
merupakan sebuah adaptasi “kecepatan tinggi” dari model sekuensial linier dimana
perkembangan cepat dicapai dengan menggunakan pendekatan konstruksi berbasis
komponen.
Tahapan Model RAD :
1.
Bussiness
Modeling
Fase ini untuk mencari aliran
informasi yang dapat menjawab pertanyaan berikut:
Informasi apa yang mengendalikan
proses bisnis?
Informasi apa yang dimunculkan?
Di mana informasi digunakan ?
Siapa yang memprosenya ?
2. Data Modeling
Aliran informasi yang
didefinisikan sebagai bagian dari fase bussiness modeling disaring ke dalam
serangkaian objek data yang dibutuhkan untuk menopang bisnis tersebut.
Karakteristik (atribut) masing-masing objek diidentifikasi dan hubungan antar
objek-objek tersebut didefinisikan.
3.
Proses
Modeling
Aliran informasi yang
didefinisikan di dalam fase data modeling ditransformasikan untuk mencapai
aliran informasi yang perlu bagi implementasi sebuah fungsi bisnis. Gambaran
pemrosesan diciptakan untuk menambah, memodifikasi, menghapus, atau mendapatkan
kembali sebuah objek data.
4.
Aplication
Generation
Selain menggunakan bahasa
pemrograman generasi ketiga, RAD juga memakai komponen program yang telah ada
atau menciptakan komponen yang bisa dipakai lagi. Ala-alat bantu bisa dipakai
untuk memfasilitasi konstruksi perangkat lunak.
5.
Testing
dan Turnover
Karena proses RAD menekankan pada pemakaian kembali, banyak
komponen program telah diuji. Hal ini mengurangi keseluruhan waktu pengujian.
Tetapi komponen baru harus diuji dan semua interface harus dilatih secara
penuh.
Kelebihan Model RAD :
a.
Lebih efektif dari Pengembangan Model waterfall/sequential linear dalam menghasilkan sistem yang memenuhi
kebutuhan langsung dari pelanggan.
- Cocok untuk
proyek yang memerlukan waktu yang singkat.
- Model RAD
mengikuti tahap pengembangan sistem seperti pada umumnya, tetapi mempunyai
kemampuan untuk menggunakan kembali komponen yang ada sehingga pengembang
tidak perlu membuatnya dari awal lagi sehingga waktu pengembangan menjadi
lebih singkat dan efisien.
Kekurangan Model RAD :
a.
Model RAD menuntut pengembangan dan pelanggan memiliki
komitmen di dalam aktivitas rapid-fire yang diperlukan untuk melengkapi sebuah
sistem, di dalam kerangka waktu yang sangat diperpendek. Jika komitmen tersebut
tidak ada, proyek RAD akan gagal.
- Tidak semua
aplikasi sesuai untuk RAD, bila system tidak dapat dimodulkan dengan
teratur, pembangunan komponen penting pada RAD akan menjadi sangat
bermasalah.
- RAD tidak cocok
digunakan untuk sistem yang mempunyai resiko teknik yang tinggi.
- Membutuhkan Tenaga kerja yang banyak
untuk menyelesaikan sebuah proyek dalam skala besar.
- Jika ada
perubahan di tengah-tengah pengerjaan maka harus membuat kontrak baru
antara pengembang dan pelanggan.
4.
Model Iteratif
Model Iteratif merupakan hasil
kombinasi elemen-elemen dari model waterfall
yang diaplikasikan secara berulang, atau bisa disebut gabungan dari Model
linear sekuensial (waterfall) dengan
Model Prototipe. Elemen-elemen tersebut dikerjakan hingga menghasilkan produk
dengan spesifikasi tertentu kemudian proses dimulai dari awal kembali hingga
muncul hasil yang spesifikasinya lebih lengkap dari sebelumnya dan tentunya
memenuhi kebutuhan pemakai.
Model ini berfokus pada penyampaian produk operasional dalam
setiap pertambahanya. Pertambahan awal ada di versi stripped down dari produk akhir, tetapi memberikan kemampuan untuk
melayani pemakai dan juga menyediakan platform
untuk evaluasi oleh pemakai. Model ini cocok dipakai untuk proyek kecil dengan
anggota tim yang sedikit dan ketersediaan waktu yang terbatas. Pada proses
Pengembangan dengan Model Iteratif, perangkat lunak dibagi menjadi serangkaian increment yang dikembangkan secara
bergantian.
Kelebihan
Model Iteratif :
a.
Personil bekerja optimal.
b.
Mampu mengakomodasi perubahan secara fleksibel,
dengan waktu yang relatif singkat dan tidak dibutuhkan anggota/tim kerja yang
banyak untuk menjalankannya.
c.
Pihak konsumen dapat langsung menggunakan dahulu
bagian-bagian yang telah selesai dibangun. Contohnya pemasukan data karyawan.
d.
Mengurangi trauma karena perubahan sistem. Klien
dibiasakan perlahan-lahan menggunakan produknya setiap bagian demi bagian.
e.
Memaksimalkan pengembalian modal investasi
konsumen.
Kekurangan Model Iteratif :
a.
Tidak cocok untuk proyek berukuran besar (lebih
dari 200.000 baris coding).
b.
Sulit untuk memetakan kebutuhan pemakai ke dalam
rencana spesifikasi tiap-tiap hasil dari increament.
5. Model Spiral
Model
spiral ini mengadaptasi dua model perangkat lunak yang ada yaitu model prototyping dengan pengulangannya dan
model waterfall dengan pengendalian
dan sistematikanya. Model ini dikenal dengan sebutan Spiral Boehm.
Pengembang dalam model ini memadupadankan beberapa model umum tersebut untuk
menghasilkan produk khusus atau untuk menjawab persoalan-persoalan tertentu
selama proses pengerjaan proyek.
Tahapan Model
Spiral :
1.
Tahap
Liason, dibangun komunikasi yang baik dengan calon pengguna/pemakai.
2.
Tahap
Planning (perencanaan), ditentukan sumber-sumber informasi, batas waktu
dan informasi-informasi yang dapat menjelaskan proyek.
3.
Tahap
Analisis Resiko, mendefinisikan resiko dan menentukan apa saja yang
menjadi resiko baik teknis maupun manajemen.
4.
Tahap
Rekayasa (engineering), pembuatan
prototipe.
5.
Tahap
Konstruksi dan Pelepasan (release), dilakukan
pembangunan perangkat lunak yang dimaksud, diuji, diinstal dan diberikan
sokongan-sokongan tambahan untuk keberhasilan proyek.
6.
Tahap
Evaluasi, pelanggan/pemakai/pengguna biasanya memberikan masukan
berdasarkan hasil yang didapat dari tahap engineering dan instalasi.
Kelebihan
Model Spiral :
Kelebihan
model ini adalah sangat mempertimbangkan resiko kemungkinan munculnya kesalahan
sehingga sangat dapat diandalkan untuk pengembangan perangkat lunak skala
besar. Pendekatan model ini dilakukan melalui tahapan-tahapan yang sangat baik
dengan menggabungkan model waterfall ditambah dengan pengulangan-pengulangan
sehingga lebih realistis untuk mencerminkan keadaan sebenarnya. Baik pengembang
maupun pemakai dapat cepat mengetahui letak kekurangan dan kesalahan dari
sistem karena proses-prosesnya dapat diamati dengan baik.
Kekurangan
Model Spiral :
Kekurangan model ini adalah waktu yang
dibutuhkan untuk mengembangkan perangkat lunak cukup panjang demikian juga
biaya yang besar. Selain itu, sangat tergantung kepada tenaga ahli yang dapat
memperkirakan resiko. Terdapat pula kesulitan untuk mengontrol proses. Sampai
saat ini, karena masih relatif baru, belum ada bukti apakah metode ini cukup
handal untuk diterapkan.
0 komentar:
Posting Komentar