Secara umum tahap-tahap dalam System Development Life Cycle (SDLC) terbagi dalam beberapa tahap :
Perencanaan
Fase perencanaan adalah sebuah proses dasar untuk memahami mengapa sebuah sistem harus dibangun. Pada fase ini diperlukan analisa kelayakan dengan mencari data atau melakukan proses information gathering kepada pengguna.
Analisa
Fase analisa adalah sebuah proses investigasi terhadap sistem yang sedang berjalan dengan tujuan untuk mendapatkan jawaban mengenai pengguna sistem, cara kerja sistem dan waktu penggunaan sistem. Dari proses analisa ini akan didapatkan cara untuk membangun sistem baru.
Rancangan
Fase perancangan merupakan proses penentuan cara kerja sistem dalam hal architechture design, interface design, database dan spesifikasi file, dan program design. Hasil dari proses perancangan ini akan didapatkan spesifikasi system.
Implementasi
Fase implementasi adalah proses pembangunan dan pengujian sistem, instalasi sistem, dan rencana dukungan sistem.
Dalam pengembangan system menggunakan SDLC ada beberapa cara untuk mengimplementasinya dengan metodologi yaitu waterfall model, prototype model, RAD(Rapid Application Development) model, ASD(Agile Software Development) model. Diantara keempat model tersebut waterfall, dan prototype adalah model yang paling sering digunakan dalam pengembangan system. Berikut penjelasannya.
Waterfall Model
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 / verification, dan maintenance. Disebut dengan waterfall karena tahap demi tahap yang dilalui harus menunggu selesainya tahap sebelumnya dan berjalan berurutan.
Prototype
Prototyping adalah salah satu pendekatan dalam rekayasa perangkat lunak yang secara langsung mendemonstrasikan bagaimana sebuah perangkat lunak atau komponen-komponen perangkat lunak akan bekerja dalam lingkungannya sebelum tahapan konstruksi aktual dilakukan (Howard, 1997). Beberapa model prototype adalah sebagai berikut :
- Reusable prototype : Prototype yang akan ditransformasikan menjadi produk final.
- Throwaway prototype : Prototype yang akan dibuang begitu selesai menjalankan maksudnya.
- Input/output prototype : Prototype yang terbatas pada antar muka pengguna (user interface).
- Processing prototype : Prototype yang meliputi perawatan file dasar dan proses-proses transaksi
- System prototype : Prototype yang berupa model lengkap dari perangkat lunak.
Proses pada model prototyping adalah sebagai berikut :
- Pengumpulan kebutuhan
- Perancangan
- Evaluasi prototype
Keuntungan menggunakan prototype model, yaitu :
- Prototyping adalah model aktif, tidak pasif, sehingga end user dapat melihat, merasakan, dan mengalaminya.
- Kesalahan yang terjadi dalam prototyping dapat dideteksi lebih dini.
Kekurangan menggunakan prototype model, yaitu :
- Prototyping tidak menolak kebutuhan dari fase analisis sistem. Prototype hanya dapat memecahkan masalah yang salah dan memberi kesempatan sebagai sistem pengembangan konvensional.
- Prototyping dapat mengurangi kreatifitas perancangan.
RAD (Rapid Application Development)
Rapid application development (RAD) atau rapid prototyping adalah model proses pembangunan perangkat lunak yang tergolong dalam teknik incremental (bertingkat). RAD menekankan pada siklus pembangunan pendek, singkat, dan cepat. Waktu yang singkat adalah batasan yang penting untuk model ini. Rapid application development menggunakan metode iteratif (berulang) dalam mengembangkan sistem dimana working model (model bekerja) sistem dikonstruksikan di awal tahap pengembangan dengan tujuan menetapkan kebutuhan (requirement) user. RAD mengadopsi model waterfall dan pembangunan dalam waktu singkat dicapai dengan menerapkan component based construction.
Agile Software Development
Agile merupakan adalah jenis pegembangan sistem jangka pendek yang memerlukan adaptasi cepat dan pengembang terhadap perubahan dalam bentuk apapun. Dalam Agile Software Development interaksi dan personel lebih penting dari pada proses dan alat, software yang berfungsi lebih penting daripada dokumentasi yang lengkap, kolaborasi dengan klien lebih penting dari pada negosiasi kontrak, dan sikap tanggap terhadap perubahan lebih penting daripada mengikuti rencana. Agile juga dapat diartikan sebagai sekelompok metodologi pengembangan software yang didasarkan pada prinsip-prinsip yang sama atau pengembangan system jangka pendek yang memerlukan adaptasi cepat dari pengembang terhadap perubahan dalam bentuk apapun.
Pendekatan SDLC
KEBUTUHAN -> PERENCANAAN => ANALISIS => DESAIN => IMPLEMENTASI => SISTEM
Pengembangan Sistem Pendukung Keputusan
Metode Pengembangan Alternatif
Pengembangan Paralel
Suatu metode pengembangan sistem yang berdasarkan SDLC tradisional dan menyerupai SDLC. Dalam pengembangan sistem yang paralel, fase desain dan implementasi dibagi menjadi banyak salinan mengikuti fase analisis. Masing- masing salinan melibatkan pengembangan sebuah subsistem atau subproyek terpisah.
Semua salinan ini disatukan dalam fase implementasi tunggal dimana sebuah integrator sistem memasang bagian-bagian secara bersama-sama di dalam sebuah sistem kohesif. Khusus pada implementasi SPK ditangani 4 komponen, yaitu database, basis model, antar muka pengguna, dan pengetahuan. Semua ini dapat dikembangkan secara paralel.
Pengembangan Aplikasi Cepat ( Rapid Application Development = RAD )
Pengembangan sistem ini melakukan penyesuaian SDLC sedemikian shg bagian-bagian dari sistem dapat dikembangkan dgn cepat dan para pengguna sesegera mungkin dapat memperoleh beberapa kemampuan. Ada beberapa metodologi RAD :
Pengembangan Bertahap :
Membagi sistem ke dalam versi yg dikembangkan secara berurutan. Masing-masing versi memiliki lebih banyak kemampuan dibandingkan dgn versi sebe-umnya.
Keuntungan : Para pengguna memperoleh kemampuan dengan cepat.
Kerugian : Para pengguna memulai bekerja dengan sistem yang didesain secara tidak lengkap.
Prototiping :
Fase analisis, desain dan implementasi dilakukan secara bersama dan berulang. Prototipe sistem dikembangkan dan diperlihatkan dgn cepat kepada para pengguna, yg inputnya digunakan untuk memperbaiki sistem
Keuntungan : Sistem disajikan dgn cepat kepada para pengguna, sekalipun belum siap utk penggunaan kelembagaan. Umpan balik diperoleh dan sistem pun dapat dimodifikasi untuk bergerak ke prototipe berikutnya. Analisis lebih lanjut mungkin diperlukan.
Kerugian : Perubahan dgn cepat dan tidak ada usaha untuk mengkoreksi keputusan-keputusan desain sejak awal.
Contoh : Perusahaan mobil Chevrolet Monza yg pada awalnya mensyaratkan agar mesin diturunkan dalam rangka mengubah dua busi yg terpasang selama penyetelan. Pelanggan membeli mobil, dan pada akhirnya, pada desain berikutnya, masalah diperbaiki dengan memasukkan panel sehingga busi bisa dijangkau.
Prototiping Throwaway :
Pada pengembangan sistem ini prototipe dikembangkan untuk membantu pemahaman lebih lanjut tentang sistem terutama ketika sistem tidak dipahami dengan jelas. Prototipe ini dikembangkan sebagai pilot tes pada platform pengembangan yg lebih sederhana untuk mempelajari persyaratan pengguna dan sistem akhir untukdisebarkan. sekali pilot tes sukses, prototipe kemudian dibuang dan sebuah desain awal dari sistem riil pun berlangsung. Setelah itu, DSS diselesaikan dengan menggunakan SDLC atau pendekatan prototiping. Prototipe desain membantu tim mengerjakan berbagai detail yang digunakan di dalam sistem yang dikembangkan.
Pengembangan Cerdas dan Extreme Programming (XP)
Pengembangan cerdas (agile) adalah sebuah format yg relatif baru dari prototiping cepat. Ada beberapa metodologi yang dilakukan. Kelas ringan : Extreme Programing (XP), Serum, dan Crystal. Dua pertiga dari semua perusahaan IT korporat sedang menggunakan beberapa bentuk dari proses pengembangan piranti lunak cerdas mulai tahun 2003.
Contoh : ITM Financial Organization dari Daimer Chrysler menggunakan metode baru untuk mempercepat pengembangan aplikasi baru Java miliknya. Motorolla Inc menggunakan unsur-unsur XP dalam beberapa organisasi pengembangannya yang bermanfaat dalam pengembangan global.
Menurut Copeland (2001), XP mendukung 12 praktik pengembangan inti, meliputi :
- Tim pengembangan aplikasi meletakkan rilis kode kecil ke dalam produksi awal.
- Pemrograman berpasangan : dua pengembang bekerja bersama.
- Pelanggan on site harus membantu pengembangan proyek (memecahkan masalah denagn mengharuskan keterlibatan pengguna)
- Semua programer diberi kepemilikan kolektif terhadap kode dan kemampuan untuk mengubahnya.
Copeland (2001) mencatat bahwa pemodelan cerdas meliputi konsep umum tertentu :
- Menciptakan isi sederhana
- Sering menguji kode
- Menggunakan beberapa model desain
Kelemahan kritis dari proses cerdas : Kurangnya dokumentasi dan desain.
Keuntungannya : proses ini memusatkan perhatian pada pengujian.