Software Development Life Cycle

Pengertian

Software Development Life Cycle (SDLC) adalah proses mengembangkan ata mengubah suatu sistem perangkat lunak dengan menggunakan model-model dan metodelogi yang digunakan orang untuk mengembangkan sistem-sistem perangkat lunak sebelumnya (berdasarkan best practice atau cara-cara yang sudah teruji baik).

Tahapan  pada System Development Life Cycle

  1. Perencanaan Sistem (Systems Planning). Perencanaan adalah sebuah proses untuk memahami sebuah sistem yang akan dibangun. Pada tahapan perencanaan ini diperlukan analisa terhadap sistem salah satunya dengan cara mencari data ataupun menyeleksi kebutuhan user. Aktivitas-aktivitas pada tahap ini meliputi mendefinisikan tujuan, mengidentifikasi masalah yang akan diselesaikan dengan sistem dan strategi pengembangan sistem.
  2. Analisis Sistem (Systems Analysis). Analisis system ditujukan untuk pemahaman yang menyeluruh terhadap masalah dan kebutuhan yang akan dipelajari dan dianalisis. Aktivitas pada tahapan ini yaitu melakukan studi untuk menemukan suatu kasus yang bisa diselesaikan oleh sistem, mengklasifikasikan masalah, solusi yang diterapkan pada sistem, analisa dan pendefinisian kebutuhan sistem.
  3. Perancangan Sistem (Systems Design). Tahap ini merupakan hasil analisa dan hasil pembahasan mengenai spesifikasi sistem yang akan diterapkan menjadi rancangan dari sebuah sistem dan siap untuk dikembangkan. Pada tahap ini dilakukan implementasi spesifikasi sistem, analisis terhadap sistem, dan pendukung dari sistem yang akan dikembangkan nantinya.
  4. Pengembangan Sistem (System Development). Pada tahapan ini mengonversi desain ke sistem informasi. aktifitas pada tahap ini seperti melakukan instalasi lingkungan sistem, membuat basis data, memperbaiki program.
  5. Implementasi Sistem (Systems Implementation). Pada tahapan ini sebuah sistem sudah selesai dibuat, sudah diujicoba, dan dapat bekerja dengan baik dan juga optimal. Pada tahapan ini sistem mulai diimplementasikan dan digunakan secara real oleh user yang membutuhkan.
  6. Testing. Pada tahadapan ini kita melakukan testing terhadap sistem baru yang telah kita buat. aktifitas pada sistem ini berupa identifikasi terhadap kelayakan sistem serta identifikasi kesalahan system
  7. Pemeliharaan Sistem (Systems Maintenance). Pada Tahapan ini dilakukan untuk menjaga sistem agar tetap mampu beroperasi secara benar melalui kemampuan sistem dalam mengadaptasikan diri sesuai dengan kebutuhan.
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 LDC mendasari berbagai jenis metodelogi pengembangan perangkat lunak.
Metodelogi-metodelogi 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 prototyping (life cycle using prototyping), dan siklus hidup sistem orientasi objek (object oriented system life cycle)

4 Metodelogi Pengembangan Software berbasis SDLC

1. 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 tahap, yaitu :
  • System / Information Engineering and Modeling
  • Software Requirements Analysis
  • Design
  • Coding
  • Testing / Verification
  • 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

2. PROTOTYPE

Prototyping adalah salah satu pendekatan dalam rekayasa perangkat lunak yang secara langsung mendemostrasikan 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 ditransformaskan 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 meliputu perawatan file dasar dan proses-proses dari perangkat lunak.
Skema dari prototype secara umum adalah sebagai berikut :

Konsep SDLC - Prototyping

Pendekatan prototyping memiliki beberapa keuntungan yaitu :
  • Pemodelan membutuhkan partisipasi aktif dari end user. Hal ini akan meningkatkan sikap dan dukungan pengguna untuk pekerja proyek. Sikap moral pengguna akan meningkat karena system berhubungan nyata dengan mereka.
  • Perubahan dan iterasi merupakan konsekuensi alami dari pengembangan system, sehingga end user dapat melihat, merasakan, dan mengalaminya.
  • Kesalahan yang terjadi dalam prototyping dapat dideteksi lebih dini.
  • Prototyping dapat meningkatkna 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 pengambilan terhadap kode, implementasi, dan perbaikan siklus hidup yang dignakan untuk mendominasi sistem informasi.
  • Prototyping tidak menolak kebutuhan dari fase analisis sistem. Prototype hanya dapat memecahkan masalah yang salah san memberi kesempatan sebagai sistem pengembangan konvensional.
  • Prototyping dapat mengurangi kreatifitas perancangan.

