Proses Pengembangan Perangkat Lunak (Software Development Process) adalah
suatu penerapan struktur pada pengembangan suatu Perangkat Lunak (Software),
yang bertujuan untuk mengembangkan sistem dan memberikan panduan untuk
menyukseskan proyek pengembangan sistem melalui tahapan-tahapan tertentu.
Pemodelan Perangkat Lunak banyak macamnya, berikut 5 model Pengembangan
Perangkat Lunak yang akan saya jelaskan sebagai berikut;
1. Model Waterfall
2. Model Prototype
3. Model RAD
4. Model Spiral
5. Fourth Generation Techniques (4GT)
1. Model Waterfall
Merupakan pengembangan model pengembangan perangkat lunak paling tua, dan
paling banyak dipakai. Model ini mengusulkan sebuah pendekatan perkembangan
perangkat lunak yang sistematik dan sekunsial yang dimulai pada tingkat dan
kemajuan sistem pada seluruh tahapan analisis, desain , kode, pengujian, dan
pemeliharaan.
Berikut Merupakan Tahapan – tahapan Pengembangan Model Waterfall
:
Rekayasa dan pemodelan sistem/informasi (communicating)
Langkah pertama dimulai dengan membangun keseluruhan elemen sistem dan
memilah bagian-bagian mana yang akan dijadikan bahan pengembangan perangkat
lunak, dengan memperhatikan hubungannya dengan ketentuan Hardware, User, dan
Database.
Analisis kebutuhan perangkat lunak
Pada proses ini, dilakukan penganalisaan dan pengumpulan kebutuhan sistem
yang meliputi Domain informasi, Hasil penganalisaan dan
pengumpulan tersebut didokumentasikan dan diperlihatkan kembali kepada
pelanggan.
Desain
Pada proses Desain, dilakukan penerjemahan syarat kebutuhan sebuah
perancangan perangkat lunak yang dapat diperkirakan sebelum dibuatnya proses
pengkodean (coding). Proses ini berfokus pada struktur data,
arsitektur perangkat lunak, representasi interface, dan detail algoritma
prosedural.
Pengkodean
Pengkodean merupakan proses menterjemahkan perancangan desain ke bentuk
yang dapat dimengerti oleh mesin, dengan menggunakan bahasa pemrograman.
Pengujian
Setelah Proses Pengkodean selesai, dilanjutkan dengan proses pengujian pada
program perangkat lunak, baik Pengujian logika internal, maupun Pengujian
eksternal fungsional untuk memeriksa segala kemungkinan terjadinya kesalahan
dan memeriksa apakah hasil dari pengembangan tersebut sesuai dengan hasil yang
diinginkan.
Pemeliharaan
Proses Pemeliharaan erupakan bagian paling akhir dari siklus pengembangan
dan dilakukan setelah perangkat lunak dipergunakan.
Kekurangan Model Waterfall
Terjadinya pembagian proyek menjadi tahap-tahap yang tidak fleksibel,
karena komitmen harus dilakukan pada tahap awal proses.
Hal ini mengakibatkan sulitnya untuk merespon perubahan kebutuhan pengguna
(user).
Model air terjun harus digunakan hanya ketika persyaratan dipahami dengan
baik.
Kelebihan Model Waterfall
Bisa digunakan jika suatu persyaratan untuk membuat suatu software sudah
dipahami dengan baik dan sudah lengkap semua persyaratan yang ada.
2. Model Prototype
Prototyping perangkat lunak (software prototyping) atau siklus hidup
menggunakan protoyping (life cycle using prototyping) adalah salah satu metode
siklus hidup sistem yang didasarkan pada konsep model bekerja (working model).
Tujuannya adalah mengembangkan model menjadi sistem final. Artinya sistem akan
dikembangkan lebih cepat dari pada metode tradisional dan biayanya menjadi
lebih rendah. Ada banyak cara untuk memprotoyping, begitu pula dengan
penggunaannya. Ciri khas dari metodologi ini adalah pengembang sistem (system
developer), klien, dan pengguna dapat melihat dan melakukan eksperimen dengan
bagian dari sistem komputer dari sejak awal proses pengembangan.
Pengumpulan kebutuhan
Pelanggan dan pengembang bersama-sama mendefinisikan format seluruh
perangkat lunak, mengidentifikasikan semua kebutuhan, dan garis besar sistem
yang akan dibuat.
Membangun prototyping
Membangun prototyping dengan membuat perancangan sementara yang berfokus
pada penyajian kepada pelanggan (misalnya dengan membuat input dan format
output).
Evaluasi protoptyping
Evaluasi ini dilakukan oleh pelanggan, apakah prototyping yang sudah
dibangun sudah sesuai dengan keinginan pelanggan atau belum. Jika sudah sesuai,
maka langkah selanjutnya akan diambil. Namun jika tidak, prototyping direvisi
dengan mengulang langkah-langkah sebelumnya.
Mengkodekan sistem
Dalam tahap ini prototyping yang sudah di sepakati diterjemahkan ke dalam
bahasa pemrograman yang sesuai.
Menguji sistem
Setelah sistem sudah menjadi suatu perangkat lunak yang siap pakai,
kemudian dilakukan proses Pengujian. Pengujian ini dilakukan dengan White Box,
Black Box, Basis Path, pengujian arsitektur, dll.
Evaluasi Sistem
Pelanggan mengevaluasi apakah perangkat lunak yang sudah jadi sudah sesuai
dengan yang diharapkan . Jika ya, maka proses akan dilanjutkan ke tahap
selanjutnya, namun jika perangkat lunak yang sudah jadi tidak/belum sesuai
dengan apa yang diharapkan, maka tahapan sebelumnya akan diulang.
Kekurangan Model Prototype
Proses analisis dan perancangan terlalu singkat.
Biasanya kurang fleksibel dalam mengahadapi perubahan.
Walaupun pemakai melihat berbagai perbaikan dari setiap versi prototype,
tetapi pemakai mungkin tidak menyadari bahwa versi tersebut dibuat tanpa
memperhatikan kualitas dan pemeliharaan jangka panjang.
Pengembang kadang-kadang membuat kompromi implementasi dengan menggunakan
sistem operasi yang tidak relevan dan algoritma yang tidak efisien.
Kelebihan Model Prototype
Pelanggan berpartisipasi aktif dalam pengembangan sistem, sehingga hasil
produk pengembangan akan semakin mudah disesuaikan dengan keinginan dan
kebutuhan pelanggan.
Penentuan kebutuhan lebih mudah diwujudkan.
Mempersingkat waktu pengembangan produk perangkat lunak.
Adanya komunikasi yang baik antara pengembang dan pelanggan.
Pengembang dapat bekerja lebih baik dalam menentukan kebutuhan pelanggan.
Lebih menghemat waktu dalam pengembangan sistem.
Penerapan menjadi lebih mudah karena pelanggan mengetahui apa yang
diharapkannya.
3. Model RAD
RAD (Rapid Application Development) Adalah metodologi pengembangan
perangkat lunak (SDLC) yang menggunakan pengabungan antara Prototype Model
dengan Iterative Model. Prototipe adalah model kerja yang secara fungsional
setara dengan komponen produk.
Business Modeling (Bisnis Model)
Fase ini untuk perancangan dasar dari pengembangan produk berdasarkan
informasi dan distribusi informasi antar saluran bisnis. Analisis bisnis yang
lengkap dilakukan untuk menemukan informasi penting untuk bisnis, bagaimana hal
itu dapat diperoleh, bagaimana dan kapan informasi diproses dan faktor apa yang
mendorong arus informasi yang berhasil
Data Modeling (Data Model)
Fase ini untuk menganalisa informasi yang sudah dikumpulan dari fase
Business Modeling. semua kumpulan data diidentifikasi dan
didefinisikan secara rinci untuk mencari model bisnis yang tepat.
Process Modeling (Proses Pemodelan)
Fase ini untuk untuk menetapkan arus informasi bisnis yang diperlukan untuk
mencapai tujuan bisnis yang spesifik sesuai model bisnis. perubahan atau
penyempurnaan pada kumpulan objek data didefinisikan dalam fase ini. Deskripsi
proses untuk menambahkan, menghapus, mengambil atau memodifikasi objek data
diberikan.
Application Generation (Generasi Aplikasi)
Fase ini untuk Sistem yang sebenarnya dibangun dan pengkodean dilakukan
dengan menggunakan automatic tools i untuk mengubah model proses dan data
menjadi prototype yang aktual
Testing and Turnover
Fase ini untuk pengujian keseluruhan sistem yang dibangun semua komponen
perlu diuji secara menyeluruh dengan cakupan uji yang lengkap. Dengan pengujian
yang lengkap dapat mengurangi risiko cacat sistem.
Kekurangan RAD (Rapid Application Development)
Ketergantungan pada anggota bisnis tim untuk mengidentifikasi persyaratan
bisnis
Hanya sistem yang bisa di modularized yang bisa dibangun menggunakan RAD
Membutuhkan developer / designer yang berpengalaman
Ketergantungan pada keterampilan model
Kompleksitas manajemen
Tidak dapat diterapkan pada proyek yang kecil / murah
Kelebihan RAD (Rapid Application Development)
Mudah mengakomodasi peruabahan sistem
Progress development bisa di ukur
Waktu iterasi bisa di perpendek menggunakan RAD Tools
Mengurangi waktu development
Mudah dalam menentukan dasar sistem
Mempermudah feedback customer
Cocok untuk proyek yang membutuhkan waktu pengembangan yang lebih pendek.
Cocok untuk sistem yang berbasis komponen dan terukur.
4. Model Spiral
pengembangan perangkat lunak dengan model spiral adalah proses pengembangan
perangkat lunak yang digambarkan sebagai sebuah spiral, dimana tiap putaran
menggabungkan tahap yang berbeda dalam prosesnya. Perpindahan dari satu spiral
ke putaran lain, berarti mengulang semua tahapan dari proses pengembangan
perangkat lunak.
Tiap putaran dalam spiral model mewakili sebuah fase dari proses
pengembangan perangkat lunak. Dengan demikian, putaran paling dalam/ terdekat
mungkin bersangkutan dengan kelayakan sistem, putaran selanjutnya dengan
definisi kebutuhan, putaran selanjutnya dengan perancangan sistem, dan
seterusnya.
Setiap loop (putaran) dalam spiral model dibagi menjadi 4 sektor, yaitu:
Objective Setting (Penetapan Tujuan)
Menetapkan tujuan spesifik untuk projek.Kendala pada proses dan produk
diidentifikasi, rencana , pengelolaan yang lebih rinci dibuat.Resiko dalam
projek direncanakan. Strategi alternatif, bergantung pada resiko-resiko yang
sudah didefinisikan dan direncanakan.
Risk Assesment and Reduction (Penilaian dan pengurangan resiko)
Melakukan analisis detail mengenai tiap resiko projek yang sudah
diidentifikasikan. Mendeskripsikan langkah untuk mengurangi resiko. Misalnya
jika ada resiko bahwa requirement tidak pantas atau kurang, maka akan dibuat
prototype sistem.
Development and Validation (Pengembangan dan Validasi)
Setelah evaluasi resiko, akan dipilih model pengembangan sistem. Misalnya,
pembuatan prototype lembaran (throwaway) akan menjadi pendekatan pengembangan
yang paling baik jika resiko user interface lebih besar atau dominan. Jika
resiko utama yang diidentifikasi adalah integrasi subsistem, maka waterfall
model mungkin adalah model pembangunan terbaik untuk digunakan.
Planning (Perencanaan)
Proyek di review dan dibuat keputusan apakah akan dilanjutkan dengan
putaran spiral selanjutnya. Jika diputuskan untuk dilanjutkan, rencana akan
disusun untuk fase selanjutnya dari proyek.
Kelemahan model spiral
Sulit untuk menyakinkan pelanggan bahwa pendekatan evolusioner ini bisa
dikontrol.
Memerlukan penaksiran resiko yang masuk akal dan akan menjadi masalah yang
serius jika resiko mayor tidak ditemukan dan diatur.
Butuh waktu lama untuk menerapkan paradigma ini menuju kepastian yang
absolute
Kelebihan model spiral
Dapat disesuaikan agar perangkat lunak bisa dipakai selama hidup perangkat
lunak komputer.
Lebih cocok untuk pengembangan sistem dan perangkat lunak skala besar
Pengembang dan pemakai dapat lebih mudah memahami dan bereaksi terhadap
resiko setiap tingkat evolusi karena perangkat lunak terus bekerja selama
proses .
Menggunakan prototipe sebagai mekanisme pengurangan resiko dan pada setiap
keadaan di dalam evolusi produk.
Tetap mengikuti langkah-langkah dalam siklus kehidupan klasik dan
memasukkannya ke dalam kerangka kerja iteratif .
Membutuhkan pertimbangan langsung terhadp resiko teknis sehingga mengurangi
resiko sebelum menjadi permaslahan yang serius.
5. Fourth Generation Techniques (4GT)
Istilah Fourth Generation Techniques (4GT) yaitu seperangkat peralatan
software yang fungsinya sebagai perangkat pembantu untuk memudahkan seorang
pengembang software mengaplikasikan karakteristik software tersebut, dari situ
akan menghasilkan source code dan object code yang secara otomatis sesuai dengan
persyaratan khusus yang dibuat oleh pengembang software tersebut.
Pengumpulan kebutuhan
Tahap ini merupakan tahap pengumpulan serangkaian kebutuhan. Customer
menjelaskan kebutuhan-kebutuhan kemudian akan diterjemahkan ke dalam prototype.
Tetapi jika customer merasa tidak yakin dengan apa yang diperlukan, maka
prototype tidak akan dikerjakan oleh 4GT.
Merancang Strategi
Tahap ini dibutuhkan untuk
proyek besar yakni dengan menterjemahkan kebutuhan menjadi prototype
operasional agar tidak timbul masalah yang sama jika dibuat dengan model
konvensional.
Implementasi
Tahap ini memungkinkan
pengembang software menjelaskan hasil yang diinginkan, kemudian selanjutnya
diterjemahkan dalam bentuk source code dan object code secara otomatis.
Produksi
Tahap terakhir ini adalah
mengubah implementasi 4GT ke dalam hasil akhir berupa produk.
Kekurangan Fourth Generation Techniques (4GT)
Penggunaan perangkat bantu (tools) dibandingkan dengan bahasa pemrograman,
dan juga kode sumber yang dihasilkannya tidak efisien.
Untuk usaha yang besar, dibutuhkan pengembangan strategi desain untuk
sistem, walau digunakan bahasa 4GL.
Penggunaan 4GT tanpa perencanaan matang (untuk proyek besar) akan
menyebabkan kesulitan yang sama (kualitas dan pemeliharaan yang jelek,
ketidakpuasan pelanggan) seperti dengan metode konvensional.
4GL tidak selalu berhasil menghasilkan sistem yang diinginkan.
Kelebihan Fourth Generation Techniques (4GT)
Pengurangan waktu dan peningkatan produktivitas secara besar
Karena 4GT menggunakan 4GL yang merupakan bahasa pemrograman
yang khusus dirancang dengan tujuan tertentu (spesifik), maka untuk
permasalahan yang tertentu dengan 4GL tertentu pula sangat tepat menggunakan
4GT.
Tool yang menggunakan metode pengembangan perangkat lunak 4GL bisa
meng-generate sistem dari output yang dihasilkan oleh CASE tools.