Jumat, 10 Januari 2020

Pertemuan 9 RPL

     

                                                     KONSEP DESAIN

     Mitch Kapor, pencipta Lotus 1-2-3, mempresentasikan “manifesto desain perangkat lunak” di Dr. Dobbs Journal. Dia berkata: Desain perangkat lunak yang baik harus menunjukkan:
-          Ketegasan: Suatu program tidak boleh memiliki bug yang menghambat fungsinya.
-          Komoditas: Suatu program harus sesuai untuk tujuan yang dimaksudkan.
-          Delight: Pengalaman menggunakan program harus menyenangkan.


Design and Quality
-          desain harus mengimplementasikan semua persyaratan eksplisit yang terkandung dalam model analisis, dan harus mengakomodasi semua persyaratan implisit yang diinginkan oleh pelanggan.
-          desain harus menjadi panduan yang dapat dibaca dan dimengerti bagi mereka yang menghasilkan kode dan bagi mereka yang menguji dan kemudian mendukung perangkat lunak.
-          desain harus memberikan gambaran lengkap dari perangkat lunak, menangani data, domain fungsional, dan perilaku dari perspektif implementasi.

Prinsip-prinsip Desain
-          Proses desain seharusnya tidak mengalami 'penglihatan terowongan.'
-          Desain harus dapat dilacak ke model analisis.
-          Desain seharusnya tidak menemukan kembali roda.
-          Desain harus "meminimalkan jarak intelektual" antara perangkat lunak dan masalah seperti yang ada di dunia nyata.
-          Desain harus menunjukkan keseragaman dan integrasi.
-          Desain harus terstruktur untuk mengakomodasi perubahan.
-          Desain harus terstruktur untuk terdegradasi dengan lembut, bahkan ketika data, peristiwa, atau kondisi operasi yang menyimpang ditemukan.
-          Desain bukan coding, coding bukan desain.
-          Desain harus dinilai kualitasnya saat dibuat, bukan setelah fakta.
-          Desain harus ditinjau untuk meminimalkan kesalahan konseptual (semantik)

Fundamental Concepts
·         Abstraksi — data, prosedur, control
·         Arsitektur — struktur keseluruhan perangkat lunak
·         Pola— ”menyampaikan esensi” dari solusi desain yang terbukti
·         Pemisahan masalah — masalah rumit apa pun bisa lebih mudah ditangani jika dibagi menjadi beberapa bagian
·         Modularitas — kompartementalisasi data dan fungsi
·         Menyembunyikan — antarmuka yang dikendalikan
·         Independensi fungsional — fungsi pikiran tunggal dan kopling rendah
·         Refinement — elaborasi detail untuk semua abstraksi
·         Aspek — mekanisme untuk memahami bagaimana persyaratan global memengaruhi desain
·         Refactoring — teknik reorganisasi yang menyederhanakan desain
·         Kelas Desain — sediakan detail desain yang akan memungkinkan kelas analisis diimplementasikan

       Design Classes
1     .      Kelas analisis disempurnakan selama desain untuk menjadi kelas entitas
2     .      Kelas batas dikembangkan selama desain untuk membuat antarmuka (mis., Layar interaktif atau laporan tercetak) yang dilihat dan berinteraksi dengan pengguna saat perangkat lunak digunakan.
Ø  Kelas batas dirancang dengan tanggung jawab mengelola cara objek entitas diwakili kepada pengguna.
3    .      Kelas-kelas pengendali dirancang untuk dikelola
Ø  pembuatan atau pembaruan objek entitas;
Ø  Instansiasi objek batas ketika mereka memperoleh informasi dari objek entitas;
Ø  komunikasi yang kompleks antara set objek;
Ø  validasi data yang dikomunikasikan antar objek atau antara pengguna dan aplikasi. 

      Design Model Elements
1     .      Elemen data
Ø  Model data -> struktur data
Ø  Model data -> arsitektur basis data
2    .      Elemen arsitektur
Ø  Domain aplikasi
Ø  Kelas analisis, hubungan mereka, kolaborasi dan perilaku diubah menjadi realisasi desain
Ø  Pola dan "gaya" (Bab 9 dan 12)
3    .      Elemen antarmuka
Ø  antarmuka pengguna (UI)
Ø  antarmuka eksternal ke sistem, perangkat, jaringan atau produsen lain atau konsumen informasi
Ø  antarmuka internal antara berbagai komponen desain.
4       .      Elemen komponen

5    .      Elemen penyebaran

Tidak ada komentar:

Posting Komentar