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