Model Pengembangan Rekayasa Perangkat Lunak
MODEL
PENGEMBANGAN REKAYASA PERANGKAT LUNAK
Rekayasa
Perangkat Lunak Menurut Para Ahli
1.
Dari Rosa A.s dan M. Sahalahuddin (2011) RPL merupakan pembangunan dengan
mnggunakan prinsip atau konsep rekayasa dengan tujuan menghasilkan perangkat lunak
yang bernilai ekononi yang di percaya dan bekerja secara efisien menggunakan
mesin.
2.
Dari Simarmata (2010) RPL adalah sebuah profesi yang di lakukan oleh seorang
perekayasa perangkat lunak yang berkaitan dengan pembuatan dan pemeliharaan
aplikasi perangkat lunak dengan menerapkan teknologi dan praktik daru ilmu
komputer, manejemen proyek, dan bidang-bidang lainnya.
3.
Dari Pressman (2002) RPL adalah sebuah disiplin yang mengintegrasikan proses,
metode, dan alat-alat bantu bagi perkembangan proses perangkat lunak komputer.
Model
– model perangkat lunak
1. MODEL
PENGEMBANGAN REKAYASA PERANGKAT LUNAK
Rekayasa
Perangkat Lunak Menurut Para Ahli
1.
Dari Rosa A.s dan M. Sahalahuddin (2011) RPL merupakan pembangunan dengan
mnggunakan prinsip atau konsep rekayasa dengan tujuan menghasilkan perangkat lunak
yang bernilai ekononi yang di percaya dan bekerja secara efisien menggunakan
mesin.
2.
Dari Simarmata (2010) RPL adalah sebuah profesi yang di lakukan oleh seorang
perekayasa perangkat lunak yang berkaitan dengan pembuatan dan pemeliharaan
aplikasi perangkat lunak dengan menerapkan teknologi dan praktik daru ilmu
komputer, manejemen proyek, dan bidang-bidang lainnya.
3.
Dari Pressman (2002) RPL adalah sebuah disiplin yang mengintegrasikan proses,
metode, dan alat-alat bantu bagi perkembangan proses perangkat lunak komputer.
Model
– model perangkat lunak
1 Model waterfall
Metode
air terjun atau yang sering disebut metode waterfall sering
dinamakan siklus hidup klasik (classic life cycle), dimana hal ini
menggambarkan pendekatan yang sistematis dan juga berurutan pada pengembangan
perangkat lunak, dimulai dengan spesifikasi kebutuhan pengguna lalu berlanjut
melalui tahapan-tahapan perencanaan (planning), permodelan (modeling),
konstruksi (construction), serta penyerahan sistem ke para
pelanggan/pengguna (deployment), yang diakhiri dengan dukungan pada
perangkat lunak lengkap yang dihasilkan (Pressman, 2012).
Tahapan Metode Waterfall
Dalam pengembangannya metode waterfall memiliki
beberapa tahapan yang berurut yaitu: requirement (analisis
kebutuhan), design system (desain sistem), Coding (pengkodean) &
Testing (pengujian), Penerapan Program, pemeliharaan. Tahapan tahapan
dari metode waterfall adalah sebagai berikut :
Requirement Analisis
Tahap ini pengembang sistem
diperlukan komunikasi yang bertujuan untuk memahami perangkat lunak yang
diharapkan oleh pengguna dan batasan perangkat lunak tersebut. Informasi ini
biasanya dapat diperoleh melalui wawancara, diskusi atau survei langsung.
Informasi dianalisis untuk mendapatkan data yang dibutuhkan oleh pengguna.
System Design
Spesifikasi kebutuhan dari tahap
sebelumnya akan dipelajari dalam fase ini dan desain sistem disiapkan. Desain
Sistem membantu dalam menentukan perangkat keras(hardware) dan
sistem persyaratan dan juga membantu dalam mendefinisikan arsitektur sistem
secara keseluruhan.
Implementation
Pada tahap ini, sistem pertama kali
dikembangkan di program kecil yang disebut unit, yang
terintegrasi dalam tahap selanjutnya. Setiap unitdikembangkan dan
diuji untuk fungsionalitas yang disebut sebagai unit testing.
Integration & Testing
Seluruh unit yang
dikembangkan dalam tahap implementasi diintegrasikan ke dalam sistem setelah
pengujian yang dilakukan masing-masing unit. Setelah integrasi
seluruh sistem diuji untuk mengecek setiap kegagalan maupun kesalahan.
Operation &
Maintenance
Tahap akhir dalam model waterfall.
Perangkat lunak yang sudah jadi, dijalankan serta
dilakukan pemeliharaan. Pemeliharaan termasuk dalam memperbaiki
kesalahan yang tidak ditemukan pada langkah sebelumnya. Perbaikan
implementasi unit sistem dan peningkatan jasa sistem sebagai
kebutuhan baru.
Kelebihan Metode Waterfall
Kelebihan menggunakan metode air
terjun (waterfall) adalah metode ini memungkinkan untuk
departementalisasi dan kontrol. proses pengembangan model fase one by
one, sehingga meminimalis kesalahan yang mungkin akan terjadi. Pengembangan
bergerak dari konsep, yaitu melalui desain, implementasi, pengujian, instalasi,
penyelesaian masalah, dan berakhir di operasi dan pemeliharaan.
Kekurangan Metode Waterfall
Kekurangan menggunakan metode waterfall adalah
metode ini tidak memungkinkan untuk banyak revisi jika terjadi kesalahan dalam
prosesnya. Karena setelah aplikasi ini dalam tahap pengujian, sulit untuk
kembali lagi dan mengubah sesuatu yang tidak terdokumentasi dengan baik dalam
tahap konsep sebelumnya.
2.
·
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. Teknisnya adalah
sebagai berikut :
·
Sistem program untuk pendaftaran dibuat
menggunakan bahasa pemrograman PHP, dengan Sistem Database yang dibuat
menggunakan MySQL, dan diterapkan (diaplikasikan) pada PC (personal computer)
dengan sistem operasi berbasis Microsoft Windows, Linux, dan sebagainya.
·
Setelah program selesai dibuat dan
kemudian dipergunakan oleh user, programmer akan memelihara serta menambah atau
menyesuaikan program dengan kebutuhan serta kondisi user.
·
Kelebihan Model Sekuensial Linear /
Waterfall Development Model :
§ Tahapan
proses pengembangannya tetap (pasti), mudah diaplikasikan, dan prosesnya
teratur.
§ Cocok
digunakan untuk produk software/program yang sudah jelas kebutuhannya di awal,
sehingga minim kesalahannya.
§ Software
yang dikembangkan dengan metode ini biasanya menghasilkan kualitas yang baik.
§ Documen
pengembangan sistem sangat terorganisir, karena setiap fase harus terselesaikan
dengan lengkap sebelum melangkah ke fase berikutnya.
·
Kekurangan Model Sekuensial Linear /
Waterfall Development Model :
§ Proyek
yang sebenarnya jarang mengikuti alur sekuensial seperti diusulkan, sehingga
perubahan yang terjadi dapat menyebabkan hasil yang sudah didapatkan tim
pengembang harus diubah kembali/iterasi sering menyebabkan masalah baru.
§ Terjadinya
pembagian proyek menjadi tahap-tahap yang tidak fleksibel, karena komitmen
harus dilakukan pada tahap awal proses.
§ Sulit
untuk mengalami perubahan kebutuhan yang diinginkan oleh customer/pelanggan.
§ Pelanggan
harus sabar untuk menanti produk selesai, karena dikerjakan tahap per tahap,
dan proses pengerjaanya akan berlanjut ke setiap tahapan bila tahap sebelumnya
sudah benar-benar selesai.
§ Perubahan
ditengah-tengah pengerjaan produk akan membuat bingung tim pengembang yang
sedang membuat produk.
§ Adanya
waktu kosong (menganggur) bagi pengembang, karena harus menunggu anggota tim
proyek lainnya menuntaskan pekerjaannya
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 :
·
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.
·
Menggunakan sistem
Perangkat
lunak yang telah diuji dan diterima pelanggan siap untuk digunakan.
Model
Prototyping ini sangat sesuai diterapkan untuk kondisi yang beresiko tinggi di
mana masalah-masalah tidak terstruktur dengan baik, terdapat fluktuasi
kebutuhan pemakai yang berubah dari waktu ke waktu atau yang tidak terduga,
bila interaksi dengan pemakai menjadi syarat mutlak dan waktu yang tersedia
sangat terbatas sehingga butuh penyelesaian yang segera. Model ini juga dapat
berjalan dengan maksimal pada situasi di mana sistem yang diharapkan adalah
yang inovatif dan mutakhir sementara tahap penggunaan sistemnya relatif
singkat.
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.
·
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.
·
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.
2.
V-Model
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.
Berikut
penjelasan masing-masing tahap beserta tahap pengujiannya:
1.
Requirement Analysis &
Acceptance Testing
Tahap Requirement Analysis sama seperti yang terdapat dalam
model waterfall. Keluaran dari tahap ini adalah dokumentasi kebutuhan pengguna.
Acceptance
Testing merupakan tahap yang akan mengkaji apakah dokumentasi yang dihasilkan
tersebut dapat diterima oleh para pengguna atau tidak.
2.
System Design & System Testing
Dalam tahap ini analis sistem mulai merancang sistem dengan
mengacu pada dokumentasi kebutuhan pengguna yang sudah dibuat pada tahap
sebelumnya. Keluaran dari tahap ini adalah spesifikasi software yang meliputi
organisasi sistem secara umum, struktur data, dan yang lain. Selain itu tahap
ini juga menghasilkan contoh tampilan window dan juga dokumentasi teknik yang
lain seperti Entity Diagram dan Data Dictionary.
3.
Architecture Design &
Integration Testing
Sering juga disebut High Level Design. Dasar dari pemilihan
arsitektur yang akan digunakan berdasar kepada beberapa hal seperti: pemakaian
kembali tiap modul, ketergantungan tabel dalam basis data, hubungan antar
interface, detail teknologi yang dipakai.
4. Module Design &
Unit Testing
Sering juga disebut sebagai Low Level Design. Perancangan
dipecah menjadi modul-modul yang lebih kecil. Setiap modul tersebut diberi
penjelasan yang cukup untuk memudahkan programmer melakukan coding. Tahap ini
menghasilkan spesifikasi program seperti: fungsi dan logika tiap modul, pesan
kesalahan, proses input-output untuk tiap modul, dan lain-lain.
5. Coding
Dalam
tahap ini dilakukan pemrograman terhadap setiap modul yang sudah dibentuk.
Keuntungan
V Model
Bahasa
yang digunakan untuk merepresentasikan konsep V model menggunakan bahasa
formal. Contoh : dengan menggunakan objek model ataupun frame-frame •
Meminimalisasikan kesalahan pada hasil akhir karena ada test pada setiap
prosesnya
Penyesuaian
yang cepat pada projek yang baru
Memudahkan
dalam pembuatan dokumen projek
Biaya
yang murah dalam perawatan dan modifikasinya
V
Model sangat fleksibel. V Model mendukung project tailoring dan penambahan dan
pengurangan method dan tool 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. User dari V Model berpartisipasi dalam change control board yang
memproses semua change request terhadap V Model.
Kerugian
V Model
Aktifitas
V-Model hanya difokuskan pada projectnya saja, bukan pada keseluruhan
organisasi. V-Model adalah proses model yang hanya dikerjakan sekali selama
project saja, bukan keseluruhan organisasi.
Prosesnya
hanya secara sementara. Ketika project selesai, jalannya proses model
dihentikan. Tidak berlangsung untuk keseluruhan organisasi.
Metode
yang ditawarkan terbatas. Sehingga kita tidak memiliki cara pandang dari metode
yang lain. Kita tidak memiliki kesempatan untuk mempertimbangkan jika ada tools
lain yang lebih baik.
oolnya
tidak selengkap yang dibicarakan. SDE (Software Development Environment).Tidak
ada tools untuk hardware di V-Model. Tool yang dimaksud adalah “software yang
mendukung pengembangan atau pemeliharaan / modifikasi dari system IT.
V
Model adalah model yang project oriented sehingga hanya bisa digunakan sekali
dalam suatu proyek.
1. Foundain Model
Model
Fontain merupakan perbaikan logis dari model waterfall, langkah langkah dan
urutan prosedurnya pun masih sama. Namun pada model Fountain ini kita dapat
mendahulukan sebuah step ataupun melewati step tersebut, akan tetapi ada yang
tidak bisa anda lewati stepnya seperti kita memerlukan design sebelum melakukan
coding jika itu di lewati maka akan ada tumpang tindih dalam siklus SDLC.
Fountain
Model merupakan model yang memungkinkan pekerjaan saling tumpang tindih dalam
siklus pengembangan sistem tentunya dengan melihat pertimbangan yang ada dan
disesuaikan dengan kebutuhan pengembangan. Beberapa tahapan dan pengulangan
yang terjadi tersebut akan berjalan secara pararel. Model fountain ini
merupakan siklus hidup berorientasi objek sehingga akan lebih fokus pada
bagian-bagian keseluruhan sistem yang dikenal dengan nama subsistem.
(Rifqi,-2018)
Metode fountain model merupakan model metode perangkat lunak yang diterapkan untuk pembangunan sistem yang bersifat object oriented. Tahapan-tahapan pengembangan yang dilakukan adalah anal isis kebutuhan, spesifikasi Kebutuhan user, perancangan sistem, perancangan program, coding, unit testing, sistem testing, implementasi, pemeliharaan dan pengembangan lebih lanjut.
Tahapan-tahapan tersebut saling terkait dan saling mempengaruhi (life cycle). (Iwan Rijayana, 2010)
Metode fountain model merupakan model metode perangkat lunak yang diterapkan untuk pembangunan sistem yang bersifat object oriented. Tahapan-tahapan pengembangan yang dilakukan adalah anal isis kebutuhan, spesifikasi Kebutuhan user, perancangan sistem, perancangan program, coding, unit testing, sistem testing, implementasi, pemeliharaan dan pengembangan lebih lanjut.
Tahapan-tahapan tersebut saling terkait dan saling mempengaruhi (life cycle). (Iwan Rijayana, 2010)
Langkah
– Langkah dalam Model Fountain:
· User
requirements analysis ( Analisis Kebutuhan Pengguna), disini kita sebagai
programmer dalam mengembangkan sistem harus menganalisa kebutuhan terhadap
pengguna baik itu dalam cara penggunaan yang mudah maupun efisiensi terhadap
sistem yang pengguna butuhkan.
· User
requirements specifications (Spesifikasi kebutuhan pengguna), dalam tahap
ini kita harus tahu apa saja yang dibutuhkan pengguna dalam sistem yang sedang
kita kembangkan.
·
Software requirements specifications
(Spesifikasi persyaratan perangkat lunak), dalam tahap ini
kita harus menyesuaikan software yang kita buat jika di lihat dari sisi
pengguna. Jika pengguna awam tentunya kita harus menciptakan Software yang
mudah digunakan.
·
Systems/broad design (logical design),
sebelum pengimplementasi dalam coding kita harus mendesain sistem yang akan
kita buat / kembangkan.
·
Program/detailed design (physical
design), dalam tahap ini kita membuat desain yang mendekati
fisik atau secara deail.
·
Implementation/coding,
setelah tahap desain barulah kita mengimplementasikan dalam coding
·
Program testing: units,
dalam tahap ini kita testing / cek kembali unit nit yang dibutuhkan dalam
sistem yang sedang kita kembangkan .
·
Program testing: system,
dalam tahap ini kita test kembali sistem yang telah kita buat.
·
Program use,
dalam tahap ini kita ajarkan ke pengguna program yang telah kita buat.
·
Software maintenance,
setelah sistem di pasang maka tentunya kita harus rutin mengupdate software /
sistem yang telah kita buat agar terhindar dari kesalaha / bugs.
Kelebihan Fountain Model
Perbaikan logis dari model waterfall, langkah langkah
dan urutan prosedurnya pun masih sama. Namun pada model Fountain ini kita
dapat mendahulukan sebuah step ataupun melewati step tersebut
Kekurangan Fountain Model
Ada yang tidak bisa anda lewati stepnya seperti kita
memerlukan design sebelum melakukan coding jika itu di lewati maka akan ada
tumpang tindih dalam siklus SDLC
Manfaat Fountain Model
Hampir sama dengan Waterfall, namun cara kerja dari
usernya saja yang berbeda
Contoh Implementasi Fountain Model
Apllkasi Ensiklopedia Hewan Vertebrata Berbasis
Multimedia (Iwan Rijayana, 2010)
1.
Spiral
Mode
Model spiral diperkenalkan pertama
kali oleh Barry Boehm pada makalahnya yang berjudul Spiral Model of Software
Development and Enhancement. Barry Boehm menjelaskan bahawa model spiral
merupakan model yang sangat berguna untuk melakukan pembangunan proyek-proyek
besar dan prosesnya dilakukan dengan memperhatikan resiko proyek sehingga pada
akhirnya akan menghasilkan model proses yang tepat sesuai kebutuhan pengguna.
Model Spiral adalah salah satu metode
yang dapat digunakan dalam pengembangan perangkat lunak. Model spiral merupakan
penggabungan dari model prototyping dan model waterfall. Model prototyping yang
fokus pada penyajian atau presentasi kepada user dengan format input dan output
kemudian perangkat lunak akan dievaluasi. Model waterfall yang fokus kepada
proses pengembangan perangkat lunak yang sistematis atau berurutan. Model
spiral menekankan pada Analisa resiko setiap tahapannya.
Fungsi model spiral adalah untuk
melakukan perubahan, penambahan dan pengembangan perangkat lunak dengan
memaksimalkan aspek kecepatan dan ketepatan berdasarkan keinginan dan kebutuhan
penggunanya.
Tahapan dalam Spiral
Model
Dalam penerapan Model Spiral,
terdapat lima tahapan untuk merealisasikan penggunaannya, yaitu sebagai
berikut:
1.
Tahap Liason
Tahap ini berhubungan dengan
komunikasi antara pihak-pihak yang terlibat dalam pengembangan softaware
(seperti: system analyst) dengan pelanggan (user). Tujuannya adalah memperbaiki
dan mengembangan software sesuai kebutuhan dan keinginan hingga memuaskan
pelanggan.
2.
Tahap planning
Tahap perencanaan meliputi estimasi
biaya yang digunakan, batas waktu, pengaturan jadwal, identifikasi lingkungan
kerja, sumber-sumber informasi untuk melakukan iterasi (Teknik perulangan).
Hasil dari tahapan ini adalah dokumen spesifikasi kebutuhan sistem dan bisnis.
3.
Tahap analisis risiko
Tahap analisis reisiki berfungsi
untuk mengidentifikasi resiko yang berpotensi akan terjadi dan menghasilkan
solusi alternatif secara teknis dan manajemen saat strategi mitigasi (upaya
untuk mengurangi resiko bencana) direncanakan dan diselesaikan.
4.
Tahapan rekayasa (engineering)
Pada tahap rekayasa, beberapa
kegiatan ini yang akan dilakukan, yaitu:
·
Menguji, coding dan mengembangkan software
·
Menginstal software
·
Membuat prototype
·
Mendesain dokumen
·
Meringkas suatu pengujian software
·
Membuat laporan atas kekurangan dari
software agar segera diperbaiki
5.
Tahap evaluasi
Pada tahap evaluasi, system analyst
membutuhkan masukan dan tanggapan dari para user dalam mengevaluasi
perangkat/produk yang diuji dan memastikan bahwa produk dibutuhkan sesuai
ketentuan yang telah dibicarakan diawal dengan user. System analyst memastikan
pelanggan puas dengan produk yang akan dihasilkan untuk menjawab persoalan
bisnis mereka. Selain itu, system analyst harus tetap memantau resiko yang akan
terjadi seperti faktor-faktor yang dapat menyebabkan cost overrun (pembengkakan
biaya).
Kelebihan dalam
menggunakan model spiral :
1.
Pembangunan dan perubahan perangkat lunak
yang terjadi dapat diselesaikan secara sistematis
2.
Mudah dalam mengestimasi biaya karena
proses pembuatan prototype yang jelas dan terencana dalam tahapan yang
sistematis
3.
Manajemen dan analisa risiko yang lebih
cepat dan mudah
4.
Mudah dalam melakukan perubahan kebutuhan
dan dokumentasi
5.
Produksi software bisa terjadi lebih cepat
Kekurangan dalam
menggunakan model spiral :
1.
Tidak cocok dan sulit diimplementasikan
dalam projek kecil
2.
Memakan waktu yang cukup lama
3.
Membutuhkan best practice atau pengalaman
sebelumnya karena proses yang sangat kompleks
Resiko dalam tahap
planning cukup besar. Misalnya terjadi perbedaan dalam jadwal pengembangan dan
anggaran belanja.
1. Extreame Programing
Extreme Programming adalah suatu
model yang termasuk dalam pendekatan agile yang diperkenalkan
oleh Kent Back. Menurut penjelasannya, definisi XP adalah sebagai berikut: “Extreme
Programming (XP) adalah metode pengembangan software yang cepat, efisien,
beresiko rendah, fleksibel, terprediksi, scientific, dan menyenangkan.“.
Model ini cenderung menggunakan
pendekatan Object-Oriented. Tahapan-tahapan yang harus dilalui
antara lain: Planning, Design, Coding, dan Testing. Sasaran
Extreme Programming adalah tim yang dibentuk berukuran antara kecil sampai
medium saja, tidak perlu menggunakan sebuah tim yang besar. Hal ini dimaksudkan
untuk menghadapi requirements yang tidak jelas maupun terjadinya perubahan-perubahan
requirements yang sangat cepat. Extreme Programming merupakan agile methods
yang paling banyak digunakan dan menjadi sebuah pendekatan yang sangat
terkenal.
Core Value Extreme Programming,
yaitu:
Core Value Extreme Programming
·
Komunikasi (Communication)
Kurangnya komunikasi merupakan
penyebab utama kegagalan pengembangan software. Oleh karena itu Extreme
Programming(XP) memfokuskan diri pada hubungan komunikasi yang baik antar
tim-klien, anggota tim, dan manajer proyek.Komunikasi dalam XP dibangun dengan melakukan
pemrograman berpasangan (pair programming).Klien harus dilibatkan dalam proses
pengembangan perangkat lunaknya dengan tujuannya untuk memberikan pandangan
pengembang sesuai dengan pandangan pengguna sistem yang dibangun.
·
Kesederhanaan (Simplicity)
Extreme Programming (XP) melakukan
semua pekerjaan dengan sederhana dan praktis tanpa mengurangi fungsi utamanya.
Dalam pengerjaan, metode yang dipilih adalah metode yang pendek dan simpel.
Jangan terlalu rumit dalam membuat desain, hilangkan fitur yang tidak ada
gunanya atau hapus fungsi yang tidak terpakai. Dengan kata lain lebih baik
melakukan hal yang sederhana saat sekarang (sesuai kebutuhan) dan
mengembangkannya nanti jika diperlukan.
·
Umpan balik (Feedback)
Selalu evaluasi perkembangan
perangkat lunak yang sedang dikerjakan. Segala informasi harus dikumpulkan
setiap interval waktu yang konsisten dan kesalahan-kesalahan yang muncul selama
proses pengembangan harus dibahas dan dicari solusinya. Umpan balik tersebut
berfungsi sebagai indikator kemajuan proyek dan menginformasikan pemimpin
proyek apabila perubahan perlu dibuat.
·
Keberanian (Courage).
Programmer Extreme Programming (XP)
didorong untuk berani bereksperimen dan menulis ulang kode jika mereka tidak
puas dengan kode atau desain yang sudah ada. Hal ini membantu mempertahankan
moral serta intgritas para pengembang proyek dan dapat mendukung lebih lanjut
komunikasi dengan anggota proyek lainnya.
Tahapan Dalam XP Programming
Tahapan
Dalam Etreme (XP) Programming, yaitu:
Aktivitas planning dimulai dengan
membentuk user stories. Anggota XP team kemudian menilai setiap story dan
menentukan cost — diukur dalam development week.
Planning.
Customer dan XP team bekerja bersama untuk memutuskan bagaimana grup story
untuk release berikutnya (software increment berikutnya) untuk dibangun oleh XP
team. Jika komitmen telah dibuat, XP team akan membangun story-story dengan
cara :
Semua story segera diimplemetasikan
(dalam beberapa minggu)
1. Story dengan value tertinggi akan dipindahkan dari jadwal dan dimplementasikan pertama.
1. Story dengan value tertinggi akan dipindahkan dari jadwal dan dimplementasikan pertama.
2. Story dengan resiko paling tinggi
akan diimplemetasikan terlebih dulu. Setelah project pertama direlease dan
didelivery, XP team memperhitungkan kecepatan project. Selama development,
customer dapat menambah story, merubah value, membagi story atau menghapusnya.
Design.
XP menggunakan CRC card, untuk mengenali dan mengatur object oriented class
yang sesuai dengan software increment.
Coding.
Sebelum membuat code, lebih baik membuat unit test tiap story untuk dimasukkan
dalam software increment. XP menyarankan agar dua orang bekerja bersama pada
satu komputer workstation untuk membuat code dari satu story (pair
programming), untuk menyediakan real time problem solving dan jaminan real time
quality. Setelah pair programming selesai, code diintegrasikan dengan kerja
laiinnya (continuous integration).
Testing.
Unit test yang telah dibuat harus diimplementasikan menggunakan suatu framework
dan diatur ke dalam universal testing suite, integrasi dan validasi sistem
dapat dilakukan setiap hari. Customer test (acceptance test) dilakukan oleh
customer dan fokus pada keseluruhan fitur dan fungsional sistem. Acceptance
test diperoleh dari customer stories yang telah diimplemetasikan sebagai bagian
dari software release.
Berikut Siklus Hidup dalam XP
Programming.
Extreme Programming tepat untuk
dipergunakan untuk pembuatan program yang:
·
Membutuhkan perubahan yang cepat
(misalnya: Game Mobile)
·
Proyek beresiko tinggi dengan tantangan
yang berat
·
Tim programmer sedikit, yaitu sekitar 2–10
orang
·
Adanya permintaan dari pelanggan secara
langsung
Kelebihan
Extreme Programming, yaitu:
·
Meningkatkan kepuasan kepada klien
·
Pembangunan system dibuat lebih cepat
·
Menjalin komunikasi yang baik dengan
client.
·
Meningkatkan komunikasi dan sifat saling
menghargai antar developer.
Kelemahan
Extreme Programming, yaitu:
·
Cerita-cerita yang menunjukkan
requirements dari pelanggan kemungkinan besar tidak lengkap sehingga Developer harus
selalu siap dengan perubahan karena perubahan akan selalu diterima.
·
Tidak bisa membuat kode yang detail di
awal (prinsip simplicity dan juga anjuran untuk melakukan apa
yang diperlukan hari itu juga).
·
XP tidak
memiliki dokumentasi formal yang dibuat selama pengembangan. Satu-satunya dokumentasi
adalah dokumentasi awal yang dilakukan oleh user.
Alur Proses
Agile model memiliki beberapa fitur pada saat melakukan pengembangan perangkat lunak diantaranya adalah: (Ependi, 2015)
Contoh Implementasi Extreme Programming
Rancang Bangun Sistem Informasi Administrasi
Hotel Dengan Metode Extreme Programming (Akbar, 2017)
1. Agile Model
Agile software development atau sering hanya disebut “agile” adalah
kumpulan dari metode-metode pengembangan perangkat lunak yang berbasis pada
Iterative dan Incremental Model. Agile memungkinkan mengembangkan perangkat
lunak yang memiliki reequirement yang mudah berubah dengan cepat.
Dalam
situasi pembangunan software harus membangun sistem bisnis yang besar dan
penting. Jangkauan dan kompleksitas sistem harus dimodelkan sehingga dapat
dimengerti, masalah dapat dibagi menjadi lebih kecil dan kualitas dapat dijaga
pada tiap langkah pembangunan software. Agile Modeling adalah suatu metodologi
yang praktis untuk dokumentasi dan pemodelan sistem software. Agile Modeling
adalah kumpulan nilai- nilai, prinsip dan praktek-praktek untuk memodelkan
software agar dapat diaplikasian pada software development proyek secara
efektif. (Wulan, 2016)
Alur Proses
Agile model memiliki beberapa fitur pada saat melakukan pengembangan perangkat lunak diantaranya adalah: (Ependi, 2015)
·
Iterasi yang cepat dan
pengiriman software yang befungsi secara regular memastikan kepuasan pelanggan.
·
Perubahan yang telat
dapat ditangani dengan mudah dan juga diterima secara terbuka.
·
Perkembangan dinilai
berdasarkan implementasi software.
·
Komunikasi pelanggan
dan pengguna ditekankan secara bertatap muka.
·
Setiap pertemuan dengan
anggota tim dilakukan secara bertatap muka.
·
Setiap anggota tim
pengembang adalah orang yang berkomitmen dan bermoivasi timggi serta kompeten dan dapat dipercaya.
Beberapa ciri dari metode ini:
• Suatu proyek lebih cepat rilis.
• Perubahan requirement dapat sering dilakukan.
• Interaksi antara client dengan developer dalam menentukan langkah proyek berikutnya
• Proyek dibangun antar tim.
• Tim mengorganisasikan dirinya sendiri.
• Tim bekerja dalam kecepatan yang bisa dipertahankan.
• Tim dapat mereview tingkat keberhasilan dan kegagalan mereka.
• Desain dan implementasi disusun sesederhana mungkin.
• Perubahan requirement dapat sering dilakukan.
• Interaksi antara client dengan developer dalam menentukan langkah proyek berikutnya
• Proyek dibangun antar tim.
• Tim mengorganisasikan dirinya sendiri.
• Tim bekerja dalam kecepatan yang bisa dipertahankan.
• Tim dapat mereview tingkat keberhasilan dan kegagalan mereka.
• Desain dan implementasi disusun sesederhana mungkin.
Kelebihan metode ini:
• Proses Iterative dan Incremental.
• Requirement dapat berubah sewaktu-waktu.
• Pelacakan requirement dengan melihat Backlog produk.
• Keterlibatan user secara aktif.
• Rilis yang lebih cepat dan berkala, fungsi dirilis setiap akhir iterasi.
• Testing dilakukan setiap saat.
• Requirement dapat berubah sewaktu-waktu.
• Pelacakan requirement dengan melihat Backlog produk.
• Keterlibatan user secara aktif.
• Rilis yang lebih cepat dan berkala, fungsi dirilis setiap akhir iterasi.
• Testing dilakukan setiap saat.
Kekurangan dari metode ini:
• Interaksi dengan client yang kadang terlalu berlebihan.
• Agile sulit diimplementasikan dalam proyek yang berskala besar.
• Waktu perencanaan proyek yang singkat.
• Membutuhkan manajemen tim yang terlatih.
• Agile sulit diimplementasikan dalam proyek yang berskala besar.
• Waktu perencanaan proyek yang singkat.
• Membutuhkan manajemen tim yang terlatih.
Manfaat Agile Model
· Metodologi
pengembangan Agile memberikan kesempatan untuk menilai arah proyek melalui
siklus pengembangan
·Dengan berfokus pada
pengulangan siklus kerja disingkat serta produk fungsional mereka menghasilkan,
metodologi tangkas digambarkan sebagai “berulang” dan “incremental”.
·Dalam paradigma
tangkas, setiap aspek persyaratan pembangunan, desain, dan lain-lain terus
ditinjau kembali selama pemakaian.
Contoh Implementasi
Agile Model
Pengembangan E-Trace
Alumni Denganmenggunakan Pendekatanmetode Agile (Ependi, 2015)
Daftar
pustaka
·
MODEL
V UNTUK PERANGKAT LUNAK MANAGEMENT PENDAFTARAN ANGGOTA DI PERPUSTAKAAN DAERAH KABUPATEN KUDUS.PDF
·
Model
Prototyping Pada Pengembangan Sistem
Informasi.PDF
·
https://medium.com/skyshidigital/manajemen-proyek-waterfall-atau-agile-mana-lebih-baik-b92901f88159
Komentar
Posting Komentar