Diagramas de Classes
Os diagramas de classes são o tipo mais comum de diagrama UML, usados para modelar a estrutura estática de um sistema mostrando classes, seus atributos, operações e relacionamentos.
Criando Classes
Usando a Ferramenta Classe
Em uma página de Diagrama de Classes UML, pressione U ou escolha Classe no menu UML da barra de ferramentas. Clique na tela para posicionar uma caixa de classe, ou arraste para definir seu tamanho. Pressione Return com uma classe selecionada para renomeá-la.
Estrutura da Caixa de Classe
Uma caixa de classe UML consiste em três compartimentos:
- Compartimento de nome — contém o nome da classe e um estereótipo opcional
- Compartimento de atributos — lista as propriedades/campos da classe
- Compartimento de operações — lista os métodos/funções da classe
Propriedades da Classe
Selecione uma classe e use a seção UML da aba Organizar do Inspetor para configurar suas propriedades:
Nome
O nome da classe aparece em negrito no compartimento superior. A convenção usa PascalCase (por exemplo, CustomerOrder).
Estereótipo
Classificador opcional que aparece acima do nome da classe entre aspas angulares:
<<interface>>— para definições de interface<<abstract>>— para classes abstratas<<enumeration>>— para tipos enumerados<<entity>>— para entidades de domínio- Estereótipos personalizados também são suportados
Abstrata
Alterna para renderizar o nome da classe em itálico, indicando uma classe abstrata.
Redimensionamento restrito
Quando ativado (o padrão), redimensionar mantém as proporções da caixa de classe.
Atributos
Os atributos representam os dados/propriedades de uma classe.
Adicionando Atributos
- Selecione a classe
- Na seção UML, encontre Atributos — um editor multilinha com um atributo por linha
- Clique em + (ou pressione
Cmd+L) para adicionar um novo atributo e digite seus detalhes
Sintaxe do Atributo
Os atributos seguem este formato: visibilidade nome : tipo
Modificadores de Visibilidade:
| Símbolo | Significado | Descrição |
|---|---|---|
+ | Público | Acessível de qualquer lugar |
- | Privado | Acessível apenas dentro da classe |
# | Protegido | Acessível dentro da classe e subclasses |
~ | Pacote | Acessível dentro do mesmo pacote |
Exemplos:
-id: Int— ID inteiro privado+name: String— nome de string público#createdAt: Date— campo de data protegido~cache: Map<String, Any>— cache privado de pacote
Operações
As operações representam o comportamento/métodos de uma classe.
Adicionando Operações
- Selecione a classe
- Na seção UML, encontre Operações — um editor multilinha com uma operação por linha
- Clique em + (ou pressione
Shift+Cmd+L) para adicionar uma nova operação e digite seus detalhes
Sintaxe da Operação
As operações seguem este formato: visibilidade nome(parâmetros) : tipoDeRetorno
Exemplos:
+getName(): String— getter público retornando String-validate(input: String): Boolean— método de validação privado+process(data: Data, options: Options): Result— método com múltiplos parâmetros+save(): void— método sem valor de retorno
Relacionamentos
Pressione R para ativar a ferramenta Relacionamento e depois arraste de uma classe para outra para criar uma conexão.
Tipos de Relacionamento
| Tipo | Estilo de Linha | Seta | Caso de Uso |
|---|---|---|---|
| Associação | Linha sólida | Seta aberta | Relacionamento geral |
| Dependência | Linha tracejada | Seta aberta | Relacionamento de "uso" |
| Herança | Linha sólida | Triângulo vazado | Relacionamento "é um" (extends) |
| Realização | Linha tracejada | Triângulo vazado | Implementação de interface |
| Agregação | Linha sólida | Losango vazado | "Tem um" (posse fraca) |
| Composição | Linha sólida | Losango preenchido | "Tem um" (posse forte) |
Criando Relacionamentos
- Pressione
Rpara ativar a ferramenta Relacionamento - Clique na classe de origem
- Arraste até a classe de destino
- Solte para criar a conexão
- Use a seção UML do Inspetor para definir o Tipo de relacionamento — o estilo de linha e as pontas de seta seguem o tipo
Rótulos de Relacionamento
Selecione um relacionamento e defina seus rótulos na seção UML do Inspetor:
- Rótulo — descreve o relacionamento (por exemplo, "gerencia", "contém")
- Multiplicidade — valores de Origem e Destino indicando quantas instâncias (por exemplo, "1", "0..", "1..")
Boas Práticas
- Mantenha simples — não tente modelar tudo; foque nas classes principais
- Use estereótipos — marque claramente interfaces e classes abstratas
- Mostre relacionamentos chave — nem toda associação precisa ser mostrada
- Nomenclatura consistente — use PascalCase para classes, camelCase para membros
- Agrupe classes relacionadas — use proximidade visual para mostrar agrupamentos lógicos