🧠 Como diagramas podem ajudar no desenvolvimento do seu projeto !
- #Java
🧠 Como diagramas podem ajudar no desenvolvimento do seu projeto — e de quebra você revisa POO
Link do Projeto: https://github.com/williaw-lira/Artigo-Uso-de-UML
Introdução
Hoje em dia é muito comum encontrar desenvolvedores, principalmente quem está começando na área, que ignoram o uso de ferramentas de modelagem como UML. Isso acontece, muitas vezes, por acharem desnecessário, ou por não saberem o quão útil essa ferramenta pode ser.
A verdade é que diagramas ajudam a clarear as ideias, evitam retrabalho e tornam muito mais fácil entender o projeto, seja sozinho ou em equipe. E, de quebra, ao aprender UML, você ainda acaba reforçando conceitos de Programação Orientada a Objetos (POO).
📌 O que é UML?
UML (Unified Modeling Language) é uma linguagem visual que representa a estrutura e o comportamento de um sistema orientado a objetos. A forma mais usada é o diagrama de classes, que mostra as classes, seus atributos, métodos e os relacionamentos entre elas.
🤔 Por que usar diagramas?
- 🧠 Visualizar a estrutura do sistema antes de codar
- 🗣 Facilitar a comunicação entre devs
- 🛠 Ajudar no planejamento e na manutenção
- 📚 Servir de documentação
🛠 Entendendo um diagrama de classe
Um diagrama de classe mostra:
- Nome da classe
- Atributos (com visibilidade)
- Métodos (com visibilidade)
- Relacionamentos entre classes (herança, associação, etc.)
💡 Notações:
Símbolo Significado
+ Público
- Privado
# Protegido
() Método
🧬 Entendendo Herança e Acesso
Herança
Classes podem herdar características de outras (superclasses), formando uma hierarquia.
Exemplo simples:
Imagine que temos:
- Classe Animal (pai) - Animal.java
- Classe Vaca (filha) - Vaca.java
A vaca herda tudo que é de animal, mas pode ter características próprias.
Modificadores de acesso:
Um jeito simples de entender:
public: Qualquer um pode acessar (como área pública de uma cidade).private: Só a própria classe pode acessar (como seu quarto com chave).protected: A classe e seus filhos têm acesso (como um báu escondido da família).
🌾 Exemplo: Diagrama UML de um joguinho de fazenda
Vamos montar um pequeno sistema de uma fazenda com:
- Terreno
- Arado
- Plantado
- Cultivado
- Fazendeiro
- Animal
- Vaca
- Galinha
- Equipamento
- Trator
- Enxada

🧑💻 Código Java baseado no diagrama
Classe Animal e Vaca
java
public class Animal {
protected String nome;
protected int idade;
public void emitirSom() {
System.out.println("Animal fazendo som");
}
}
public class Vaca extends Animal {
public void produzirLeite() {
System.out.println("A vaca produziu leite!");
}
}
Classe Terreno e Plantado
java
public class Terreno {
private int tamanho;
private String tipoSolo;
public void prepararSolo() {
System.out.println("Solo preparado.");
}
}
public class Plantado extends Terreno {
public void plantar() {
System.out.println("Semente plantada.");
}
}
Classe Fazendeiro
java
public class Fazendeiro {
private String nome;
private int idade;
public Fazendeiro(String nome, int idade) {
this.nome = nome;
this.idade = idade;
}
public void plantar() {
System.out.println(nome + " está plantando...");
}
public void colher() {
System.out.println(nome + " está colhendo...");
}
}
📌 Conclusão
Ao usar diagramas como o UML, você não só ganha clareza sobre seu sistema, como também desenvolve um pensamento mais orientado a objetos. Com o tempo, isso se torna natural e seu código evolui junto com sua lógica de projeto.
Então, da próxima vez que for começar um projeto, pense no seu diagrama — ele é como o mapa da sua fazenda digital. 🌾




William, seu artigo traz uma visão muito importante sobre como a UML pode ser uma ferramenta essencial para o desenvolvimento de projetos mais estruturados e eficientes, especialmente para quem está começando na programação orientada a objetos.
Você destaca de maneira prática como diagramas de classe ajudam a visualizar a estrutura do sistema e como isso facilita a comunicação entre desenvolvedores, além de servir como documentação importante para manutenção futura. O exemplo do "sistema de fazenda" é excelente para ilustrar o uso de UML, tornando o conceito acessível de uma maneira divertida e prática.
Minha pergunta é: como você vê a integração de ferramentas de modelagem UML com práticas ágeis no desenvolvimento de software? Acha que, em ambientes mais dinâmicos, como os de metodologias ágeis, o uso de UML pode ser adaptado ou simplificado para acompanhar o ritmo rápido dos projetos?
Ótima pergunta e a reposta sim, a UML pode ser integrada ao desenvolvimento ágil, desde que seja usada de forma adaptada. Em metodologias como Scrum e Kanban, onde o foco está na entrega rápida e iterativa, não é viável manter documentações extensas. No entanto, a UML continua sendo útil quando aplicada de forma leve, visual e pontual.
Uma abordagem eficiente é a modelagem Just-in-Time, em que diagramas são criados apenas quando necessário como antes de implementar uma user story complexa ou durante a definição de uma nova arquitetura.
Ferramentas como Lucidchart, PlantUML, Mermaid (suportado pelo GitHub), Draw.io e Figma tornam essa prática ainda mais acessível e integrada ao fluxo de trabalho da equipe.
A UML é especialmente útil para:
Alinhar o entendimento técnico do time
Reduzir retrabalho por falhas de design
Facilitar o onboarding de novos desenvolvedores
Apoiar refatorações com mais segurança
Por outro lado, seu uso pode ser prejudicial quando se torna burocrático, excessivamente detalhado ou desatualizado.
Em resumo: a UML é compatível com o ágil, desde que seja aplicada com equilíbrio, foco no valor e adaptação à realidade do time.