Cohesion (Kohezja)
Miara tego jak poszczególne funkcje przynależą do danego modułu.
Kohezja (łac. cohaere – nieodłączny) – ogólna nazwa zjawiska stawiania oporu przez ciała fizyczne, poddawane rozdzielaniu na części. Jej miarą jest praca potrzebna do rozdzielenia określonego ciała na części, podzielona przez powierzchnię powstałą na skutek tego rozdzielenia.
Cel: rozbijanie oprogramowania na małe moduły.
Miara dobrego pogrupowania elementów w moduły
Wysoka kohezja wspomaga modularyzację
Redukuje coupling pomiędzy modułami
Typy kohezji
Od najmniej do najbardziej oczekiwanej
Coincidental - elementy wpadły do klasy przez przypadek
Logical - wiąże logiczne byty ze sobą, ale nie mają one ze sobą nic wspólnego
Temporal - w module mamy funkcje, które wykonują się w tym samym czasie
Procedural - operacje w module są w tej samej procedurze
Communicational - funkcje korzystają z tych samych struktur danych
Sequential - łańuch wywołań (np. przygotowanie kursu -> pipes and sink)
Functional - związane z funkcją (np. moduł kalkulatora zawiera wszystkie operacje wewnątrz danego modułu)
Metryki
Lack of Cohesion of Methods (LCOM).
Brak Kohezji metod klasy
Last updated
Was this helpful?