Taverna /dev/All

Boas ferramentas UML. O que usam?

Por um bom tempo usei o Astah Community como minha ferramenta favorita para desenhar diagramas UML: ainda hoje é a minha ferramenta favorita, diga-se de passagem. Só que infelizmente ano passado esta versão foi descontinuada.

Uma alternativa que era muito interessante vinha no Netbeans, mas a versão 10 já não vêm mais com ela. E observando o que há hoje disponível, especialmente open source, tenho até mesmo a impressão de que vivemos uma decadência nestas ferramentas. Há esta decadência?

O que costumam usar?

1 Curtida

Tem esta aqui https://www.draw.io online.
Embora seja gratuita tem recursos bem interessantes.

1 Curtida

Também utilizo o draw https://www.draw.io.
Mas principalmente para diagramas de arquitetura e eventualmente BPMN e UML.
Uma coisa interessante do draw.io é que ele é opensource - então já utilizei em clientes para criação de formulários customizados.

Aqui usamos PlantUML, é código, dá pra por no git e, normalmente, faz os poucos diagramas UML que precisamos com perfeição. Recomendo.

Link: http://plantuml.com/

Pelo menos desde o advento agile graças a Deus não passo por empresas que perdem tempo com UML.

Quando necessário, apenas protótipos e o simples e prático fluxograma. Chovem excelentes ferramentas, é visualmente muito fácil do cliente entender durante a definição dos requisitos e até mesmo ajudam a manter. Fora isso, modelagem de dados, mantido por ADs com o Power Designer.

Opa scalare, quais os principais problemas com o UML na sua opinião?

Pelo menos pelas experiencias que passei não vi utilidade, um trabalho sem retorno de valor pro cliente.

Interessante, por que?

Minha experiência sempre foi a oposta, quero ver o lado negro da coisa

Por que vou usar algo sem ter a necessidade? Pro cliente pouco importa isso, importante é o fluxo e a interface de uso.

Oi scalare, sim, você já disse isto antes, o que quero entender é: por que UML para você é considerada uma ferramenta irrelevante?

Acho que na maior parte você está certo, e isto talvez se reflita na pobreza das ferramentas UML que temos hoje.

Para o cliente final - o leigo - concordo parcialmente com você. Realmente, pode ser muito difícil entender um diagrama de classes, sequência, implantação, etc. Entretanto o de casos de uso, quando você não usa todas as features, é universalmente reconhecível e surge naturalmente.

Enquanto desenvolvedor, entretanto, UML foi pra mim assim como o TDD: um dos maiores avanços técnicamente pra mim justamente por me ajudar a visualizar os sistemas que estamos construindo: claro, em excesso não funciona por que temos uma linguagem essencialmente pictórica (seis anos atrás inclusive expus minhas críticas à UML neste link:https://itexto.com.br/devkico/?p=1340 ).

Exatamente, assim como seu post inicial já levantava essa percepção, isso já explica boa parte do que comentei.

Modelo orientado a objetos é complexo para maioria das partes entenderem, como analista de requisitos, analista de dados, analista de qualidade, gestores da demandas, clientes e até mesmo alguns analistas/programadores. Maioria dos modelos em grandes empresas são orientados a dados e fluxos, com grande aceitação do todo, não só do programador isolado. Por isso as ferramentas ainda são ricas, pois a demanda é rica.

Foi só a minha opinião em relação a experiencias. Claro que existem equipes que tiram saldo positivo em gastar tempo com UML, mas em maioria isolados.

Interessantíssima a sua opinião. E quais os substitutos que você está adotando em seus projetos?

O Galvin King se não me engano, tem um livro muito bacana chamado “Modelagem Ágil”, que mostra algumas alternativas, mas ainda era muito centrado na UML.

Nao sei informar, pois nao sao substitutos que uso, o que uso acredito que existia antes do advento UML, como prototipação, modelagem de dados e fluxogramas de alto nível. Ou pelo menos podem coexistir.

Se for fazer uma comparação direta, na minha visao, fluxogramas de processos ou diagramas seguindo BPMN substituem diagrama de atividades + diagrama de caso de uso. Diagrama de classes mistura muitas coisas, complexo demais, é mais natural representar por modelagem de dados, fluxos e protótipos.

Segue link pra quem interessar: https://www.heflo.com/pt-br/bpm/notacao-bpmn/

1 Curtida

Apenas pra constar, um bom tempo depois, as conclusões a que cheguei aqui.

Modellio

No final das contas é complicadíssimo de usar. Tudo o que precisava era desenhar alguns diagramas: nele TUDO é mais difícil.

Deveria ser fácil, por exemplo, adicionar atributos às classes: não, é um sofrimento.

No caso do Modellio até aonde os projetos são salvos é complicado de encontrar. É impressionante como conseguiram criar um mastodonte de complexidade aqui.

Papyrus

O Papyrus se mostrou até interessante, mas sofre dos mesmos problemas que o Modellio: muito complicado.

Astah Community

Infelizmente não existe mais, mas o que posso dizer é: de todos, é de longe o melhor que já usamos. Fácil, gera bons resultados gráficos, bons atalhos, leve.

É a ferramenta perfeita pra nós. Mas infelizmente, não existe mais.

PlantUML

O ápice da simplicidade: instalamos na empresa, integramos com o Gitlab, e já estamos incluindo em outros projetos também como ferramenta de integração.

Resolveu se não todos, pelo menos boa parte dos nossos problemas:

  • Muito fácil de usar.
  • Gera todos os diagramas que precisamos.
  • Podemos integrar com nossas ferramentas.
  • Open source
  • Tem uma licença que não nos limita, tal como o caso do Astah

Cheguei tarde na discussão. Eu sempre usava o Jude, posteriormente Astah, mas agora usei e gostei do StarUML. Achei bem fácil de usar e completinha:

http://staruml.io/

Acredito que UML é muito mal compreendida e injustiçada. Eu acho que o pessoal acha que ela não serve para nada porque se criou a ideia de que tudo deveria ser modelado nela. Na minha opinião, você deve modelar só o que é realmente interessante, desse modo você tem modelos mais enxutos, e úteis.

Além disso, dentre os diagramas dela, deve escolher os que realmente mais fazem sentido para o seu próprio caso, como por exemplo diagrama de classes, máquina de estados, e diagrama de casos de uso.

Penso que por não saber modelar nela, modelar coisas inúteis, e não dar manutenção, ela acabou sendo vista como uma “obra pra inglês ver”. Acho que ela pode, e deve ser utilizada em “projetos ágeis” (não gosto desses termos, pra mim um projeto tem que ser eficiente, independentemente do jeito que eu faço ele).

Mas realmente, acredito que BPMN é uma prática que tem que crescer muito, devido a sua praticidade. Recomendo muito que leiam a respeito, e para quem é do mundo Java, recomendo usar o Camunda BPMN (https://camunda.com/). Facilita muito a implementação de processos de negócio em projetos, dando uma flexibilidade grande para mudanças nos processos.

Só para complementar, quem quiser ver mais sobre a UML, veja um resumo dos diagramas presentes na versão mais nova (2.5):

https://www.uml-diagrams.org/uml-25-diagrams.html

Bruno, mas como é a licença do StarUML?

Eu posso usar em projetos profissionais?
Recentemente abandonei todas elas e estou fazendo absolutamente tudo com PlantUML, justo por causa desta thread aqui!

Dificilmente volto pro Astah agora.

itexto