menu

SHARKLABS

Introdução a Arquitetura de Software

/
/
Introdução a Arquitetura de Software
bookmark Arquitetura de Software access_time

Definição

Muitas pessoas falam sobre Arquitetura de Software, mas você sabe o que é?

Para responder esta pergunta, vamos entender o significado da palavra “arquitetura”. Analisando sua etimologia, “arquitetura” vem do grego e significa: Primeiro desenho, ou principal desenho.

Você encontra mais detalhes sobre a palavra “Arquitetura” neste link.

Logo entende-se como arquitetura de software, como uma etapa da engenharia de software e que se dedica a montar o primeiro (ou principal) esboço da estrutura do software.

Fazendo uma analogia, a arquitetura da construção civil concentra-se em desenhar ambientes e organizar os espaços de acordo com o objetivo dos interessados no projeto. Após essa etapa o projeto é detalhado e a construção pode ser iniciada.

A arquitetura da engenharia de software segue os mesmos passos. Segundo Sommerville (2011), o projeto de arquitetura acontece após a elicitação dos requisitos e a análise de casos uso. Desta forma, essa etapa se preocupa em definir a estrutura do sistema e como ela será organizada.

Importância e Vantagens

É comum que softwares sejam construídos sem uma análise da arquitetura que será utilizada. Isso acontece por vários motivos (é uma longa lista…).

Mas eu devo me preocupar com a arquitetura do meu sistema?

Resposta: Sim, você deve se preocupar!

Segundo Sommerville (2011), a refatoração de arquitetura normalmente é bem cara, pois aferá todo o sistema.

Para destacar o valor da arquitetura de software, Gray e Larson (2009) dizem que as etapas iniciais são as mais oportunas para identificar e tratar os riscos. Quanto mais evoluído o projeto, maior será os custos de mudanças.

A arquitetura de software possibilita uma análise inicial bem ampla e que é importante para validar a estrutura do sistema. Isso minimiza as chances de refatoração da arquitetura.

Um bom trabalho realizado nesta etapa facilita a discussão com os stakeholders, uma vez que o projeto de arquitetura normalmente é bem recebido por pessoas leigas. Relacionado a alguns diagramas, ele é relativamente fácil de entender.

Projeto de arquitetura

Existem várias maneiras para representar graficamente o projeto de arquitetura.

Inicialmente você utilizar blocos e ligações simples com o objetivo de representar as partes do sistema e suas comunicações. Essa opção é utilizada em projetos simples e com pouco tempo de desenvolvimento.

Outra opção é utilizar o digrama de componentes da UML. É ótimo em sistemas complexos ou que necessitam de documentação extensa. Em breve falaremos mais sobre o diagrama de componentes aqui no blog.

Para Sommerville, os projetos ágeis aceitam uma perspectiva diferente sobre a arquitetura de software.

“Em processos ágeis, geralmente se aceita que um estágio inicial do processo de desenvolvimento se preocupe com o estabelecimento de uma arquitetura global do sistema.” (SOMMERVILLE, 2011, p. 103).

Na minha opinião, é possível separar algumas etapas ou sprints para definição e codificação do modelo arquitetônico. Construção protótipos são bem-vindos durante a discussão e testes.

Por fim, existem as linguagens de descrição de arquitetura (ADLs, do inglês Architectural Description Languages). O uso delas não é tão comum e Sommerville (2011) justifica isso.

“No entanto, devido a sua natureza especializada, especialistas de domínio e aplicação consideram as ADLs difíceis de entender e usar, o que torna difícil avaliar sua utilidade para engenharia de software prática.” (SOMMERVILLE, 2011, p. 108).

Conclusão

Este artigo tem o objetivo de esclarecer o termo arquitetura de software e como ele pode fazer do seu dia a dia.

Se você gostou, curta e compartilhe este artigo. Fique ligado no blog, pois em breve falaremos mais sobre este assunto.

Dúvidas ou sugestões, é só deixar seu comentário.

Referências

GRAY, Clifford; LARSON, Erik. Gerenciamento de Projetos o Processo Gerencial. 4. ed. São Paulo: Mcgraw-hill, 2009. Tradução de Dulce Cattunda e Frederico Fernandes.

SOMMERVILLE, Ian. Engenharia de Software. 9. ed. São Paulo: Pearson Addison Wesley, 2011.

Autor
"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." Martin Fowler