Cohesion относится к тому, насколько сильно связаны части программы, отвечающие за одну задачу. Чем выше Cohesion, тем лучше, потому что это означает, что части программы, связанные с одним функционалом, находятся вместе и работают эффективно. Например, если вы пишете программу для обработки изображений, то все функции, связанные с обработкой изображений, должны быть сгруппированы вместе, чтобы программа была более понятной и была проще для поддержки.
Coupling относится к тому, насколько сильно связаны разные части программы друг с другом. Чем ниже Coupling, тем лучше, потому что это означает, что разные части программы могут быть изменены независимо друг от друга. Например, если у вас есть две функции, которые работают с разными типами данных, и одна функция использует данные, созданные другой функцией, то это означает, что они связаны между собой и изменение одной функции может повлиять на другую.
В целом, лучше всего, чтобы ваша программа имела высокий Cohesion и низкий Coupling, чтобы она была проще для понимания, сопровождения и изменения.