PROTOTYPING DAN PEMODELAN PERANGKAT LUNAK
PROTOTYPING PERANGKAT LUNAK
Dalam
proses analisis proses pendekatan dilakukan, dan salah satunya adalah prototyping. Prototyping adalah sebuah
proses pengumpulan persyaratan, pengaplikasian prinsip analisis, dan penyusunan
model perangkat lunak yang akan dibangun untuk penilaian dan pengembangan.
Akhirnya ada lingkungan yang membutuhkan konstruksi prototipe pada awal
analisis, karena model adalah satu-satunya alat dimana persyaratan dapat
ditarik secara efektif. Model tersebut kemudian dikembangkan dalam perangkat
lunak produksi.
1.
Prototype kertas, menggambarkan system dengan
menggunakan media kertas. Prototype kertas tidak bisa diuji coba dan
diimplementasikan.
2.
Prototype berbasis PC, memanfaatkan program aplikasi
untuk menunjukkan interaksi manusia dan komputer.
3.
Prototype kerja, merupakan implementasi sebagian fungsi
system yang ingin dilihat unjuk kerjanya, dan diwujudkan dalam sebuah program.
4.
Prototype program, program benar-benar dibuat dan dapat
berfungsi dengan baik. Selain itu, program juga terus menerus ditambah dan
dilengkapi.
Paradigma
prototyping dapat terbatas atau tidak terbatas. Pendekatan terbatas disebut throaway prototyping. Dengan menggunakan
pendekatan ini, prototipe sebagai sebuah demonstrasi dari sebuah persyaratan.
Sedangkan pendekatan tidak terbatas, yang disebut juga evolutionary prototyping., menggunakan prototipe sebagai bagian
pertama dari aktivitas analisis yang akan diteruskan ke dalam desain dan
konstruksi. Sebelum pendekatan terbatas atau tidak terbatas dilaksanakan perlu
dilakukan apakah sistem yang akan dibangun dapat menerima protoyping atau
tidak. Sejumlah faktor perlu diperhatikan, diantaranya: area aplikasi,
kompleksitas aplikasi, karakteristik pelanggan, dan karakteristik proyek.
Beberapa
kelebihan/manfaat yang bisa diambil bila kita menggunakan prototyping antara
lain :
1.
Adanya komunikasi yang intensif antara pengembang dan
user
2.
Membantu dalam analisis, karena kebutuhan user telah
dipahami dengan baik oleh pengembang sehingga dapat meminimalkan salah persepsi
antara kedua pihak.
3.
Peran user meningkat, karena user dapat melakukan
evaluasi dan masukan baru setiap saat.
4.
Pengembangan lebih cepat, karena program bisa langsung
dibuat dan user dapat melihat setiap tahap pembuatan program.
5.
Mudah dalam implementasinya, karena user sudah sejak
awal terlibat sehingga sudah akrab dan tidak merasa asing terhadap program.
Sedangkan
kelemahan memakai prototype adalah :
- User sibuk, karena user dan pengembang harus sama-sama memiliki komitmen untuk sering bertemu dan membahas kebutuhannya
- User ingin program segera selesai sehingga pengembang sering mengabaikan dokumentasi
- User berharap terlalu banyak, seringnya evaluasi dan komunikasi membuat user sering berubah fikiran dan tidak pasti akan kebutuhannya.
PEMODELAN REKAYASA PERANGKAT LUNAK
Di dalam suatu industri dikenal
berbagai macam proses, demikian juga halnya dengan industri perangkat lunak.
Perbedaan proses yang digunakan akan menguraikan aktivitas-aktivitas proses dalam
cara-cara yang berlainan. Perusahaan yang berbeda menggunakan proses yang
berbeda untuk menghasilkan produk yang sama. Tipe produk yang berbeda mungkin
dihasilkan oleh sebuah perusahaan dengan menggunakan proses yang berbeda. Namun
beberapa proses lebih cocok dari lainnya untuk beberapa tipe aplikasi. Jika
proses yang salah digunakan akan mengurangi kualitas kegunaan produk yang
dikembangkan.
Karena
banyaknya variasi dalam model proses yang digunakan maka tidak mungkin
menghasilkan gambaran-gambaran yang reliabel untuk alokasi biaya dalam
aktivitas-aktivitas ini.
Modifikasi
perangkat lunak biasanya lebih dari 60 % dari total biaya pembuatan perangkat
lunak. Presentasi ini terus bertambah karena lebih banyak perangkat lunak
dihasilkan dan dipelihara. Pembuatan perangkat lunak untuk suatu perubahan
adalah penting. Proses perangkat lunak komplek dan melibatkan banyak aktivitas.
Seperti produk, proses juga
memiliki atribut dan karakteristik seperti :
- Understandability, yaitu sejauh mana proses secara eksplisit ditentukan dan bagaimana kemudahan definisi proses itu dimengerti.
- Visibility, apakah aktivitas-aktivitas proses mencapai titik akhir dalam hasil yang jelas sehingga kemajuan dari proses tersebut dapat terlihat nyata/jelas
- Supportability, yaitu sejauh mana aktivitas proses dapat didukung oleh CASE
- Acceptability, apakah proses yang telah ditentukan oleh insinyur dapat diterima dan digunakan dan mampu bertanggung jawab selama pembuatan produk perangkat lunak
- Reliability, apakah proses didesain sedimikian rupa sehingga kesalahan proses dapat dihindari sebelum terjadi kesalahan pada produk.
- Robustness, dapatkah proses terus berjalan walaupun terjadi masalah yang tak diduga
- Maintainability, dapatkah proses berkembang untuk mengikuti kebutuhan atau perbaikan
- Rapidity, bagaimana kecepatan proses pengiriman sistem dapat secara lengkap memenuhi spesifikasi.
Tidak mungkin untuk mengoptimalkan semua atribut
proses secara serentak. Contohnya, jika pengembangkan proses cepat dilakukan
mungkin kita perlu mengurangi visibility proses karena pembuatan proses yg
nyata berarti pembuatan dokumen secara teratur. Ini akan memperlambat proses.
Pemodelan
dalam rekayasa perangkat lunak merupakan suatu hal yang dilakukan ditahap awal
dan akan mempengaruhi pekerjaan-pekerjaan selanjutnya dalam rekayasa perangkat
lunak tersebut.
1.
Model Waterfall
Langkah-langkah yang penting dalam model ini adalah
·
Penentuan dan analisis spesifikasi
Jasa, kendala dan tujuan dihasilkan dari konsultasi
dengan pengguna sistem. Kemudian semuanya itu dibuat dalam bentuk yang dapat
dimengerti oleh user dan staf pengembang.
·
Desain sistem dan perangkat lunak
Proses desain sistem membagi kebutuhan-kebutuhan
menjadi sistem perangkat lunak atau perangkat keras. Proses tersebut
menghasilkan sebuah arsitektur sistem keseluruhan. Desain perangkat lunak
termasuk menghasilkan fungsi sistem perangkat lunak dalam bentuk yang mungkin
ditransformasi ke dalam satu atau lebih program yang dapat dijalankan.
·
Implementasi dan ujicoba unit
Selama tahap ini desain perangkat lunak disadari
sebagai sebuah program lengkap atau unit program. Uji unit termasuk pengujian
bahwa setiap unit sesuai spesifikasi.
·
Integrasi dan ujicoba sistem
Unit program diintegrasikan dan diuji menjadi
sistem yang lengkap untuk menyakinkan bahwa persyaratan perangkat lunak telah
dipenuhi. Setelah ujicoba, sistem disampaikan ke pelanggan.
·
Operasi dan pemeliharaan
Normalnya, ini adalah phase yang terpanjang. Sistem
dipasang dan digunakan. Pemeliharaan termasuk pembetulan kesalahan yang tidak ditemukan
pada langkah sebelumnya. Perbaikan implementasi unit sistem dan peningkatan
jasa sistem sebagai kebutuhan baru ditemukan.
Gambar. Pemodelan waterfall
Dalam prakteknya, setiap langkah sering tumpang
tindih dan saling memberi informasi satu sama lain. Proses perangkat lunak
tidak linier dan sederhana tapi mengandung urutan iterasi dari aktivitas
pengembangan. Selama di langkah terakhir, perangkat lunak telah digunakan.
Kesalahan dan kelalaian dalam menentukan kebutuhan perangkat lunak original
dapat diatasi
Sayangnya, model ini banyak mengandung iterasi
sehingga membuat sulit bagi pihak manajemen untuk memeriksa seluruh rencana dan
laporan. Maka dari itu, setelah sedikit iterasi, biasanya bagian yang telah
dikembangkan akan dihentikan dan dilanjutkan dengan langkah pengembangan
selanjutnya. Masalah-masalah selama resolusi selanjutnya, dibiarkan atau
diprogram. Pemberhentian yang prematur dari persyaratan akan berarti bahwa
sistem tidak akan sesuai dengan keinginan user. Mungkin juga sistem terstruktur
secara jelek yang sebenarnya merupakan masalah desain akan dibiarkan karena
terkalahkan oleh trik implementasi.
Masalah pendekatan waterfall
adalah ketidakluwesan pembagian project ke dalam langkah yang nyata/jelas.
Sistem yang disampaikan kadang-kadang tidak dapat digunakan sesuai keinginan customer.
Namun demikian model waterfall mencerminkan kepraktisan engineering.
Konsekuensinya, model proses perangkat lunak yang berdasarkan pada pendekatan
ini digunakan dalam pengembangan sistem perangkat lunak dan hardware yang luas.
2.
Model Spiral
Model spiral
dibagi menjadi sejumlah aktivitas kerangka kerja, disebut juga wilayah tugas,
antara tiga sampai 6 wilayah tugas :
§
Komunikasi pelanggan
Tugas-tugas
yang dibutuhkan untuk membangun komunikasi yang efektif antara pengembang dan
pelanggan
§
Perencanaan
Tugas-tugas
yang dibutuhkan untuk mendefinisikan sumber-sumber daya, ketepatan waktu dan
proyek informasi lain yang berhubungan
§
Analisis resiko
Tugas-tugas
yang dibutuhkan untuk memperkirakan resiko-resiko, baik manajemen maupun
teknis.
§
Perekayasaan
Tugas-tugas
yang dibutuhkan untuk membangun satu atau lebih representasi aplikasi.
§
Konstruksi dan peluncuran
Tugas-tugas
yang dibutuhkan untuk mengkonstruksi, menguji, memasang dan memberikan
pelayanan pada pemakai (missal pelatihan dan dokumentasi).
§
Evaluasi pelanggan
Tugas-tugas
yang dibutuhkan untuk memperoleh umpan balik dari pelanggan dengan didasarkan
pada evaluasi representasi perangkat lunak, yang dibuat selama masa
perekayasaan dan diimplementasikan selama masa pemasangan.
Model spiral
menjadi sebuah pendekatan yang realistis bagi perkembangan sistem dan perangkat
lunak skala besar. Karena perangkat lunak terus bekerja selama proses bergerak,
pengembang dan pemakai memahami dan bereaksi lebih baik terhadap resiko dari
tiap tingkat evolusi.
Gambar. Model
spiral
3.
Rational Unified Process (RUP)
Rational Unified Process
adalah proses rekayasa perangkat lunak yang menyediakan pendekatan disiplin
untuk menandai tugas-tugas dan tanggung jawab dalam pengembangan organisasi.
RUP berfokus pada perangkat lunak kualitas tinggi yang mengakomodasi kebutuhan end
user dengan jadwal dan anggaran biaya
yang dapat diprediksikan.
RUP meningkatkan
produktivitas team dengan menyediakan kemudahan bagi setiap anggota team untuk
mengakses pengetahuan yang digunakan untuk aktivitas pengembangan sehingga
semua anggota team turut ambil bagian dalam pengembangan perangkat lunak.
Gambar.
Rational Unified Process
§
Business modeling
Masalah
terbesar dalam usaha pengembangan bisnis adalah komunitas bisnis dengan
perekayasa perangkat lunak tidak saling berkomunikasi dengan baik. Hal ini
mengakibatkan output dari dunia bisnis tidak digunakan untuk input rekayasa
software dengan semestinya demikian pula sebaliknya. RUP mengatasi masalah ini
dengan menyediakan bahasa dan proses umum untuk kedua komunitas ini yang
menunjukkan bagaimana membuat dan memelihara perencanaan langsung antara model
bisnis dengan perangkat lunak.
Dalam bisnis modeling kita
mendokumentasikan proses bisnis menggunakan use case bisnis yang
menjamin pengertian yang sama diantara pihak-pihak pengambil keputusan mengenai
proses bisnis apa yang dibutuhkan untuk mendukung pengembangan organisasi.
§
Requirements
Requirements
mendeskripsikan apa yang seharusnya dilakukan oleh sistem dan memastikan bahwa
pengembang dan pelanggan menyetujui deskripsi tersebut. Untuk mencapai hal ini
kadang kita harus memaksakan pemunculan, pengorganisasian dan pendokumentasian
permintaan; melacak dan mendokumentasikan penawaran serta pengambilan
keputusan.
§
Analysis and design
Analisis
dan desain menunjukkan bagaimana sistem akan direalisasikan dalam fase
implementasi. Kita ingin membangun sistem yang :
-
membentuk tugas dan fungsi sesuai spesifikasi use case
-
memenuhi semua permintaan (requirements)
-
terstruktur dengan kuat
Analisis dan desain
menghasilkan model desain dan model analisis. Desain model berlaku sebagai blueprint
yang menggambarkan bagaimana source code disusun dan ditulis.
§
Implementation
Tujuan implementasi
adalah :
-
Mendefinisikan pengorganisasian kode
-
Mengimplementasikan kelas dan obyek ke dalam bentuk
komponen
-
Menguji pengembangan komponen
-
Mengintegrasikan hasil produksi individual implentasi
ke dalam sebuah sistem tereksekusi
§
Test
Pengujian bertujuan untuk
:
-
Memeriksa interaksi antar obyek
-
Memeriksa usaha penyatuan seluruh komponen perangkat
lunak
-
Memeriksa apakah semua requirement telah
diimplementasikan dengan benar
-
Mengidentifikasi dan memastikan kesalahan telah
diketahui sebelum peluncuran program.
§
Configuration and change management
Berisi
panduan untuk mengatur berbagai variasi perkembangan sistem perangkat lunak,
pelacakan versi mana yang digunakan dalam pembuatan perangkat lunak, pembuatan
program individual atau keseluruhan berdasar spesifikasi yang diminta user dan
kebijakan pengembangan perangkat lunak
§
Environment
Menyediakan
lingkungan pendukung bagi pengembangan program (meliputi proses dan tool) yang
dibutuhkan oleh team pengembang. Environment berfokus pada aktivitas untuk
mengkonfigurasi proses ke dalam proyek, panduan pendukung untuk pengembangan
proyek.
§
Deployment
Deployment
mensukseskan peluncuran produk dan penyampaian perangkat lunak ke pengguna akhir.
Deployment meliputi:
-
Pengemasan perangkat lunak
-
Pendistribusian perangkat lunak
-
Penginstallan perangkat lunak
-
Bantuan dan dukungan bagi pengguna
- Rapid Application Development (RAD)
Rapid Application
Development (RAD) adalah salah satu metode pengembangan suatu sistem
informasi dengan waktu yang relatif singkat. Untuk pengembangan suatu sistem
informasi yang normal membutuhkan waktu minimal 180 hari, akan tetapi dengan
menggunakan metode RAD suatu sistem dapat diselesaikan hanya dalam waktu 30-90
hari.
Tujuan utama dari semua metode
pengembanga sistem adalah memberikan suatu sistem yang dapat memenuhi harapan
dari para pemakai, akan tetapi sering kali di dalam melakukan pengembangan
suatu sistem tidak melibatkan para pemakai sistem secara langsung, sehingga hal
ini menyebabkan sistem informasi yang dibuat jauh dari harapan pemakai yang
dapat berakibat sistem tersebut walaupun dapat diterima tetapi para pemakai
enggan untuk menggunakannya atau bahkan para pemakai menolak untuk
menggunakannya.
Pada saat RAD diimplementasikan, maka para pemakai bisa menjadi bagian
dari keseluruhan proses pengembangan system dengan bertindak sebagai pengambil
keputusan pada setiap tahapan pengembangan. RAD bisa menghasilkan suatu system
dengan cepat karena sistem yang dikembangkan dapat memenuhi keinginan dari para
pemakai sehingga dapat mengurangi waktu untuk pengembangan ulang setelah tahap
implementasi.
Metode RAD mempunyai 3 tahapan utama seperti yang terlihat
pada gambar dibawah ini :
Tahapan-tahapan RAD :
1.
Requirements planning ( rencana kebutuhan)
Pada tahap ini, user dan
analyst melakukan semacam pertemuan untuk melakukan identifikasi tujuan
dari aplikasi atau system dan melakukan identifikasi kebutuhan informasi untuk
mencapai tujuan. Hal terpenting dalam tahap ini adalah adanya keterlibatan dari
kedua belah pihak, bukan hanya sekedar persetujuan akan proposal yang sudah
dibuat. Untuk lebih jauh lagi, keterlibatan user bukan hanya dari satu
tingkatan pada suatu organisasi, melainkan beberapa tingkatan organisasi sehingga
informasi yang dibutuhkan untuk masing-masing user dapat terpenuhi
dengan baik.
2.
Design workshop (proses desain)
Pada tahap ini adalah
melakukan proses desain dan melakukan perbaikan-perbaikan apabila masih
terdapat ketidaksesuaian desain antara user dan analyst. Untuk tahap ini
maka keaktifan user yang terlibat sangat menentukan untuk mencapai
tujuan, karena user bisa langsung memberikan komentar apabila terdapat
ketidaksesuaian pada desain. Biasanya, user dan analyst berkumpul
menjadi satu dan duduk di meja melingkar dimana masing-masing orang bias
melihat satu dengan yang lain tanpa ada halangan.
3. Implementation (implementasi)
Setelah desain dari sistem
yang akan dibuat sudah disetujui baik itu oleh user dan analyst, maka
pada tahap ini programmer mengembangkan desain menjadi suatu program.
Setelah program selesai baik itu sebagian maupun secara keseluruhan, maka
dilakukan proses pengujian terhadap program tersebut apakah terdapat kesalahan
atau tidak sebelum diaplikasikan pada suatu organisasi. Pada saat ini maka user
bias memberikan tanggapan akan sistem yang sudah dibuat serta persetujuan
mengenai sistem tersebut.
Comments
Post a Comment
thanks