SIKLUS REKAYASA PERANGKAT LUNAK (SDLC) 1. Pengertian DLC atau Software Development Life Cycle adalah proses mengembangkan atau mengubah suatu sistem perangkat lunak dengan menggunakan model-model dan metodologi yang digunakan orang untuk mengembangkan sistem-sistem perangkat lunak sebelumnya (berdasarkan best practice atau cara-cara yang sudah teruji baik) 1. Inisialisasi (initiation) 2. Pengembangan konsep sistem (system concept development) 3. Perencanaan (planing) 4. Analisis kebutuhan (requirements analysis) 5. Desain (design) 6. Pengembangan (development) 7. Integrasi dan pengujian (integration and test) 8. Implementasi (implementation) 9. Operasi dan pemeliharaan (operation and maintenance) 10. Disposisi (disposition) Konsep ini umumnya merujuk pada sistem komputer atau informasi. SDLC juga merupakan pola yang diambil untuk mengembangkan sistem perangkat lunak, yang terdiri dari tahap-tahap: analisa (analysis), desain (design), implementasi (implementation), uji coba (testing) dan pengelolaan (maintenance).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. Terdapat 3 jenis metode siklus hidup sistem yang paling banyak digunakan, yakni: siklus hidup sistem tradisional (traditional system life cycle), siklus hidup menggunakan protoyping (life cycle using prototyping), dan siklus hidup sistem orientasi objek (object-oriented system life cycle).
2. 4 Metodologi Pengembangan Software berbasis SDLC (Software Development Life Cycle)
A. WATERFALL Disebut dengan waterfall karena tahap demi tahap yang dilalui harus menunggu selesainya tahap sebelumnya dan berjalan berurutan. Roger S. Pressman memecah model ini menjadi 6 tahapan, yaitu : 1. System / Information Engineering and Modeling. 2. Software Requirements Analysis. 3. Design 4. Coding 5. Testing / Verification 6. Maintenance Keuntungan menggunakan teknik waterfall:
Proses menjadi teratur
Estimasi proses menjadi lebih baik
Jadwal menjadi lebih menentu
Kelemahan menggunakan teknik waterfall:
Sifatnya kaku, sehingga susah melakukan perubahan di tengah proses
Membutuhkan daftar kebutuhan yang lengkap di awal, tapi jarang konsumen bisa memberikan kebutuhan secara lengkap diawal
B. 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.
Skema dari prototype secara umum adalah sebagai berikut :
Konsep SDLC – Prototype Pendekatan prototyping memiliki beberapa keuntungan yaitu:
Pemodelan membutuhkan partisipasi aktif dari end-user. Hal ini akan meningkatkan sikap dan dukungan pengguna untuk pengerjaan proyek. Sikap moral pengguna akan meningkat karena system berhubungan nyata dengan mereka.
Perubahan dan iterasi merupakan konsekuensi alami dari pengembangan system-sehingga end user memiliki keinginan untuk merubah pola pikirnya. Prototyping lebih baik menempatkan situasi alamiah ini karena
mengasumsikan perubahan model melalui iterasi kedalam system yang dibutuhkan.
Prototyping adalah model aktif, tidak pasif, sehingga end user dapat melihat, merasakan, dan mengalaminya.
Kesalahan yang terjadi dalam prototyping dapat dideteksi lebih dini
Prototyping dapat meningkatkan kreatifitas karena membolehkan adanya feedback dari end user. Hal ini akan memberikan solusi yang lebih baik.
Prototyping mempercepat beberapa fase hidup dari programmer. Pendekatan prototyping memiliki beberapa kekurangan yaitu:
Prototyping memungkinkan terjadinya pengembalian terhadap kode, implementasi, dan perbaikan siklus hidup yang dugunakan untuk mendominasi sistem informasi.
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.
C. 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. Kelemahan dalam model RAD yaitu:
Model RAD membutuhkan sumber daya yang besar, terutama untuk proyek dengan skala besar.
proyek bisa gagal karena waktu yang disepakati tidak dipenuhi
sistem yang tidak bisa dimodularisasi tidak cocok untuk model RAD
resiko teknis yang tinggi juga kurang cocok untuk model RAD
D. 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 Kelebihan dari Agile Software Development yaitu:
Meningkatkan kepuasan kepada klien
Pembangunan system dibuat lebih cepat
Mengurangi resiko kegagalan implementasi software dari segi non-teknis
Jika pada saat pembangunan system terjadi kegagalan,kerugian dar segi materi relative kecil.
3. Pemeliharaan perangkat lunak
“ Pemeliharaan sistem berawal begitu sistem baru menjadi operasional dan berakhir masa hidupnya ” Jenis Pemeliharaan :
Pemeliharaan Korektif Pemeliharaan perangkat lunak dengan melakukan perbaikan kesalahan yang terjadi pada perangkat lunak
Pemeliharaan Adaptif Pemeliharaan perangkat lunak dengan melakukan penyesuaian fungsi-fungsi yang ada pada perangkat lunak sehingga lebih memudahkan user.
Pemeliharaan Penyempurnaan Pemeliharaan perangkat lunak dengan melakukan pengembangan / peningkatan terhadap perangkat lunak yang telah ada.
Pemeliharaan Preventif Pemeliharaan perangkat lunak dengan perombakan secara total atau melakukan perekayasaan kembali pada perangkat lunak yang ada.
4. Siklus Hidup Pemeliharaan Sistem (SMLC) Tahapan SMLC :
Memahami Permintaan Pemeliharaan
Mentransformasi permintaan pemeliharaan menjadi pengubahan
Menspesifikasi perubahan
Mengembangkan perubahan
Menguji perubahan
Melatih pengguna dan melakukan test penerimaan
Pengkonversian dan meluncurkan operasi
Mengupdate Dokumen
Melakukan pemeriksaan Pasca implementasi
5. Maintainability (Kemampuan pemeliharaan sistem) Prosedur untuk peningkatan maintainability :
Menerapkan SDLC dan SWDLC
Menspesifikasi definisi data standar
Menggunakan bahasa pemrograman standart
Merancang modul-modul yang terstruktur dengan baik
Mempekerjakan modul yang dapat digunakan kembali
Mempersiapkan dokumentasi yang jelas, terbaru dan komprehensif
Menginstall perangkat lunak, dokumentasi dan soal-soal test di dalam sentral repositor sistem CASE atau CMS (change management system)
6. Tiga pendekatan untuk menyusun Pemeliharaan sistem :
Pendekatan Pemisahan Pemeliharaan dan Pemeliharaan
Pendekatan Gabungan Menggabungkan personalia penyusun dan pemelihara menjadi sebuah kelompok utama sistem informasi
Pendekatan Fungsional Variasi dari pendekatan gabungan dengan memindahkan tenaga profesional sistem dari sistem informasi dan menugasi mereka pada fungsi bisnis untuk penyusunan maupun pemeliharaan.
Ada 5 CASE Tools yang membantu pemeliharaan sistem dari sistem lama dan membantu memecahkan kemacetan timbunan sistem baru yang belum dikerjakan :
Rekayasa Maju (Forward engineering)
Rekayasa Mundur (Reverse engineering)
Rekayasa Ulang (Reengineering)
Restrukturisasi (restrukturing)
Sistem Pakar Pemeliharaan (Maintenance expert system)
7. Mengelola Pemeliharaan Sistem
Menetapkan Kegiatan Pemeliharaan Sistem
Mengawali dan merekam kegiatan pemeliharaan sistem tidak terjadwal (Form Maintenance Work Order : Pekerjaan yang diperlukan/dilakukan, waktu yang diperkirakan
dibandingkan
dengan
waktu
pemeliharaan, biaya pemeliharaan)
Menggunakan sistem perangkat lunak helpdesk
Mengevaluasi aktivitas pemeliharaan sistem
Mengoptimalkan program pemeliharaan sistem
yang
sebenarnya,
kode
8. Resiko apa saja yang CMS hindarkan ?
Kekurangan inventaris program perangkat lunak yang akurat dan sumber-sumber sistem informasi lainnya.
Ketidak lengkapan sejarah perubahan program
Modul-modul program perangkat lunak terduplikasi
Perubahan program perangkat lunak yang tidak sah
Kekurangan dokumentasi yang jelas, komprehensif dan terbaru
Rendahnya kualitas dan reabilitas perangkat lunak
Sumber : http://andgaa.web.id/4-metodologi-pengembangan-software-berbasis-sdlc-softwaredevelopment-life-cycle/ http://www.alvhiezone.tk/2014/09/sdlc-software-development-life-cycle.html http://metodologi-skripsi-informatika.blogspot.com/