No mundo globalizado e tecnológico em que se vive, é necessário buscar maneiras de melhorar o sistema informatizado digital. Os softwares, por exemplo, encontram-se em constante mudança, pois há a necessidade de corrigir erros existentes ou de adicionar novos recursos e funcionalidades. Essa necessidade evolutiva do sistema de software o torna ¿não confiável¿ e predisposto a defeitos, atraso na entrega e com custo acima do estimado. A complexidade dos sistemas de software exige que os profissionais da área raciocinem, projetem, codifiquem e se comuniquem por meio de componentes de software. A partir dessa necessidade, a engenharia de software mostrou-se mais atrativa e tornou-se uma área muito abordada recentemente. Também por meio dela, surgiu o ramo da arquitetura de software, que trabalha com o uso de camadas, objetivando facilitar a alocação da funcionalidade dos requisitos e oferecer suporte à flexibilidade e portabilidade, o que resulta em facilidade de reuso e manutenção. Isso ocorre devido às interfaces padrões bem definidas que encapsulam componentes. Além das modularizações, a arquitetura oferece suporte a um conjunto de atributos de qualidade e desempenho.