Metode SDLC Dalam Proses Pengembangan Software

Metode SDLC Dalam Proses Pengembangan Software



Pengertian SDLC (Software Development Life Cycle)

SDLC (Software Development Life Cycle) adalah kerangka kerja atau model manajemen proyek terstruktur yang menguraikan fase-fase yang diperlukan untuk membangun sistem TI, dari awal hingga hasil akhir. Tujuan dari Software Development Life Cycle adalah untuk menciptakan proses produksi yang efektif dan berkualitas tinggi agar dapat memenuhi atau melampaui harapan klien sesuai dengan anggaran dan jadwal yang telah ditentukan.

Kerangka kerja ini sudah banyak digunakan oleh berbagai perusahaan IT baik itu perusahaan besar ataupun kecil. Dengan tetap patuh terhadap kerangka kerja SDLC ini, maka perusahaan dapat mempercepat proses pengembangan dan meminimalkan risiko proyek terkait waktu dan biaya yang diperlukan.


Keuntungan menerapkan SDLC

  1. SDLC dapat membantu perencanaan, estimasi, dan penjadwalan proyek dengan baik
  2. Kontrol proyek dapat dilakukan dengan lebih mudah
  3. Semua pemangku kepentingan dapat mengetahui bagaimana siklus pengembangan software secara transparan
  4. Dapat mempercepat proses pengembangan software
  5. Mengurangi risiko proyek
  6. Dapat mengurangi biaya manajemen proyek dan biaya produksi
  7. Meningkatkan hubungan yang baik dengan klien

Tahapan SDLC (Software Development Life Cycle)

Setelah memahami apa pengertian SDLC serta tujuannya, tentu kita ingin mengetahui bagaimana siklus atau tahapan yang diperlukan ketika menjalankan kerangka kerja ini. Secara garis besar terdapat beberapa tahapan SDLC yang perlu dilakukan yaitu:

1. Planning

Planning adalah tahap perencanaan dimana tim akan mengidentifikasi dan menentukan scope atau ruang lingkup yang perlu dilakukan dalam proses pengembangan proyek. Pada tahap ini, tim juga akan mengumpulkan semua informasi yang dibutuhkan dalam proses pengembangan software dari para pemangku kepentingan. Setelah itu, tim akan merencanakan struktur tim, time frame, budget, security, dan berbagai faktor penting lain yang dibutuhkan untuk pengembangan software.

2. Analysis

Tahapan SDLC yang selanjutnya adalah proses analisis. Pada tahap ini, tim akan menganalisis kebutuhan fungsional sistem. Jadi, tim akan melakukan analisis untuk mengetahui apa masalah bisnis, apa target yang ingin dicapai, apa tujuan utama dari pengembangan software tersebut, apa fungsi dari software yang akan dikembangkan, dan lain-lain. Analisi ini diperlukan dalam tahapan SDLC agar produk nantinya akan memiliki hasil akhir yang sesuai dengan ekspektasi klien. 

3. Design

Berdasarkan requirement yang telah ditentukan sebelumnya, maka tim akan membuat rencana desain atau spesifikasi desain. Beberapa aspek desain yang akan ditentukan seperti:

  • Architecture: bahasa pemrograman yang akan digunakan, desain software secara keseluruhan, dan lain-lain.
  • User Interface: mendefinisikan bagaimana cara users ketika berinteraksi dengan software serta bagaimana cara software memberikan respon.
  • Platform: platform tempat software dapat berjalan seperti Android, iOs, Linux, dan lain-lain.
  • Security: langkah-langkah untuk mengamankan sistem software seperti enkripsi lalu lintas SSL, perlindungan kata sandi, atau yang lain.

Rincian desain tersebut kemudian akan dibahas dengan para pemangku kepentingan. Tim akan menjelaskankan dengan berbagai parameter seperti risiko, teknologi yang akan digunakan, kapabilitas tim, kendala proyek, waktu dan anggaran. Setelah itu, pemangku kepentingan akan meninjau kembali desain tersebut dan menawarkan umpan balik dan saran. 

