Article image
William Barzon
William Barzon23/06/2025 17:13
Compartilhe

🧠 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

image

🧑‍💻 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. 🌾
Compartilhe
Comentários (2)
DIO Community
DIO Community - 23/06/2025 17:40

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?

William Barzon
William Barzon - 23/06/2025 18:10

Ó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.