REKAYASA PERANGKAT LUNAK Chapter 8
1
Chapter 8
2
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 - pemrograman database - pemakaian ulang komponen
Chapter 8
3
Prototipe pada proses perangkat lunak Teknik pembuatan prototipe yang cepat User interface prototipe
Chapter 8
4
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
Chapter 8
5
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
Prototipe dapat dipakai untuk teknik analisis dan mengurangi resiko
Chapter 8
6
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 Prototipe dapat mensupport pengujian dan pelatihan
Chapter 8
7
Establ ish prototype objectives
Defi ne prototype functi onali ty
Develop prototype
Evaluate prototype
Prototypi ng plan
Outli ne defi ni ti on
Executable prototype
Evaluati on report
Chapter 8
8
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 Mengurangi Cost
Chapter 8
9
Prototipe evolusioner Dimulai dengan sistem yang relatif sederhana, yang mengimplementasikan hanya persyaratan user yang paling penting
Prototipe Throw-Away Membantu analisis dan validasi persyaratan
Chapter 8
10
Tujuan dari evolutionary prototyping adalah menyerahkan sistem yang dapat dipakai kepada enduser .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
Chapter 8
11
Evoluti onary prototypi ng
Del i vered system
Throw-away Prototypi ng
Executable Prototype + System Speci fication
Outli ne Requirements
Chapter 8
12
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
Chapter 8
13
Develop abstract specifi cation
Buil d prototype system
Use prototype system
N Del iver system
YES
System adequate?
Chapter 8
14
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 sistem tersebut di pakai
Chapter 8
15
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 ) Interface sistem user biasanya dikembangkan dengan menggunakan sistem interaktif
Chapter 8
16
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
Masalah Kontraktual
Chapter 8
17
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 maupun komponen tidak diubah kecuali ditemukan error
Chapter 8
18
Defi ne system del i verabl es
Speci fy system i ncrement
Design system archi tecture
Buil d system i ncrement
Vali date i ncrement
Vali date system
Integrate i ncrement
NO Del iver fi nal system
YES
System complete?
Chapter 8
19
Pendekatan ini memperluas proses analisis persyaratan dengan tujuan mengurangi biaya siklushidup secara keseluruhan Fungsi utama prototipe adalah memperjelas persyaratan dan memberikan informasi tambahan bagi manajer untuk menilai resiko proses Umum digunakan untuk sistem H/W
Chapter 8
20
Outli ne requirements
Develop prototype
Evaluate prototype
Speci fy system
Reusabl e components
Develop software
Vali date system
Chapter 8
Del ivered software system
21
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
Perubahan yang dilakukan pada saat pengembangan prototipe mungkin akan merusak struktur sistem Standar kualitas organisasi biasanya dilonggarkan untuk pengembangan prototipe Chapter 8
22
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
Visual programming adalah bagian yang inherent dalam pembangunan prototipe
Chapter 8
23
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 terintegrasi, hal ini dapat dimanfaatkan untuk prototipe
Chapter 8
24
Language Smalltalk Java Prolog Lisp
Type Object-oriented Object-oriented Logic List-based
Chapter 8
Application domain Interactive systems Interactive systems Symbolic processing Symbolic processing
25
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 menimbulkan problem komunikasi antar modul
Chapter 8
26
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 fourthgeneration language (4GL) Cost-effective untuk institusi bisnis kelas kecil-menengah
Chapter 8
27
Interface generator
Spreadsheet
DB programmi ng l anguage
Report generator Database management system Fourth-generati on language
Chapter 8
28
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
Chapter 8
29
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
Frame work can be a scripting language or an integration framework such as CORBA
Chapter 8
30
Reusabl e software components
Component composition framework
Executable prototype
Control and i ntegrati on code
Chapter 8
31
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 Dokumen itu sendiri merupakan integrator untuk berbagai dokumen yang berbeda
Chapter 8
32
Compound document Text 1
Tabl e 1
Tabl e 2
Word processor
Text 2
Text 4
Text 3
Sound 2
Spreadsheet
Chapter 8
Sound 1
Text 5
Audi o pl ayer
33
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
Chapter 8
34
Hypertext displ ay component
Date component
Fi le
Edit
Vi ews
Layout
Hel p General Index
1 2th January 2000 Range checki ng scri pt
Options
3.876 User prompt component + scri pt
Draw canvas component
Tree display component
Chapter 8
35
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
Chapter 8
36
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 dengan editor web
Chapter 8
37
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 versi initial sampai versi final
Chapter 8
38
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
Chapter 8
39
Chapter 8
40