Rabu, 16 November 2011

SDLC (system development life cycle)

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