являются:
построение системы с любым уровнем сложности бизнес-логики, сохраняя при
этом четкую структурированность системы; возможность существенного расширения функциональности системы по ходу дальнейшего жизненного цикла продукта без существенного перепроектирования системы, простота поддержания системы;
возможность параллельной работы целых групп разработчиков над различными аспектами приложения и быстрое согласование результатов их работы