Interface que expõe funcionalidades de um componente a outros.
Grau de dependência entre módulos; deseja-se baixo acoplamento.
Estrutura de alto nível: componentes, relações e princípios de design.
Organização em níveis com responsabilidades distintas.
Arquitetura com clientes requisitando serviços a um servidor.
Grau em que elementos de um módulo contribuem para um único propósito.
Padrão Model-View-Controller que separa dados, apresentação e controle.
Conjunto de serviços pequenos, independentes e comunicantes.