segunda-feira, 10 de novembro de 2008

AgileDraw: Em que momento eu precisei usá-la.

Recentemente, durante o início das atividades de levantamento de requisitos e esboço inicial da arquitetura da solução em um projeto de integração de aplicações corporativas (sendo mais claro, aplicações bem legadas), eu obtive muita dificuldade em extrair da equipe do cliente, responsáveis por estes sistemas "de longa data", as informações que eu precisava para começar a esboçar a arquitetura inicial. Foi aí que me veio a seguinte idéia: Já que eles não entendem UML, ou seja, tudo que está desenhado no meu documento inicial não servia para nada. Eu decidi experimentar na prática a notação agíl para modelagem, denominada de AgileDraw.

Até esse momento, eu tinha uma certa resistência sobre essa notação. Porém, percebi como aquela simples notação estava facilitando a compreensão de todos os membros da equipe técnica (incluindo membros do cliente), durante a tal reunião para tomadas de decisões arquiteturais.

Por ser uma notação simples, com poucas regras e formalizmos, vários dos envolvidos assimilaram seus conceitos em apenas 5 minutos de explanação, e já estavam dando suas opiniões e sugestões, desenhando-os no quadro-branco.

Na minha visão, a AgileDraw simplifica bastante a comunicação, dando ênfase em conceitos e contéudo, e não em formatação e regras rígidas de notação, o que é o caso da UML.

Sempre utilizei a UML, e vejo que continuarei utilizando-a. Porém, desde sempre, busco não trabalhar com ela seguindo totalmente suas regras, mas sim, tentando expressar nos diagramas confeccionados, algo entendível por qualquer membro da equipe. Entretanto, isso é uma tarefa difícil, pois a própria UML vai te "influênciando" a desenhar seguindo suas própria regras, sem contar com as ferramentas de modelagem que não permitem qualquer "desvio", por mais que seja intencional.

A AgileDraw é muito boa para as primeiras fases do projeto, onde estamos levantando e entendendo os reguisitos, fazendo uma visão conceitual da arquitetura, com diagramas simples e qua facilitem o entendimento por todos, inclusive para validar se nosso entendimento está coerênte. Após essa fase, a UML entra em ação novamente.

A semântica da AgileDraw é composta por 3 elementos básicos:

O círculo, representa algo dinâmico que reage a eventos tanto internos quanto externos. Basicamente, seu uso é aplicado para representar servidores de aplicações, servidores de mensageria, banco de dados, classes/componentes com comportamento de listeners. Por outro lado, o retângulo, representa algo mais rígido, que não sofre tantas variações, tal como uma classe, uma entidade, um hardware, uma tabela no banco de dados e etc.

A linha, por sua vez, representa uma associação, podendo ser de dois tipos: Sólida ou Pontilhada. A linha sólida representa relacionamentos concretos, síncronos e/ou alto acoplamento. Já a linha pontilhada, representa relacionamentos abstratos, assíncronos e/ou com baixo acoplamento.

Caso você se interessa nessa notação. Segue abaixo, um exemplo de diagrama, onde muito mais podem ser encontrados no site da AgileDraw.

Abraço a todos.

Nenhum comentário: