Anda di halaman 1dari 12

Pemodelan dalam suatu rekayasa perangkat lunak merupakan suatu hal yang

dilakukan di tahapan awal. Di dalam suatu rekayasa dalam perangkat lunak


sebenarnya masih memungkinkan tanpa melakukan suatu pemodelan. Namun hal
itu tidak dapat lagi dilakukan dalam suatu industri perangkat lunak. Pemodelan
delam perangkat lunak merupakan suatu yang harus dikerjakan di bagian awal dari
rekayasa, dan pemodelan ini akan mempengaruhi perkerjaan-pekerjaan dalam
rekayasa perangkat lunak tersebut.

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)

2.   Spiral
Model spiral merupakan salah satu dari model revolusioner, model spiral memiliki ciri
yaitu memungkinkan untuk mengembangkan suatu perangkat lunak secara bertahap
atau dengan beberapa versi untuk mengdapatkan perangkat lunak yang lebih sempurna
dan lebih terkontrol.

Tahapan – tahapan dalam pengembangan model spiral dainataranya adalah sebagai


berikut
 Customer Communication, yaitu aktivitas untuk membangun komunikasi
yang efektif antara pengembang dengan pengguna, sehingga kebutuhan
pengguna dapat diketahui dengan baik.
 Palnning, yaitu perencanaan untuk memperhitungkan semberdaya, waktu
pengerjaan, dan informasi lainnya yang dibutuhkan untuk pengembangan
perangkat lunak.
 Analysis Risk, yaitu untuk menganalisis resiko dengan baik resiko yang
mungin terjadi secara teknikal
 Engineering, yaitu pembuatan protoype atau pembuatan satu atau lebih
reprenstasi dari aplikasi yang dibuat
 Construction and Release, yaitu  kegiatan untuk membangun perangkat
lunak, ttesting, instalisasi, dan penyediaan dunkungan untuk pelanggan
seperti pelatihan penggunaan sistem serta dokumentasi
 Customer Evaluation, yaitu kegiatan untuk mendapatkan timbal balik yang
diberikan oleh pengguna.
 
Spiral

Gambar diatas merupakan gambaran dari tahapan model proses pengambanga


perangkat lunak secara spiral. Kelebihan dan   kekurangan dari model pengembangan
perangkat lunak spiral ini diantaranya adalah
 Kelebihan: memungkinkan untuk pemakian perangkat lunak bisa dipakai
selama masa berlaku perangkat lunak, pengembang dan pemakai dapat lebih
mudah memahami dan birinteraksi terhadap resiko setiap evolusi
 Kekurangan: Memerlukan penafsiran resiko yang masuka akal dan akan
menjadi masalah yang sangat serius jika resiko besar tidak ditemukan, butuh
waktu lama untuk menerapkan paradigma model ini untuk menuju ke
kepastian.

4.    Extreme Programming
Extreme Programming merupakan salah satu metode proses pengembangan perangkat
lunak dalam RPL. 

Metode ini merupakan salah satu metode yang terpopuler dari beberapa metodelogi
pengembangan software yang dipakai untuk pengembangan perangkat lunak,tujuan
utama dari metode ini adalah untuk menurukan biaya dan menyederhanakan dari
berbagai tahapan dalam proses pengembangan perangkat lunak. 

Adapaun tahapan dari model pengembangan ini adalah sebagi berikut 


 Perencanaan,yaitu proses yang dirancang untuk mencapai tujuan tertentu dan
pengambilan keputusan untuk mencapai hasil yang diinginkan. Kebutuhan
tahap ini, antara lain teknis pengumpulan data, analisis kebutuhan system,
identifikasi aktor dan identifikasi use case.
 Design. yaitu panduan dalam membangun perangkat lunak yang didasari atas
kebutuhan pengguna. Proses design dilakukan sebelum dan sesudah
aktivitas coding berlangsung serta dalam proses pengembangan aplikasi
berlangsung.
 Coding, yaitu Tahap yang bertujuan untuk melakukan uji pada setiap unit
sistem, kemudian selanjutnya melakukan penulisan coding aplikasi.model ini
menggunakan konsep pair programming dimana tiap unit pengembangan
dikembangkan oleh dua programmer.
 Testing, yaitu pengujian perangkat lunak dimaksudkan untuk menguji semua
