KONSEP DAN PRINSIP DESAIN Oleh I Made Cipta Wahyudi
Analysis to Design Process Specification (PSPEC)
Data Object Description EntityRelationship Diagram
procedural design
Data Flow Diagram
Data Dictionary
State-Transition Diagram
Control Specification (CSPEC)
THE ANALYSIS MODEL
interface design architectural design data design
THE DESIGN MODEL
Analisis > Desain • Data design → mengubah model informasi (entity relationship diagram dan data dictionary) menjadi struktur data • Architectural design → berisi hubungan antar elemen dalam program
Lanjut… • Interface design → menjelaskan bagaimana komunikasi di dalam perangkat lunak, sistem dengan user. → Sebuah interface mengandung maksud sebuah aliran informasi. • Procedural design → mengubah elemen struktural dari arsitektur program menjadi deskripsi prosedural dari komponen perangkat lunak
Petunjuk Dalam Melakukan Desain 1. Hirarkis 2. Modular 3. Abstraksi data dan prosedural 4. Modul-modul (prosedur atau subrutin) 5. Interface (mengurangi kompleksitas) 6. Hasil analisa dengan metode
PRINSIP DESAIN • Proses desain tidak boleh mengalami “tunnel vision” • Desain harus dapat dilacak ke model analisis • Tidak melakukan desain pada hal yang sama berulang-ulang • Desain harus merepresentasikan masalah pada keadaan nyata • Desain harus memperlihatkan keseragaman dan integrasi
Lanjut… • Desain harus terstruktur untuk mengatisipasi adanya perubahan • Desain bukan coding, coding bukan desain • Penilaian kualitas desain harus dilaksanakan pada saat desain tersebut dibuat • Desain harus di-review untuk meminimasi kesalahan konseptual
KONSEP DASAR • Abstraction - data, prosedur, kontrol • Refinement - elaborasi dari detail untuk semua abstraksi • modularity - membagi menjadi bagian2 data dan fungsi • Architecture - keseluruhan struktur perangkat lunak • Procedure - algoritma2 yang menghasilkan fungsi • Hiding - controlled interfaces
ABSTRAKSI • Abstraksi/Pemisahan – Mengijinkan desainer berfokus pada pemecahan masalah tanpa risau tentang detail level rendah yang tidak relevan • Procedural abstraction – sequence dari event • Data abstraction – kumpulan objek data
Data Abstraction door manufacturer model number type swing direction inserts lights type number weight opening mechanism implemented as a data structure
Procedural Abstraction open details of enter algorithm
implemented with a "knowledge" of the object that is associated with enter
Stepwise Refinement open walk to door; reach for knob; open door; walk through; close door.
repeat until door opens turn knob clockwise; if knob doesn't turn, then take key out; find correct key; insert in lock; endif pull/push door move out of way; end repeat
MODULARITAS • Modularitas – Derajat di mana software dapat dimengerti dengan memeriksa komponen-komponennya secara independent – C(p1)>C(p2) maka E(p1)>E(p2) – C(p1+p2)>C(p1)+C(p2) maka E(p1+p2)>E(p1)+E(p2) – Keterangan : • C(x) : fungsi untuk mengukur kompleksitas permasalahan x • E(x) : fungsi untuk menentukan usaha (dalam waktu) yang diperlukan untuk memecahkan masalah x
Modular Design
easier to build, easier to change, easier to fix ...
Modularity: Trade-offs What is the "right" number of modules for a specific software design? Biaya module development Biaya Softeware Biaya Integrasi Modul
Jumlah optimal Modul
Jumlah modul
• Arsitektur software – Arsitektur merupakan struktur hirarki dari komponen program(modul), cara bagaimana komponen tersebut berinteraksi, dan struktur data yang digunakan oleh komponen
• Hirarki kontrol – Disebut juga struktur program, merepresentasikan organisasi (secara hirarkis) komponen program(modul) serta mengimplikasikan suatu hirarki kontrol – Tidak merepresentasikan aspek prosedural SW(misalnya urutan proses, pengulangan operasi)
EXECUTIVE EXECUTIVE
Fan out
Depth
MODULE A
Module X
MODULE B
MODULE C
Module Y
Module Q
MODULE D
Module R
MODULE E
MODULE F
Module M
MODULE G
Module N
Fan in Module K
Module L
Module S
Breadth
Module T
Hirarki Kontrol • Depth mengindikasikan tingkat kontrol • Width mengindikasikan rentang keseluruhan kontrol • Fan-out : pengukuran jumlah modul yang dikontrol secara langsung oleh modul yang lain • Fan-in : berapa banyak modul yang secara langsung mengontrol sebuah modul yang diberikan • Superordinat : modul yang mengontrol modul lain, misalnya M adalah super ordinat untuk modul a, b, c • Subordinat : modul yang dikontrol modul lain
Arsitektur "Struktur keseluruhan perangkat lunak dan cara dimana struktur yang menyediakan integritas konseptual untuk sistem.“ • Structural properties. Aspek mendefinisikan komponen-komponen dari suatu sistem (misalnya, modul, objek, filter) dan cara di mana komponen tersebut dikemas dan berinteraksi satu sama lain. • Extra-functional properties. Deskripsi desain arsitektur harus membahas bagaimana arsitektur desain mencapai persyaratan untuk kinerja, kapasitas, reliabilitas, keamanan, adaptasi, dan karakteristik sistem lainnya. • Families of related systems. Pada dasarnya, desain harus memiliki kemampuan untuk menggunakan kembali blok bangunan arsitektural.
Information Hiding module controlled interface
• algorithm • data structure • details of external interface • resource allocation policy
clients
"secret"
a specific design decision
Penyembunyian Informasi? • Mengurangi kemungkinan "efek samping“ • Membatasi dampak global dari keputusan desain lokal • Menekankan pada komunikasi melalui interface dikendalikan • Mengurangi penggunaan data global • Mengarah pada enkapsulasi – atribut desain • Hasil > perangkat lunak kualitas tinggi
Functional Independence COHESION - sejauh mana modul melakukan satu dan hanya satu fungsi COUPLING - sejauh mana sebuah modul "terhubung" untuk modul lain dalam sistem.
Ex. Dokumen Desain… I. II. III. IV. V. VI. VII.
Lingkup Sistem Desain Data Desain Arsitektur Desain Antarmuka Desain Prosedural Catatan Khusus Appendix
See You Next Week… Matur Thank You