Introdução
O que é um Diagrama de Classes na UML?
Um diagrama de classes descreve a estrutura de um sistema orientado a objetos mostrando as classes desse sistema e as relações entre elas. Um diagrama de classes também mostra restrições e atributos das classes.

💡 Experimente!Procurando uma ferramenta online para diagramas de classes? Basta clicar no botão Desenhar abaixo para criar seu diagrama de classes online. O Visual Paradigm Online é gratuito* e intuitivo. Você também pode passar por este tutorial de diagrama de classes para aprender sobre ele antes de começar.
Notações de Diagrama de Classes
Classe
A representação UML de uma classe é um retângulo contendo três compartimentos empilhados verticalmente, como mostrado na Figura:

Atributo
A seção de atributos de uma classe lista cada um dos atributos da classe em uma linha separada. A seção de atributos é opcional, mas quando usada contém cada atributo da classe exibido em formato de lista. A linha usa este formato:
nome : tipo de atributo
Exemplo: numeroCartao : Inteiro
Operação
As operações são documentadas no compartimento inferior do retângulo do diagrama de classes, que também é opcional. Assim como os atributos, as operações de uma classe são exibidas em formato de lista, com cada operação em sua própria linha. As operações são documentadas usando esta notação:
nome (lista de parâmetros) : tipo de valor retornado
Exemplo: calcularImposto (País, Estado) : Moeda
Relacionamentos
Associação
Algumas classes são compostas por outras classes. A associação especifica uma relação do tipo “tem-um” ou “todo/parte” entre duas classes. Em uma relação de associação, um objeto da classe todo possui objetos da classe parte como dados de instância.
Em um diagrama de classes, uma relação de associação é representada por uma linha sólida direcionada.
Associação Unidirecional
Em uma associação unidirecional, duas classes estão relacionadas, mas apenas uma classe sabe que a relação existe. Uma associação unidirecional é representada por uma linha sólida com uma seta aberta apontando para a classe conhecida.

Associação Bidirecional (Padrão)
Uma associação é uma ligação entre duas classes. As associações são sempre consideradas bidirecionais; isso significa que ambas as classes são conscientes uma da outra e de sua relação, a menos que você qualifique a associação como outro tipo. Uma associação bidirecional é indicada por uma linha sólida entre as duas classes.

Multiplicidade
Coloque as notações de multiplicidade próximo às extremidades de uma associação. Esses símbolos indicam o número de instâncias de uma classe ligadas a uma instância da outra classe.
Exemplo:Uma empresa terá uma ou mais pessoas, mas cada funcionário trabalha apenas para uma empresa.

| Notação | Significado |
|---|---|
1 |
Exatamente um |
0..1 |
Zero ou um |
*ou0..* |
Zero ou mais |
1..* |
Um ou mais |
0..3 |
Zero a três |
Visibilidade
A visibilidade é usada para indicar quem pode acessar as informações contidas em uma classe indicada com+, -, # e ~ como mostrado na figura:

| Símbolo | Visibilidade | Descrição |
|---|---|---|
+ |
Público | Acessível de qualquer outra classe |
- |
Privado | Acessível apenas dentro da própria classe |
# |
Protegido | Acessível dentro da classe e suas subclasses |
~ |
Pacote | Acessível dentro do mesmo pacote |
Generalização
Uma generalização é uma relação entre uma coisa geral (chamada de superclasse) e uma forma mais específica dessa coisa (chamada de subclasse). A generalização às vezes é chamada de relação “é um tipo de” e é estabelecida através do processo de herança.
Em um diagrama de classes, a relação de generalização é representada por uma linha sólida direcionada com uma seta aberta grande apontando para a classe pai.

Classes e Métodos Abstratos
Em uma hierarquia de herança, as subclasses implementam detalhes específicos, enquanto a classe pai define o esqueleto que suas subclasses irão seguir. A classe pai também serve como modelo para métodos comuns que serão implementados por suas subclasses.

-
O nome de um classe abstrata é geralmente mostrado em itálico; alternativamente, uma classe abstrata pode ser mostrada usando a anotação textual, também chamada de estereótipo
{abstrato}depois ou abaixo de seu nome. -
Um método abstrato é um método que não possui implementação. Para criar um método abstrato, crie uma operação e torne-a itálico.
Realização
Uma realização é uma relação entre duas coisas, onde uma coisa (uma interface) especifica um contrato que outra coisa (uma classe) garante cumprir ao implementar as operações especificadas nesse contrato.
Em um diagrama de classes, a relação de realização é representada por uma linha tracejada direcionada com uma seta aberta apontando para a interface.

Dependência
A dependência indica uma relação de “usa” entre duas classes. Em um diagrama de classes, uma relação de dependência é representada por uma linha tracejada direcionada.
Se uma classe A “usa” a classe B, então uma ou mais das seguintes afirmações geralmente são verdadeiras:
-
A classe B é usada como o tipo de uma variável local em um ou mais métodos da classe A.
-
A classe B é usada como o tipo de parâmetro para um ou mais métodos da classe A.
-
A classe B é usada como o tipo de retorno para um ou mais métodos da classe A.
-
Um ou mais métodos da classe A invocam um ou mais métodos da classe B.

