Metode Pengembangan perangkat lunak
Pada pertengahan abad ke 20, sistem software dibuat begitu saja lebih bersifat ad hoc , tanpa referensi untuk pengembangan. Sistem demikian mengakibatkan miskin struktur dan sulit untuk pengelolaan dan kontrol. Kelebihan pengembangan software terstruktur:- masalah besar dipecah menjadi tugas-tugas dan tahapan yang lebih mudah untuk dimengerti
- fokusnya lebih tajam
- mendukung perencanaan dan kontrol
- menyediakan visibilitas kemajuan
- menyediakan struktur
- membantu mempermudah coding dan dokumentasi.
Pengertian
- Metodologi pengembangan perangkat lunak mencakup berbagai proses untuk pengembangan proyek perangkat lunak dan mengikuti siklus hidup pengembangan.
- Metodologinya dipilih berdasarkan maksud dan tujuan dan proyek.
- Metodologi pengembangan perangkat lunak adalah suatu pendekatan di dalam rekasaya perangkat lunak yang menyediakan kerangka untuk penentuan struktur, rencana dan kendali berbagai proses selama pengembangan suatu sistem informasi.
System Development Life Cycle
-
System Development Life Cycle (SDLC) merupakan representasi model umum untuk pengembangan perangkat lunak dan terdiri atas sejumlah tahapan / fase. - Fase-fase dalam SDLC mencakup:
- Pengumpulan kebutuhan menggambarkan semua aktivitas yang dibentuk untuk mendatangkan kebutuhan dari user. Pada tahap ini dokumen dihasilkan.
- Rancangan / desain menggambarkan racangan software berdasarkan kebutuhan.
- Pengembangan, yaitu coding/ pengembangan sistem software.
- Pengujian, yaitu pengujian (testing) kode
- Implementasi, yaitu instalasi akhir sistem software kedalam lingkungan target.
- Fase-fase di atas kadang-kadang bisa tumpang tindih.
- Kebutuhan bisnis dikumpulkan sejak awal
- Memudahkan mendeteksi kesalahan
- Prosesnya memiliki titik awal dan akhir tertentu
- Pelacakan proyek dan pengontrolan tersedia
- Kemajuan proyek update untuk semua stakeholder
- Kerangka SDLC terdiri dari banyak pendekatan.
- Waterfall Model
- Incremental Model
- Agil model
Waterfall Model
- Merupakan pendekatan klasik dalam siklus hidup pengembangan sistem
- Menggambarkan metode pengembangan linear dan ketat
- Dokumentasi system requirement
- Analisis kebutuhan
- Desain rencana
- Pengembangan atau coding
- Pengujian dan implementasi
- Menyebaran
- Perawatan (maintenance)
Manfaat Waterfall Model
- Struktur tersedia dan mudah untuk difahami
- Mudah untuk didesain, pengumpulan kebutuhan dan kode
- Milestone (tonggak-tonggak) mudah diidentifikasi
- Menggunakan dokumentasi standar
- Pengujian dilakukan setelah desain dan pengembangan selesai
- Anggota tim dapat dengan mudah memahami langkah-langkah pengembangan
Keterbatasan Waterfall Model
- Sulit melakukan revisi rancangan atau kode dan struktur
- Pengelolaan waktu dan biaya dengan keakuratan yang tinggi sangat sulit
- Disain nampak baik tetapi sangat sulit diimplementasikan
- Sulit untuk melakukan perubahan karena memerlukan lebih banyak waktu
- Manajemen risiko sulit untuk dimplementasikan
- Biaya dan sumberdaya yang diperlukan tinggi.
Waterfall model dapat digunakan hanya jika:
- Kebutuhan sistem software jelas, diketahui sebelum ditangani dan tidak berubah
- Sistem ditentukan dengan baik dan teknologi dikuasai dengan baik
- Kebutuhan konsisten tanpa keraguan
- Sumberdaya cukup dan pakar tersedia dengan mudah
- Proyeknya jangka pendek dan tetap.
Model incremental
- Sistem dikirim ke clien secara serial dalam sub sistem - sub sistem dalam suatu periode
- Fungsi bisa tambahan pada software pada setiap rilis sistem,
yang berarti pengembang perlu mendapatkan struktur software keseluruhan (
kernel ) pada tempat rilis pertama sistem tersebut.
Metode Agile
- Pendekatan Agile untuk pengembangan software memiliki kemampuan untuk meninjau kembali fase pengembangan dan perencanaan, sehingga dapat memperbaiki efisiensi proyek
- Agile memungkinkan meninjau kembali fase dan dinamakan incremental and iteratif development (IID)
- Tugas-tugas pengembangan diuraikan kedalam incremen atau iterasi dimana setiap increment akan bekerja sesai dengan kebiasaan metode pengembangan
- Model Agile memungkinkan cakupan berubah sesuai dengan perubahan software kebutuhan baru
Prinsip dalam metodologi Agile
- Kepuasan konsumen melalui pengiriman software secara dini dan kontinyu
- terbuka terhadap perubahan kebutuhan
- Skala berulang waktu mingguan
- mendekatkan hubungan kerja antara pengembang dan user
- pertemuan secara langsung (bukan dokumen rinci)
- Software yang berkeja merupakan ukuran kemajuan
- tim mengatur sendiri
- team mencerminkan bagaimana mereka dapat memperbaiki secara reguler.