unit perangkat lunak yang dibuat apakah telah sesuai kebutuhan pengguna.
Pada tahap pengujian ini aplikasi langsung diuji coba oleh pengguna.

5.    Evolusioner
Model ini bertumpang tindih dengan kegiatan spesifikasi, pengembangan dan validasi.
Sistem awal dikembangkan dengan cepat dari spesifikasi yang abstrak. 
 
Sistem ini kemudian dikembangkan dengan menerima masukan atau saran dari
pelanggan sehingga sistem dapat disempurnakan sesuai dengan kebutuhan pelanggan. 
 
Karena pengembangan terus berlangsung saat pengguna sudah menggunakan sistem
maka memungkinkan kebingunan dari pengembang dalam menyempurnakan sistem
Karena terkadang kebutuhan pelanggan bisa berubah setiap saat. 
 
Tahapan dalam model proses ini adalah sebagai berikut:
 Komunikasi: Komunikasi dalam hal ini adalah pertemuan dengan pelanggan
untuk membicarakan kebutuhan dan fitur-fitur yang akan dibuat pada
software.
 Perencanaan: Perencanaan disini merupakan tahap penjelasan mengenai
hasil diskusi dengan pelanggan kepada semua anggota tim pengembang.
Sehingga semua anggota tim memiliki gambaran mengenai software yang
akan dibuat.
 Desain Pemodelan:Tahap ini merupakan tahapan dalam membuat interface
software yang harus memprioritaskan kenyamanan dan kemudahan
pelanggan dalam penggunaannya.
 Implementasi dalam bentuk prototype: Pada tahapan ini programmer akan
membuat kode-kode yang dibutuhkan untuk membentuk sebuah fitur-fitur
pada software, namun software tersebut belum sempurna
 Testing dan Umpan Balik:
 Tahap testing akan dilakukan untuk menguji software yang telah dibuat
apakah sudah berjalan sesuai keinginan. Ketika software lolos pada tahap
testing, software akan diserahkan kepada pengguna sehingga pengguna
dapat memberikan umpan balik berupa komentar/keluhan mengenai
kekurangan dari software tersebut

Model 4GT (Fourt Generation Techniques)

Saat ini pengembangan perangkat lunak yang mendukung 4GT, berisi tool-tool
berikut:

1. Bahasa non prosedural untuk query basis data;


2. Report generation;
3. Data manipulation ;
4. Interaksi layar ;
5. Kemampuan grafik level tinggi ;
6. Kemampuan spreadsheet .
Tiap tool ini ada tapi hanya untuk sauatu aplikasi khusus. Metode pengembangan
perangkat lunak 4GT menggunakan perangkat bantu (tools) yang akan membuat
kode sumber secara otomatis berdasarkan spesifikasi dari pengembang perangkat
lunak. Hanya digunakan untuk menggunakan perangkat lunak yang menggunakan
bahasa khusus atau notasi grafik yang diselesaikan dengan syarat yang dimengerti
pemakai. Cakupan aktivitas 4GT meliputi:

1. Pengumpulan kebutuhan, idealnya pelanggan akan menjelaskan kebutuhan


yang akan ditranslasikan ke prototype operasional.
2. Translasi kebutuhan menjadi prototype operasional, atau langsung
melakukan implementasi secara langsung dengan menggunakan bahasa
generasi keempat (4GL) jika aplikasi relatif kecil.
3. Untuk aplikasi yang cukup besar, dibutuhkan strategi perancangan sistem
walaupun 4GL akan digunakan.
4. Pengujian.
5. Membuat dokumentasi.
6. Melaksanakan seluruh aktivitas untuk mengintegrasikan solusi-solusi yang
membutuhkan paradigma rekayasa perangkat lunak lainnya.
Kelebihan dari metode pengembangan perangkat lunak ini diantaranya :
 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.
Untuk aplikasi yang kecil, adalah mungkin untuk langsung berpindah dari
pengumpulan kebutuhan ke implementasi dengan menggunakan metode 4GL. Tapi
untuk aplikasi yang besar, dibutuhkan pengembangan strategi desain untuk sistem,
walau digunakan 4GL. Penggunaan 4GL tanpa perencanaan yang matang (untuk
proyek skala besar) akan meyebabkan kesulitan yang sama (kualitas dan
pemeliharaan yang jelek, ketidakpuasan pelanggan) seperti dengan metode
pengembangan perangkat lunak model konvensional.

