Covil Do Dev

O que é diagrama de classes?

Aprenda tudo sobre diagrama de classes UML neste guia, oque é e como aplicar na vida real passo-a-passo com exemplos.


Lindomar Rodrigues
Lindomar Rodrigues

Atualizado

Na ciência da computação e na engenharia de software, diagrama de classes é a forma de representar a estrutura e a relação entre as classes.

Utilizando UML (Unified Modeling Language), o diagrama de classes é um diagrama estático que descreve a estrutura do sistema.

A descrição do sistema é feita mostrando classes, seus atributos e seus tipos, os métodos e as relações entre as classes.

O que é uma classe?

Uma classe é um objeto, ou um conjunto de objetos, que armazena propriedades, atributos e métodos semelhantes.

Em uma classe estão contidos atributos e operações.

  • Atributos: representa todas as propriedades que uma classe armazena.
  • Operações: também chamado métodos, representa tudo oque uma classe consegue fazer.

Se formos criar uma classe “pessoa”, o “nome” e a “data de nascimento” seria atributos, e “calcular idade” seria um método(operação).

Em uma representação gráfica a classe “pessoa” ficaria semelhante ao exemplo abaixo.

Classe pessoa em UML

Benefícios de se utilizar diagrama de classes

Utilizar diagrama de classes traz uma série de benefícios para qualquer empresa, grupo ou organização, alguns desses benefícios são:

  1. Ilustra intuitivamente os modelos de dados utilizados no sistema.
  2. Fornece uma visão geral do esquemático da aplicação.
  3. Permite facilmente identificar algum dado ou funcionalidade que falta ser incluído no desenvolvimento do sistema.
  4. Úteis para desenvolvedores utilizarem como base e auxilia outros membros da equipe terem uma noção melhor das regras de negócio aplicadas na aplicação.
  5. Permite outros profissionais que não tenham conhecimento de programação modelar sistemas com uma visão mais focada no negócio e menos na tecnicidade da implementação.

Relações entre classes

As classes de um sistema podem interagir entre si de diversas formas.

Uma classe pode se relacionar com nenhuma, uma ou até várias outras classes.

Um relacionamento entre classes pode ser de alguns tipos diferentes, os mais comuns de serem vistos em aplicações no dia-a-dia estão citados abaixo.

Herança

É um estilo de relacionamento onde uma classe herda as características de outra.

Este relacionamento também pode ser chamado generalização.

É comum chamar a classe que tem suas características herdadas de mãe e a herdeira de filha.

Existe também a nomenclatura de classe generalizada e classe especializada para esse relacionamento.

Na prática, esse relacionamento é muito comum, onde uma classe precisa de algumas funcionalidades específicas de uma classe mais abrangente.

Este relacionamento evita a reescrita de código desnecessariamente.

Em UML um conector com uma seta em uma das prontas é utilizada para representar a herança.

A ponta da seta aponta para a classe generalizada que fornece os recursos para a classe especializada.

Relação de herança UML

Associação

É um estilo de relacionamento simples, onde as classes são independentes entre si, porém se relacionam em algum momento.

Essa relação pode ser apenas conceitual, sem implicação prática na implementação ou podem estar correlacionadas por alguma chave.

O conector correspondente a este relacionamento em UML é um conector simples sem pontas.

Relação de associação UML

Composição

Nesse relacionamento uma classe depende de outra para existir.

No nosso exemplo podemos dizer que o salário só existe se um funcionário existir, isso é, a classe salário não faz sentido isoladamente.

Em UML um conector com um diamante hachurado na ponta é utilizado para apontar a classe com a dependência.

Relação de composição UML

Agregação

É um estilo de relacionamento semelhante à composição, porém na agregação a classe consegue viver sem a outra.

Em UML um conector com um diamante vazado é utilizado para indicar agregação.

Relação de agregação UML

Exemplo de diagrama de classes

Um diagrama de classes para representar superficialmente uma relação de trabalho entre um funcionário e uma empresa poderia ser elaborado da seguinte forma.

Exemplo de diagrama com relacionamentos UML

Nesse caso:

  • Funcionário herda as características de pessoa.
  • Funcionário deve ter um salário.
  • Funcionário está relacionado a empresa.
  • Empresa pode ter ou não um prédio.

Nomear relacionamentos

Uma prática comum é “batizar” os relacionamentos com algum nome significativo.

Isso é realizado para facilitar a legibilidade e deixar o diagrama ainda mais intuitivo.

Existem algumas boas práticas ao nomear relacionamentos, algumas dessas são:

  • Escrever o nome no centro do conector de relacionamento.
  • O nome deve fazer sentido e ser significativo, às vezes um nome não é necessário, nesses casos nomear o relacionamento só poluirá visualmente o diagrama.
  • Uma seta perpendicular ao conector pode ser utilizado(sendo recomendado) para deixar claro a direção da descrição do relacionamento.

Abaixo observamos o exemplo anterior com os relacionamentos sendo nomeados.

Exemplo de diagrama com relacionamentos nomeados UML

Diferentes perspectivas de diagrama de classes

Um diagrama de classe pode ser utilizado em diferentes contextos, onde em alguns caso uma representação mais simples e menos precisa pode até sem preferível.

Isso acontece porque muitas vezes o diagrama só é utilizado para explicar ou elaborar uma ideia em um estágio muito inicial.

Em geral, existem três tipos diferentes de diagrama de classes, sendo eles, do mais simples para o mais completo:

  • Conceitual: pode ser descrito como um rascunho inicial de um produto. Normalmente representa apenas as coisas mais óbvias e claras e serve apenas para conceituar o domínio em estudo.
  • Especificação: serve para descrever um produto abstratamente, sem se preocupar com tecnicidades da implantação, porém representando todos os componentes e funcionalidades.
  • Implementação: são diagramas mais complexos, feitos cobrindo todas as possibilidades da aplicação. Utilizado para facilitar os desenvolvedores a implementar a solução.

Conclusão

Percebemos que diagramas de classes podem ser utilizadas em diversos momentos do desenvolvimento de uma aplicação.

Utiliza-los trazem diversos benefícios, e pode ser utilizado inclusive como ponto de encontro de ideias de diferentes áreas de uma organização.

Essa troca de ideia utilizando diagrama de classes é viável, pois o seu conceito é simples de entender, e todos conseguem elaborar e utilizar com pouco tempo de estudo.

Também pode ser útil para elaborar novas ideias e funcionalidades para ser apresentadas para outros membros da equipe.

Obrigado por visitar o blog e por ler esse artigo, se tive qualquer dúvida, ideia ou sugestão, não hesite em entrar em contato pelo meu e-mail: lindomar@covildodev.com.br