Ananfauzi's Blog

April 25, 2013

SDLC (Software Development Life Cycle)

Filed under: Software Engineering — Tags: , , — ananfauzi @ 9:47 am

Software Development Life Cycle atau biasa disingkat SDLC, dapat diartikan sebagai tahapan pengembangan perangkat lunak yang menyeluruh. Menyeluruh ini dapat diartikan melingkupi pembangunan, perawatan, maupun modifikasi, berikut dengan model dan metodologi yang digunakan. Pokoknya mencakup kesemua hal menyangkut pengembangan perangkat lunak, terutama untuk pengembangan sistem informasi.

Tahapan pengembangan perangkat lunak yang terdapat didalam SDLC terdiri dari planning (perencanaan), analysis (analisis), design (desain), implementation (implementasi), testing (pengujian), dan maintain (perawatan). Tahapan pengembangan tersebut, kemudian dibentuk menjadi sebuah pola berupa siklus hidup pengembangan perangkat lunak. Hal ini yang menjadi dasar berbagai jenis metodologi pengembangan perangkat lunak yang ada, berupa kerangka kerja untuk merencanakan dan mengendalikan pengembangan sistem informasi (model proses pengembangan perangkat lunak). Metodologi yang muncul diantaranya metode linear sequential, metode prototyping, metode rapid application development (RAD), metode spiral, metode fourth generation technique (4GT), dan metode berorientasi objek.

Berikut ini beberapa bentuk siklus yang dibuat untuk menggambarkan proses yang terdapat didalam SDLC.
sdlc1    sdlc2
Belum ada bentuk siklus SDLC baku yang dibuat, setiap pengembang memiliki persfektifnya dan pendekatannya masing-masing. Namun secara umum mempunyai prinsip yang sama.

Penjelasan setiap tahapan:

  1. Planning
    Ini merupakan tahapan untuk melakukan studi kelayakan terhadap proyek pengembangan yang akan dilakukan, dengan cara mempelajari konsep sistem yang diinginkan oleh client. Tahap ini dilakukan untuk mengetahui feasibility dan resiko dari proyek tersebut, sekaligus mendeskripsikan management proyek dan pendekatan teknis yang tepat. Mengetahui, apakah sistem tersebut realistis untuk dikembangkan? Baik dilihat dari segi waktu, pembiayaan, keterkaitannya dengan sistem yang telah ada, maupun aspek lainnya yang mungkin terkait.

    Bagian terpenting pada tahap ini, adalah mengetahui keseluruhan goal/tujuan dari sebuah proyek pengembangan, sekaligus hal apa saja yang dibutuhkan untuk mencapai goal tersebut. Dari sini dapat diputuskan apakah proyek akan dilanjutkan, atau stop? Hasil akhir dari tahap ini adalah berupa dokumen perencanaan proyek yang berisi detail penjadwalan aktivitas yang akan dilaksanakan, teknologi yang akan digunakan, dan estimasi biaya keseluruhan untuk setiap effort yang keluar.

  2. Analysis
    Ini merupakan tahapan yang dilakukan untuk mendapatkan spesifikasi/kebutuhan fungsional dari sistem yang akan dikembangkan. Dari spesifikasi tersebut, dapat diketahui ruang lingkup dari sistem yang akan dikembangkan.

    Spesifikasi fungsional dari sistem, dibuat berdasarkan requirement yang didapatkan dari client. Dimana requirement ini merupakan hasil dari konsultasi yang mendalam. Requirement ini mendeskripsikan fungsi utama dari sistem yang dikembangkan, area operasi dan referensi data, entitas awal data, proses-proses yang bersifat kritis, input-output-report utama, hierarki user yang dibangun, dll. Pada tahapan ini ada beberapa pertanyaan mendasar yang harus dijawab, diantaranya

    • Apakah yang harus dilakukan oleh sistem?
    • Bagaimana cara melakukannya?
    • Informasi apa yang diperlukan?
    • Teknologi apa yang akan digunakan?
    • Masalah apa yang mungkin terjadi? Bagaimana solusinya?
    • Dan hal-hal lain yang mungkin terkait. 😀

    Hasil akhir dari tahapan ini, berupa dokumen hasil analisis requirement dan bentuk sistem yang akan dikembangkan.

    Tujuannya supaya kita dapat mengetahui ruang lingkup dari sistem yang dikembangkan. Mana yang termasuk bagian dari sistem? Dan, mana yang bukan? 😀

  3. Design
    Pada tahap ini dibuat desain teknis dari sistem yang akan dikembangkan. Desain yang dibuat mencakup detail arsitektur sistem secara keseluruhan baik hardware, maupun software dalam bentuk diagram-diagram. Pilihan teknologi yang digunakan akan sangat mempengaruhi desain yang akan dibuat.

    Hasil akhir dari tahap ini adalah dokumen desain, berisi rancang bangun sistem secara terperinci, sehingga dapat memberikan gambaran lengkap bagi programmer, maupun ahli teknik lainnya yang terlibat.

  4. Implementation
    Tahap ini merupakan implementasi dari rancangan yang telah dibuat. Instalasi dan konfigurasi hardware, coding (penulisan kode program), pembangunan database, modul program, dll. Memastikan setiap bagian sistem yang dibangun, sesuai dengan spesifikasi yang telah dirancang.

  5. Testing
    Ini merupakan tahap untuk menguji komponen sistem (modul), maupun sistem secara keseluruhan. Apakah sudah sesuai dengan requirement yang ada? Ada dua jenis metode pengujian yang dapat dilakukan yaitu metode pengujian white box, dan metode pengujian black box.
    Pada metode white box dilakukan pengujian terhadap alur kode program yang sudah dibuat. Apakah sudah sesuai harapan? Sedangkan pada metode black box, pengujian dilakukan dengan memasukkan serangkaian input dan memeriksa output yang dihasilkan, atau reaksi yang diperlihatkan ketika input yang masuk tidak sesuai dengan kriteria yang ditetapkan. Pada pengujian dengan metode black box ini, kode-kode yang membentuk alur progam tidak diperhatikan.

  6. Maintain
    Tahap ini dilakukan ketika sistem sudah dideliver dan diimplementasikan oleh client. Tujuannya untuk menjaga sistem dari kemungkinan error yang tidak terduga, dan menjaga sistem dari kemungkinan masalah yang bisa terjadi dimasa yang akan datang.

Dihimpun dari berbagai sumber

1 Comment »

  1. Owh…

    Comment by Saiful rahman — April 27, 2013 @ 3:51 am


RSS feed for comments on this post. TrackBack URI

Leave a comment

Blog at WordPress.com.