6. Metode Scrum
Metode ini adalah turunan dari metode agile, yang nantinya akan dibahas secara
tersendiri. scrum seringkali tidak digolongkan sebagai metodologi, melainkan suatu kerangka
kerja yang menggunakan pendekatan iteratif (perulangan) dan inkremental (berangsur-angsur).
Pengembang menerapkan scrum ketika ingin membuat sistem yang kompleks. Pasalnya,
kerangka kerja ini memang ditujukan untuk menghasilkan produk bernilai tinggi, unik sekaligus
produktif. Kabarnya Google, Microsoft, hingga Spotify menerapkan sistem ini.
Berbeda dengan metode waterfall yang memakai pendekatan sistematis, scrum diaplikasikan
dengan lima tahapan yang bersifat imperatif dan inkremental. Oleh karena itu, kerangka
kerja scrum pasti melibatkan beberapa tim yang saling bersinergi.
Kerangka kerja scrum membagi proses pengembangan menjadi target-target kecil yang
dinyatakan dalam satuan sprint. Istilah ini mengacu pada kecepatan lari jarak pendek. Sejumlah
target kecil harus selesai dalam waktu singkat untuk tujuan akhir yang lebih besar.
Pengembangan dimulai dengan merumuskan target sprint prioritas dari setiap tim. Diikuti dengan
identifikasi pekerjaan spesifik serta proses pengerjaan sesuai target sprint yang telah ditentukan.
Sementara itu, evaluasi berkala dilakukan selama masa penggarapan tiap sprint.
Setiap sprint berakhir, tim yang terlibat selalu menyampaikan hasil pekerjaannya. Tahapan ini
juga mencakup evaluasi menyeluruh dan perumusan ide-ide baru yang mungkin bisa diterapkan
pada sprint berikutnya.

Kekurangan dan Kelebihan Metode Scrum


Kelebihan dari metode scrum terletak pada kemampuannya untuk menghasilkan perangkat
lunak bernilai tinggi. Pun dipandang lebih efektif karena mampu mengatasi permasalahan
kompleks dengan mendelegasikan tugas-tugas spesifik kepada beberapa tim yang mandiri.
Masalah baru muncul ketika terjadi kendala yang membuat salah satu tim gagal mencapai
target sprint-nya. Imbasnya akan memengaruhi ritme kerja tim yang lain. Metode ini juga
memungkinkan improvisasi bebas sehingga membutuhkan tim dengan fleksibilitas tinggi.
Nah, itulah sedikit ulasan mengenai pengembangan perangkat lunak. Selanjutnya, Anda perlu
mempelajari bahasa pemrograman jika ingin menjadi pengembang perangkat lunak yang sukses
dengan gaji ratusan juta. Selamat mencoba dan semoga berhasil.

4. 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. Model Incremental dalam rekayasa perangkat
lunak, menerapkan rekayasa perangkat lunak perbagian, hingga menghasilkan perangkat lunak yang lengkap. Proses membangun
berhenti jika produk telah mencapai seluruh fungsi yang diharapkan.

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.

 Contol model Increnmental:

 Software word-processing, dibangun menggunakan incremental model, mendelivery fungsi dasar file management, editing,
dan fungsi document production pada increment pertama. Kemampuan editing, dan fungsi document production yang lebih baik pada
increment kedua, checking dan grammar spelling pada increment ketiga. Proses akan diulangi sampai produk yang lengkap telah
dihasilkan. Jika menggunakan Incremental model, increment yang pertama merupakan inti product. Incremental model fokus pada
pendeliverian opertional product pada tiap increment.
 Pengembangan Incremental sangat berguna ketika staf tidak tersedia untuk implementasi lengkap dengan batas waktu bisnis
yang telah ditetapkan untuk proyek tersebut. Kenaikan awal dapat diimplementasikan dengan sedikit orang. Jika produk inti diterima
dengan baik, maka staf tambahan ( jika diperlukan ) dapat ditambahkan untuk mengimplementasikan kenaikan berikutnya. Selain itu,
kenaikan dapat direncanakan untuk mengelola risiko teknis.
Model Rekayasa Perangkat Lunak

