Low Coupling & High Cohesion
Модули приложения должны проектироваться как обладающие сильной связностью (направленные на решение одной четкой задачи) и слабой зацепленностью (как можно менее зависимые от других модулей)
В рамках методологии это достигается через:
- Разбиение приложения на слои и слайсы - модули, реализующие конкретную функциональность.
- Требование к каждому модулю - предоставлять публичный интерфейс доступа
- Введение специальных ограничений на взаимодействие модулей между собой - каждый модуль может зависеть только от "нижележащих" модулей, но не от модулей с того же или более высокого слоя.