Искусство создания программных архитектур нередко связано с организацией перегруппированных компонентов в ориентированный ациклический граф. Узлами такого графа являются компоненты, содержащие политики одного уровня. А ориентированными ребрами – зависимости между компонентами. Они соединяют компоненты, находящиеся на разных уровнях.