Quando desenhar diagramas de classes?
A maioria dos diagramas UML não pode ser mapeada diretamente com qualquer linguagem de programação orientada a objetos, exceto os diagramas de classes. Em outras palavras, os diagramas de classes podem idealmente ter um mapeamento um para um com diagramas de classes UML. Além disso, os diagramas de classes são úteis em situações como:
-
Descrevendo a visão estática do sistema – Capture a estrutura das classes e suas relações em um determinado momento.
-
Modelando a colaboração entre os elementos da visão estática – Mostre como as classes interagem por meio de associações e dependências.
-
Descrevendo as funcionalidades realizadas pelo sistema – Vincule operações às classes para ilustrar o comportamento.
-
Construção de aplicações de software usando linguagens orientadas a objetos – Serve como um plano para a implementação em linguagens como Java, C# ou Python.
-
Realizando engenharia reversa de código para os sistemas-alvo – Gere código esqueleto diretamente a partir de diagramas de classes.
-
Classificando classes ou componentes como biblioteca para reutilização futura – Documente componentes reutilizáveis para desenvolvimento modular.
Como desenhar um diagrama de classes?
Siga estas instruções passo a passo para criar diagramas de classe eficazes:
-
Identifique os objetos no domínio do problema, e crie classes para cada um deles.
Exemplo: Professor, Aluno, Curso para um sistema de matrícula. -
Adicione atributos para essas classes.
Exemplo:nome,endereço,telefonepara a classe Aluno. -
Adicione operações para essas classes.
Exemplo:addAluno(aluno)para a classe Curso. -
Conecte as classes com relacionamentos apropriados.
Exemplo: Relacione Professor e Curso com uma associação. -
Opcionalmente, especifique as multiplicidades para as extremidades dos conectores de associação.
Exemplo: Insira0..3para o lado Curso da associação que conecta Professor e Curso, para indicar que um professor pode ministrar até três cursos.
Práticas Recomendadas Adicionais
-
Desenhe pacotes para a categorização lógica de classes para melhorar a organização e a legibilidade:

-
Use nomes significativos no singular para os nomes das classes (por exemplo,
Cliente, nãoClientes). -
Mantenha os diagramas focados: um diagrama por sub-sistema ou área de funcionalidade.
-
Aplique convenções de nomeação consistentes para atributos e operações.
-
Documente restrições usando notas ou OCL (Linguagem de Restrição de Objetos) quando necessário.
Exemplos de Diagrama de Classes
Exemplo 1: Sistema de Pedido de Vendas
O exemplo de diagrama de classes abaixo mostra as classes envolvidas em um sistema de pedido de vendas. Observe o uso de <<enumeração>> classe no modelo de classes.

Exemplo 2: Sistema de Gestão de Voos
O exemplo de diagrama de classes abaixo mostra um conjunto de classes relacionadas à gestão de voos. As classes são agrupadas sob um pacote.

Quer desenhar um diagrama de classes?
Você aprendeu o que é um Diagrama de Classes e como desenhá-lo passo a passo. Está na hora de colocar a mão na massa desenhando um diagrama de classes próprio. Desenhe diagramas UML gratuitamente* com o Visual Paradigm Online. É fácil de usar e intuitivo.
* A edição gratuita permite o uso gratuito do Visual Paradigm Online para uso não comercial apenas.
Conclusão
🎯 Ponto-Chave: Um grande diagrama de classe não se trata de perfeição — trata-se de clareza, comunicação e criação de um entendimento compartilhado que impulsiona um melhor software. Comece simples, itere com frequência e deixe seus diagramas evoluírem junto com o seu sistema.
Lista de Referências
-
O que é UML? Um Guia Completo sobre a Linguagem de Modelagem Unificada: Este introdução aprofundada explica o propósito do UML, seus principais tipos de diagramas e como ele apoia design de software e modelagem de sistemas.
-
O que é um Diagrama de Classe? – Um Guia para Iniciantes sobre Modelagem UML: Este visão geral informativa explica o propósito, os componentes e a importância crítica dos diagramas de classe tanto em desenvolvimento de software e design de sistemas.
-
Tutorial Completo de Diagrama de Classe UML para Iniciantes e Especialistas: Um tutorial passo a passo projetado para guiar os usuários por todo o processo de criação e compreensão de diagramas de classe UML para dominar modelagem de software.
-
Gerador de Diagramas de Classe UML com Inteligência Artificial por Visual Paradigm: Este ferramenta avançada com assistência de IA utiliza descrições em linguagem natural para gerar automaticamente diagramas de classe UML, simplificando significativamente a fase de design,.
-
Visão Geral dos 14 Tipos de Diagramas UML – Visual Paradigm: Um recurso que detalha o grande volume de notação de diagramas categorizado em 14 modelos UML distintos, cada um com propósitos únicos em engenharia de software.
-
Diagramas de Classes vs Diagramas de Objetos no UML: Principais Diferenças: Este guia fornece uma comparação clara entre diagramas de classes e diagramas de objetos, destacando suas estruturas específicas e esclarecendo quando usar cada tipo.
-
Da Descrição do Problema ao Diagrama de Classes: Análise Textual com Inteligência Artificial: Uma exploração de como IA generativa converte descrições de problemas em linguagem natural em diagramas de classes precisos para modelagem de software estruturada.
-
Dominando Diagramas de Classes: Uma Exploração Aprofundada com o Visual Paradigm: Uma guia técnico abrangente que oferece uma análise aprofundada sobre a criação de diagramas de classes no ambiente de modelagem Visual Paradigm.
-
Estudo de Caso do Mundo Real: Gerando Diagramas de Classes UML com a IA do Visual Paradigm: Este estudo demonstra como um assistente de IA transformou com sucesso requisitos textuais em diagramas de classes UML precisos para um projeto de engenharia do mundo real.
-
Tutorial Passo a Passo de Diagrama de Classes usando o Visual Paradigm: Uma guia instrucional prático que aborda os passos específicos do software para abrir um projeto, adicionar classes e criar um diagrama completo para arquitetura de sistema.











