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