Coupling vs Cohesion
Modularity adalah salah satu konsep dasar perancangan yang harus diusahakan. Membagi software menjadi modul-modul bukan sekedar memisahkan sekumpulan kode dari kumpulan lainnya. Kita harus pastikan bahwa modul yang dirancang memiliki coupling yang rendah dan cohesion yang tinggi.
Coupling adalah ketergantungan suatu modul terhadap modul lainnya. Kita harus pastikan bahwa suatu modul seminimal mungkin tergantung atau berpengaruh terhadap modul lainnya. Jadi, jika ada update secara internal di dalam suatu modul, modul-modul lainnya tidak akan terlalu kena pengaruh.
Cohesion adalah keterikatan fungsi-fungsi di dalam suatu modul. Modul yang baik adalah modul yang mengelompokkan fungsi-fungsi yang saling terkait. Jadi, cohesion-nya harus tinggi.
8 Comments »
Leave a comment
-
Archives
- November 2009 (5)
- October 2009 (15)
- September 2009 (12)
- August 2009 (5)
- July 2009 (4)
- June 2009 (7)
- May 2009 (14)
- April 2009 (7)
- March 2009 (7)
- February 2009 (18)
- January 2009 (15)
- December 2008 (13)
-
Categories
- analysis
- aspect oriented
- CBSE
- critical system
- design
- digital learning
- e-business
- ecosystem
- final project
- fun
- health informatics
- introduction
- lecture
- maintenance
- method
- oop
- others
- programming
- project
- project management
- quality
- real time system
- requirement
- research
- service computing
- soa
- software architecture
- software metrics
- software process
- software product
- software quality
- software standard
- technology
- testing
- tools
- Uncategorized
- webE
-
RSS
Entries RSS
Comments RSS
karena kata CHANGE pada software pasti selalu ada …
jadi software tersebut harus mampu beradaptasi terhadap perubahan itu … begitu ya bu … saya taunya dari head first design pattern …
kalau yang cohesion itu di oo kaitannya dengan 1 class -> 1 resposibility ya bu .. fokus ke satu tanggung jawab saja .. atau ada yang lain ?
karena belajar sendiri jadi mungkin ada yang saya salah mengerti .. mohon petunjuk nya ya bu …
Hi Amir,
Ya, CHANGE adalah hal yang natural terjadi terhadap software, karena itu harus diantisipasi.
Ya, cohesion adalah fokus terhadap satu fungsionalitas tertentu. Tentu saja ukuran modul juga harus optimal. Jangan terlalu kecil juga…
kenapa CHANGE diantisipasi bukannya diakomodasi?
He..he..he.. Maksud saya diantisipasi itu adalah dipersiapkan dengan baik, sehingga pada saat CHANGE tersebut terjadi, bisa ditangani dengan mudah. Salah satunya adalah dengan mendefinisikan modul yang baik. Salah istilahnya ya ??
maaf saya mau tanya, dalam coupling n cohesion apa saja yang perlu ditingkatkan dan dikurangi?mnt penjelasan tentang tipe coupling n cohesion untuk modifiability..terima kasih..
Ini salah satu tingkatan derajat coupling dan cohesion:
Derajat Cohesion (rendah ke tinggi; makin tinggi makin baik):
Coincidental –> Utility –> Temporal –> Procedural –> Sequential –> Communicational –> Layer –> Functional
Derajat Coupling (rendah ke tinggi; makin rendah makin baik):
No direct coupling –> External coupling –> Inclusion or import coupling –> Type use coupling –> Routine call coupling –> Data coupling –> Stamp coupling –> Control coupling –> Common coupling –> Content coupling
Intinya, saat kita merancang suatu modul, maksimalkan derajat cohesionnya, kalau bisa sampai derajat paling baik, yaitu satu modul fokus pada fungsi yang sama (functional). Dan minimalkan coupling-nya, idealnya tidak ada ketergantungan antar modul (no direct coupling).
maaf bu tanya lagi, apa ada suatu tools/metode untuk mengukur seberapa kuat cohesion dan coupling?(mungkin dengan ratio atau nilai yang bisa menunjukkannya)klo ada apa itu dan apakah saya bisa minta referensinya bu?
terima kasih…
kalau berkenan mohon dikirim ke email saya bu..yayansastro@yahoo.com terima kasih
OK, saya kontak via email…