Перепроектирование -- изменение архитектуры приложения. Что следует учитывать

Перепроектирование -- изменение характера связей между частями программной системы и/или числа этих частей.

Перепроектирования все пытаются избежать.

Но если оно вдруг потребуется (а это бывает не редко в развивающихся проектах, хотя бы на уровне отдельных модулей, а не всей системы), то его легкость зависит: