Kopling vs kohesi
Kopling dan kohesi adalah dua konsep yang ditemukan di Java (dan semua bahasa berorientasi objek lainnya). Kopling mengukur seberapa banyak masing -masing modul program tergantung pada modul program lainnya. Kohesi mengukur seberapa kuat masing -masing fungsi terkait dalam suatu modul. Sebenarnya, bahasa apa pun yang berorientasi objek (termasuk Java) memiliki dua tujuan utama meningkatkan keterpaduan dan mengurangi kopling pada saat yang sama, untuk mengembangkan program yang paling efisien. Dua metrik rekayasa perangkat lunak ini dikembangkan oleh Larry Constantine untuk mengurangi biaya memodifikasi dan memelihara perangkat lunak.
Apa itu kohesi?
Kohesi mengukur seberapa kuat masing -masing fungsi terkait dalam modul program. Kelas terstruktur dengan baik mengarah pada program yang sangat kohesif. Jika kelas tertentu melakukan serangkaian fungsi yang sangat terkait, kelas itu dikatakan kohesif. Di sisi lain, jika suatu kelas melakukan banyak fungsi yang sama sekali tidak terkait yang berarti kelas tidak kohesif sama sekali. Penting untuk dipahami bahwa tidak memiliki kekompakan tidak berarti bahwa aplikasi keseluruhan tidak memiliki fungsionalitas yang diperlukan. Hanya saja tanpa kohesi, akan sangat sulit untuk meraba -raba fungsi karena mereka akan tersebar di banyak tempat yang salah karena kompleksitas aplikasi meningkat dari waktu ke waktu. Mempertahankan, memodifikasi, dan memperluas perilaku yang tersebar di seluruh kode ini sangat membosankan bahkan untuk pemrogram paling banyak pengalaman.
Apa itu kopling?
Kopling mengukur seberapa banyak masing -masing modul program tergantung pada modul program lainnya. Interaksi antara dua objek terjadi karena ada kopling. Program yang dipasangkan secara longgar adalah fleksibilitas dan ekstensibilitas tinggi. Kopling yang kuat tidak pernah baik karena satu objek bisa sangat tergantung pada beberapa objek lainnya. Ini adalah mimpi buruk ketika kode dimodifikasi, karena kopling tinggi berarti bahwa pemrogram perlu bekerja di beberapa tempat kode untuk bahkan modifikasi perilaku tunggal. Kopling yang kuat selalu mengarah pada program dengan fleksibilitas rendah dan lebih sedikit skalabilitas/ekstensibilitas. Namun, dalam bahasa pemrograman seperti Java, benar -benar menghindari kopling tidak mungkin. Tetapi disarankan agar programmer memberikan upaya terbaik mereka untuk mengurangi kopling sebanyak mungkin. Dimungkinkan juga untuk memiliki beberapa kopling untuk membantu objek berinteraksi satu sama lain tanpa menghambat skalabilitas dan fleksibilitasnya.
Apa perbedaan antara kopling dan kohesi?
Meskipun kopling dan kohesi berurusan dengan kualitas modul dalam rekayasa perangkat lunak, mereka sama sekali berbeda konsep. Cohesion berbicara tentang seberapa banyak fungsionalitas terkait satu sama lain dalam modul, sementara penggabungan berkaitan dengan seberapa banyak satu modul tergantung pada modul program lainnya dalam seluruh aplikasi. Agar memiliki perangkat lunak berkualitas terbaik, kohesi dan kopling harus mencapai dua ujung yang berlawanan dari spektrum mereka. Dengan kata lain, kopling longgar dan kohesi yang kuat menyediakan perangkat lunak terbaik. Memiliki bidang pribadi, kelas non-publik dan metode pribadi memberikan kopling longgar, sambil membuat semua anggota terlihat di dalam kelas dan memiliki paket sebagai visibilitas default memberikan kohesi tinggi.