Em UML , o diagrama de classes representa a estrutura estática de um sistema, apresentando suas classes, atributos, operações e as relações entre os objetos. Sendo considerado o principal diagrama da linguagem.

Conceito geral

Segundo a OMG (Object Management Group) o diagrama de classes:

Durante o processo de modelagem do sistema os conceitos do negócio - dados, informações; devem ser analisados de maneira a reconhecer suas características - estados ou valores de suas propriedades; e seus comportamentos.

Primeiramente estes conceitos são identificados nos requisitos, isto é, em cenários. Por exemplo: onde o os funcionários de almoxarifado trabalham com peças, solicitações de reposição e pedidos de fornecimento; a área financeira gerencia faturas e notas fiscais; vendas organiza pedidos e clientes; dentre outros processos.

Além de características e comportamentos, os conceitos do negócio se relacionassem entre si. O diagrama de classes é utilizado para tornar mais fácil a compreensão e visualização desta estrutura de conceitos e seus relacionamentos.

As vídeo aulas a seguir apresentam a teoria e prática a respeito do diagrama. Descrevem seus elementos: classes, atributos, métodos, relacionamentos; e boas práticas na sua utilização.

Após as vídeo aulas o artigo continua ;-)

Vídeo aulas

Teoria do Diagrama de Classes

Parte I

Parte II

Usando o Diagrama de Classes na prática

Na vídeo aula a seguir está a demonstração da resolução de um estudo de caso simples de Gestão de Biblioteca de Mídias:

A seguir os elementos e como demonstrar relacionamentos e restrições no Diagrama de Classes.

Elementos do diagrama

Classes

Em orientação a objetos, uma classe é um “modelo”, que descreve estado e
comportamento comuns. É uma abstração que define um tipo de objeto e suas características (atributos) e as ações que o objeto pode realizar (métodos).

No diagrama de classes elas são representadas por um retângulo dividido em três seções:

  • Nome da classe - na primeira seção. Também é possível identificar a classe com estereótipos (assista às aulas para entender estereótipos)
  • Propriedades ou atributos - na segunda seção são definidas as propriedades, sua visibilidade e sua tipagem
  • Métodos ou ações - na terceira seção são descritas as assinaturas dos métodos, isto significa: sua visibilidade, parâmetros e tipagem de retorno

Representação de uma classe em um diagrama de classes

Visibilidade

A visibilidade é definida nos elementos de uma classe com o intuito de determinar se podem (ou não) ser acessados por outras classes, em outras palavras, define o nível de acesso aos elementos da classe.

As visibilidades podem ser definidas como:

  • + {público}: o elemento pode ser utilizado pelo objeto no qual ele pertence e por qualquer objeto cliente, isto é, qualquer objeto que deseje acessar o elemento da classe/objeto.
  • # {protegido}: o elemento pode ser utilizado somente pelo próprio objeto no qual ele pertence pelas suas subclasses se existirem.
  • - {privado}: o elemento pode ser utilizado somente pelo objeto ao qual ele pertence, ou seja, nem mesmo suas subclasses podem acessar o elemento.
  • ~{package}: visível para todas as classes do mesmo pacote (package).

Atributos

Um atributo é uma propriedade de um objeto (definido na classe), por exemplo.: nome, idade (atributos de pessoa). Cada atributo tem um valor para cada instância, isto é, cada criação de um objeto a partir de uma classe.

Por exemplo: para o objeto joao criado a partir da classe Aluno acima, o valor para o atributo nome é “João”.

Um atributo pode ter um valor default, isto é, a definição de um valor padrão que é atribuído a ele na instanciação do objeto.

Além disso, atributos podem ser

  • Tipos primitivos
  • Objetos de outras classes: isto é, relação com outros objetos complexos
  • Derivados:
    • Pode ser usado como um indicador para o implementador de que o atributo pode não ser estritamente necessário.
    • Símbolo que indica um atributo derivado: barra inclinada para frente (/)

Na imagem a seguir um exemplo de duas classes com seus atributos. A classe Carro que possui dois atributos privados ( - ), sendo um deles um tipo primitivo (integer) e o outro um objeto do tipo Cor. A classe Cor, que possui também dois atributos privados, sendo ambos objetos do tipo String.

Exemplo de classes e seus atributos

ARTIGO EM DESENVOLVIMENTO