Pendahuluan
Pada kesempatan ini, akan membahas mengenai SDLC. (Systems
Development Life Cycle ) merupakan siklus hidup pengembangan system. Dalam
rekayasa system dan rekayasa perangkat lunak, SDLC berupa suatu proses pembuatan
dan pengubahan sistem serta model dan metodologi yang digunakan untuk
mengembangkan sistem-sistem tersebut.
Tinjauan Pustaka
“Menurut Gordon B. Davis dalam bukunya Management
Informations System : Conceptual Foundations, Structures, and Development
menyebut informasi sebagai data yang telah diolah menjadi bentuk yang berguna
bagi penerimanya dan nyata, berupa nilai yang dapat dipahami di dalam keputusan
sekarang maupun masa depan.”
Pembahasan
System Development Life Cycle atau yang selanjutnya disebut
dengan SDLC merupakan dalam rekayasa sistem dan rekayasa perangkat lunak,
adalah proses pembuatan dan pengubahan sistem serta model dan metodologi yang
digunakan untuk mengembangkan sistem-sistem tersebut. Konsep ini umumnya
merujuk pada sistem komputer atau informasi.
Pengembangan SDLC adalah proses yang digunakan oleh analis
system untuk mengembangkan sistem informasi, termasuk persyaratan, validasi,
pelatihan, dan pengguna (stakeholder) kepemilikan. Setiap SDLC harus
menghasilkan sistem berkualitas tinggi yang memenuhi atau melampaui harapan
pelanggan, mencapai penyelesaian dalam waktu dan perkiraan biaya, bekerja
secara efektif dan efisien di saat ini dan direncanakanTeknologi Informasi
infrastruktur, dan murah untuk mempertahankan dan biaya efektif.
Fungsi SDLC
Untuk menggambarkan tahapan-tahapan utama dan
langkah-langkah dari setiap tahapan yang secara garis besar terbagi dalam fase
fase utama dalam SDLC, yaitu :
Perencanaan : Mengapa
Mengembangkan Sistem?
Analisis : Siapa,
apa, kapan dan dimana sistem diterapkan?
Perancangan :
Bagaimana kerja sistem?
Implementasi :
Bagaimana Sistem Dipasang/diinstall?
A.Perencanaan
• Mengidentifikasikan Nilai Bisnis
• Analisis Kelayakan
• Membuat Rencana Kerja
• Mengatur Staff
• Mengontrol dan Mengarahkan Projek
B.Analisis
• Analisis masalah
• Mencari informasi yang terkait dengan sistem
• Menentukan model proses
• Menentukan model data
C.Perancangan
• Perancangan Proses secara Fisik
• Perancangan Arsitektur Sistem
• Perancangan Interface
• Perancangan Basis Data dan Berkas
• Perancangan Program
D. Implementasi
• Construction
• Instalation
SDLC (Systems Development Life Cycle) dalam rekayasa sistem
dan rekayasa perangkat lunak adalah proses pembuatan dan pengubahan sistem
serta model dan metodologi yang digunakan untuk mengembangkan sistem-sistem
tersebut. 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.
System Development Methodology adalah suatu rangkaian
langkah untuk mengimplementasikan SLDC itu sendiri. Dalam dunia rekayasa
perangkat lunak terdapat empat buah metodologi dalam menerapkan SLDC, yakni :
1.Waterfall Development Methodology
2.Parallel Development Methodology
3.Rapid Application Development
4.Agile Development: Extreme Programming
Kelima metodologi tersebut tidak ada yang paling bagus.
Semua mempunyai kelebihan dan kekurangan. Tergantung suatu kelompok pengembang
perangkat lunak menggunakan metode apa yang paling cocok dengan kondisi
lingkungan pengembangan perangkat lunak tersebut.
Waterfall Development Methodology
Waterfall Development Methodology merupakan suatu cara
pengembangan software yang fase – fasenya berurutan. Sebuah fase tidak bisa
dikerjakan sebelum fase sebelumnya telah selesai dikerjakan. Model ini sama
seperti linear sequential model. Waterfall model merupakan model pengembangan
perangkat lunak yang paling kuno tetapi merupakan model yang paling banyak
dipakai didalam Software Engineering (SE). Model ini melakukan pendekatan
secara sistematis dan urut mulai dari level kebutuhan sistem lalu menuju ke
tahap analisis, desain, coding, testing, dan maintenance. Disebut dengan
waterfall karena tahap demi tahap yang dilalui harus menunggu selesainya tahap
sebelumnya dan berjalan berurutan. Sebagai contoh tahap coding harus menunggu
tahap design selesai. Secara umum tahapan pada model waterfall dapat dilihat
pada gambar berikut :
• Software Requirements Analysis. Proses ini mencari dan
menganalisis kebutuhan dari keseluruhan sistem yang akan diaplikasikan ke dalam
bentuk software.
• Design. 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.
• Coding. Untuk dapat dimengerti oleh mesin, dalam hal ini
adalah komputer, maka desain tadi harus 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.
• Testing. Dalam tahap ini dalakukan pengujian software yang
sudah dibuat. Semua fungsi-fungsi software harus diujicobakan, agar software
bebas dari error, dan hasilnya harus benar-benar sesuai dengan kebutuhan yang
sudah didefinisikan sebelumnya.
• Maintenance. 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.
Kelebihan dari Waterfall Development Methodology adalah :
1.Proses pengidentifikasian sistem memerlukan waktu yang
lama sebelum fase programming dimulai
2.Meminimalisasi pengubahan sistem pada saat proses
pengembangan perangkat lunak
Kekurangan dari Waterfall Development Methodology adalah :
1.Fase perencanaan / design harus dilakukan pada paper yang
khusus sebelum fase programming dimulai
2.Terjadi selisih waktu yang cukup lama antara pengajuan
sistem dan pembaharuan sistem
Parallel Development Methodology
Parallel Development Methodology merupakan suatu cara pada
SDLC yang melakukan fase design dan implementation secara paralel. Proses model
yang lain, yang cukup populer adalah Spiral Model. Model ini juga cukup baru
ditemukan, yaitu pada sekitar tahun 1988 oleh Barry Boehm pada artikel A Spiral
Model of Software Development and Enhancement. Spiral model adalah salah satu
bentuk evolusi yang menggunakan metode iterasi natural yang dimiliki oleh model
prototyping dan digabungkan dengan aspek sistimatis yang dikembangkan dengan
model waterfall. Tahap desain umumnya digunakan pada model Waterfall, sedangkan
tahap prototyping adalah suatu model dimana software dibuat prototype
(incomplete model), “blue-print”-nya, atau contohnya dan ditunjukkan ke user /
customer untuk mendapatkan feedback-nya. Jika prototype-nya sudah sesuai dengan
keinginan user / customer, maka proses SE dilanjutkan dengan membuat produk
sesungguhnya dengan menambah dan memperbaiki kekurangan dari prototype tadi.
Model ini juga mengkombinasikan top-down design dengan bottom-up design, dimana
top-down design menetapkan sistem global terlebih dahulu, baru diteruskan
dengan detail sistemnya, sedangkan bottom-up design berlaku sebaliknya.
Top-down design biasanya diaplikasikan pada model waterfall dengan
sequential-nya, sedangkan bottom-up design biasanya diaplikasikan pada model
prototyping dengan feedback yang diperoleh. Dari 2 kombinasi tersebut, yaitu
kombinasi antara desain dan prototyping, serta top-down dan bottom-up, yang
juga diaplikasikan pada model waterfall dan prototype, maka spiral model ini
dapat dikatakan sebagai model proses hasil kombinasi dari kedua model tersebut.
Oleh karena itu, model ini biasanya dipakai untuk pembuatan software dengan
skala besar dan kompleks. Spiral model dibagi menjadi beberapa framework
aktivitas, yang disebut dengan task regions. Kebanyakan aktivitas2 tersebut dibagi
antara 3 sampai 6 aktivitas. Berikut adalah aktivitas-aktivitas yang dilakukan
dalam spiral model:
• Customer communication. Aktivitas yang dibutuhkan untuk
membangun komunikasi yang efektif antara developer dengan user / customer
terutama mengenai kebutuhan dari customer.
• Planning. Aktivitas perencanaan ini dibutuhkan untuk
menentukan sumberdaya, perkiraan waktu pengerjaan, dan informasi lainnya yang
dibutuhkan untuk pengembangan software.
• Analysis risk. Aktivitas analisis resiko ini dijalankan
untuk menganalisis baik resiko secara teknikal maupun secara manajerial. Tahap
inilah yang mungkin tidak ada pada model proses yang juga menggunakan metode
iterasi, tetapi hanya dilakukan pada spiral model.
• Engineering. Aktivitas yang dibutuhkan untuk membangun 1
atau lebih representasi dari aplikasi secara teknikal.
• Construction & Release. Aktivitas yang dibutuhkan
untuk develop software, testing, instalasi dan penyediaan user / costumer
support seperti training penggunaan software serta dokumentasi seperti buku
manual penggunaan software.
• Customer evaluation. Aktivitas yang dibutuhkan untuk
mendapatkan feedback dari user / customer berdasarkan evaluasi mereka selama
representasi software pada tahap engineering maupun pada implementasi selama
instalasi software pada tahap construction and release. Berikut adalah gambar
dari spiral model secara umum :
Satu lingkaran dari bentuk spiral pada spiral model dibagi
menjadi beberapa daerah yang disebut dengan region. Region tersebut dibagi
sesuai dengan jumlah aktivitas yang dilakukan dalam spiral model. Tentunya
lingkup tugas untuk project yang kecil dan besar berbeda. Untuk project yang
besar, setiap region berisi sejumlah tugas-tugas yang tentunya lebih banyak dan
kompleks daripada untuk project yang kecil. SE berjalan dari inti spiral
berjalan mengitari sirkuit per sirkuit. Sebagai contoh untuk sirkuit pertama
dilakukan untuk pembangunan dari spesifikasi dari software dengan mencari
kebutuhan dari customer. Untuk sirkuit pertama harus menjalani semua aktivitas yang
didefinisikan. Setelah 1 sirkuit terlewati lanjut ke tugas selanjutnya misalnya
membangun prototype. Tugas ini juga harus mengitari 1 sirkuit dan begitu terus
selanjutnya sampai project selesai. Tidak seperti model-model konvesional
dimana setelah SE selesai, maka model tersebut juga dianggap selesai. Akan
tetapi hal ini tidak berlaku untuk spiral model, dimana model ini dapat
digunakan kembali sepanjang umur dari software tersebut. Pada umumnya, spiral
model digunakan untuk beberapa project seperti Concept Development Project
(proyek pengembangan konsep), New Product Development Project (proyek
pengembangan produk baru), Product Enhancement Project (proyek peningkatan
produk), dan Product Maintenance Project (proyek pemeliharaan proyek). Keempat
project tersebut berjalan berurutan mengitari sirkuit dari spiral. Sebagai
contoh setelah suatu konsep dikembangkan dengan melalui aktivitas2 dari spiral
model, maka dilanjutkan dengan proyek selanjutnya yaitu pengembangan produk
baru, peningkatan produk, sampai pemeliharaan proyek. Semuanya melalui
sirkuit-sirkuit dari spiral model.
Kelebihan dari Parallel Development Methodology adalah :
1. Meminimalisasi waktu penjadwalan
2. Meminimalisasi kesempatan untuk dikerjakan ulang
Kekurangan dari Parallel Development Methodology adalah :
1. Masih menggunakan dokument di kertas
2. Menggabungkan subproyek memerlukan suatu keahlian yang
khusus. Biasanya banyak terjadi kegagalan pada saat proses penggabungannya
Rapid Application Development
Rapid Application Development merupakan suatu cara penerapan
SDLC dengan membuat suatu software prototype terlebih dahulu dan kemudian
dipresentasikan ke costumer. Jika costumer menyetujuinya, maka software akan
dikembangkan lebih lanjut. Pada model ini, requirement software dipecah menjadi
beberapa fungsi-fungsi atau bagian-bagian. Sebuah daftar kegiatan project akan
dibuat dengan maksud mengetahui tiap-tiap fungsi yang harus dilakukan dalam
tiap unit. Masing-masing unit fungsional diimplementasikan dalam sebuah
penambahan dan produk akhirnya dikembangkan setelah keseluruhan unit fungsional
diimplementasikan dalam proses pengembangannya. Masing-masing penambahan pada
tiap unit terdiri dari 4 fase: analisis, design, implementasi, dan analisis.
Proses pengembangan ini akan terus diulang sampai keseluruhan akitivitas dalam
daftar aktivitas diimplementasikan.
Kelebihan Rapid Application Development adalah :
1. Pengguna dapat memperoleh / menggunakan sistem lebih awal
2. Pengguna dapat merencanakan beberpa tambahan untuk versi
setelahnya
Kekurangan Rapid Application Development adalah :
1. Pengguna bekerja dengan sistem yang sebenarnya belum
selesai secara keseluruhan
Agile Development: Extreme Programming
Agile Development: Extreme Programming merupakan suatu
pengerjaan perangkat lunak secara cepat. Metode ini sangat cocok untuk proyek
perangkat lunak yang membutuhkan waktu lebih instan dalam pengembangannya.
Kelebihan dari Agile Development: Extreme Programming adalah
:
1. Hasil bisa didapat dalam waktu yang sangat cepat
2. Bekerja lebih baik dalam projek dengan tidak ada
perubahan yang tak tentu
Kekurangan dari Agile Development: Extreme Programming
adalah :
1. Membutuhkan kedisiplinan tinggi
2. Tepat hanya jika dilakukan di projek kecil
3. Membutuhkan lebih banyak inputan dari pengguna
Untuk menentukan metode mana yang lebih cocok diterapkan
dalam pengembangan proyek perangkat lunak, maka harus memperhatikan hal berikut
:
•Clear user requirements
•Familiarity with technology
•Complexity of system
•Reliability of system
•Time schedule
•Schedule visibility
Referensi
Tidak ada komentar:
Posting Komentar