4. Development

Dalam fase ini, proses pengembangan software dimulai. Jadi, tim pengembang akan mulai membangun seluruh sistem dengan menulis kode menggunakan bahasa pemrograman yang dipilih. Tahapan SDLC ini dapat dikatakan sebagai fase terpanjang dari proses pengembangan software.

Untuk pengerjaan proyek besar, proses pengembangan software biasanya akan dibagi menjadi beberapa unit atau modul kemudian ditugaskan ke beberapa tim pengembang. Database admin akan membuat data yang diperlukan dalam database, front-end developer bertugas membuat UI dan GUI untuk berinteraksi dengan back-end. Proses pengembangan software tersebut akan dilakukan berdasarkan pedoman dan prosedur yang sudah ditentukan sebelumnya. 

5. Testing 

Tahapan SDLC ini akan melibatkan para software Quality Assurance (QA) untuk melakukan pengujian pada sistem dan menilai apakah software dapat bekerja sesuai dengan fungsionalitas yang diharapkan. Tim QA akan menguji semua area software untuk memastikan bahwa sistem terbebas dari cacat, error, ataupun bug. Jika ternyata masalah ditemukan di dalam software yang dikembangkan, maka tim QA akan menginformasikannya dengan tim pengembang agar perbaikan dapat segera dilakukan.  Proses ini berlanjut hingga software benar-benar terbebas dari bug, bekerja stabil, dan berfungsi sesuai harapan.

6. Implementation dan Release

Setelah fase pengujian perangkat lunak selesai dan tidak ada bug yang tersisa pada sistem, maka tahap implementasi dapat dimulai. Tahap ini biasanya juga disebut sebagai tahap deployment. Tujuan dari tahap ini adalah untuk men-deploy perangkat lunak ke lingkungan produksi sehingga users dapat mulai menggunakannya.

Fase ini melibatkan penginstalan aktual dari sistem yang baru dikembangkan. Untuk proyek sederhana, contoh deployment seperti menerapkan kode ke server web. Sedangkan untuk proyek pengembagan software berskala besar, deployment akan melibatkan proses integrasi dengan banyak sistem berbeda.

Meskipun demikian, banyak perusahaan memilih agar produk akhir dapat pertama kali dirilis dalam segmen terbatas dan diuji di lingkungan bisnis (UAT-User Acceptance Testing) sebelum benar-benar dirilis ke pasar. Hal ini juga dilakukan untuk meminimalisir adanya masalah yang ditemukan oleh users setelah produk dirilis ke pasar.

7. Maintenance

Tahapan SDLC yang terakhir adalah proses maintenance atau pemeliharaan software. Di tahap ini, tim akan melakukan pemeliharaan sistem dan rutin melakukan pembaruan agar kinerja software tetap dapat optimal.

Biasanya beberapa aktivitas maintenance yang dilakukan adalah:

  • Perbaikan bug: perbaikan bug ketika ada masalah yang dilaporkan
  • Upgrade sistem : meningkatkan kinerja software dengan sistem yang lebih baru
  • Peningkatan fitur: menambahkan fitur atau fungsionalitas pada pada software yang dikembangkan 


Model-model SDLC

Dalam proses pengembangan software, terdapat beberapa model SDLC yang populer digunakan. Berikut beberapa diantaranya:

 1. Waterfall


Waterfall


Metode SDLC yang pertama adalah waterfall. Metode waterfall adalah metode kerja yang menekankan fase-fase yang berurutan dan sistematis. Disebut waterfall karena proses mengalir satu arah “ke bawah” seperti air terjun. Metode waterfall ini harus dilakukan secara berurutan sesuai dengan tahap yang ada.

