43
Materi 6 dan 7 : Prinsip & Konsep Desain

Pert 10 - Desain

Embed Size (px)

DESCRIPTION

Rekayasa Perangkat Lunak Prinsip dan Konsep Desain

Citation preview

  • Materi 6 dan 7 :

    Prinsip & Konsep Desain

  • Terjemahan model analisis menjadi desain software

    Entity-

    Relationship

    DiagramData

    Dictionary

    State-Transition

    Diagram

    Data Flow

    Diagram

    procedural

    design

    interface design

    architectural design

    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 instruksi-instruksi 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

    a

    r

    qpon

    ji

    hgf

    mlked

    cb

    Fan out

    Fan in

    Lebar

    kedalaman

  • 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

  • Pembagian struktural

    Partisi Horizontal Menentukan cabang-cabang terpisah dari hirarki

    modular untuk setiap fungsi program mayor

    Menggunakan modul kontrol untuk mengkoordinasikan komunikasi antara fungsi-fungsi

  • Keuntungan Partisi Horizontal 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

  • 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

  • Konsep Desain

    Struktur data Representasi dari hubungan logis antara elemen-

    elemen 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

    Membaca

    sensor

    Mendapatkan

    info respon

    Metepakan

    kondisi alarm

    Memilih no

    telepon

    Mengatur

    koneksi ke

    jaringan

    telepon

    Menghasilkan

    pulsa pada

    sambungan

    Format display

    Membuat

    display

    Membangkitka

    n sinyal alarm

    Informasi konfigurasiStatus sensor

    Sensor id,

    setting

    Kode, kondisi

    alarm, id sensor,

    informasi timing

    Daftar nomor

    nomor

    Nada

    sambung

    nomor

    telepon

    Nada

    nomor

    telepon

    Data alarm Tipe alarm

    Informasi

    sensor

    Id terformat,

    tipe, lokasi

    Daftar

    konfigurasi

    Tipe, lokasi

    sensor, id

  • Contoh Kasus Transaction Flow

    Membaca

    perintah

    pemakai

    Meminta

    pemrosesan

    perintah

    Membaca data

    sistem

    Membuat file

    konfigurasi

    Mengaktifkan/

    tidak

    mengaktifkan

    sistem

    Membaca

    password

    Membandingkan

    password dengan

    file

    Membuat

    pesan invalid

    Display pesan

    dan status

    Informasi

    konfigurasi

    Perintah

    pemakai

    Tipe perintah

    konfigurasi

    Parameter sistem

    dan data

    Data

    konfigurasi

    kasar

    Data

    konfigurasi

    Data

    konfigurasi

    Display

    informasi

    Pass valid

    Pesan try again

    Invalid passw

    Empat

    digit

    password

    Start/

    stop

  • 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

  • Contoh Kasus Transform Flow

    Membaca

    sensor

    Mendapatkan

    info respon

    Metepakan

    kondisi alarm

    Memilih no

    telepon

    Mengatur

    koneksi ke

    jaringan

    telepon

    Menghasilkan

    pulsa pada

    sambungan

    Format display

    Membuat

    display

    Membangkitka

    n sinyal alarm

    Informasi konfigurasiStatus sensor

    Sensor id,

    setting

    Kode, kondisi

    alarm, id sensor,

    informasi timing

    Daftar nomor

    nomor

    Nada

    sambung

    nomor

    telepon

    Nada

    nomor

    telepon

    Data alarm Tipe alarm

    Informasi

    sensor

    Id terformat,

    tipe, lokasi

    Daftar

    konfigurasi

    Tipe, lokasi

    sensor, id

  • Pemfaktoran tingkat pertama untuk

    sensor monitor

    Sensor monitor

    eksekutif

    Pengontrol

    output alarm

    Pengontrol

    kondisi alarm

    Pengontro

    input sensor

  • Pemfaktoran tingkat kedua untuk sensor

    monitor Sensor monitor

    eksekutif

    Pengontrol

    output alarm

    Pengontrol

    kondisi alarm

    Pengontro

    input sensor

    Mengatur koneksi

    ke jaringan

    telepon

    Membangkitkan

    sinyal alarmFormat display

    Menghasilkan

    pulsa ke

    sambungan

    Membuat

    display

  • Struktur program untuk sensor monitor

    Sensor monitor

    eksekutif

    Pengontrol

    output alarm

    Pengontrol

    kondisi alarm

    Pengontro

    input sensor

    Mengatur koneksi

    ke jaringan

    telepon

    Membangkitkan

    sinyal alarmFormat display

    Menghasilkan

    pulsa ke

    sambungan

    Membuat

    display

    Memilih nomor

    telepon

    Menentukan

    kondisi alarm

    Membaca

    sensor

    Mendapat info

    respon

  • Struktur program tersaring untuk sensor

    monitor

    Sensor monitor

    eksekutif

    Pengontrol

    output alarm

    Menetapkan

    kondisi alarm

    Pengontro

    input sensor

    Mengatur koneksi

    ke jaringan

    telepon

    Membangkitkan

    sinyal alarm

    Menghasilkan

    pulsa ke

    sambungan

    Membuat

    display

    Membaca

    sensor

  • 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

  • Contoh Kasus Transaction Flow

    Membaca

    perintah

    pemakai

    Meminta

    pemrosesan

    perintah

    Membaca data

    sistem

    Membuat file

    konfigurasi

    Mengaktifkan/

    tidak

    mengaktifkan

    sistem

    Membaca

    password

    Membandingkan

    password dengan

    file

    Membuat

    pesan invalid

    Display pesan

    dan status

    Informasi

    konfigurasi

    Perintah

    pemakai

    Tipe perintah

    konfigurasi

    Parameter sistem

    dan data

    Data

    konfigurasi

    kasar

    Data

    konfigurasi

    Data

    konfigurasi

    Display

    informasi

    Pass valid

    Pesan try again

    Invalid passw

    Empat

    digit

    password

    Start/

    stop

  • 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

    Menghasilkan

    pesan invalid

    Display pesan

    dan status

  • 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