Chapter 8 Konsep Desain Mitch Kapor pembuat Lotus 1-2-3 menyatakan bahwa perangkat lunak harus bisa di examined melalui firmness, commodity dan delight. A. Desain dan Kualitas Desain harus mengimplementasikan seluruh persyaratan eksplisit Desain harus dapat mudah dibaca, dan mudah digunakan Desain harus memberikan gambaran penuh perangkat lunak tersebut B. Pedoman Kualitas Desain harus memperlihatkan arsitektur yang telah digunakan. Desain harus bias dimodular Desain harus berisi representasi yang berbeda Desain harus membimbing struktur data yang telah disesuaikan Desain harus membimbing komponen yang fungsi indepentnya telah diperlihatkan Desain harus membimbing interface sehingga mengurangi kompleksitas Desain harus menggunakan metode yang berulang Desain harus direpresentasikan menggunakan notasi yang dapat dimengerti dengan efektif. C. Prinsip-prinsip Desain Proses desain tidak boleh terjebak dalam tunnel vision Desain harus bias dilacak analisis modelnya Desain tidak harus selalu berjalan sesuai putaran Desain harus meminimalisirkan jarak intelektual Desain harus terstruktur dalam pengakomodasian perubahan Desain harus tersktruktur untuk mendegradasi Desan bukan coding, coding bukan desain Desain harus dinilai kualitasnya Desain harus bias di review untuk meminimalkan kesalahan konseptual D. Konsep Fundamental a. Abstrak yaitu data, prosedur, kontrol b. Arsitektur yaitu struktur keseluruhan perangkat lunak Kesuluruhan struktur perangkat lunak dan cara pembuatannya dalam system. - Structural properties - Extra-functional properties - Families or related system c. Pola yaitu membuktikan solusi desain Template pola desain - Nama pola - Intent - Also known as - Motivasi - Applicability - Struktur - Partisipan - Kolaborasi - Konsekuensi - Pola yang berhubungan d. Pemisahan masalah yaitu permasalahan dapat diselesaikan dengan cara lebih mudah. Masalah biasanya berupa perilaku yang ditetapkan sebagai bagian persayaratan perangkat lunak. Dengan memisahkan jenis-jenis masalah maka akan lebih mudah diselesaikan. e. Modularitas yaitu compartmentalisasi data dan fungsi Modularitas adalah atribut tunggal dari perangkat lunak yang memungkinkan program agar lebih intelektual untuk dikelola. Software monolitik (sebuah program besar yang terdiri dari satu modul ) tidak dapat dengan mudah dipahami oleh seorang insinyur perangkat lunak. Jumlah jalur kontrol, rentang referensi, jumlah variabel, dan kompleksitas keseluruhan akan sangat sulit untuk dipahami. Dalam hampir semua kasus, Anda harus membagi desain ke dalam berbagai modul, agar pemahaman lebih mudah serta mengurangi biaya yang diperlukan untuk membuat perangkat lunak. f. Hiding-kontrol interface Dapat berguna untuk; g. Mengurangi kemungkinan efek samping Membatasi dampak global dari keputusan desain local Menekankan komunikasi melalui interface Kualitas hasil perangkat lunak lebih tinggi Kebebasan fungsi yaitu funsgi satu arah Kebebasan funsgsi dicapai dengan mengembangkan modul "single-minded" dan "keengganan". Kohesi merupakan indikasi kekuatan fungsional relatif modul. Sebuah modul kohesif melakukan tugas tunggal, membutuhkan sedikit interaksi dengan komponen lain di bagian lain dari program. Coupling merupakan indikasi saling ketergantungan relatif antara modul. Coupling tergantung pada kompleksitas antarmuka antara modul. h. Perbaikan yaitu elaborasi detail untuk seluruh ketidakjelasan Mempertimbangkan dua persyaratan ,bagian apa yang harus digunakan. Sebuah aspek adalah representasi dari keprihatinan lintas sektoral . i. Aspek yaitu mekanisme persyaratan global desain affect Sebuah aspek adalah representasi dari keprihatinan lintas sektoral. Kebutuhan desain dijelaskan melalui penggunaan. Contoh pilihan untuk home secure. j. Perbaikan (refactoring) – reorganisasi teknik " Refactoring adalah proses mengubah sistem perangkat lunak sedemikian rupa tidak mengubah perilaku eksternal dari kode [ desain ] guna menigkatkan struktur internal.” Desain yang ada diperiksa untuk - Redundansi - Elemen desain yang tidak terpakai - Algoritma yang tidak efisien atau tidak perlu - Konstruksi yang buruk atau tidak pantas struktur data - Atau kesalahan diperiksa untuk menghasilkan desain yang lebih baik. k. OO konsep desain – appendix II Kelas desain dibagi menjadi : Kelas entitas Kelas batas Kelas kontroler Turunan yaitu dimana superclass bertanggung jawab terhadap pewarisan oleh semua subclass. Pesan yaitu stimulasi beberapa perilaku yang terjadi pada objek penerima Polimorfisme yaitu karakteristik yang sangat mengurangi usaha yang dibutuhkan untuk memperluas desain l. Design Classes yaitu detail desain untuk analisi a. Kelas Entitas merupakan kelas analisis yang disempurnakan dalam desain. b. Kelas Boundary dikembangkan selama desain membuat interface. c. Kelas Batas dirancang untuk bertanggung jawab terhadap pengelolaan objek entitas yang ditampilkan ke pengguna. d. Kelas kontroler dirancang untuk mengelola; - Pembuatan atau update entitas objek; - Instansiasi objek boundary dengan mengambil informasi dari objek entitas; - Komunikasi yang kompleks antara set objek ; - Validasi data dikomunikasikan antara objek atau antara pengguna dan aplikasi. E. Desain model elements Elemen data Model data - > struktur data Model data - > arsitektur database Elemen arsitektur Aplikasi domain Kelas analisis Pola dan gaya Elemen antarmuka User Interface ( UI ) External Interface Internal Interface F. Elemen komponen Elemen deployment Arsitektur element Model arsitektur berasal dari tiga sumber : 1. Informasi tentang domain aplikasi untuk perangkat lunak yang akan dibangun 2. Spesifik unsur persyaratan Model 3. Ketersediaan pola arsitektur. Bethanyna Natasha 5235131568