Berikut adalah tahap-tahap pengembangan dalam metode waterfall.

  • Requirement gathering and analysis
    Mengumpulkan kebutuhan secara lengkap untuk dianalisis dan mendefinisikan kebutuhan apa saja yang harus dicapai oleh program. Informasi dapat diperoleh melalui wawancara, diskusi, atau survey.

  • Design
    Melakukan perancangan desain perangkat lunak sebagai perkiraan sebelum dibuatnya kode. Desain sistem dapat dibuat menggunakan Flowchart, Mind Map, atau Entity Relationship Diagram (ERD).

  • Implementasi
    Implementasi ini adalah tahap dimana seluruh desain yang sebelumnya sudah dibuat diubah menjadi kode-kode program. Kode yang dihasilkan masih berbentuk modul-modul yang harus digabungkan di tahap selanjutnya.

  • Integration & testing
    Di tahap ini dilakukan penggabungan modul-modul yang sudah dibuat sebelumnya dan melakukan pengujian untuk mengetahui apakah perangkat lunak yang dibuat telah sesuai dengan desain dan fungsinya atau tidak.

  • Verification
    Di tahap ini, pengguna atau klien yang langsung melakukan pengujian pada sistem, apakah sistem telah sesuai dengan tang disetujui atau belum sesuai.

  • Operation & maintenance
    Tahap ini merupakan tahap terakhir dari model waterfall. Sistem yang sudah selesai dijalankan serta dilakukan pemeliharaan. Pemeliharaan berupa memperbaiki kesalahan yang tidak ditemukan pada langkah sebelumnya.

Setiap metode yang digunakan pasti memiliki kelebihan serta kekurangannya tersendiri.

Berikut adalah kelebihan dari metode waterfall:

  1. Memiliki proses yang terurut, sehingga pengerjaan dapat terjadwal dengan baik dan mudah.
  2. Cocok untuk sistem dengan kompleksitas rendah (predictable).
  3. Setiap proses yang dilakukan tidak dapat saling tumpah tindih.

Berikut adalah kekurangan dari metode waterfall:

  1. Waktu pengerjaan relatif lebih lama, karena harus menunggu tahap sebelumnya selesai.
  2. Biaya yang dibutuhkan lebih mahal karena waktu pengembangan yang dibutuhkan lebih lama.
  3. Model waterfall ini kurang cocok untuk pengembangan proyek yang memiliki kompleksitas tinggi.

   2. Agile

        
Agile

Metode SDLC selanjutnya adalah agile. Metode agile adalah metode yang fleksibel di mana pengembangan dilakukan dalam jangka pendek. Namun diperlukan adaptasi yang cepat dari developer terhadap perubahan dalam bentuk apa pun.

Tujuan Agile

Berikut merupakan tujuan dari agile, antara lain:

  • High – value & working app system
    Menghasilkan produk dengan kualitas yang baik, dan memiliki nilai jual yang tinggi.

  • Iterative, incremental, evolutionary
    Pengembangan dapat dilakukan secara iteratif, berulang-ulang, dan dapat mengalami perubahan jika diperlukan.

  • Cost control & value – driven development
    Pengembangan perangkat lunak dapat sesuai dengan kebutuhan pengguna dan tim dapat dengan cepat merespon kebutuhan, sehingga waktu dan biaya pembuatan dari perangkat lunak dapat dikendalikan.

  • High – quality production
    Kualitas dari perangkat lunak tetap terjaga, meskipun waktu dan biaya lebih sedikit.

  • Flexible & risk management
    Meminimalisir terjadinya kesalahan pada program ataupun produk sebelum dilakukannya proses deploy aplikasi.

  • Collaboration
    Kolaborasi ini dilakukan oleh setiap tim pengembang untuk mendiskusikan feedback yang diberikan oleh klien.

  • Self – organizing, self – managing teams
    Pengembang diberikan akses untuk memanajemen sendiri urusan software development. Seorang manajer hanya bertugas sebagai penghubung antara pengembang dengan klien sehingga dapat mengurangi terjadinya miss communication.