1.Model Incremental
Incremental model adalah model pengembangan sistem pada software development
berdasarkan requirement software yang dipecah menjadi beberapa fungsi atau bagian
sehingga model pengenbangannya secara bertahap. Dengan menggunakan incremental model
dapat membantu kita untuk mengurangi biaya sebelum mencapai level dari initial
productivity dan mengakselerasi proses dari pembuatan suatu fungsi sistem.

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. Model Incremental dalam rekayasa perangkat lunak,
menerapkan rekayasa perangkat lunak perbagian, hingga menghasilkan perangkat lunak yang
lengkap. Proses membangun berhenti jika produk telah mencapai seluruh fungsi yang
diharapkan.

Model ini 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. Model ini cocok dipakai untuk proyek kecil dengan anggota tim yang sedikit dan
ketersediaan waktu yang terbatas.
 Contoh model Incremental:
Software word-processing dibangun menggunakan incremental model, mendelivery fungsi
dasar file management, editing, dan fungsi document production pada increment pertama.
Kemampuan editing, dan fungsi document production yang lebih baik pada increment kedua,
checking dan grammar spelling pada increment ketiga. Proses akan diulangi sampai produk
yang lengkap telah dihasilkan. Jika menggunakan Incremental model, increment yang
pertama merupakan inti product. Incremental model fokus pada pendeliverian opertional
product pada tiap increment.
Pengembangan Incremental sangat berguna ketika staf tidak tersedia untuk implementasi
lengkap dengan batas waktu bisnis yang telah ditetapkan untuk proyek tersebut. Kenaikan
awal dapat diimplementasikan dengan sedikit orang. Jika produk inti diterima dengan baik,
maka staf tambahan (jika diperlukan) dapat ditambahkan untuk mengimplementasikan
kenaikan berikutnya. Selain itu, kenaikan dapat direncanakan untuk mengelola risiko teknis.

Tahap – tahap pada incremental model, yaitu:

o   Requirement: proses penentuan kebutuhan atau analisis kebutuhan.


o   Specification: proses spesifikasi dimana menggunakan analisis kebutuhan sebagai
acuannya.
o Architecture Design: perancangan software yang terbuka agar dapat diterapkan sistem
pembangunan per-bagian pada tahapan selanjutnya.
o   Code: melakukan koding.
o   Test: melakukan testing dalam model ini.

Kelebihan Mode Incremental :

1. Merupakan model dengan manajemen yang sederhana


2. Pengguna tidak perlu menunggu sampai seluruh sistem dikirim untuk
mengambil keuntungan dari sistem tersebut. Increment yang pertama sudah
memenuhi persyaratan mereka yang paling kritis, sehingga perangkat lunak
dapat segera digunakan.
3. Resiko untuk kegagalan proyek secara keseluruhan lebih rendah. Walaupun
masalah masih dapat ditemukan pada beberapa increment. Karena layanan
dengan prioritas tertinggi diserahkan pertama dan increment berikutnya
diintegrasikan dengannya, sangatlah penting bahwa layanan sistem yang
paling penting mengalami pengujian yang ketat. Ini berarti bahwa pengguna
akan memiliki kemungkinan kecil untuk memenuhi kegagalan perangkat
lunak pada increment sistem yang paling bawah.
4. Nilai penggunaan dapat ditentukan pada setiap increment sehingga
fungsionalitas sistem disediakan lebih awal.
5. Memiliki risiko lebih rendah terhadap keseluruhan pengembagan sistem,
6. Prioritas tertinggi pada pelayanan sistem adalah yang paling diuji

Kelemahan Model Incremental :

1. Kemungkinan tiap bagian tidak dapat diintegrasikan


2. Dapat menjadi build and Fix Model, karena kemampuannya untuk selalu
mendapat perubahan selama proses rekayasa berlangsung
3. Harus Open Architecture
4. Mungkin terjadi kesulitan untuk memetakan kebutuhan pengguna ke dalam
rencana spesifikasi masing-masing hasil increment.
5. Membutuhkan waktu yang relative lama untuk menghasilan product yang
lengkap

2.Model Evolusioner

Model proses evolusioner didasarkan pada pemahaman bahwa software yang dibuat akan


