Minggu 6 Prinsip & Konsep Desain
Terjemahan model analisis menjadi desain software
procedural design EntityRelationship Diagram
Data Flow Diagram
interface design
Data Dictionary
architectural design State-Transition Diagram
data design
Terjemahan Model Analisis (cont.)
Data design → mengubah model informasi (entity relationship diagram dan data dictionary) menjadi struktur data Architectural design → berisi hubungan antar elemen dalam program Interface design → menjelaskan bagaimana bagaimana komunikasi di dalam perangkat lunak, dengan sistem, dan dengan manusia yang menggunakannya. Sebuah interface mengandung maksud sebuah aliran informasi.
Terjemahan Model Analisis (cont.)
Procedural design → mengubah elemen struktural dari arsitektur program menjadi deskripsi prosedural dari komponen perangkat lunak
Petunjuk Dalam Melakukan Desain
Sebuah desain harus menunjukkan organisasi secara hirarkis Sebuah desain harus bersifat modular; jadi, sebuah perangkat lunak seharusnya dapat dibagi-bagi secara lojik menjadi beberapa elemen yang melakukan fungsi atau subfungsi secara spesifik Sebuah desain harus mengandung abstraksi data dan prosedural Sebuah desain harus mengarah pada modulmodul (prosedur atau subrutin) yang menunjukkan karakteristik fungsional
Petunjuk Dalam Melakukan Desain (cont.)
Sebuah desain harus mengarah pada antarmuka yang mengurangi kompleksitas hubungan antar modul dan dengan lingkungan luar Sebuah desain harus diturunkan menggunakan metode yang berulang yang diarahkan oleh informasi yang dihasilkan pada tahap analisis perangkat lunak
Prinsip Desain
Proses desain tidak boleh mengalami “tunnel vision”
Desainer harus memperhatikan pendekatan-pendekatan alternatif, menilainya berdasarkan persyaratan masalah, sumber daya yang ada untuk melakukan pekerjaan, dan konsep desain
Desain harus dapat dilacak ke model analisis Tidak melakukan desain pada hal yang sama berulangulang Desain harus merepresentasikan masalah pada keadaan nyata Desain harus memperlihatkan keseragaman dan integrasi
Prinsip Desain (cont.)
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
Design Fundamentals
Abstraction Refinement Modularity Software Architecture Control Hierarchy Data Structure Software Procedure Information Hiding
Konsep Desain
Konsep desain : memberikan kerangka kerja untuk mendapatkan program yang berfungsi dengan benar Abstraksi
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
Procedural Abstraction
Procedural Abstraction
Konsep desain-penyaringan
Pada setiap langkah(penyaringan), satu atau beberapa instruksi dari program yang diberikan didekomposisi ke dalam instruksiinstruksi yang lebih detail. Penyaringan spesifikasi berhenti bila semua instruksi diekspresikan dalam bentuk bahasa pemrograman yang mendasar
Modularitas
Derajat di mana software dapat dimengerti dengan memeriksa komponen-komponennya secara independent Lebih mudah dibangun, lebih mudah diubah, lebih mudah diperbaiki
Konsep Desain
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)
Konsep Desain
Struktur data
Software procedure
Representasi dari hubungan logis antara elemenelemen data individual Spesifikasi proses yang seksama(event sequences, titik-titik keputusan, operasi pengulangan, struktur data)
Penyembunyian informasi
Informasi (data dan procedur) yang terkandung dalam modul tidak dapat diakses oleh modul lain, yang tidak mempunyai kebutuhan terhadap informasi tersebut
Dokumentasi Desain I. II. III. IV. V. VI. VII.
Lingkup Sistem Desain Data Desain Arsitektur Desain Antarmuka Desain Prosedural Catatan Khusus Appendix
Data Design
Mengubah objek data yang didefinisikan pada model analisis menjadi struktur data yang ada dalam perangkat lunak Atribut yang dimiliki objek data, hubungan di antara objek data, dan penggunaannya dalam program, semuanya mempengaruhi pemilihan struktur data
Architectural Design
Menggunakan karakteristik aliran informasi dalam model analisis untuk menghasilkan struktur program Sebuah data flow diagram dipetakan menjadi struktur program menggunakan dua pendekatan :
Transform mapping Transaction mapping
Architectural Design (cont.)
Transform mapping : diterapkan untuk sebuah aliran data yang menunjukkan batas yang jelas antara data yang masuk dan yang keluar
DFD dipetakan menjadi sebuah struktur yang mengalokasikan kontrol menjadi input, pemrosesan, dan output bersama dengan hirarki modul
Transaction mapping :
diterapkan jika sebuah item informasi menyebabkan percabangan, yang disebut transaksi, yang memicu aliran data lain sepanjang salah satu dari beberapa jalur DFD dipetakan menjadi sebuah struktur yang mengalokasikan kontrol menjadi sebuah sub struktur yang mendapatkan dan mengevaluasi sebuah transaksi
Interface Design
Meliputi antarmuka program internal dan eksternal serta desain untuk antarmuka pengguna Desain antarmuka internal dan eksternal diarahkan oleh informasi yang diperoleh dari model analisis