Software Development Life Cycle
ì
Seberapa Kompleks-‐kah Software ì Ukuran kompleksitas so0ware: ì Line of Code (LoC) ì Jumlah klas ì Jumlah modul ì Interkoneksi dan ketergantungan antar modul ì Waktu untuk memahami program dsb
Contoh LoC ì Windows Server 2003: 50 MSLoC ì Debian 5.0: 324 MSLoC ì MSLoC: total lines of source code in millions ì Seberapa besar 324 MSLoC? ì Misal 5 words per LoC ì Misal 50 words per minute ì 32 millions of minutes ì 61 years
Materi ì PengerOan SDLC ì Relevansi SDLC ì Tahapan Umum SDLC ì Model SDLC ì ì ì ì ì
“Code n Fix” Waterfall Spiral EvoluOonary Prototyping Staged Delivery
ì Memilih Model
2.1 Pengertian SDLC ì Sekumpulan langkah atau fase yang dilewaO dalam
rangka mengembangkan atau memproduksi suatu produk perangkat lunak
ì Tujuan kenapa dibuat step / fase ì Menghasilkan item yang terukur untuk dievaluasi ì Berdasarkan hasil evaluasi, bisa ditentukan langkah
selanjutnya
2.2 Relevansi SDLC ì Ad-‐Hoc Development: membuat so0ware tanpa mengunakan
standar yang baku dan formal
ì Keuntungan: mudah untuk dilakukan ì Kerugian: ì ì ì ì ì
Kemungkinan malah meninggalkan berbagai proses penOng seperO DESIGN dan TESTING Tidak jelas kapan TITIK AWAL dan AKHIRNYA Sulit untuk dilakukan review Code mungkin saja Odak sesuai dengan yang diinginkan user (tanpa melalui tahap requirement analysis) Code Odak direncanakan untuk dimodifikasi,s sehingga TIDAK FLEKSIBEL
SEHINGGA DIPERLUKAN SDLC, KARENA BIAYA UTK FIXING SOFTWARE BIASANYA LEBIH MAHAL
2.2 Relevansi SDLC ì Keuntungan menggunakan SDLC: ì SDLC menyediakan tahapan tersetruktur untuk dilakukan ì SDLC mengarahkan kita utk memiliki “GAMBARAN BESAR/GLOBAL”, dan memandu kita untuk mengikuO tahapan2 dalam rangka mencapainya ì Bisa digunakan sebagai alat manajemen
2.3 Tahap Software Life Cycle ì Secara global terdiri dari beberapa tahap: ì Requirement ì Design ì ImplementaOon ì TesOng ì Maintenance
ì Key QuesOon: “Bagaimana kita mengkombinasikan
stpe2 tersebut dan dalam urutan yang seperO apa??”
2.4 Model SDLC ì Code an Fix: buat code program, kemudian debug,
betulkan dan proses ini dilakukan berulang (contoh: Ad-‐Hoc Development)
ì Waterfall: proses standar/paling umum (req,
design, code, test) dilakukan secara berurutan
ì Spiral: melakukan penilaian resiko pada seOap
tahap/langkah; melakukan Ondakan yang paling penOng pertama
2.4 Model SDLC ì EvoluOonary Prototyping: dimulai dengan membuat
prototype atau model dengan spesifikasi kebutuhan minimal. Kemudian jika prototype sudah sesuai, ‘evolve’ atau kembangkan hingga menjadi bentuk riil-‐nya
ì
2.4.1 Code and Fix Model
2.4.1 Code and Fix ì Keuntungan: ì Simple dan Odak kompleks untuk diterapkan ì EfekOf untuk Ope so0ware yang kecil
ì Kerugian: ì Berbahaya untuk diterapkan pada so0ware skala
besar, yang melibatkan Om besar ì Tahapan Odak jelas, jadi utk mengevaluasi per tahap pun juga Odak jelas ì Tidak jelas AWAL dan AKHIR
2.4.2 Waterfall Model
2.4.2 Waterfall Model ì Kekurangan: ì Jarang mengikuO urutan sekuensial seperO di teori, karena seringkali proses iterasi akan menghasilkan masalah yang baru lagi ì Sulit untuk idenOfikasi kebutuhan/requirement
secara lengkap ì Cukup banyak memakan waktu ì Kesalahan di awal bisa berakibat fatal pada tahap berikutnya
2.4.2 Waterfall Model ì Kelebihan: ì Masih sering digunakan, terutama untuk skala besar dengan batasa waktu yang Odak terlalu mepet ì Jika sistem yang hendak dibangun, requirement/ kebutuhan dapat teridenOfikasi secara jelas dan eksplisit, maka model ini sangat efekOf
2.4.3 Prototype Model ì Menggunakan prototype/model/contoh dengan
spesifikasi kebutuhan yang minimal, untuk dievaluasi dengan segera oleh pemakai. Jika sudah sesuai, dilanjutkan dengan membangunnya dalam sebuah sistem riil
2.4.3 Prototype Model
2.4.3 Prototype Model ì Kelebihan: ì Cocok untuk sistem dimana kebutuhan dari user SULIT
DIIDENTIFIKASI, atau user sulit mengungkapkan kebutuhannya ì Melibatkan user secara lebih intensif, shg:
ì Pendefinisian kebutuhan memiliki kemungkinan lebih
besar untuk sesuai dengan yang diinginkan oleh user
ì Meningkatkan kepuasan user ì Mengurangi resiko Odak terpakainya sistem setelah jadi
ì Hemat biaya ì Kesalahan bisa terdeteksi keOka prototype
2.4.3 Prototype Model ì Kekurangan: ì Sangat bergantung pada kesungguhan user untuk emngevaluasi prototype ì Apabila Odak terkelola dengan baik, protoOpe menjadi Odak pernah berakhir, dikarenakan permintaan terhadap perubahan sangat mudah untuk terjadi ì Kemungkinan dokumentasi akan terabaikan, karena
developer lebih konsen pada pembuatan prototype dan perbaikan prototype
2.4.4 Spiral Model ì Tahapan dalam Spiral: ì Pembuatan tujuan dan batasan ì Analisis Resiko (temukan resiko dan opsi cara
mengatasinya) ì Pengembangan dan validasi ì Perencanaan tahap berikutnya (Next Spiral)
2.4.4 Spiral Model
2.4.4 Spiral Model ì Tahapan dalam Spiral: ì Pembuatan tujuan dan batasan ì Analisis Resiko (temukan resiko dan opsi cara
mengatasinya) ì Pengembangan dan validasi ì Perencanaan tahap berikutnya (Next Spiral)
2.4.5 Staged Delivery Model
2.4.5 Staged Delivery Model ì Awalnya seperO waterfall ì Kemudian, dilakukan “short release cycle” ì Design, code, debug, test, release and delivery ì Kemudian proses ini dilakukan secara berulang, dan
menghasilkan versi untuk delivery selanjutnya
2.5 Memilih Model yang Tepat ì Tergantung pada jenis, lingkungan dan kebutuhan
project
2.5 Memilih Model yang Tepat ì PerOmbangan: ì Manaj. Resiko ì Quality/Cost Control ì Predictability ì Visibility of Progress ì Customer Involvement and feedback
2.5 Memilih Model yang Tepat ì Model Category Matrix