Это первая попытка формулировки, что такое сложность, сначала лучше прочитать более новый взгляд на сложность - Сложность ПП
Сложность модели(кода, программы) - это количество вариантов поведения модели.
Сложность(количество вариантов) растет очень быстро: раз развилка, два развилка... десятая развилка...двадцатая развилка и вот уже количество вариантов стало 2^20 - миллион, а миллион вариантов в голове уже не удержишь, даже 100-1000 вариантов с трудом умещаются.
Но крутиться как-то надо, надо уметь работать и с такой сложностью, и вот появляются инструменты для уменьшения кол-ва вариантов.
Разделение на независимые части - при разделение модели на независимые части, сложность модели уменьшается. Пока части были соединены в единой целое - сложность отдельных развилок перемножалась, но как только мы выделили независимые части - сложность между частями начинает складываться, а не перемножаться. Части должны быть как можно более независимые, т.к. только одна часть начинает влиять на другую, так сразу мы опять получаем взрывной рост вариантов.