3. RAD (Rapid Application Development)

Rapid application development (RAD) atau rapid prototyping adalah model proses pembangunan perangkat lnak 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 sistem dikonstrusikan di awal tahap pengembangan dengan tujuan menetapkan kebutuhan (requirements) 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 terpenuhi.
  • Sistem tidak bisa dimodularisasi tidak cocok untuk model RAD.
  • REsiko teknis yang tinggi juga urang cocok untuk model RAD.

4. AGILE SOFTWARE DEVELOPMENT

Agile merupakan jenis pengebangan sistem jangka pendek yang memerlukan adaptasi cepat dan pengembangan terhadap perubahan dalam bentuk apapun. Dalam Agile Software Development interaksi dan personel lebih penting dari pada proses dan alat, software yang berfungsi lebih penting dari pada dokumentasi yang lengkap, kolaborasi dengan klien lebih penting dari ada negosiasi kontrak, dan sikap tanggap terhadap perubahan lebih penting dari pada mengikuti rencana. Agile juga dapat diartikan sebagai sekelompok metodelogi 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 dari segi materi relatif kecil

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 pernagkat lunak dengan melakukan pengembangan / peningkatan terhadap perangkat lunak yang telah ada.
  • Pemeliharaan Preventif : Pemeliharaan perangkat lunak dengan perombakan secara total atau elakukan perekayasaan kembali pada perangkat lunak yag ada.

Siklus Hidup Pemeliharaan Sistem (SMLC)

Tahapan SMLC :
  1. Memahami permintaan pemeliharaan
  2. Mentransformasikan permintaan pemeliharaan menjadi pengubahan
  3. Menspesifikasikan perubahan
  4. Mengembangkan perubahan
  5. Menguji perubahan
  6. Melatih pengguna dan melakukan test penerimaan
  7. Pengkonversian dan meluncurkan operasi
  8. Mengupdate dokumen
  9. Melakukan pemeriksaan pasca implementasi

Maintainability (kemampuan pemeliharaan sistem)

Prosedur untuk peningkatan maintainability :
  1. Menerapkan SDLC dan SWDLC
  2. Menspesifikasikan definisi standar
  3. MAnggunakan bahasa pemrograman standar
  4. Merancang modul-modul yang terstruktur dengan bail
  5. Memperkerjakan modul yang dapat digunakan kembali
  6. Mempersiapkan dokumentasi yang jelas, terbaru dan koperhensif
  7. Menginstall perangkat lunak, dokumentasi dan soal-soal test dalam sentral reposistor sistem CASE atau CMS (change management system)

Tiga Pendekatan untuk menyusun Pemeliharaan Sistem

  • Pendekatan Pemisahan : Pemeliharaan dan pemeliharaan
  • Pendekatan Gabungan : Menggabungkan personalia penusun dan pemeliharaan menjadi sebuah kelompok utama sistem informasi
  • Pendekatan Fungsional : Variasi dari pendekatan gabungan dengan memindahkan tenaga profesional sistem dari sistem informasi dan menugasi merea 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 (Reserve Engineering)
  • Rekayasa Ulang (Reengineering)
  • Restrukturisasi (Restrukturing)
  • Sistem Pakar Pemeliharaan (Maintenance Expert System)

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 yang sebenarnya, kode pemeliharaan, biaya pemeliharaan)
  • Menggunakan sistem perangkat lunak helpdesk
  • Mengavaluasi aktivitas pemeliharaan sistem
  • Mengoptimalkan program pemeliharaan sistem

Resiko Apa saja yang CMS hindarkan ?

  1. Kekurangan inventaris program perangkat lunak yang akurat dan sumber-sumber sistem informasi lainnya
  2. Ketidak lengkapan sejarah perubahan program
  3. Modul-modul program perangkat lunak yang tidak sah
  4. Kekurangan dokumentasi yang jelas, komperhensif dan terbaru
  5. Rendahnya kualitas reabilitas perangkat lunak

Referensi :
[1] http://andgaa.web.id/4-metodologi-pengembangan-software-berbasis-sdlc-softwaredevelopment-life-cycle/ 
[2] http://www.alvhiezone.tk/2014/09/sdlc-software-development-life-cycle.html 
[3] http://metodologi-skripsi-informatika.blogspot.com/

Komentar