Object-Oriented Design Pendahuluan • Desain berorientasi objek (OOD) mentransformasi model analisis yang dibuat dengan menggunakan OOA (Analisa Berorientasi Obyek) ke dalam suatu model desain yang berfungsi sebagai cetak biru bangunan perangkat lunak. • Sifat OOD unik, yaitu ada pada kemampuannya untuk membangun empat konsep desain perangkat lunak yang penting: abstraksi, penyembunyian informasi, independensi fungsional, dan modularitas. • Abstraksi; Cara kita melihat suatu sistem dalam bentuk lebih yang sederhana, , yaitu kumpulan (sebagai suatu subsistem object) yang berinteraksi. Saling. Exp : kumpulan Mobil adalah sistem pengapian, sistemkemudi sistem pengereman. • Encapsulation; Mekanisme menyembunyikan suatu proses sistem dalam untuk menghindari interferensi penggunaan dan menyederhanakan sistem itu sendiri. • Modular; Sifat object adalah modular. Object dapat ditulis dan dimaintain terpisah (independen) dari object lain. • Polymorphism; Suatu object dapat memiliki berbagai bentuk, sebagai object dari classnya sendiri atau object dari superclassnya Aliran Proses Untuk OOD Masalah-masalah Desain Dekomposabilitas - fasilitas di mana metode desain membantu desainer melakukan dekomposisi terhadap masalah yang besar ke dalam sub-masalah yang lebih mudah untuk dipecahkan; Komposabilitas - tingkat di mana sebuah metode desain memastikan bahwa komponen progam (modul), begitu diberikan dan dibangun, dapat digunakan untuk membuat sistem yang lain lagi. Pemahaman - kemudahan di mana suatu komponen program dapat dipahami tanpa referensi ke informasi lain atau modul lain. Kontinuitas - kemampuan untuk membuat perubahanperubahan kecil di dalam sebuah program dan membuat perubahan-perubahan ini memanifestasi diri mereka sendiri dengan perubahan yang sesuai hanya dalam satu atau beberapa modul dan; Proteksi - karakteristik arsitektur yang akan mengurangi penyebab efek samping bila suatu kesalahan benar-benar terjadi dalam modul yang diberikan. Metode OOD (Booch) Perencanaan Arsitektur: • Klusterkan objek yang mirip di dalam partisi arsitektur yang serupa. • Lapiskan objek dengan tingkat abstraksi. • Identifikasi skenario yang relevan. • Validasi prototipe desain dengan mengaplikasikannya ke skenario kegunaan. Desain Taktis: Tentukan aturan domain independen (“aturan" yang mengatur penggunaan operasi dan atribut). Tentukan aturan domain spesifik bagi pengaturan manajemen, penanganan kesalahan, dan fungsi infrastruktur yang lain. Kembangkan skenario yang menggambarkan semantik dari aturan. Ciptakan prototipe untuk masing-masing aturan. Saringlah instrumen dan prototipe tersebut. Kaji masing-masing aturan untuk memastikan bahwa aturan itu "menyiarkan visi arsitekturnya". Perencanaan Rilis: Kumpulkan skenario yang dikembangkan selama OOA sesuai prioritas. Alokasikan rilis arsitektur yang bersesuaian dengan skenario. Rancang dan dan bangunlah masing-masing rilis arsitektur. Sesuaikan tujuan dan jadwal rilis inkremental sesuai kebutuhan. Transaksi model analisis ke dalam model desain selama desain objek Proses Desain Sistem Partisi model analisis ke dalam subsistem. Identifikasi konkurensi yang ditentukan oleh masalah. Pilih strategi dasar bagi pengimplementasian manajemen data. Identifikasi sumber-sumber daya global dan mekanisme kontrol yang diperlukan untuk mengaksesnya. Desain mekanisme kontrol yang sesuai untuk sistem tersebut. Kajilah dan pertimbangkan trade-offs. Proses Desain Objek Desain sistem OO dapat dipandang sebagai rencana lantai sebuah rumah. Rencana lantai menentukan tujuan masing-masing ruangan dan mekanisme yang menghubungkan ruangan satu dengan lainnya yang diperlukan umtuk membangun masing-masing ruangan. Dalam konteks OOD, desain objek berfokus pada "ruangan." Kita harus mengembangkan desain detail mengenai atribut dan operasi yang membangun masing-masing kelas, dan spesifikasi pesan yang mendalam yang menghubungkan kelas dengan kolaboratornya. Begitu model objek dasar dibuat, optimasi harus terjadi. Rambaugh dan rekannya [RAM91] mengusulkan tiga masukan utama untuk optimasi OOD, yaitu : – Kajilah model hubungan objek untuk memastikan bahwa desain yang diimplementasi membawa kepada utilisasi yang efisien dari sumber daya dan kemudahan implementasi. Tambahkan redundancy di mana perlu. – Revisi struktur data atribut dan algoritma yang sesuai untuk meningkatkan efisiensi pemrosesan. – Buat atribut baru untuk menyimpan informasi yang ditarik sehingga menghindari komputasi dua kali. Kesimpulan OOD menerjemahkan model OOA dari dunia nyata ke dalam model implementasi spesifik yang dapat direalisasikan di dalam perangkat lunak. Seperti OOA, ada banyak metode OOD yang masing-masing berbeda. Selama desain subsistem, disinggung 4 komponen: komponen domain masalah, komponen interaksi manusia, komponen manajemen tugas, dan komponen manajemen data. Komponen domain masalah mengimplementasi persyaratan pelanggan bagi aplikasi OO.