SDLC
Software Development Life Cycle
(SDLC) meruakan siklus yang menggambarkan perangkat lunak yang dibangun.
Contoh Model SDLC adalah:
1. Waterfall
2. Linear Squential
3. Prototyping
4. RAD (Rapid Application Development)
5. Incremental
6. Win-win spiral
Salah satu contoh SDLC yang paling awal adalah Waterfall.Jadi pada model
ini pengujian menjadi tahapan yang harus dilakukan setelah sebuah perangkat
lunak dibangun.
1. Model Waterfall
Ciri – ciri model waterfall seperti aliran air terjun:
Tahapan nya adalah/ Daur hidup PL:
1. Analisis kebutuhan
Maksudnya : untuk mengumpulkan kebutuhan user yang berkaitan dengan
perangkat lunak yang dibangun peran analisis sebagai penjembatan antara
keinginan user dengan programmer, mampu melihat konsekuensi dari kebutuhan
user, kemudian kebutuhan tersebut di dokumentasikan.
2. Desain
Maksudnya : Tahapan ini untuk menerjemahkan keinginan urser menjadi desain.
3. Coding
Maksudnya : pada tahapan ini programmer menerjemahkan desain ke dalam
bahasa pemrograman
4. Pengujian
Maksudnya: setelah program aplikasi selesai dibuat , maka dilakukan tahap
pengujian.
5. Implementasi
Maksudnya : Perangkat lunak yang telah lolos uji di Implementasi.
6. Perawatan
Maksudnya : perangkat lunak yang telah di implementasi di harapkan bisa di
pakai terus menerus.PL harus dirawat dengan memperhatikan hal-hal :
a. Mampu menangani perkembangan dat , seiring berjalannya waktu
b. Mampu menangani ancaman kerusakan oleh virus atau program penyusup
lainnya.
c.Mampu menangani perbaikan jiika suatu saat terjadi error.
d. Bisa menambah fitur baru, dll.
Masalah pada waterfall :
- Partisi projek ke stages yang berbeda tidak flexible menyebabkan sulitnya
untuk merespon perubahan kebutuhan pengguna. Oleh sebab itu model ini hanya
cocok digunakan apabila pengguna sudah dimengerti dengan baik.
Kekurangan model air terjun adalah kesulitan mengakomodasi perubahan
setelah proses sedang berlangsung.
Masalah dengan waterfall :
1. Perubahannya sulit karena sifatnya kaku
2. Karena sifatnya kaku , cocok ketika kebutuan dikumpulakan secara lengkap
3. Waterfall digunakan untuk rekayasa sistem yang benar dan proyek
dikerjakan di beberapa tempat berbeda dan dibagi menjadi beberapa subbagian.
2. Prototype
Prototype adalah sebuah Javascript Framework yang dibuat untuk lebih
memudahkan proses dalam membangun aplikasi berbasis web.
Metode protyping sebagai suatu paradigma baru dalam pengembangan sistem
informasi, tidak hanya sekedar suatu evolusi dari metode pengembangan sistem
informasi yang sudah ada, tetapi sekaligus merupakan revolusi dalam
pengembangan sistem informasi manajemen
Ada 2 Jenis Prototype :
Jenis I : Suatu Sistem yang akan menjadi sistem operasional
Jenis II : Suatu model yang dapat dibuang yang berfungsi sebagai cetak biru
bagi sistem operasional.
Karakteristik metode prototyping meliputi langkah-langkah :
1. Pemilahan fungsi
2. Penyusunan Sistem Informasi
3. Evaluasi
4. Penggunaan Selanjutnya
Jenis-jenis prototyping meliputi
1. Feasibility prototyping
2. Requirement prototyping
3. Desain Prototyping
4. Implementation prototyping
Teknik-teknik prototyping meliputi
1. Perancangan Model
2. Perancangan Dialog
3. Simulasi
SISTEM YANG BERMANFAAT DARI PROTOTIPE (SYSTEMS THAT BENEFIT FROM
PROTOTYPING)
Sejak kebutuhan (baca Spesifikasi Fungsi) pada umumnya berhubungan dengan
pandangan user terhadap sistem, hanya dengan prototipe tampilan bagi user sudah
cukup untuk memeriksa yang dibutuhkan. Menu-menu, bentuk tampilan input,
tampilan keluaran, atau laporan yang dicetak, pertanyaan-pertanyaan,
pesan-pesan merupakan calon yang ideal untuk prototipe.
Di lain pihak, perhitungan yang rumit, kumpulan update data dan realtime,
dan sistem yang bersifat scientific sangat sulit untuk dijadikan model.
Sistem yang paling sesuai untuk prototipe adalah satu dari banyak hal yang
bergantung pada sistem input/output dari user. Sistem dengan transaksi on-line
dikendalikan melalui menu, layar, formulir, laporan, daftar dan perintah.
Keuntungan dari prototipe
Menghasilkan syarat yang lebih
baik dari produksi yang dihasilkan oleh metode ‘spesifikasi tulisan’.
User dapat mempertimbangkan
sedikit perubahan selama masih bentuk prototipe.
Memberikan hasil yang lebih
akurat dari pada perkiraan sebelumnya, karena fungsi yang diinginkan dan
kerumitannya sudah dapat diketahui dengan baik.
User merasa puas. Pertama, user
dapat mengenal melalui komputer. Dengan melakukan prototipe (dengan analisis
yang sudah ada), user belajar mengenai komputer dan aplikasi yang akan
dibuatkan untuknya. Kedua, user terlibat langsung dari awal dan memotivasi
semangat untuk mendukung analisis selama proyek berlangsung.
Hal yang diabaikan dalam membuat prototype :
- Efisiensi
- Kualitas
- Kemudahan di kembang
- Kcocokan dwngan lingkungan sebenarnya
3. RAD (Rapid Application Development)
Rapid Application Development adalah seperangkat strategi yang terintegrasi
yang ada dalam suatu kerangka kerja meneyeluruh yang disebut Information
Engineering (IE).
RAD (Rapid Application Development) adalah sistem pemrograman yang
memungkinkan programmer membuat program dengan cepat. Secara umum, Sistem RAD
menyediakan sejumlah alat-bantu untuk membuat antarmuka pengguna grafis
(graphical user interfaces) yang biasanya membutuhkan usaha dan waktu yang lama
untuk membuatnya. Dua sistem RAD yang paling populer untuk Windows adalah
Visual Basic dan Delphi. RAD Mempunyai 4 Unsur Penting : Manajemen, Manusia,
Metodologi, dan Peralatan. RAD adalah penggabungan beberapa metode atau teknik
terstruktur. RAD menggunakan metode prototyping dan teknik terstruktur lainnya
untuk menentukan kebutuhan user dan perancangan sistem informasi.
Proses pengembangan, meliputi
1. Mempelajari apakah proyek pengembangan sistem memenuhi kriteria
2. Mempelajari aktivitas bisnis perusahaan, menentukan area bisnis serta
fungsi yang menjadi prioritas
3. Membuat model dari fungsi-fungsi yang menjadi prioritas
4. Memilih protype mana yang direview
5. Implementasi Sistem Informasi
Pengembangan skuensial linear , adaptasi kecepatan tinggi dari skuensial
linear.
Pendekatan RAD:
1. Pemodelan bisnis
2. Pemodelan data
3. Pemodelan proses
4. Pemodelan aplikasi
Kelemahan RAD
1. Untuk proyek dengan skala besar, RAD sumber daya manusia cukup untuk
membentuk sejumlah tim RAD
2. RAD membutuhkan pengembang dan pemakai yang mempunyai komitmen
3. Akan menimbulkan masalah jika sistem tidak dibuat secara modular
4. RAD tidak cocok utnuk sistem yang mempunyai resiko tinggi
4. Incremental model
Model incremental menggabungkan elemen-elemen model sekuensial linier
(diimplementasikan secara berulang) dengan filosofi prototype interatif. Model
ini memakai urutan-urutan linier di dalam model yang membingungkan, seiring
dengan laju waktu kalender. Setiap urutan linier menghasilkan pertambahan
perangkat lunak yang kemudian dapat disampaikan kepada pengguna.
Pada saat model incremental (pertambahan) ini digunakan, pertambahan
pertama sering merupakan produk inti (core product), yaitu sebuah model
pertambahan yang dipergunakan, tetapi beberapa muka tambahan (beberapa
diketahui dan beberapa tidak) tetap tidak disampaikan. Produk inti tersebut
dipergunakan oleh pelanggan (atau mengalami pengkajian detail). Sebagai hasil
dari pemakaian dan/atau evaluasi maka dikembangkan rencana bagi pertambahan
selanjutnya. Rencana tersebut menekankan modifikasi produk inti untuk secara
lebih baik memenuhi kebutuhan para pelanggan dan penyampaian fitur serta
fungsional tambahan. Proses ini mengikuti penyampaian setiap pertambahan sampai
bisa menghasilkan produk yang lengkap.
Model proses incremental tersebut, seperti model prototype dan
pendekatan-pendekatan evolusioner yang lain, bersifat iterative. Tetapi tidak
seperti model prototype, model pertambahan berfokus pada penyampaian produk
operasional dalam setiap pertambahannya. Pertambahan awal ada di versi stripped
down dari produk akhir, tetapi memberikan kemampuan untuk melayani pemakai dan
juga menyediakan platform untuk evaluasi oleh pemakai.
Perkembangan pertambahan, khususnya berguna pada saat staffing, tidak bisa
dilakukan dengan menggunakan implementasi lengkap oleh batasan waktu bisnis
yang sudah disepakati untuk proyek tersebut. Jika produk inti diterima dengan
baik, maka staf tambahan (bila dibutuhkan) bisa ditambahkan untuk
mengimplementasi pertambahan selanjutnya. Sebagai tambahan, system mayor yang
sedang pada masa perkembangan serta waktu penyampaiannya belum pasti, mungkin
membutuhkan keberadaan perangkat keras yang baru. Bisa juga rencana tertentu
dibuat untuk menghindari pemakaian perangkat lunak ini, sehingga memungkinkan
fungsionalitas partial disampaikan kepada pemakai tanpa harus banyak tertunda.
Contoh Penggunaan Incremental Model
Misalnya, perangkat lunak pengolah kata yang dikembangkan dengan
menggunakan paradigma penambahan akan menyampaikan manajemen file dasar,
editing serta fungsi penghasilan dokumen pada penambahan pertama; kemudian
editing dan kemampuan penghasilan dokumen yang lebih canggih pada pertambahan
kedua; pengecekan spelling dan tata bahasa pada pertambahan ketiga; serta
kemampuan pengaturan halaman tingkat lanjut pada tahap pertambahan keempat.
Harus dicatat bahwa aliran proses untuk berbagai pertambahan tersebut dapat
menggabungkan paradigma prototype.
Kelebihan Penggunaan Incremental Model
· Merupakan model dengan manajemen
yang sederhana
· Pelanggan tidak perlu menunggu
sampai seluruh system dikirim untuk mengambil keuntungan dari system tersebut.
Inkremen yang pertama sudah memenuhi persyaratan mereka yang paling kritis,
sehingga perangkat lunak dapat segera digunakan.
· Pelanggan dapat memakai inkremen
yang pertama sebagai bentuk prototype dan mendapatkan pengalaman yang dapat
menginformasikan persyaratan untuk inkremen system berikutnya
· Resiko untuk kegagalan proyek
secara keseluruhan lebih rendah. Walaupun masalah dapat ditemukan pada beberapa
inkremen, bias saja beberapa inkremen diserahkan dengan sukses kepada
pelanggan.
· Karena layanan dengan prioritas
tertinggi diserahkan pertama dan inkremen berikutnya diintegrasikan dengannya,
sangatlah penting bahwa layanan system yang paling penting mengalami pengujian
yang paling ketat. Ini berarti bahwa pelanggan akan memiliki kemungkinan kecil
untuk memenuhi kegagalan perangkat lunak pada inkremen system yang paling
kecil.
Kekurangan Penggunaan Incremental Model
· Inkremen harus relative lebih
kecil (tidak lebih dari 20.000 baris kode) dan setiap inkremen harus
menyediakan sebagian dari fungsional system
· Adanya kesulitan untuk memetakan
persyaratan pelanggan pada inkremen dengan ukuran yang benar
5. Spiral model
Model ini juga cukup baru ditemukan, yaitu pada sekitar tahun 1988 oleh
Barry Boehm pada artikel A Spiral Model of Software Development and
Enhancement. Spiral model adalah salah satu bentuk evolusi yang menggunakan
metode iterasi natural yang dimiliki oleh model prototyping dan digabungkan dengan
aspek sistimatis yang dikembangkan dengan model waterfall. Tahap desain umumnya
digunakan pada model Waterfall, sedangkan tahap prototyping adalah suatu model
dimana software dibuat prototype (incomplete model), “blue-print”-nya, atau
contohnya dan ditunjukkan ke user / customer untuk mendapatkan feedback-nya.
Jika prototype-nya sudah sesuai dengan keinginan user / customer, maka proses
SE dilanjutkan dengan membuat produk sesungguhnya dengan menambah dan
memperbaiki kekurangan dari prototype tadi.
Model ini juga mengkombinasikan top-down design dengan bottom-up design,
dimana top-down design menetapkan sistem global terlebih dahulu, baru
diteruskan dengan detail sistemnya, sedangkan bottom-up design berlaku
sebaliknya. Top-down design biasanya diaplikasikan pada model waterfall dengan
sequential-nya, sedangkan bottom-up design biasanya diaplikasikan pada model
prototyping dengan feedback yang diperoleh. Dari 2 kombinasi tersebut, yaitu
kombinasi antara desain dan prototyping, serta top-down dan bottom-up, yang
juga diaplikasikan pada model waterfall dan prototype, maka spiral model ini
dapat dikatakan sebagai model proses hasil kombinasi dari kedua model tersebut.
Oleh karena itu, model ini biasanya dipakai untuk pembuatan software dengan
skala besar dan kompleks.
Spiral model dibagi menjadi beberapa framework aktivitas, yang disebut
dengan task regions. Kebanyakan aktivitas2 tersebut dibagi antara 3 sampai 6
aktivitas. Berikut adalah aktivitas-aktivitas yang dilakukan dalam spiral
model:
Customer communication. Aktivitas yang dibutuhkan untuk membangun
komunikasi yang efektif antara developer dengan user / customer terutama
mengenai kebutuhan dari customer.
Planning. Aktivitas perencanaan ini dibutuhkan untuk menentukan sumberdaya,
perkiraan waktu pengerjaan, dan informasi lainnya yang dibutuhkan untuk
pengembangan software.
Analysis risk. Aktivitas analisis resiko ini dijalankan untuk menganalisis
baik resiko secara teknikal maupun secara manajerial. Tahap inilah yang mungkin
tidak ada pada model proses yang juga menggunakan metode iterasi, tetapi hanya
dilakukan pada spiral model.
Engineering. Aktivitas yang dibutuhkan untuk membangun 1 atau lebih
representasi dari aplikasi secara teknikal.
Construction & Release. Aktivitas yang dibutuhkan untuk develop
software, testing, instalasi dan penyediaan user / costumer support seperti
training penggunaan software serta dokumentasi seperti buku manual penggunaan
software.
Customer evaluation. Aktivitas yang dibutuhkan untuk mendapatkan feedback
dari user / customer berdasarkan evaluasi mereka selama representasi software
pada tahap engineering maupun pada implementasi selama instalasi software pada
tahap construction and release.
Satu lingkaran dari bentuk spiral pada spiral model dibagi menjadi beberapa
daerah yang disebut dengan region. Region tersebut dibagi sesuai dengan jumlah
aktivitas yang dilakukan dalam spiral model. Tentunya lingkup tugas untuk
project yang kecil dan besar berbeda. Untuk project yang besar, setiap region
berisi sejumlah tugas-tugas yang tentunya lebih banyak dan kompleks daripada
untuk project yang kecil. SE berjalan dari inti spiral berjalan mengitari
sirkuit per sirkuit. Sebagai contoh untuk sirkuit pertama dilakukan untuk
pembangunan dari spesifikasi dari software dengan mencari kebutuhan dari
customer. Untuk sirkuit pertama harus menjalani semua aktivitas yang
didefinisikan. Setelah 1 sirkuit terlewati lanjut ke tugas selanjutnya misalnya
membangun prototype. Tugas ini juga harus mengitari 1 sirkuit dan begitu terus
selanjutnya sampai project selesai.
Tidak seperti model-model konvesional dimana setelah SE selesai, maka model
tersebut juga dianggap selesai. Akan tetapi hal ini tidak berlaku untuk spiral
model, dimana model ini dapat digunakan kembali sepanjang umur dari software
tersebut. Pada umumnya, spiral model digunakan untuk beberapa project seperti
Concept Development Project (proyek pengembangan konsep), New Product
Development Project (proyek pengembangan produk baru), Product Enhancement
Project (proyek peningkatan produk), dan Product Maintenance Project (proyek
pemeliharaan proyek). Keempat project tersebut berjalan berurutan mengitari
sirkuit dari spiral. Sebagai contoh setelah suatu konsep dikembangkan dengan
melalui aktivitas2 dari spiral model, maka dilanjutkan dengan proyek
selanjutnya yaitu pengembangan produk baru, peningkatan produk, sampai
pemeliharaan proyek. Semuanya melalui sirkuit2 dari spiral model.
Kekurangannya ada pada masalah pemikiran user / customer dimana mereka pada
umumnya tidak yakin bahwa pendekatan evolusioner ini dapat terus dalam ambang
kontrol yang bagus. Dibutuhkan kombinasi kemampuan manajerial dan teknis
tersendiri untuk mengontrol model ini sehingga dengan sendirinya dapat
meyakinkan user / customer tersebut. Mengenai analisis resiko yang terdapat
pada model ini dibutuhkan kemampuan expert tersendiri agar tahap ini dapat
berjalan dengan baik. Dibutuhkan kemampuan manajemen yang tinggi untuk
melakukan perkiraan resiko, karena jika ada resiko yang luput untuk dievaluasi,
dikhawatirkan dapat muncul di kemudian hari yang dapat menghambat proses SE.
Kesimpulannya, model ini sebetulnya cukup populer, tetapi masih kalah populer
dibandingkan model2 yang lama yaitu waterfall atau prototype akibat belum banyak
penggunaan model ini yang dapat meyakinkan pemikiran user / customer.
Aktifitasnya:
1. Komunikasi dengan pemakai
2. Perencanaan
3. Analisis resiko
4. Rekayasa
5. Konstruksi dan pelepasan
6. Evaluasi
Kelemahannnya
1. Sulit untuk meyakinkan pemakai
2. Memerlukan tanaga ahli
3. Belum terbukti apakh metode ini cukup efisien
Proses bentuk spiral:
1. Tiap loop mewakili 1 proses
2. Loop paling dalam focus pada kelayakan dari sistem
3. Loop selanjutnya definisi kebutuhan berkaitan dengan desain sistem ,
dst.
Spiral model menentukan tujuan
- Penanganan and penanggulangan resiko
- Pembangunan dan pengujian
- Planning
- Risk analisis
- Engineering
- Construction and release
- Customer evaluation
Win-win Spiral
- Perluasan spiral model
- Fase tertentu dapat diulang oleh pembuat project
- tanpa harus mengulang dari awal
Kesimpulan:
1. Pada model spiral, resiko sangat di pertimbangkan
2. Resiko adalah yang mungkin menyebabkan kesalahan
3. Pendekatan yang realistis untuk PL berskala besar.