Engenharia de software: Fundamentos da arquitetura de Software
Engenharia de software: Fundamentos da arquitetura de Software
André Gomes Durães
A Arquitetura de Software Quando tentamos solucionar um problema, é possível identificar diversas soluções que poderiam ser utilizadas visando resolvê-lo. Contudo, outros fatores como custo e ciência influenciam na escolha da solução a ser adotada.
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. Para se construir a arquitetura de um software, e por consequência o documento arquitetural que a representa, os requisitos são as principais informações usadas. Durante o processo de especificação arquitetural 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.
Ao revisar um artefato de software vários benefícios para o projeto e para a melhoria da qualidade do software podem ser obtidos. Contudo, para que essa atividade seja realizada, recursos devem ser alocados, o que pode aumentar o custo final do projeto. Portanto, antes de realizar a revisão de um artefato, é imprescindível que a importância desse artefato dentro do processo de desenvolvimento seja identificada, permitindo definir o custo/benefício de sua revisão. Uma característica única em Engenharia de Software em relação às outras áreas de engenharia é que os produtos por ela construídos não são completamente materializáveis. Diferente de um engenheiro civil que pode inspecionar, por exemplo, as partes de um prédio, um engenheiro de software não consegue inspecionar um pedaço do software em si. A avaliação arquitetural consiste em