PlantUML como ferramenta CASE para UML
Ao longo da minha carreira como desenvolvedor de software, incluindo o tempo na universidade, tive a oportunidade de usar várias ferramentas que auxiliavam a engenharia de software. Acho que todos podem concordar que as mais proeminentes no domínio da modelagem estão conectadas com ferramentas de UML (Unified Modeling Language) e BPMN (Business Process Model and Notation). Como desenvolvedores, na maioria das vezes usamos as primeiras, enquanto o BPMN é mais usado por pessoal de negócios.
A lista das ferramentas UML profissionais mais populares certamente incluirá aplicações como Visual Paradigm, Enterprise Architect, Lucidchart ou algo da casa IBM — Rational Software Architect. As mencionadas fornecem suporte para a maioria dos casos de uso, incluindo projetos muito complexos e integrações com produtos externos. Mas você já considerou se realmente precisa de soluções tão complexas e, às vezes, desajeitadas para o seu projeto?
Às vezes, você só precisa criar um diagrama ou alguns pequenos e independentes. Talvez você esteja com pouco tempo e ainda não tenha nada configurado? Nos tempos de faculdade, o Draw.io era muito popular entre meus colegas. Você sabe — aquele site — você o abre no navegador, arrasta e solta e voilà! Modelagem sem dor para o seu pequeno projeto. Mas será mesmo? Eu nunca gostei muito de editores do tipo arrastar e soltar ou WYSIWYG — pelo menos não até ter a chance de usar LaTeX ou Markdown. Nesse ponto, percebi que posso fazer o trabalho muito mais rápido usando ferramentas que utilizam alguma linguagem declarativa mais próxima da codificação.
Felizmente, no momento em que escrevia minha primeira tese, descobri o PlantUML. Uma ferramenta que permite criar rapidamente diagramas UML consistentes com apenas algumas linhas escritas em uma linguagem simples e intuitiva.
Bob->Alice : olá
Fácil, não foi? Não para por aí. Você pode simplesmente copiar esta linha e colá-la em uma aplicação online para obter o gráfico nos formatos mais comuns. Os elementos são posicionados e ajustados automagicamente. Finalmente, uma ferramenta que permite que você se divirta tanto durante a modelagem UML, a ponto de querer mais. Ah, mas não vamos andar com a cabeça nas nuvens. Já criei centenas de gráficos usando o PlantUML, então posso falar mais sobre os pontos fortes e fracos desta ferramenta.
Prós:
- código aberto;
- diagramação UML rápida e fácil após um aprendizado inicial;
- sem perda de tempo com posicionamento e ajustes de tamanho dos elementos;
- o formato de texto facilita a importação e o compartilhamento de diagramas (olá VCS);
- editores online não requerem nenhuma instalação ou configuração;
- os formatos mais comuns são suportados, incluindo os sem perdas;
- pode ser usado como uma biblioteca em código Java;
- múltiplas integrações e plugins.
Contras:
- casos complexos requerem leitura adicional da documentação (por exemplo, linhas de vida de sequência);
- nem todo diagrama pode parecer como você precisa (tive alguns problemas com o diagrama de atividades para a faculdade);
- o posicionamento é possível, mas limitado para diagramas que consistem em mais elementos;
- é mais uma ferramenta do que uma aplicação (isso é um contra, no entanto?).
A propósito, leva um momento para traduzir o diagrama graças aos aliases e ao formato de texto. Então, essa é basicamente a minha escolha para projetos de pequeno a médio porte e diagramas isolados. E você? Tem uma ferramenta UML favorita?