METODE
REKAYASA PERANGKAT LUNAK
Ketika
kita bekerja dengan komputer seperti pada Gambar 2.1., kita membutuhkan serangkaian
tahapan dan cara-cara tertentu agar dapat menghasilkan sesuatu yang menjadi
harapan kita. Demikian juga dalam rekayasa perangkat lunak, diperlukan
tahapan-tahapan kerja yang harus dilalui. Rekayasa perangkat lunak yang sukses
tidak hanya membutuhkan kemampuan komputasi seperti algoritma, pemrograman, dan
basis data yang kuat, namun juga perlu penentuan tujuan yang baik, identifikasi
cara penyelesaian, metode pengembangan, urutan aktifitas, identifikasi
kebutuhan sumberdaya, dan faktor-faktor lain. Hal-hal seperti ini terkait
dengan apa yang disebut dengan metode rekayasa perangkat lunak. Isi dari bab
ini tidak termasuk dalam standar kompetensi bidang keahlian RPL. Namun penulis
memandang perlu disampaikan agar kalian dapat mengetahui bagaimana sebenarnya
rekayasa perangkat lunak dilakukan dan metode-metode apa saja yang biasa
digunakan. Beberapa bagian dari bab ini mungkin agak sulit dipahami, sehingga
peran guru dalam membantu menjelaskan akan sangat diperlukan. Rangkuman bab
disampaikan di bagian akhir dari uraian isi.
TUJUAN
Setelah mempelajari bab ini
diharapkan kalian akan mampu :
o Memahami karakteristik umum model proses
dalam
rekayasa
perangkat lunak.
o Menyebutkan beberapa model rekayasa perangkat
lunak .
o Mengetahui prinsip-prinsip dari metode waterfall,
prototyping,
dan unified process.
o Memahami tahapan-tahapan dalam rekayasa
perangkat
lunak.
MODEL
PROSES REKAYASA PERANGKAT LUNAK
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 2.2.
Setiap
model yang dikembangkan mempunyai karakteristik sendiri-sendiri. Namun secara
umum ada persamaan dari model-model ini, yaitu:
• Kebutuhan terhadap definisi masalah yang
jelas. Input utama dari setiap model pengembangan perangkat lunak adalah
pendefinisian masalah yang jelas. Semakin jelas akan semakin baik karena akan
memudahkan dalam penyelesaian masalah. Oleh karena itu pemahaman masalah
seperti dijelaskan pada Bab 1, merupakan bagian penting dari model pengembangan
perangkat lunak.
• Tahapan-tahapan pengembangan yang teratur.
Meskipun model-model pengembangan perangkat lunak memiliki pola yang
berbeda-beda, biasanya model-model tersebut mengikuti pola umum analysis –
design – coding – testing - maintenance.
• Stakeholder berperan sangat penting dalam
keseluruhan tahapan pengembangan. Stakeholder dalam rekayasa perangkat lunak
dapat berupa pengguna, pemilik, pengembang, pemrogram dan orang-orang yang
terlibat dalam rekayasa perangkat lunak tersebut.
• Dokumentasi merupakan bagian penting dari
pengembangan perangkat lunak. Masing-masing tahapan dalam model biasanya
menghasilkan sejumlah tulisan, diagram, gambar atau bentuk-bentuk lain yang
harus didokumentasi dan merupakan bagian tak terpisahkan dari perangkat lunak yang
dihasilkan.
• Keluaran dari proses pengembangan perangkat
lunak harus bernilai ekonomis. Nilai dari sebuah perangkat lunak sebenarnya
agak susah di-rupiah-kan. Namun efek dari penggunaan perangkat lunak yang telah
dikembangkan haruslah memberi nilai tambah bagi organisasi. Hal ini dapatberupa
penurunan biaya operasi, efisiensi
penggunaan sumberdaya, peningkatan keuntungan organisasi, peningkatan “image”
organisasi dan
lain-lain.
Ada
banyak model pengembangan perangkat lunak, antara lain The Waterfall Model, Joint
Application Development (JAD), Information Engineering (IE), Rapid Application
Development (RAD)termasuk di dalamnya Prototyping, Unified Process (UP),
Structural Analysisand Design (SAD) dan Framework for the Application of System
thinking (FAST). Pada buku ini akan
dibahas tiga model pengembangan yaitu The Waterfall Model, Prototyping, dan
Unified
Processs
(UP).
The
waterfall model
Model
siklus hidup (life cycle model) adalah model utama dan dasar dari banyak model.
Salah satu model yangcukup dikenal dalam dunia rekayasa perangkat lunak adalah
The Waterfall Model. Ada 5 tahapan utama dalam The Waterfall Modelseperti
terlihat pada Gambar 2.3. Disebut waterfall(berarti air terjun) karena memang
diagram tahapan prosesnya mirip dengan air terjun yang bertingkat.
Tahapan-tahapan dalam The Waterfall
Model secara ringkas adalah
sebagai
berikut:
• Tahap investigasi dilakukan untuk menentukan
apakah terjadi suatu
masalah
atau adakah peluang suatu sistem informasi dikembangkan. Pada
tahapan
ini studi kelayakan perlu dilakukan untuk menentukan apakah
sistem
informasi yang akan dikembangkan merupakan solusi yang layak
• Tahap analisis bertujuan untuk mencari
kebutuhan pengguna dan organisasi
serta
menganalisa kondisi yang ada (sebelum diterapkan sistem informasi
yang
baru).
• Tahap disain bertujuan menentukan spesifikasi
detil dari komponen-komponen sistem informasi (manusia, hardware, software,
networkdan
data)
dan produk-produk informasi yang sesuai dengan hasil tahap analisis.
• Tahap implementasi merupakan tahapan untuk
mendapatkan atau
mengembangkan hardwaredan
software(pengkodean program),
melakukan
pengujian, pelatihan dan perpindahan ke sistem baru.
• Tahapan perawatan (maintenance) dilakukan
ketika sistem informasi sudah
dioperasikan.
Pada tahapan ini dilakukan monitoring proses, evaluasi dan
perubahan
(perbaikan) bila diperlukan.
Prototyping model
Prototypingadalah
salah satu pendekatan dalam rekayasa perangkat lunak yang secara langsung
mendemonstrasikan bagaimana sebuah perangkat lunak atau komponen-komponen
perangkat lunak akan bekerja dalam lingkungannya sebelum tahapan konstruksi
aktual dilakukan(Howard, 1997). Prototyping modeldapat diklasifikasikan menjadi
beberapa tipe seperti
terlihat
pada gambar 2.4.
• Reusable prototype :
Prototype
yang akan ditransformasikan menjadi produk final.
• Throwaway prototype :
Prototype
yang akan dibuang begitu selesai menjalankan maksudnya.
• Input/output prototype :
Prototype
yang terbatas pada antar muka pengguna (user interface).
• Processing prototype :
Prototype
yang meliputi perawatan file dasar dan proses-proses transaksi.
• System prototype :
Prototype
yang berupa model lengkap dari perangkat lunak.
Tahap-tahap
dalam prototypingboleh dikata merupakan tahap-tahap yang dipercepat. Strategi
utama dalam prototypingadalah kerjakan yang mudah terlebih dahulu dan sampaikan
hasil kepada pengguna sesegera mungkin. Harris (2003) membagi prototyping dalam
enam tahapan seperti terlihat pada gambar 2.5.
Tahapan-tahapan secara ringkas
dapat dijelaskan sebagai berikut:
• Identifikasi kandidat prototyping. Kandidat
dalam kasus ini meliputi user interface(menu, dialog, input dan output),
file-file transaksi utama, dan fungsi-fungsi pemrosesan sederhana.
• Rancang bangun prototype dengan bantuan
softwareseperti word processor,
spreadsheet, database, pengolah grafik, dan software CASE (Computer-Aided
System Engineering).
• Uji prototypeuntuk memastikan prototype dapat
dengan mudah dijalankan untuk tujuan demonstrasi.
• Siapkan prototype USD (User’s System
Diagram)untuk mengidentifikasi bagian-bagian dari perangkat lunak yang
di-prototype-kan.
• Evaluasi dengan penggunauntuk mengevaluasi
prototypedan melakukan perubahan jika diperlukan.
• Transformasikan prototype menjadi perangkat
lunak yang beroperasi penuhdengan melakukan penghilangan kode-kode yang tidak
dibutuhkan, penambahan program-program yang memang dibutuhkandan perbaikan dan
pengujian perangkat lunak secara berulang.
2.1.3. Unified Process dan Unified Modeling Language
Unified Process (UP) atau kadang disebut sebagai Unified Software
Development Process (USDP)
adalah
kerangka proses pengembangan yang bersifat use-case-driven, berpusat pada
arsitektur perangkat lunak, interatif dan tumbuh-kembang (Alhir, 2005).
Kerangka pengembangan ini termasuk baru dalam metodologi pengembangan perangkat
lunak. UP dapat diaplikasikan pada
berbagai
skala proyek, mulai dari skala kecil sampai dengan skala besar. Daur hidup UP
secara umum akan tampak seperti pada bagan di Gambar 2.6. Bagan ini biasa
disebut sebagai “hump chart”. Pada bagan ini terlihat ada empat tahap
pengembangan yaitu inception, elaboration, constructiondan transition. Selain
itu tampak pula sejumlah aktivitas (disciplines) yang harus
dilakukan
sepanjang pengembangan perangkat lunak, yaitu, business modeling, requirements,
analysis and design, implementation, test. Tahap dan aktivitas tersebut akan
dilakukan secaraiteratif (Ambler, 2005).
Penjelasan singkat untuk empat
tahapan dalam UP adalah sebagai berikut:
• Inception. Tahapan ini merupakan tahapan
paling awal dimana aktivitas penilaian terhadap sebuah proyek perangkat lunak
dilakukan.
Tujuannya
adalah untuk mendapatkan kesepakatan dari stakeholder sehubungan dengan tujuan
dan dana proyek.
• Elaboration. Tujuan dari tahap ini adalah
untuk mendapatkan gambaran umum kebutuhan, persyaratan dan fungsi-fungsi utama
perangkat lunak.
Hal
ini penting untuk mengetahui secara lebih baik resiko-resiko proyek, baik
meliputi resiko arsitektur perangkat lunak, perencanaan, maupun implementasi.
Pada tahap ini telah dimulai rancang bangun perangkat lunak secara iterative
melalui aktivitas-aktivitas seperti
business
modeling,
requirements, analysis dandesignmeskipun baru pada tahap awal.
• Construction. Tujuan dari tahapan ini adalah
membangun perangkat lunak sampai dengan saat perangkat lunak tersebut siap digunakan.
Titik
berat tahapan ini adalah pada penentuan tingkat prioritas kebutuhan /
persyaratan, melengkapi spesifikasinya, analisis lebih dalam, disain solusi
yang memenuhi kebutuhan dan persyaratan, pengkodean dan pengujian perangkat
lunak. Jika dimungkinkan versi awal dari
perangkat
lunak diuji cobakan untuk mendapatkan masukan dari pengguna.
• Transition.
Tahap ini difokuskan pada bagaimana menyampaikan perangkat lunak yang
sudah jadi padapengguna. Perangkat lunak akan secara resmi diuji oleh baik oleh
penguji (tester) yang kompeten maupun oleh pengguna. Beberapa aktivitas seperti
pemindahan pusat data dan pelatihan pengguna dan staf pendukungharus dilakukan
pada tahap ini.
Dalam
pengembangan perangkat lunak dengan menggunakan UP, maka tidak lepas dari
penggunaan notasi-notasi yang biasa disebut sebagai UML (Unified Modeling
Language). Meskipun UP mensyaratkan penggunaan UML, namun UML sendiri dapat
digunakan pada berbagai metodologi yang lain bahkan dapat digunakan pada bidang
selain sistem informasi. UML adalah bahasa pemodelan standar atau kumpulan teknik-teknik pemodelan untuk
men-spesifikasi, mem-visualisasi, meng-konstruksi dan mendokumentasi hasil
kerja dalam pengembangan perangkat lunak (Fowler, 2004). UML lahir dari penggabungan
banyak bahasa pemodelan grafis berorientasi obyek yang berkembang pesat pada
akhir tahun 1980an dan awal 1990an.
Secara
sederhana UML digunakan untuk menggambar sketsa sistem.
Pengembang
menggunakan UML untuk menyampaikan beberapa aspek dari sebuah perangkat lunak
melalui notasi grafis. UML mendefinisikan notasi dan semantik. Notasi merupakan
sekumpulan bentuk khusus yang memiliki makna tertentu untuk menggambarkan
berbagai diagram piranti lunak dan semantik mendefinisikan bagaimana
bentuk-bentuk tersebut dapat dikombinasikan. Ada beberapa jenis diagram yang
disediakan dalam UML, antara lain adalah:
• Use-case diagram. Diagram ini berguna untuk
menggambarkan interaksi antara pengguna dengan sebuah perangkat lunak
• Activity diagram. Diagram ini berguna untuk
menggambarkan prosedur-prosedur perilaku perangkat lunak.
• Class diagram. Diagram ini berguna untuk
menggambarkan class, fitur, dan hubungan-hubungan yang terjadi. Pada diagram
ini pendekatan berorientasi obyek memegang peranan yang sangat penting.
• Sequence diagram. Diagram ini berguna untuk
menggambarkan interaksi antar obyek dengan penekanan pada urutan proses atau
kejadian.
• State machine diagram. Diagram ini digunakan
untuk menggambarkan
bagaimana
suatu kejadian mengubah obyek selama masa hidup obyek
tersebut.
• Component diagram. Diagram ini berguna untuk
menggambarkan
struktur
dan koneksi komponen.
Tidak ada komentar:
Posting Komentar