Arquiteturas Testáveis
Um dos gaps existentes nos times de desenvolvimento de software é a distância entre a concepção e desenho da arquitetura e sua efetiva realização. Motivos para este problema incluem:
- Mudanças de escopo e mudanças nas prioridades dos condutores e requisitos arquiteturais,
- Ausência de desenvolvedores na definição da arquitetura. Quando uma pessoa não participa da definição de um plano arquitetural, ela tem dificuldades naturais em se comprometer com aquele planejamento.
- Dificuldades para uma pessoa qualquer (inclusive o arquiteto) para manter o rigor das suas próprias definições dentro da complexidade e pressão de um projeto.
- Complexidades nas transformações e na rastreabilidade dos requisitos de negócio em condutores, dos condutores em requisitos arquiteturais, dos requisitos arquiteturais em mecanismo de análise, dos mecanismos de análise em mecanismos de desenho e estes em mecanismos de implementação, que possibilitam que um código fonte seja escrito.
Práticas arquiteturais como a arquitetura coletiva e a gestão do ciclo de vida da arquitetura de software, que descrevemos em outros posts, podem nos ajudar a minimizar estes problemas.
Uma outra ajuda neste sentido foi lançada recentemente no JBOSS World 2009 que ocorreu semana passada em Chicago. O projeto SAVARA tem por objetivo garantir um modelo vertical completo de rastreabilidade de requisitos de negócio em projetos SOA, conforme a figura abaixo mostra.

Este projeto é baseado em uma metodologia de governança de serviços da Red Hat e Cognizant e apresenta como conceito interessante o uso da CDL como técnica de representação arquitetural dos requisitos arquiteturais. Do que pudemos examinar até o momento, o projeto utilizará como tecnologia central o JBOSS Drools Guvnor como ferramenta de repositório. O Guvnor, conceitualmente, é uma implementação da especificação Java para conteúdos de repositórios (JSR 170).
Embora ainda tenhamos que esperar que este projeto possa amadurecer e se tornar um produto real, é no mínimo uma satisfação ver frutos dos conceitos de arquiteturais testáveis e métodos de avaliação arquitetural como o ATAM.