MATA KULIAH:
REKAYASA PERANGKAT LUNAK
MATERI TM 11 MODEL DESAIN DAN DOKUMENTASI DESAIN
NAMA
: RAHMAT JAENURI
NIM
: 41814120237
MATERI: Rekayasa Perangkat Lunak
Page 1
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.
high a na ly sis m ode l class diagrams analysis packages CRC models collaborat ion diagrams dat a f low diagrams cont rol-f low diagrams processing narrat ives
design class realizat ions subsyst ems collaborat ion diagrams
use-cases - t ext use-case diagrams act ivit y diagrams sw im lane diagrams collaborat ion diagrams st at e diagrams sequence diagrams
class diagrams analysis packages CRC models collaborat ion diagrams dat a f low diagrams cont rol-f low diagrams processing narrat ives st at e diagrams sequence diagrams
t echnical int erf ace design Navigat ion design GUI design
component diagrams design classes act ivit y diagrams sequence diagrams
de sign m ode l ref inement s t o:
low
ref inement s t o: design class realizat ions subsyst ems collaborat ion diagrams
archit ect ure element s
component diagrams design classes act ivit y diagrams sequence diagrams
int erface element s
component -level element s
Requirement s: const raint s int eroperabilit y t arget s and conf igurat ion
design class realizat ions subsyst ems collaborat ion diagrams component diagrams design classes act ivit y diagrams sequence diagrams
deployment diagrams
deployment -level element s
process dimension
Rekayasa Perangkat Lunak
Page 2
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 3
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 Kekurangan Rekayasa Perangkat Lunak
Page 4
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 Mo b ile Ph o n e W ire le ssPDA
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
K e y Pa d
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( )
< < in t e rf a c e > > K e y Pa d
r eadKey s t r ok e( ) dec odeKey ( )
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
Rekayasa Perangkat Lunak
Page 5
Elemen-elemen Komponen
SensorManagement
Cont rol Panel
Sensor
CPI serv er
Security
homeownerAccess
Per sonal comput er externalAccess
Security
Surveillance
homeManagement
communication
Figure 9 . 8 UML deploy m ent diagram f or Saf eHom e
Rekayasa Perangkat Lunak
Page 6
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 Design patterns lebih umum daripada frameworks
Rekayasa Perangkat Lunak
Page 7
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 8
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 prosedurprosedur 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 9
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
Rekayasa Perangkat Lunak
Page 10