Metode agile ini memiliki kelebihan dan kekurangan tersendiri.

Berikut adalah kelebihan dari metode agile:

  1. Perubahan dapat dengan cepat ditangani.
  2. Proses pengembangan perangkat lunak membutuhkan waktu yang relatif cepat dan tidak memerlukan sumber daya yang besar.
  3. Klien dapat memberikan feedback kepada pengembang dalam proses pembuatan program.

Berikut adalah kekurangan dari metode agile:

  1. Metode ini kurang sesuai dengan tim yang besar (lebih dari 20 orang).
  2. Tim harus selalu siap, karena perubahan dapat terjadi kapan saja.
  3. Metode ini kurang cocok untuk tim yang berkomitmen untuk menyelesaikan proyek bersama-sama.
    

        3. Fountain


Fountain



Metode SDLC yang terakhir adalah fountain. Metode fountain adalah perbaikan dari metode waterfall, di mana jenis tahapan masih sama. Namun beberapa jenis tahapan boleh didahulukan atau dilewati, tetapi ada tahapan yang tidak bisa dilewati, contohnya seperti kamu memerlukan design sebelum melakukan implementasi, jika hal tersebut dilewati maka akan ada tumpang tindih.

Berikut adalah tahap-tahap pengembangan perangkat lunak menggunakan metode fountain.

  • User requirement specification
    Mencari tahu apa saja yang dibutuhkan oleh pengguna dalam perangkat lunak yang sedang dikembangkan.

  • Software requirement specification
    Penyesuaian perangkat lunak dari sisi pengguna.

  • System design
    Pembuatan desain sistem yang akan dibuat sebelum diimplementasikan.

  • Program design
    Pembuatan desain yang lebih sempurna dan hampir mendekati hasil akhir dari perangkat lunak.

  • Implementation
    Di tahap ini dilakukan implementasi sesuai dengan desain yang sudah dibuat di tahap sebelumnya.

  • Program testing: unit
    Dalam tahap ini dilakukan uji coba terhadap unit-unit yang dibutuhkan dalam perangkat lunak yang dikembangkan.

  • Program testing: system
    Di tahap ini dilakukan uji coba terhadap sistem dari perangkat lunak seutuhnya sebelum perangkat lunak digunakan.
  • Program use
    Dalam tahap ini dilakukan pengajaran kepada pengguna untuk menggunakan perangkat lunak yang telah dibuat.

  • Software maintenance
    Biasanya dalam tahap ini dilakukan perawatan terhadap perangkat lunak yang sudah dibuat, perawatan dapat berupa update sistem atau perbaikan kesalahan atau bugs yang ada.

Karena metode fountain ini adalah perbaikan dari metode waterfall, maka metode ini memiliki kelebihan dan kekurangan yang mirip dengan metode waterfall. 

Berikut adalah kelebihan dari metode fountain:

  1. Memiliki proses yang terurut, sehingga pengerjaan dapat terjadwal dengan baik dan mudah.
  2. Cocok untuk sistem dengan kompleksitas rendah (predictable).
  3. Dapat melewati atau mendahulukan beberapa tahapan .
  4. Setiap proses yang dilakukan tidak dapat saling tumpah tindih.

Berikut adalah kekurangan dari metode waterfall:

  1. Waktu pengerjaan relatif lebih lama, karena harus menunggu tahap sebelumnya selesai.
  2. Biaya yang dibutuhkan lebih mahal karena waktu pengembangan yang dibutuhkan lebih lama.
  3. Model fountain ini kurang cocok untuk pengembangan proyek yang memiliki kompleksitas tinggi.

Berbagai macam metode memilki kelebihan dan kekurangan masing-masing. Tinggal menyesuaikan sesuai kebutuhan dan kesanggupan dalam melaksakannya.





Komentar

Postingan Populer