Fundamentos de Arquitetura de Software
Este artigo apresenta os fundamentos da arquitetura de software. São descritos a importância e o papel da arquitetura de software no processo de desenvolvimento.
De que se trata o artigo:
Este artigo apresenta os fundamentos da arquitetura de software. São descritos a importância e o papel da arquitetura de software no processo de desenvolvimento. Também são identificadas as principais atividades realizadas durante o processo de especificação arquitetural.
Para que serve:
Quando tentamos solucionar um problema, é possível identificar diversas soluções que poderiam ser utilizadas visando resolvê-lo. Contudo, outros fatores como custo e eficiência influenciam na escolha da solução a ser adotada. No contexto do desenvolvimento de software, o mesmo pode ser observado ao se analisar os requisitos visando a construção de um software: várias soluções computacionais podem ser definidas para atender a esses requisitos, mas uma análise deve ser feita para definir a mais adequada ao contexto de desenvolvimento da aplicação. Para se representar essas soluções, a arquitetura de software é uma das abordagens que podem ser usadas.
Em que situação o tema é útil:
No entendimento dos fundamentos da arquitetura de software. Conhecimento este fundamental na elaboração da arquitetura de aplicações em projetos reais.
Quando tentamos solucionar um problema, é possível identificar diversas soluções que poderiam ser utilizadas visando resolvê-lo. Contudo, outros fatores como custo e eficiência influenciam na escolha da solução a ser adotada. No contexto do desenvolvimento de software, o mesmo pode ser observado ao se analisar os requisitos visando a construção de um software: várias soluções computacionais podem ser definidas para atender a esses requisitos, mas uma análise deve ser feita para definir a mais adequada ao contexto de desenvolvimento da aplicação.
Para se representar essas soluções, a arquitetura de software é uma das abordagens que podem ser usadas. Com isso, para se obter a arquitetura (solução) mais adequada para atender aos requisitos do software (problema), uma avaliação dessa estrutura deve ser realizada.
A arquitetura consiste em um modelo de alto nível que possibilita um entendimento e uma análise mais fácil do software a ser desenvolvido. O uso de arquitetura para representar soluções de software foi incentivada principalmente por duas tendências (GARLAN e PERRY, 1995; KAZMAN, 2001): (1) o reconhecimento por parte dos projetistas que o uso de abstrações facilita a visualização e o entendimento de certas propriedades do software, e (2) a exploração cada vez maior de frameworks visando diminuir o esforço de construção de produtos através da integração de partes previamente desenvolvidas.
Outra propriedade da arquitetura é a possibilidade de usá-la como ferramenta para comunicar a solução projetada aos diversos stakeholders que participam do processo de desenvolvimento do software (GARLAN, 2000). Contudo, para que essa comunicação seja possível, a arquitetura deve ser representada através de um documento, conhecido como documento arquitetural.
Para se construir a arquitetura de um software, e por conseqüência o documento arquitetural que a representa, os requisitos são as principais informações usadas. Durante o processo de especificação arquitetural (Figura 1), além dos requisitos, outras fontes de conhecimento podem ser utilizadas para definir os elementos arquiteturais e a forma como eles devem estar organizados. Entre essas fontes de conhecimento se destacam principalmente a experiência do arquiteto, o raciocínio sobre os requisitos, e os estilos e as táticas arquiteturais.
Figura 1. Elementos usados na construção de uma arquitetura.
Contudo, existe uma falta de consenso na comunidade em relação tanto aos conceitos e definições básicas quanto à forma de representar uma arquitetura de software (BUSCHMANN et al., 1996; CLEMENTS et al., 2004). Portanto, na próxima seção são descritos os termos aqui adotados e seus respectivos conceitos associados. Além disso, são descritos a importância e o papel da arquitetura de software no processo de desenvolvimento, e, por fim, são identificadas as principais atividades realizadas durante o processo de especificação arquitetural.
Definição dos conceitos relacionados à arquitetura de software
" [...] continue lendo...
Artigos relacionados
-
Artigo
-
Vídeo
-
Vídeo
-
DevCast
-
DevCast