Flexibilidade usando blocos de construção Aplicação especifica a composição inicial ao criar o arquivo Possibilidade de trocar blocos da composição do arquivo Desde que o novo bloco possua interface igual ao anterior Múltiplas subclasses de uma classe interface comum Possibilidade de adicionar novos blocos à composição Desde que as interfaces envolvidas na conexão casem Mudança na topologia da composição -> mudança nas funcionalidades disponíveis Possibilidade de adicionar novas interfaces à aplicação Adição de blocos que exportam essas interfaces e importam interfaces existentes