170 likes | 408 Views
Ir. Waniwatining A stuti , M.T.I Rekayasa Perangkat Lunak. DESAIN. Kohesi. Perpasangan ditandai ikatan i nt r a-modul Dikur angi dengan meminimalkan hubungan antara elemen-elemen modul yang berbeda
E N D
Ir. WaniwatiningAstuti, M.T.I RekayasaPerangkatLunak DESAIN
Kohesi • Perpasanganditandai ikatan intra-modul • Dikurangi denganmeminimalkanhubungan antara elemen-elemenmodul yang berbeda • Metode lain untuk mencapai ini adalah dengan memaksimalkan hubungan antara elemen-elemendari modul yang sama • Kohesi mempertimbangkanhubungan ini • Berkenaandengan penentuan seberapa dekat unsur-unsur modul terkait satu sama lain • Dalam prakteknya keduanya digunakan
Kohesi ... • Kohesi dari sebuah modul mewakili seberapaterikaterat elemen-elemen dari modul • Memberikan penanganan tentang apakah elemen-elemen yang berbeda dari sebuah modul salingmemilikisatusama lain • Kohesi yang tinggi adalah tujuan • Kohesi dan perpasangan saling terkait • Semakintinggikohesi modul, semakinrendahperpasanganantara modul • Korelasi tidak sempurna.
Tingkat Kohesi • Ada banyak tingkat kohesi. • Kebetulan • Logis • Temporal • komunikasional • Berurut/sekuensial • Fungsional • Kohesikebetulanadalah yang terendah, fungsional tertinggi • Skala tidak linear • Kohesi fungsional dianggap sangat kuat
Menentukan Kohesi • Jelaskan tujuan dari sebuah modul dalam sebuah kalimat • Lakukan tes berikut • Jika kalimat tersebut menjadi kalimat majemuk, berisi lebih dari satu kata kerja, modul mungkin melakukan lebih dari satu fungsi. Mungkin memiliki kohesi berurutan atau komunikasional. • Jika kalimat berisi kata-kata yang berkaitan dengan waktu, seperti "pertama", "selanjutnya", "setelah", "mulai" dll, modul mungkin memiliki kohesi berurutan atau temporal.
3. Jika predikat kalimat tidak mengandung objek tertentu tunggal yang mengikutikata kerja, modul mungkin logis kohesif.Misalnya “suntingsemua data", sementara "suntingdata sumber" mungkin memiliki kohesi fungsional.4. Kata-kata seperti "menginisialisasi", “clean-up" sering menyiratkan kohesi temporal. • modul yang kohesiffungsional selalu dapat dijelaskan dengan pernyataan sederhana
Sistem Kohesi di OO • Dalam OO, berbagai jenis kohesi memungkinkankarenakelas adalah modul • Kohesi metode • Kohesi kelas • Kohesi pewarisan • KohesiMetode - mengapa elemendengankode program yang beda bersama-sama dalam sebuah metode • Seperti kohesi dalam modul fungsional; bentuk tertinggi adalah jika masing-masing metode menerapkan fungsi tertentu yang jelas dengan semua elemenberkontribusi untuk mengimplementasikan fungsi ini
Kohesi dalam OO ... • kohesi Kelas - mengapa atribut dan metode yangberbeda bersama-sama dalam kelas • Suatukelas harus mewakili sebuah konsep tunggal dengan semua elemenberkontribusi ke arah itu • Jika beberapa konsep dienkapsulasi, kohesinya tidak begitu tinggi • Sebuah gejala dari konsep berganda– kelompokmetode yang berbedamengakses subset dari atribut-atribut yang berbeda
Kohesi dalam OO ... • Kohesi Pewarisan - berfokus pada mengapa kelas bersama-sama dalam hirarki • Dua alasan untuk membentuksubkelas- generalisasi-spesialisasi dan penggunaan ulang • Kohesi lebih tinggi jika hirarki adalah untuk memberikan generalisasi-spesialisasi
Prinsip Buka-tutup • Selain kohesi dan perpasangan, prinsip buka-tutupjuga membantu dalam mencapai modularitas • Prinsip: Modul harus terbuka untuk perluasan, namun tertutup untuk modifikasi • Perilaku dapat diperluasuntuk mengakomodasi persyaratan baru, tetapi kode yang ada tidak diubah • yakni, memungkinkan penambahan kode, tetapi tidak modifikasi kode yang sudah ada • Meminimalisasirisikodaripenghentianfungsionalitasygada yang sudahberjalankarenaadanyaperubahan- pertimbangan yang sangat penting saat mengubah kode • Baik untuk programmer karena mereka sukamenulis kode baru
Prinsip Buka-tutup... • Dalam OO prinsip ini dipenuhi dengan menggunakan pewarisan dan polimorfisme • Warisan memungkinkan membuat kelas baru untuk memperluas perilaku tanpa mengubah kelas asli • ini dapat digunakan untuk mendukung prinsip buka-tutup • Pertimbangkan contoh dari objek klien yang berinteraksi dengan objek printer untuk mencetak
Contoh... • Klien langsung memanggilmetode pada Printer1 • Jika printer lain akan diizinkan • Sebuah kelas baru,Printer2 akan dibuat • Tapi klien harus diubah jika ingin menggunakan Printer 2 • Pendekatan Alternatif • Jadikan Printer1 subclass dari Printer umum • Untuk modifikasi, tambahkan subkelas Printer 2 • Klien tidak perlu diubah
PrinsipSubstitusiLiskov • Prinsip: Program yang menggunakanobjek o1 dari kelas dasar C harus tetap tidak berubah jika o1 digantikan oleh objek dari subkelas C • Jika hirarki mengikuti prinsip ini, prinsip buka-tutup akan didukung
Ringkasan • Tujuan desain adalah untuk menemukan desain terbaik yang benar • Modularitas adalah kriteria untuk memutuskan kualitas desain • Modularitas ditingkatkan dengan perpasanganrendah, kohesi tinggi, dan mengikuti prinsip buka-tutup