Afinal, o que é arquitetura de software?

Com o crescimento da complexidade no desenvolvimento de software uma atividade na qual se preocupe com algo além de estrutura de dados e algoritmos se torna indispensável. Isso traz a tona o papel da Arquitetura de software guiando as interconexões do seu projeto de software e conduzindo a um entendimento comum e mais claro. Uma vez que ela dá suporte ao projeto utilizando referências do passado e presente para direcionar o futuro pode-se obter melhores resultados, pois o projeto é avaliado constantemente. Além disso, Mendes¹ indica que o software no nível arquitetural se preocupa com vários outros aspectos como:

  • seleção de alternativas de projetos;
  • escalabilidade e desempenho;
  • organização e estrutura geral de controle;
  • protocolos de comunicação, sincronização;
  • atribuição de funcionalidade a componentes de projeto;

Embora seja uma prática relativamente nova, pensar em software de grande porte sem pensar em arquitetura de software indica problemas futuros de projeto e manutenção. Pode-se questionar a real necessidade da arquitetura de software no desenvolvimento, mas sua idéia básica de descrever o software em um nível elevado de abstração através de subsistemas ou componentes permite que requisitos se tornem mais claros no decorrer do desenvolvimento diminuindo a complexidade no emaranhado de regras existentes entre requisitos funcionais e não-funcionais.

As tarefas que dizem respeito à Arquitetura de Software compreendem em sua maior parte etapas de análise, procurando validar, mensurar e avaliar o andamento do projeto. Abaixo segue uma lista contendo as habilidades e tarefas de um arquiteto de software segundo Mendes¹:

Habilidades Desejadas

Tarefas atribuídas

· compreensão profunda do domínio e das tecnologias pertinentes

· modelagem

· entendimento de aspectos técnicos para desenvolvimento de sistemas bem-sucedidos

· análise de compromissos/viabilidade

· técnicas de elicitação, técnicas de modelagem e métodos de desenvolvimento

· prototipação, simulação, realização de experimentos

· entendimento das estratégias de negócios da instituição onde atua

· análise de tendências tecnológicas

· conhecimento de produtos, processos e estratégias de concorrentes

· atuação como mentor de arquitetos novatos

Podemos concluir que as tarefas pertinentes a arquitetura de software tem um grau de importância elevado para o bom andamento do projeto, caso ele tenha que ser bem estruturado e seu nível de complexidade não seja baixo.

Referências:
¹ MENDES, ANTONIO – Arquitetura de Software, Editora Campus, 2002