Rekayasa Perangkat Lunak Page 1
MATA KULIAH:
REKAYASA PERANGKAT LUNAK
MATERI TM 11
MODEL DESAIN DAN DOKUMENTASI DESAIN
NAMA
: RAHMAT JAENURI
NIM
: 41814120237
Rekayasa Perangkat Lunak Page 2
MODEL DESAIN DAN DOKUMENTASI DESAIN
Model Desain Data design mengubah informasi menjadi struktur data untuk mengimplementasikan software. Data design dibuat berdasarkan data dictionary dan ERD. Architectural design mendefinisikan relasi antara elemen-elemen struktural utama, pola desain yang digunakan untuk mencapai kebutuhan yang ditentukan untuk sistem dan batasan-batasan yang mempengaruhi bagaimana desain arsitektural ini diterapkan. Desain ini berdasarkan spesifikasi sistem, model analisis (bagian DFD) dan interaksi antara subsistem. I nterface design menjelaskan bagaimana software berkomunikasi dalam dirinya, dengan sistem yang bertukar informasi dengannya, dan dengan manusia yang menggunakannya. DFD diperlukan untuk desain ini. Component-level design menghasilkan deskripsi prosedur software.
process dimension
archit ect ure element s int erface element s component -level element s deployment -level element s low high
class diagr ams analysis packages CRC models
collabor at ion diagr ams
use- cases - t ext use- case diagr ams act ivit y diagr ams sw im lane diagr ams
collabor at ion diagr ams dat a f low diagr ams cont r ol- f low diagr ams pr ocessing nar r at ives dat a f low diagr ams
cont r ol- f low diagr ams pr ocessing nar r at ives
st at e diagr ams sequence diagr ams st at e diagr ams
sequence diagr ams
design class r ealizat ions subsyst ems
collabor at ion diagr ams
design class r ealizat ions subsyst ems
collabor at ion diagr ams
r ef inement s t o:
deployment diagr ams class diagr ams
analysis packages CRC models
collabor at ion diagr ams
component diagr ams design classes act ivit y diagr ams sequence diagr ams
r ef inement s t o:
component diagr ams design classes act ivit y diagr ams sequence diagr ams
design class r ealizat ions subsyst ems
collabor at ion diagr ams component diagr ams design classes act ivit y diagr ams sequence diagr ams a na ly sis m ode l de sign m ode l Requirement s: const raint s int eroperabilit y t arget s and conf igurat ion
t echnical int er f ace design
Navigat ion design GUI design
Rekayasa Perangkat Lunak Page 3
Konsep desain
1. abstraction
Abstraction adalah gambaran dari fungsi suatu program. Gambaran ini bisa bertingkat-tingkat. Tingkat yang paling atas adalah gambaran suatu fungsi program dengan menggunakan bahasa alami. Pada tingkat terendah, menghasilkan abstraksi yang bersifat prosedural/ langkah perlangkah dengan menggunakan istilah yang teknis dan bisa diimplementasikan menjadi fungsi program.
Pada saat beralih dari tingkat ke tingkat, kita menggunakan procedural dan data abstraction. Procedural abstraction adalah urutan instrasi yang mempunyai tujuan khusus,dan data abstraction adalah koleksi data yang digunakan pada fungsi tersebut. Contoh:
Program : Iklan Part-time Job
Fungsi: Pendaftaran calon part-timer Abstraction 1 (highest level):
Calon part-timer dalam melakukan upload syarat-syarat yang diperlukan untuk melamar: surat lamaran, CV, foto, transkrip, data diri.
Abstraction 2 (lower level): Procedural abstraction : _ tampilkan pilihan part-time job
_ input data _ verifikasi format _ kirim data Data abstraction _ nama is STRING _ nim is STRING _ foto is IMAGE FILE
_ surat_lamaran is PDF FILE
2. refinement penjelasan detil dari abstraction
Refinement membantu designer untuk memperlihatkan detil dari lowest level dari abstraction. Abstraction dan refinement merupakan konsep yang saling melengkapi. Contoh dari refinement tentang fungsi sebuah pintu ada pada gambar 5.
3. modularity : membagi software menjadi modul Software dibagi-bagi menjadi
beberapa component yang disebut modul-modul. Modul-modul ini nantinya disatukan/diintegrasikan untuk memenuhi kebutuhan sistem. Dalam pembentukan modul-modul berlaku pernyataan-pernyataan berikut: Jika C(p1) > C(p2) dimana C adalah complexity dari suatu modul, maka E(p1) > E(p2) dimana E adalah waktu yang diperlukan. Artinya semakin rumit sebuah modul, maka waktu yang digunakan untuk menyelesaikan modul tersebut makin banyak. Untuk itu, modul yang rumit dipecah lagi menjadi beberapa modul untuk memudahkan penyelesaian masalah. Namun
Rekayasa Perangkat Lunak Page 4 semakin banyak modul, maka waktu/biaya untuk integrasikan modul-modul tersebut juga makin tinggi.
4. software architecture struktur software secara keseluruhan struktur hirarki/berjenjang dari modul-modul program. Untuk menggambarkan struktur modul-modul tersebut beberapa model yang ada adalah : - framework model : identifikasi pola yang berulang-ulang - dynamic model : identifikasi bagaimana konfigurasi sistem berubah karena kejadian-kejadian tertentu - process model: fokus pada proses teknis yang harus dikerjakan sistem - functional model : menggambarkan hirarki sistem berdasarkan fungsinya
5. Software procedure
Fokus pada detil proses pada tiap modul. Prosedur menjelaskan proses, urutan kejadian, proses perulangan, penentuan keputusan/arah. Ini bisa digambarkan dengan menggunakan Flow Chart yang bertingkat.
6. Information hiding
Ide dari information hiding (menyembunyikan informasi) adalah modul dirancang sedemikian rupa sehinga inforamsi (prosedur dan data) yang di dalamnya tidak dapat di akses oleh modul lain yang tidak memerlukannya. Modul yang efektif adalah modul yang berdiri sendiri dan berkomunikasi dengan modul lain yang memang diperlukan.
Desain Arsitektur
Repository Model
Pada model ini data disimpan secara terpusat untuk semua sub-sistem. Contoh : CASE Toolset, sistem informasi perpustakaan
Keuntungan:
Efisien untuk share jumlah data yang besar Sub-system tidak perlu repot dengan bagaimana data dibuat dan manajemen terpusat contoh: backup, keamanan, re-index. Kerugian:
Sub-system harus mengikuti model yang sudah ditetapkan. Evolusi data sulit dan mahal Sulit untuk distribusi layanan secara efisien, karena yang melayani hanya satu. Contoh : sistem informasi perpustakaan, sistem registrasi akademik.
Client-Server Model
Model ini terdiri dari sekumpulan server yang berdiri sendiri dan masing-masing menyediakan layanan untuk sub-sistem. Ada client-client (sub-system) yang menggunakan layanan server dan tersedia network yang mengijinkan client untuk akses layanan dari server.
Keuntungan:
Distribution data secara langsung Penggunaan sistem jaringan secara efektif hardware jadi murah Mudah untuk tambahkan server baru atau updgrade server yang sudah ada
Rekayasa Perangkat Lunak Page 5 Tidak ada data model, jadi organisasi data macam-macam, sehingga integrasi data sulit Redundant management Tidak ada pusat register nama dan service, sehingga kalau tidak tahu nama server dan service-nya sulit ditemukan.
Elemen-Elemen Model Desain
Elemen-elemen Data
Data model --> struktur data Data model --> arsitektur database Elemen-elemen arsitektur
Domain aplikasi
Class-class analisis, relasinya, kolaborasi dan perilaku diubah menjadi realisasi desain
Patterns dam “styles” (Chapter 10) Elemen-elemen interface
user interface (UI)
Interface external pada sistem lain, piranti-piranti, jaringan-jaringan atau produsen maupun konsumen informasi lainnya
Interface internal antara komponen-komponen desain. Elemen-elemen komponen Elemen-elemen deploy Elemen-elemen Interface Co n t ro lPa n e l LCDdi s pl ay LEDi ndi c at or s k ey PadChar ac t er i s t i c s s peak er wi r el es s Int er f ac e r eadKey St r ok e( ) dec odeKey ( ) di s pl ay St at us ( ) l i ght LEDs ( ) s endCont r ol Ms g( ) Fig u re 9 . 6 UML in t e rf a c e re p re se n t a t io n f o r Co n t r o l P a n e l K e y Pa d r eadKey s t r ok e( ) dec odeKey ( ) < < in t e rf a c e > > W ire le ssPDA K e y Pa d Mo b ile Ph o n e
Rekayasa Perangkat Lunak Page 6
Elemen-elemen Komponen
SensorManagement
Sensor
Fig u re 9 . 8 UML d e p lo y m e n t d ia g ra m f o r Sa f e Ho m e
Per sonal c omput er
Security homeManagement Surveillance communication Co n t ro l Pa n e l CPI se rv e r Security homeownerAccess externalAccess
Rekayasa Perangkat Lunak Page 7
Design Patterns
Desainer terbaik di segala bidang tetap mempunyai keterbatasan untuk melihat pola yang mencirikan sebuah masalah dan menghubungkannya dengan pola yang dapat dikombinasikan untuk membuat solusi
Sebuah deskripsi dari design pattern dapat juga dilihat sebagai sekumpulan design forces.
Design forces menjelaskan kebutuhan non fungsional (misalkan : kemudahan perawatan, portabilitas) yang dihubungkan dengan PL dimana pattern akan diaplikasikan.
Karakteristik pattern (class, tanggungjawab, dan kolaborasi) mengindikasikan atribut-atrobit desain yang harus diatur untuk memungkinkan pattern
mengakomodasi permasalahan yang bervariasi.
Frameworks
Sebuah framework bukan merupakan pattern arsitektur, namun lebih merupakan kerangka dengan sekumpulan “plug points” (yang juga disebut hooks dan slots) yang memungkinkannya untuk beradaptasi dengan domain permasalahan tertentu. Gamma et al mencatat bahwa:
Design patterns lebih abstrak dari frameworks.
Design patterns adalah elemen-elemen arsitektural yang lebih kecil daripada frameworks
Rekayasa Perangkat Lunak Page 8
Dokumentasi Desain
Dokumentasi digunakan secara berkala untuk menggambarkan seluruh instruksi, program-program, dan naratif atau segala sesuatu yang bersifat abstrak/virtual mengenai sistem informasi.
Dokumentasi mempunyai beberapa kegunaan, diantaranya :
Selama dilaksanakan desain sistem merupakan penyusunan produk yang dibangun oleh team desain dan user.
Setelah instalasi, merupakan dasar untuk membuat perubahan terhadap sistem.
Kualitas dari dokumentasi menentukan seberapa besar flesibilitas departemen layanan informasi memberikan respon terhadap permintaan user.
Dokumentasi yang baik disajikan untuk mengurangi konflik antar user dengan departemen layanan informasi, ketika sistem didokumentasikan dengan baik menjadi lebih mudah dimengerti oleh user.
Melalui dokumentasi berarti referensi yang memadai tersedian ketika masalah terjadi, dan informasi informasi ini membantu user untuk mempelajari bagaimana menyelesaikan masalah mereka dengan sistem.
Terdapat beberapa jenis dokumentasi, yaitu : 1. Dokumentasi desain
2. Dokumentasi user untuk training 3. Dokumentasi operasi
4. Dokumentasi referensi user
Design Documentation Purpose :
Dokumentasi ini membantu komunikasi didalam tim desain, merepresentasikan konseptualisasi terakhir dari sistem yang baru atau pemahaman terhadap sistem yang telah ada.
Selama proses desain kegunaan lain dari dokumentasi ini merupakan kontrol, menyediakan record dari apa yang telah dibangun dan diubah.
Menjadi sangat penting untuk memastikan bahwa seluruh bagian dari sistem dipengaruhi oleh perubahan yang dipertimbangkan dan bahwa tanggung jawab untuk komponen-komponen dari sistem yang dipengaruhi oleh perubahan telah diberitahukan.
Misalkan jika format file atau isi dari file diubah, maka modul program apa dan siapa saja pemrogram yang akan terpengaruh ?
Kontrol ini juga berfungsi untuk memanggil ujicoba pelaksanaan yang lampau atau versi lama dari suatu program atau file.
Jenis dokumentasi ini akan membentuk database yang baik untuk menentukan estimasi diwaktu mendatang mengenai berapa lama waktu yang dibutuhkan untuk membangun sistem yang serupa.
Sistem perpustakaan program dapat menyimpan setiap track dari seluruh versi program dan memastikan bahwa pemrogram bekerja dengan versi terbaru.
Rekayasa Perangkat Lunak Page 9
Content :
Komponen dari dokumentasi desain
Elemen mendasar dari dokumentasi desain seperti tersebut diatas, dokumentasi yang terpenting adalah tabel isian (table of content) yang disediakan sebagai derektori untuk file manual yang berisikan seluruh informasi lainnya mengenai sistem.
Pustaka harus berisi survey dan studi kemungkinan dan dokumen yang berhubungan dengan analisis dari sistem yang ada. Juga sebagai tempat untuk menyimpan spesifikasi untuk sistem yang baru.
Ketika diagram alur data diubah, maka diagram yang asli disimpan dalam penyimpanan arsip sebagai backup. Menyimpan dokumen terbaru dalam pustaka kerja dengan setiap modul tertanggal dan pointer untuk lokasi versi lampau dalam arsip.
Penting untuk menyimpan salinan dari input, output dan format record file dan daftar modul. Baebagai macam modul dan file harus direferensi silang berdasarkan modul lain yang terkait dengannya.
Harus terdapat daftar referensi silang dari pemanggilan modul dan modul yang menggunakan elemen data yang berbeda, dan jika diperlukan perubahan uratan pemanggilan atau format record, maka beberapa pemrogram yang terpengaruh dapat di beritahukan dengan menggunakan daftar referensi silang.
Seseorang dalam tim desain harus ditunjuk sebagai pustakawan atau databese administrator, yang harus mendistribusikan daftar identifier kepada pemrogram.
User Documentation for training Purpose :
Dokumentasi training mempersiapkan user untuk implementasi dan penggunaan sistem selanjutnya
Dokumentasi user training digunakan untuk menjembatani jarak antara prosedur-prosedur lama, saat ini dan yang dibutuhkan/diminta untuk sistem baru
Dokumen ini harus dibangun oleh anggota user dari tim desain dalam hubungannya dengan user lainnya dalam organisasi
Content :
Minimal komponen dokumentasi training use
Sangat baik untuk memulai pelatihan dengan terlebih dahulu memberikan penjelasan menyeluruh mengenai sistem dan apa masud/tujuan diselesaikannya pelatihan tersebut
Untuk aplikasi interaktif, pengguna dapat mempelajari sistem lebih sering dengan melihat pohon menu
Pelatihan user juga termasuk mempertimbangkan pengaruh dari transisi, khususnya ujicoba dan konversi
Operation Documentation Purpose :
Bagian operasi dari departemen layanan informasi harus mengoperasikan sistem setelah diimplementasikan
Kelompok ini memerlukan informasi mengenai prosedur operasi normal dan bagaimana merespon kesalahan
Rekayasa Perangkat Lunak Page 10
Informasi ini baiknya disiapkan oleh analis sistem dan programer, dan banyak diantaranya dihasilkan/diambil dari dokumentasi desain
Content :
Minimal komponen dokumentasi operasi
Diagram alur yang lengkap yang menunjukan input yang dibutuhkan untuk setiap program, file-file apa saja yang diperlukan dan output apa saja yang harus dicetak/dihasilkan
Jika terdapat input yang khusus, maka harus diberikan catatan dan dokumentasi harus menunjukkan file-file yang terkait dalam pemrosesan
Penting bagi operator untuk mengetahui kondisi kesalahan yang mungkin terjadi dan bagaimana merespon keadaan tersebut
Jika terdapat beberapa pengguna sistem, maka akan menjadi hal yang baik jika disediakan daftar terminal dan pengguna yang mengakses sistem
User Reference Documentation Purpose :
Informasi ini akan dituju oleh user yang mempunyai pertanyan atau masalah sebelum mereka menghubungi departemen layanan informasi
Jika dokumentasi ini memiliki kualitas yang cukup, maka pertanyaan-pertanyaan tersebut akan terjawab tanpa harus menghubungi departemen layanan informasi
Akan terjadi tingkat frustasi yang cukup tinggi ketika terjadi suatu kesalahan dengan sistem informasi dan user tidak mengerti mengapa terjadi masalah tersebut atau bagaimana cara mengatasinya
http://racingperformancetuning.blogspot.com/2010/10/dokumentasi-desain.html Diadaptasi dari: 1. Pressman, Roger.S. "Software Engineering : A Practioner's Approach." 5th . McGrawHill. 2001. 2. Sommerville, Ian. "Software Engineering" .6th . Addison Wesley. 2001