Pada rekayasa perangkat lunak, banyak model yang telah dikembangkan untuk
membantu proses pengembangan perangkat lunak. Model-model ini pada umumnya
mengacu pada model proses pengembangan sistem yang disebut System Development Life Cycle (SDLC) seperti
terlihat pada gambar dibawah ini:
1.
Model Sekuensial Linier atau Waterfall Development
Model
Model Sekuensial Linier atau sering disebut Model Pengembangan
Air Terjun, merupakan paradigma 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 – tahapanPengembangan Model
Sekuensial Linear / Waterfall Development Model :
1. Rekayasa dan pemodelan sistem/informasi
Langkah pertama dimulai dengan membangun keseluruhan elemen
sistem dan memilah bagian-bagian mana yang akan dijadikan bahan pengembangan
perangkat lunak, dengan memperhatikan hubungannya dengan Hardware, User, dan
Database.
2. Analisis kebutuhan perangkat lunak
Pada proses ini, dilakukan penganalisaan dan pengumpulan
kebutuhan sistem yang meliputi Domain informasi, fungsi yang dibutuhkan unjuk
kerja/performansi dan antarmuka. Hasil penganalisaan dan pengumpulan
tersebut didokumentasikan dan diperlihatkan kembali kepada pelanggan.
3. 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.
4. Pengkodean
Pengkodean merupakan proses menterjemahkan perancangan desain ke
bentuk yang dapat dimengerti oleh mesin, dengan menggunakan bahasa pemrograman.
5. 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.
6. Pemeliharaan
Proses Pemeliharaan merupakan bagian paling akhir dari siklus
pengembangan dan dilakukan setelah perangkat lunak dipergunakan. Kegiatan yang
dilakukan pada proses pemeliharaan antara lain :
·
Corrective
Maintenance : yaitu mengoreksi apabila terdapat kesalahan pada perangkat lunak,
yang baru terdeteksi pada saat perangkat lunak dipergunakan.
·
Adaptive
Maintenance : yaitu dilakukannya penyesuaian/perubahan sesuai dengan lingkungan
yang baru, misalnya hardware, periperal, sistem operasi baru, atau sebagai
tuntutan atas perkembangan sistem komputer, misalnya penambahan driver, dll.
·
Perfektive
Maintenance : Bila perangkat lunak sukses dipergunakan oleh pemakai.
Pemeliharaan ditujukan untuk menambah kemampuannya seperti memberikan
fungsi-fungsi tambahan, peningkatan kinerja dan sebagainya.
Contoh
Penerapan dari Pengembangan Model Sekuensial Linear / Waterfall Development
Model:
Contoh dari
penerapan model pengembangan ini adalah pembuatan program pendaftaran online ke
suatu Instansi Pendidikan. Program ini akan sangat membantu dalam proses
pendaftaran, karena dapat meng-efektifkan waktu serta pendaftar tidak perlu
repot-repot langsung mendatangi Instansi Pendidikan.
2. Model Prototype
Metode Prototype merupakan suatu paradigma baru
dalam metode pengembangan perangkat lunak dimana metode ini tidak hanya sekedar
evolusi dalam dunia pengembangan perangkat lunak, tetapi juga merevolusi metode
pengembangan perangkat lunak yang lama yaitu sistem sekuensial yang biasa
dikenal dengan nama SDLC atau waterfall development model.
Dalam Model
Prototype, prototype dari perangkat lunak yang dihasilkan kemudian
dipresentasikan kepada pelanggan, dan pelanggan tersebut diberikan kesempatan
untuk memberikan masukan sehingga perangkat lunak yang dihasilkan nantinya
betul-betul sesuai dengan keinginan dan kebutuhan pelanggan.
Perubahan dan
presentasi prototype dapat dilakukan berkali-kali sampai dicapai kesepakatan
bentuk dari perangkat lunak yang akan dikembangkan.
Teknik – teknik Prototyping Meliputi :
·
Perancangan Model
·
Perancangan Dialog
·
Simulasi
Berikut
adalah 4 langkah yang menjadi karakteristik dalam proses pengembangan pada
metode prototype, yaitu :
·
Pemilihan fungsi
·
Penyusunan Sistem Informasi
·
Evaluasi
·
Penggunaan
Selanjutnya metode ini menyajikan gambaran yang
lengkap dari suatu sistem perangkat lunak, terdiri atas model kertas, model
kerja dan program. Pihak pengembang akan melakukan identifikasi kebutuhan
pemakai, menganalisa sistem dan melakukan studi kelayakan serta studi terhadap
kebutuhan pemakai, meliputi model interface, teknik prosedural dan teknologi
yang akan dimanfaatkan.
Berikut adalah Tahapan – tahapan Proses Pengembangan dalam Model
Prototype, yaitu :
1. Pengumpulan kebutuhan
Pelanggan dan pengembang bersama-sama mendefinisikan format
seluruh perangkat lunak, mengidentifikasikan semua kebutuhan, dan garis besar
sistem yang akan dibuat.
2. Membangun prototyping
Membangun prototyping dengan membuat perancangan sementara yang
berfokus pada penyajian kepada pelanggan (misalnya dengan membuat input dan
format output).
3. 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.
4. Mengkodekan system
Dalam tahap ini prototyping yang sudah di sepakati diterjemahkan
ke dalam bahasa pemrograman yang sesuai.
5.
Menguji
system
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.
6.
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.
7.
Menggunakan
system
Perangkat lunak yang telah diuji dan diterima pelanggan siap
untuk digunakan.
Berikut merupakan Jenis – jenis dari Prototyping :
·
Feasibility prototyping
digunakan untuk menguji kelayakan dari teknologi
yang akan digunakan untuk system informasi yang akan disusun.
·
Requirement prototyping
digunakan untuk mengetahui kebutuhan aktivitas bisnis user.
·
Desain Prototyping
digunakan untuk mendorong perancangan sistem informasi yang akan
digunakan.
·
Implementation prototyping
merupakan lanjutan dari rancangan prototype,
prototype ini langsung disusun sebagai suatu sistem informasi yang akan
digunakan.
Contoh Penerapan Metode Prototype.
Sebuah rumah sakit ingin membuat aplikasi sistem
database untuk pendataan pasiennya. Seorang atau sekelompok programmer akan
melakukan identifikasi mengenai apa saja yang dibutuhkan oleh pelanggan, dan
bagaimana model kerja program tersebut. Kemudian dilakukan rancangan program
yang diujikan kepada pelanggan. Hasil/penilaian dari pelanggan dievaluasi, dan
analisis kebutuhan pemakai kembali di lakukan.
3. Model Rapid
Application Development (RAD)
Rapid Aplication Development (RAD) adalah sebuah
model proses perkembanganperangkat lunak sekuensial linier yang menekankan
siklus perkembangan yang sangat pendek (kira-kira 60 sampai 90 hari). Model RAD
ini merupakan sebuah adaptasi “kecepatan tinggi” dari model sekuensial linier
dimana perkembangan cepat dicapai dengan menggunakan pendekatan konstruksi
berbasis komponen.
Berikut
adalah Tahapan – tahapan Proses Pengembangan dalam Model Rapid Application
Development (RAD), yaitu :
1. Bussiness
Modeling
Fase ini untuk mencari aliran informasi yang dapat
menjawab pertanyaan berikut:
1. Informasi apa
yang menegndalikan proses bisnis?
2. Informasi apa
yang dimunculkan?
3. Di mana
informasi digunakan ?
4. Siapa yang
memprosenya ?
2. Data Modeling
Aliran informasi yang didefinisikan sebagai bagian
dari fase bussiness modeling disaring ke dalam serangkaian objek data yang
dibutuhkan untuk menopang bisnis tersebut. Karakteristik (atribut)
masing-masing objek diidentifikasi dan hubungan antar objek-objek tersebut
didefinisikan.
3. Proses Modeling
Aliran
informasi yang didefinisikan di dalam fase data modeling ditransformasikan
untuk mencapai aliran informasi yang perlu bagi implementasi sebuah fungsi
bisnis. Gambaran pemrosesan diciptakan untuk menambah, memodifikasi, menghapus,
atau mendapatkan kembali sebuah objek data.
4.
Aplication Generation
Selain
menggunakan bahasa pemrograman generasi ketiga, RAD juga memakai komponen
program yang telah ada atau menciptakan komponen yang bisa dipakai lagi.
Ala-alat bantu bisa dipakai untuk memfasilitasi konstruksi perangkat lunak.
5.
Testing dan Turnover
Karena proses
RAD menekankan pada pemakaian kembali, banyak komponen program telah diuji. Hal
ini mengurangi keseluruhan waktu pengujian. Tetapi komponen baru harus diuji
dan semua interface harus dilatih secara penuh.
4. Model
Evolutionary Development / Evolutionary Software Process Models
Model
Evolutionary Development bersifat iteratif (mengandung perulangan). Hasil
prosesnya berupa produk yang makin lama makin lengkap sampai versi terlengkap
dihasilkan sebagai produk akhir dari proses. Model Evolutionary Development /
Evolutionary Software Process terbagi menjadi 2, yaitu :
- Model Incremental : Model Incremental merupakan hasil kombinasi elemen-elemen dari model waterfall yang diaplikasikan secara berulang, atau bisa disebut gabungan dari Model linear sekuensial (waterfall) dengan Model Prototype. Elemen-elemen tersebut dikerjakan hingga menghasilkan produk dengan spesifikasi tertentu kemudian proses dimulai dari awal kembali hingga muncul hasil yang spesifikasinya lebih lengkap dari sebelumnya dan tentunya memenuhi kebutuhan pemakai.
Model ini berfokus pada penyampaian produk
operasional dalam Setiap pertambahanya. Pertambahan awal ada di versi stripped
down dari produk akhir, tetapi memberikan kemampuan untuk melayani pemakai dan
juga menyediakan platform untuk evaluasi oleh pemakai. Model ini cocok dipakai
untuk proyek kecil dengan anggota tim yang sedikit dan ketersediaan waktu yang
terbatas.
Pada proses Pengembangan dengan Model Incremental,
perangkat lunak dibagi menjadi serangkaian increment yang dikembangkan secara
bergantian.
·
Contoh Penerapan Model Incremental
Perangkat lunak pengolah kata yang dikembangkan
dengan menggunakan paradigma pertambahan akan menyampaikan manajemen file,
editing, serta fungsi penghasilan dokumen pada pertambahan pertama, dan
selanjutnya. Pertambahan pertama dapat disebut sebagai produk inti (core
product). Dan pada pertambahan selanjutnya, produk inti akan dikembangkan
terus hingga menghasilkan produk jadi yang siap untuk digunakan/dipasarkan.
2. Model Spiral / Model Boehm
Model ini mengadaptasi dua model perangkat lunak
yang ada yaitu model prototyping dengan pengulangannya dan model waterfall
dengan pengendalian dan sistematikanya. Model ini dikenal dengan sebutan
Spiral Boehm. Pengembang dalam model ini memadupadankan beberapa model umum
tersebut untuk menghasilkan produk khusus atau untuk menjawab
persoalan-persoalan tertentu selama proses pengerjaan proyek.
Tahap-tahap model ini dapat dijelaskan
secara ringkas sebagai berikut :
·
Tahap Liason: pada tahap ini dibangun
komunikasi yang baik dengan calon pengguna/pemakai.
·
Tahap Planning (perencanaan): pada tahap
ini ditentukan sumber-sumber informasi, batas waktu dan informasi-informasi
yang dapat menjelaskan proyek.
·
Tahap Analisis Resiko: mendefinisikan
resiko, menentukan apa saja yang menjadi resiko baik teknis maupun manajemen.
·
Tahap Rekayasa (engineering): pembuatan
prototipe.
·
Tahap Konstruksi dan Pelepasan (release): Pada tahap
ini dilakukan pembangunan perangkat lunak yang dimaksud, diuji, diinstal dan
diberikan sokongan-sokongan tambahan untuk keberhasilan proyek.
·
Tahap Evaluasi: Pelanggan/pemakai/pengguna
biasanya memberikan masukan berdasarkan hasil yang didapat dari tahap
engineering dan instalasi.
Model Spiral/Boehm
sangat cocok diterapkan untuk pengembangan sistem dan perangkat lunak
skala besar di mana pengembang dan pemakai dapat lebih mudah memahami kondisi
pada setiap tahapan dan bereaksi terhadap kemungkinan terjadinya kesalahan.
Selain itu, diharapkan juga waktu dan dana yang tersedia cukup memadai.
5. Model Evolusi
Model evolusi adalah sebuah model yang
berulang-ulang. Model ini memiliki karakteristik yang memungkinkan para
programmer mengembangkan perangkat lunaknya menjadi semakin lengkap di tiap
versinya. Model ini diterapkan karena persyaratan (requierement) sering
berubah sehingga hasil akhir dari sebuah produk tidak akan realistis, dimana
edisi komplit dari produk tersebut mustahil dikeluarkan dikarenakan deadline
market yang begitu ketat. Oleh karena itu lebih baik mengeluarkan
versi limited untuk memperkenalkannya terlebih dahulu dan programmer dapat
membuat model dari sebuah design untuk mengakomodasikan produk, yang secara
bertahap akan diselesaikan dari waktu ke waktu.
Kelebihan Model
Evolusi :
1.
Meningkatkan
kemampuan memimpin dan mengatur sesuatu dengan pengembangan diri.
2.
Menciptakan
suasana yang sadar akan kualitas suatu produk.
3.
Fungsi inti
dari quality control dalam perusahaan besar pada tingkat lokakarya.
4.
Meningkatkan
kebersamaan untuk mencapai suatu hasil dan semangat kerja karyawan.
5.
Meningkatkan
kualitas dengan biaya efektif.
6.
Membebaskan
manajemen.
7.
pekerja Shop
Floor adalah lokasi terbaik untuk mengidentifikasi masalah.
Kekurangan Model Evolusi :
1. Intensitas pekerjaan meningkat karena
masalah akan lebih banyak dari pada yang diperkirakan.
2. Manajemen perlu berkomitmen untuk
sistem yang berkualitas, jika sebuah solusi dari sebuah masalah tidak dapat
diterapkan maka itu bisa membuat frustasi para pekerja.
3. Dapat memiliki efek negatif pada
hubungan industrial.
4. Dapat fokus pada masalah duniawi.
Contoh Penerapan model evolusi:
Proyek SITINA dimulai dengan kebutuhan terhadap suatu
sistem EDM utilitas yang harus melalukan pemantauan dengan mudah, benar-benar
otomatis,pada pembangkit listrik tenaga air . Tujuan utama adalah untuk
mengembangkan aplikasi dengan biaya rendah yang memungkinkan dewan direksi
untuk memonitor pembangkit listrik tersebut dan mengambil data statistik pada
produksi mereka.
Hal ini tidak dalam melingkupi penjelasan rinci tentang SITINA . Namun, seperti yang dapat kita lihat dari akhir arsitektur umum pada Gambar 1, kita berhadapan dengan sistem yang kompleks dengan SCADA/EMS2 yang terbentuk dari penggunaan banyak teknologi dari beberapa produk-produk perangkat lunak yang berbeda.
Hal ini tidak dalam melingkupi penjelasan rinci tentang SITINA . Namun, seperti yang dapat kita lihat dari akhir arsitektur umum pada Gambar 1, kita berhadapan dengan sistem yang kompleks dengan SCADA/EMS2 yang terbentuk dari penggunaan banyak teknologi dari beberapa produk-produk perangkat lunak yang berbeda.
6. Model V /
V-Model.
Bisa dikatakan model ini merupakan
perluasan dari model waterfall. Disebut sebagai perluasan karena tahap-tahapnya
mirip dengan yang terdapat dalam model waterfall. Jika dalam model waterfall
proses dijalankan secara linear, maka dalam model V proses dilakukan bercabang.
Dalam model V ini digambarkan hubungan antara tahap pengembangan software
dengan tahap pengujiannya.
Kelebihan v
model :
- V Model
sangat fleksibel. V Model mendukung project tailoring dan penambahan dan
pengurangan method dantool secara dinamik. Akibatnya sangat mudah untuk
melakukan tailoring pada V Model agar sesuai dengan suatu proyek tertentu
dan sangat mudah untuk menambahkan method dan tool baru atau menghilangkan
method dan tool yang dianggap sudah obsolete.
- V Model
dikembangkan dan di-maintain oleh publik. Userdari V Model berpartisipasi
dalam change control boardyang memproses semua change request terhadap V
Model.
Kekurangan
v model :
1. V Model adalah model yang project
oriented sehingga hanya bisa digunakan sekali dalam suatu proyek.
2. V Model terlalu fleksibel dalam arti
ada beberapa activitydalam V Model yang digambarkan terlalu abstrak sehingga
tidak bisa diketahui dengan jelas apa yang termasuk dalamactivity tersebut dan
apa yang tidak.
7. Extreme Programming (XP) Model
Model proses ini diciptakan dan dikembangkan oleh Kent Beck. Model ini adalah model proses yang terbaru dalam dunia rekayasa perangkat lunak dan mencoba menjawab kesulitan dalam pengembangan software yang rumit dan sulit dalam implementasi. Menurut Kent Beck XP adalah : “A lightweight, efficient, low-risk, flexible,predictable, scientific and fun way to develop software”. Suatu model yang menekankan pada:
Model proses ini diciptakan dan dikembangkan oleh Kent Beck. Model ini adalah model proses yang terbaru dalam dunia rekayasa perangkat lunak dan mencoba menjawab kesulitan dalam pengembangan software yang rumit dan sulit dalam implementasi. Menurut Kent Beck XP adalah : “A lightweight, efficient, low-risk, flexible,predictable, scientific and fun way to develop software”. Suatu model yang menekankan pada:
► keterlibatan user secara langsung
► pengujian
► pay-as-you-go design
Sebagai contoh :
Adapun
empat nilai penting dari XP :
1.
Communication/Komunikasi : komunikasi antara developer dan klien sering
menjadi masalah. Karena itu komunikasi dalam XP dibangun dengan melakukan
pemrograman berpasangan (pair programming). Developer didampingi oleh pihak
klien dalam melakukan coding dan unit testing sehingga klien bisa terlibat
langsung dalam pemrograman sambil berkomunikasi dengan developer. Selain itu perkiraan
beban tugas jugadiperhitungkan.
2.
Simplicity/ sederhana: Menekankan pada kesederhanaan dalam pengkodean:
“What is the simplest thing that could possibly work?” Lebih baik melakukan hal
yang sederhana dan mengembangkannya besok jika diperlukan. Komunikasi yang
lebih banyak mempermudah, dan rancangan yang sederhana mengurangi penjelasan.
3.
Feedback / Masukan/Tanggapan: Setiap feedback ditanggapi dengan
melakukan tes, unit test atau system integration dan jangan menunda karena
biaya akan membengkak (uang, tenaga, waktu).
4.
Courage / Berani: Banyak ide baru dan berani mencobanya, berani
mengerjakan kembali dan setiap kali kesalahan ditemukan, langsung diperbaiki.