REKAYASA
Memahami peran pembuatan prototipe pada berbagai tipe proyek pengembangan
Mengerti perbedaan antara pembuatan prototipe
evolusioner dan throw-away
Mengetahui tiga teknik pengembangan prototipe
yaitu : - pengembangan bahasa tingkat tinggi
Prototipe pada proses perangkat lunak
Teknik pembuatan prototipe yang cepat
Prototipe adalah proses pembuatan sistem secara cepat
Di masa yang lalu pembangunan sistem
dilaksanakan setelah kebutuhan sistem diketahui
Saat ini, batasan antara protipe dan pembangunan
sistem secara normal sangat kabur dan banyak sistem dibangun dengan pendekatan evolusi
Pada prinsipnya, prototipe membantu pemakai dan pengembang untuk memahami kebutuhan dari
sistem
Elisitasi Persyaratan. User dapat bereksperimen untuk melihat bagaimana sistem mendukung pekerjaan
mereka
Validasi Persyaratan. Prototipe dapat mengungkapkan error dan hal2 yang terlewatkan pada persyaratan
Dapat diketahui lebih awal kesalahpahaman antara pengembang dengan user/pemakai
Staf pengembang perangkat lunak mungkin menemukan
persyaratan yang tidak lengkap atau tidak berfungsi saat prototipe dikembangkan
Sistem dapat bekerja, walaupun terbatas pada penjelasan
fungsi dari sistem
Establish prototype objectives Define prototype functionality Develop
prototype prototypeEvaluate
Prototyping plan
Outline
Meningkatkan kegunaan sistem menjadi lebih baik
Kesesuaian sistem yang lebih dekat dengan
kebutuhan user
Meningkatkan kualitas desain menjadi lebih baik
Meningkatkan keterpelihraan sistem lebih baik
Prototipe evolusioner
Dimulai dengan sistem yang relatif sederhana, yang mengimplementasikan hanya persyaratan user yang paling penting
Prototipe Throw-Away
Tujuan dari evolutionary prototyping adalah
menyerahkan sistem yang dapat dipakai kepada end-user .Pembangunan sistem di mulai dari kebutuhan yang paling dipahami.
Tujuan throw-away prototyping adalah memvalidasi
dan menurunkan persyaratan sistem. Prototipe dapat di mulai dari kebutuhan yang paling tidak dipahami
Evolutionary prototyping Throw-away Prototyping Delivered system Executable Prototype + System Specification Outline Requirements
Pembuatan prototipe evolusioner didasarkan pada ide
pengembangan implementasi awal, memperlihatkannya kepada user untuk dikomentari , dan menyempurnakannya melalui banyak
tahap sampai sistem yang memadai telah dikembangkan
Pembuatan prototipe evolusioner merupakan bagian dari teknik
pengembangan aplikasi cepat [RAD]
Pembuatan prototipe evolusioner dan pendekatan yang berbasis
spesifikasi terhadap perkembangan perangkat lunak berbeda dalam pandangannya mengenai verifikasi dan validasi
Build prototype system
Develop abstract
specification Use prototypesystem
Deliver
system adequate?System YES
Percepatan penyerahan sistem
Penyerahan dalam waktu cepat , kadang-kadang lebih penting dari fungsionalitas atau pemeliharaaan
perangkat lunak dalam jangka penjang.
Keterlibatan user dengan sistem
Tidak hanya berarti bahwa sistem lebih mungkin
memenuhi persyaratan mereka, namun membuat user akan memenuhi komitmennya dan ingin membuat
Proses spesifikasi, perancangan dan implementasi saling bertumpang tindih
Sistem dikembangkan dalam serangkaian bagian
(inkrement)
Dipakai teknik-teknik untuk pengembangan sistem
yang cepat ( 4GL dan CASE tools )
Masalah Manajemen
Manajemen mengasumsikan pengembangan sistem menggunakan pendekatan waterfall
Pengembangan prototipe membutuhkan keahlian khusus, yang mungkin saja tidak ada pada team pengembangnan saat ini
Masalah Pemeliharaan
Perubahan yang terus menerus cendrung merusak struktur sistem prototipe, dalam jangka panjang pemeliharaan cenderung menjadi mahal
Menghindari beberapa masalah perubahan konstan yang menjadi ciri pembuatan prototipe evolusioner
Arsitektur sistem yang menyeluruh ditentukan pada awal
proses untuk berfungsi sebagai kerangka kerja
Komponen sistem dikembangkan secara inkremental dalam
kerangka kerja ini
Setelah di validasi dan diserahkan, baik kerangka kerja
Validate increment Build system increment Specify system increment Design system architecture Define system deliverables System
complete? Validatesystem incrementIntegrate Deliver final
system
YES
Pendekatan ini memperluas proses analisis
persyaratan dengan tujuan mengurangi biaya siklus-hidup secara keseluruhan
Fungsi utama prototipe adalah memperjelas
persyaratan dan memberikan informasi tambahan bagi manajer untuk menilai resiko proses
Outline
requirements prototypeDevelop prototypeEvaluate Specifysystem
Develop
software Validatesystem
Delivered software
system Reusable
Pengembang kadang2 ditekan oleh Manajer untuk
menyerahkan prototipe Throw-away untuk di pakai,
terutama jika ada waktu tunda dalam penyerahan versi
akhir dari perangkat lunak tersebut.
Hal diatas tidak bijaksana karena :
Bisa saja tidak mungkin menyesuaikan prototipe untuk memenuhi persyaratan non-fungsional seperti persyaratan kinerja, keamanan, keandalan dll
Prototipe pada akhirnya tidak didokumentasikan karena pengembangan dilakukan dengan cepat
Berbagai teknik dapat digunakan untuk rapid development
Dynamic high-level language development
Database programming
Component and application assembly
Tidak ada teknik yang eksklusif – karen ateknik ini
digunakan secara bersama-sama
Bahasa yang memiliki fasilitas pengelolaan data yang sangat baik
Memiliki dukungan run-time yang baik.
Mempermudah pengembangan program karena banyak masalah alokasi dan manajemen media penyimpanan yang dapat diselesaikan
Beberapa bahasa memiliki dukungan yang
Language Type Application domain
Smalltalk Object-oriented Interactive systems Java Object-oriented Interactive systems
Prolog Logic Symbolic processing
Apa domain masalah tersebut ?
Interaksi user apa yang dibutuhkan ?
Lingkungan pendukung apa yang disediakan dengan
bahasa tersebut ?
Bagian yang berbeda dari sistem dapat diprogramkan
dengan bahasa yang berbeda, hal ini akan
Pengembangan evolusioner sekarang merupakan teknik standar untuk implementasi aplikasi berukuran kecil dan menengah
pada domain sistem bisnis
Lazimnya termasuk database query language, screen generator,
report generator dan spreadsheet.
Dapat diintegrasikan dengan CASE toolset
Bahasa dan lingkungan ini kadang-kadang disebut
fourth-generation language (4GL)
DB programming language Interface generator Spreadsheet Report generator Database management system
Prototipe dapat di create secara cepat dari
sekumpulan komponen yang pernah ada ditambah dengan mekanisme untuk merekat komponen ini bersama-sama
Mekanisme komposisi ini mesti memuat fasilitas
kontrol dan mekanisme untuk komunikasi
Sistem spesifikasi harus dimasukkan kedalam
account yang ada dan fungsi dari komponen yang semula tetap ada
Pembangunan level Aplikasi
Sistem aplikasi yang ada diintegrasikan dengan prototipe dengan demikian fungsinya dapat di pakai bersama
Contoh, jika dibutuhkan text maka word processor standar dapat digunakan
Pembangunan level Komponen
Komponen individual diintegrasikan dengan kerangka kerja standard kemudian diintegrasikan ke sistem
Component composition framework Executable prototype Reusable software components Control and integration code
Untuk beberapa aplikasi, prototipe dapat di-create dengan pembangunan “ compound document “
Hal ini adalah dokumen dengan elemen aktif [seperti
spreadsheet] menyediakan dokumen untuk komputasi user
Tiap-tiap elemen aktif berhubungan dengan aplikasi
yang dipilih
Compound document
Text 1 Text 2 Text 3
Text 4 Text 5
Table 1
Table 2
Sound 1
Bahasa Script seperti VB di mana prototipe di
bangun dengan memakai UI dari item standar dan hubungannya dengan komponen lain
Bahasa ini memiliki komponen library yang lengkap
untuk mendukung pembangunan sistem/prototipe
Programer aplikasi membangun sistem secara
interaktif dengan mendefinisikan interface dalam layar , field, tombol, dan menu
File Edit Views Layout Options Help General Index Hypertext display component Date component Range checking script 1 2th January 2000 3.876 Draw canvas component User prompt component + script
Sukar untuk mengkoordinasikan team pembangunan sistem
Tidak ada arsitektur sistem yang eksplisit
Ada ketergantungan yang sangat kompleks diantara
bagian dari program yang menyebabkan pemeliharaan menjadi rumit
UI merupakan norma bagi sistem interaktif
Pembangunan UI mengkonsumsi biaya yang semakin
meningkat dari keseluruhan biaya pembangunan sistem
Generator interface membuat program yang
terstruktur dengan baik, yang di buat dari spesifikasi interface
Prototipe Interface berbasis Web dapat di buat
Prototipe sistem dapat dikembangkan untuk memberi end-user kesan yang konkrit mengenai kemampuan sistem
Prototipe semakin populer karena ada tekanan agar sistem
diserahkan dengan cepat
Prototipe Throw-away mencakup pengembangan prototipe untuk
memahami persyaratan sistem
Prototipe evolusioner , sistem dibangun dengan cara memulai dari
Pengembangan cepat sangat penting untuk prototipe
Teknik prototipe mencakup bahasa pemrograman tingkat tinggi ,
database, dan konstruksi dari kompunen yang sudah ada
Prototipe adalah bagian yang penting dari pengembangan sistem.
User harus terlibat dalam melakukan evaluasi terhadap prototipe yang sudah di buat dan menyesuaikannya dengan persyaratan sistem awal