Executando verificação de segurança...
6

Ferramentas para UML e diagramas em geral

Olá pessoas, tudo bem?

Em meu dia a dia como programador é comum que eu tenha que criar um uml para documentação da estrutura do que estou desenvolvendo (empresa pequena, é back, é front, é arquitetura, é devOps, é levantamento de requisitos, é prototipação, é de tudo um pouco... kkkk).

Pois bem, normalmente para UML, estava usando o whimsical, porém faz um tempo que eles mudaram o plano gratuito e deixou de ser viável utiliza-lo. Agora estou usando o draw.io, ele é bem completo, mas achei um pouco manual de mais para fazer as coisas.

Dito isso, venho utilizar dessa maravilhosa ferramenta chamada Tabnews do Michel Teló para buscar opções de outras ferramentas, preferencialmente gratuitas para diagramação.

Carregando publicação patrocinada...
9

Simples e direto https://mermaid.js.org/syntax/zenuml.html

E pelo fato do Github agora dar suporte ao Mermaid no Markdown, é a minha recomendação

https://github.blog/2022-02-14-include-diagrams-markdown-files-mermaid/

Além de de ter todas as vantagens que o @clacerda apontou também (versionamento)

OBS: Pelo visto o pessoal aqui não olha, mais o tabnews também renderiza Mermaid.

graph TD
Start --> Stop
sequenceDiagram
Alice->>John: Hello John, how are you?
John-->>Alice: Great!
Alice-)John: See you later!
classDiagram
Animal <|-- Duck
Animal <|-- Fish
Animal <|-- Zebra
Animal : +int age
Animal : +String gender
Animal: +isMammal()
Animal: +mate()
class Duck{
+String beakColor
+swim()
+quack()
}
class Fish{
-int sizeInFeet
-canEat()
}
class Zebra{
+bool is_wild
+run()
}
erDiagram
CUSTOMER ||--o{ ORDER : places
ORDER ||--|{ LINE-ITEM : contains
CUSTOMER }|..|{ DELIVERY-ADDRESS : uses
1
2

Entendendo sua busca por ferramentas práticas e eficazes para diagramação UML, e considerando a menção ao draw.io como uma ferramenta útil, mas talvez excessivamente manual, gostaria de introduzir o PlantUML como uma solução potencial. Essa ferramenta oferece uma abordagem diferente, que atender às suas necessidades de diagramação em UML.

Em primeiro lugar, é importante reconhecer o valor do draw.io, mencionado por 0x80h como sua ferramenta favorita. O draw.io é realmente uma ferramenta muito robusta e versátil para diagramação, pode ser visto como equivalente ao uso de papel e lápis em um formato digital; requer um esforço manual para criar cada elemento de um diagrama, mas oferece flexibilidade infinita. Quando se começa com o diagrama para depois escrever o código, ferramentas como papel e lápis ou mesmo o draw.io podem ser muito poderosas devido à natureza imediatamente visual dessas ferramentas, permitindo esboçar/construir/comunicar rapidamente suas ideias de forma clara e precisa.

Dessa forma, enquanto o draw.io e métodos semelhantes oferecem uma liberdade visual imediata na criação de diagramas, a documentação de projetos de software necessita de algo além dessa capacidade visual. Aqui entra o valor da padronização e da manutenção de documentação efetiva, especialmente em ambientes colaborativos e projetos de longo prazo. O PlantUML, com sua abordagem baseada em código para a criação de diagramas UML, é especialmente útil nesse contexto.

Através do PlantUML, os diagramas são gerados a partir de uma linguagem de marcação. Ao invés de construir manualmente cada elemento do diagrama, como no draw.io ou com papel e lápis, no PlantUML, você escreve um texto que descreve os elementos do diagrama, e a ferramenta gera automaticamente o diagrama visual correspondente. Essa abordagem traz alguma complexidade ao processo de criação de diagramas, mas também tem benefícios significativos.

Um dos principais benefícios é a facilidade no controle de versão. Já que os diagramas do PlantUML são apenas código, eles podem ser facilmente controlados por versão, junto com o restante do código-fonte do projeto. Isso torna o rastreamento de mudanças e a colaboração em diagramas tão direta quanto com qualquer outro código-fonte. Consequentemente, mudanças no código podem ser refletidas com muito mais facilidade nos diagramas, garantindo que a documentação esteja sempre alinhada com o estado atual do projeto, um dos maiores desafios na manutenção de diagramas.

Aqui na plataforma, quando se fala sobre 'no-code', eu sempre menciono que isso, não existe. O que realmente existe é a geração automática de código. Assim como existem inúmeras ferramentas para gerar HTML/CSS/JavaScript, é relativamente fácil criar ferramentas (de scripts básicos, até integrações com suites de testes instrumentadas) que gerem diagramas automaticamente a partir do seu código. Ou, indo ainda mais longe, gerar código (embora básico ou boilerplate) a partir dos seus diagramas. Para concluir, o PlantUML representa uma ponte entre a visualização intuitiva e precisão técnica, sendo a ferramenta mais acertada para uma documentação padronizada, atualizada e consistente em projetos de software.

2

Veja minha resposta acima. Acredito que o Merdmaid tenha todas essas vantagens e ainda tem a vantagem de renderizar no tabnews e no Markdown do Github

1