mengalami perubahan (evolusi) secara perlahan-lahan di sepanjang waktu. Hal ini
disesuaikan dengan perkembangan bisnis dan spesifikasi hardware.
Model evolusioner bersifat iteratif/berulang, sehingga hasil proses berupa produk yang makin
lama makin lengkap sampai versi terlengkap dihasilkan sebagai produk akhir dari proses.

Tahapan Model Evolusioner :


Pendekatan yang digunakan dalam model proses evolusioner adalah dengan mengaplikasikan
paradigma prototyping.

Berikut ini merupakan tahapan-tahapan dalam model prosesnya:


a.      Communication (Komunikasi)
Komunikasi dalam hal ini adalah bertemu dengan pelanggan untuk membicarakan
kebutuhan dan fitur-fitur apa saja yang ingin dimasukkan dalam software yang akan
dibuat.
b.      Quick Plan (Perencanaan)
Planning disini menjelaskan tentang hasil diskusi dengan pelanggan kepada semua
anggota tim pengembang. Sehingga semua anggota tim memiliki gambaran yang
sama mengenai software yang akan dibuat.
c.       Modelling Quick Design (Desain Pemodelan)
Tahapan ini dilakukan untuk membuat interface software tersebut. Interface yang
akan dibuat tentunya memprioritaskan pada kemudahan dan kenyamanan pelanggan.
d.      Construction of Prototype (Implementasi dalam bentuk prototype)
Implementasi merupakan tahapan untuk membuat software itu sendiri.
Jadi programmer akan membuat software tersebut dengan kode-kode yang dibutuhkan
untuk membentuk sebuah fitur baru dalam software tersebut.
e.      Deployment Delivery & Feedback (Testing, Penyerahan Kepada Pelanggan & Umpan
Balik)
Testing akan dilakukan untuk menguji software yang telah dibuat oleh programmer,
apakah sudah berjalan sesuai dengan keinginan atau tidak dan apakah interface yang
dibuat mudah dipahami atau tidak. Setelah software lolostahapan testing,
selanjutnya software akan diserahkan kepada pelanggan.
Setelah software telah diserahkan kepada pelanggan, tentunya pelanggan akan
memberikan umpan balik berupa komentar/keluhan mengenai kekurangan-
kekurangan yang ada pada software. Dari proses feedback ini, tahapan akan kembali
ke proses komunikasi.
Hal inilah yang membedakan model proses evolusioner dengan model yang lain.
Karena software yang diberikan pertama kali kepada pelanggan adalah
bentuk prototype (versi beta/percobaan). Bentuk prototype inilah yang sebenarnya
menentukan fitur-fitur dan kebutuhan-kebutuhan yang diinginkan pelanggan, yang tidak
didapatkan pada tahap komunikasi awal. Dengan kata lain, prototype ini sebagai alat bantu
untuk mendefinisikan kebutuhan pelanggan secara detail.
Kelima proses diatas akan terus dilakukan sampai software tersebut memenuhi keinginan
pelanggan.

Kelebihan Model Evolusioner :


1)        Lebih efektif dari metode waterfall dalam menghasilkan sistem yang memenuhi
kebutuhan langsung dari pelanggan.
2)       Ketika pelanggan memberikan feedback, software yang diberikan kepada pelanggan
dapat dilakukan pembaharuan.

Kekurangan Model Evolusioner :


1)        Proses tidak visible
Jika software dibuat dengan cepat akan terjadi pemborosan pada pembuatan dokumen yang
menggambarkan setiap versi sistem.
2)       Sisem-sistem biasanya kurang terstruktur
Kecenderungan perubahan yang terus menerus akan mengurangi struktur dari perangkat
lunak.
3)       Ketrampilan khusus jarang dimiliki
Kebanyakan sistem yang dikembangkan melalui cara ini telah diimplementasikan oleh
kelompok kecil yang memiliki ketrampilan yang tinggi dan motivasi yang kuat
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.
Penggunaan Model Proses Evolusioner :
a.   Model proses evolusioner sering kali digunakan pada saat kebutuhan konsumen dapat
didefinisikan secara jelas.
b.   Digunakan untuk pengembangan sistem yang relatif kecil.
c.   Sistem dikembangkan untuk mendukung beberapa aktivitas yang dibatasi oleh
waktu.  Contohnya sebuah sistem yang mungkin dikembangkan secara khusus untuk
peluncuran produk baru.

Anda mungkin juga menyukai