Anda di halaman 1dari 41

Minggu 5 Prinsip & Konsep Desain

I Gusti Agung Gede Arya Kadyanan,S.Kom.,M.Kom

Terjemahan model analisis menjadi desain software

procedural design
EntityRelationship Diagram Data Flow Diagram Data Dictionary

interface design 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

Prinsip Desain
Prinsip Desain memungkinkan perekayasa Perangkat lunak untuk mengendalikan proses 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 berulang-ulang 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

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

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

Procedural Abstraction

Konsep Desain
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

Modularitas
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)

Hirarki kontrol
M Fan out a b c
kedalaman

q Fan in

j
Lebar

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

Konsep Desain
Pembagian struktural
Partisi horizontal mendefinisikan tiga partisi(input, transformasi data, dan output) Partisi vertikal(factoring) menyatakan bahwa kontrol(pembuatan keputusan) dan kerja harus didistribusikan secara top down dalam arsitektur program
Keputusan kontrol dalam modul level atas dan pemrosesan kerja dalam modul yang lebih rendah

Partisi Horizontal

Pembagian struktural

Menentukan cabang-cabang terpisah dari hirarki modular untuk setiap fungsi program mayor Menggunakan modul kontrol untuk mengkoordinasikan komunikasi antara fungsifungsi

Menghasilkan software yang lebih mudah diuji Membawa software yang lebih mudah dipelihara Menghasilkan penyebaran efek samping yang lebih sedikit Menghasilkan software yang lebih mudah diperluas

Keuntungan Partisi Horizontal

Kerugian Partisi Horizontal


Partisi horizontal menyebabkan lebih banyak data yang dilewatkan melalui interface modul dan dapat merumitkan keseluruhan kontrol dari aliran program(bila pemrosesan membutuhkan pergerakan yang cepat dari suatu fungsi ke fungsi yang lain)

Pembagian struktural
Partisi vertikal
Desain, sedemikian sehingga pembuatan keputusan dan kerja dibuat bertingkat-tingkat Modul pembuatan keputusan sebaiknya terletak pada puncak arsitektur

Keuntungan partisi vertikal


Sifat : perubahan pada modul kontrol memiliki probabilitas penyebaran efek samping yang lebih tinggi ke modul yang menjadi sub ordinatnya Secara umum perubahan program berada di seputar perubahan input, komputasi, dan output Struktur kontrol keseluruhan program (perilaku dasar) sangat kecil probabilitas untuk berubah,
sehingga kurang rentan terhadap efek samping pada saat perubahan dibuat, sehingga menjadi lebih dapat dipelihara

Struktur data

Konsep Desain

Representasi dari hubungan logis antara elemenelemen data individual

Software procedure
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. Lingkup Sistem II. Desain Data III. Desain Arsitektur IV. Desain Antarmuka V. Desain Prosedural VI. Catatan Khusus VII. 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

Karakteristik Aliran

Contoh Kasus Transform Flow


Status sensor Informasi konfigurasi Membuat display Membaca sensor Daftar konfigurasi Sensor id, setting Format display Tipe, lokasi sensor, id Id terformat, tipe, lokasi Informasi sensor Mendapatkan info respon

Kode, kondisi alarm, id sensor, informasi timing

Data alarm Metepakan kondisi alarm Membangkitka n sinyal alarm

Tipe alarm

Daftar nomor Memilih no telepon

nomor

Mengatur koneksi ke jaringan telepon Nada sambung nomor telepon Menghasilkan pulsa pada sambungan Nada nomor telepon

Contoh Kasus Transaction Flow


Perintah pemakai Parameter sistem dan data Data konfigurasi kasar Informasi konfigurasi Data konfigurasi Data konfigurasi Mengaktifkan/ tidak mengaktifkan sistem Pass valid password Membaca password Display informasi Membuat file konfigurasi Membaca perintah pemakai Tipe perintah konfigurasi Meminta pemrosesan perintah Start/ stop Membaca data sistem

Display pesan dan status

Empat digit

Membandingkan password dengan file Membuat pesan invalid Pesan try again

Invalid passw

Langkah-langkah Transform Mapping


Isolasi pusat transfromasi dengan mengkhususkan batas aliran masuk dan keluar Lakukan pemfaktoran tingkat pertama Lakukan pemfaktoran tingkat kedua Pemfaktoran menghasilkan struktur program di mana modul tingkat puncak membuat keputusan dan modul tingkat bawah melakukan sebagian besar kerja input, komputasi, dan output Saringlah struktur program iterasi pertama dengan menggunakan heuristik desain bagi kualitas perangkat lunak yang telah ditingkatkan
Modul diledakkan atau disatukan

Transform Mapping

Pemfaktoran tingkat pertama untuk sensor monitor


Sensor monitor eksekutif

Pengontro input sensor

Pengontrol kondisi alarm

Pengontrol output alarm

Pemfaktoran tingkat kedua untuk sensor monitor


Sensor monitor eksekutif

Pengontro input sensor

Pengontrol kondisi alarm

Pengontrol output alarm

Format display

Membangkitkan sinyal alarm

Mengatur koneksi ke jaringan telepon

Membuat display

Menghasilkan pulsa ke sambungan

Struktur program untuk sensor monitor


Sensor monitor eksekutif

Pengontro input sensor

Pengontrol kondisi alarm

Pengontrol output alarm

Mendapat info respon

Menentukan kondisi alarm

Memilih nomor telepon

Format display

Membangkitkan sinyal alarm

Mengatur koneksi ke jaringan telepon

Membaca sensor

Membuat display

Menghasilkan pulsa ke sambungan

Struktur program tersaring untuk sensor monitor


Sensor monitor eksekutif

Pengontro input sensor

Menetapkan kondisi alarm

Pengontrol output alarm

Membaca sensor

Membuat display

Membangkitkan sinyal alarm

Mengatur koneksi ke jaringan telepon

Menghasilkan pulsa ke sambungan

Transaction Mapping

Langkah-langkah Transaction Mapping


Petakan DFD pada sebuah struktur program yang sesuai dengan pemrosesan transaksi Faktorkan dan saringlah struktur transaksi dan struktur masing-masing jalur aksi Saringlah struktur program iterasi pertama dengan menggunakan heuristik desain untuk kualitas perangkat lunak yang dikembangkan

Pemfaktoran tingkat satu untuk sub sistem user interaction


Interaksi pemakai eksekutif

Membaca perintah pemakai

Meminta pemrosesan perintah

Pengontrol konfigurasi sistem

Sistem aktivasi/ deaktivasi

Pengontrol pemrosesan password

Potongan pertama struktur program untuk sub sistem user interaction


Interaksi pemakai eksekutif Membaca perintah pemakai Meminta pemrosesan perintah

Pengontrol konfigurasi sistem

Sistem aktivasi/ deaktivasi

Pengontrol pemrosesan password

Membaca data sistem

Membangun file konfigurasi

Membaca passowrd

Membandingkan pass dengan file

Mengontrol output passw

Display pesan dan status

Menghasilkan pesan invalid

Meliputi antarmuka program serta desain untuk antarmuka pengguna

Interface Design