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:
Conceito de diagrama de classes
Descreve um conjunto de objetos que compartilham as mesmas especificações de atributos, operações, restrições e semântica. A finalidade de uma classe é classificar objetos e especificar os recursos que caracterizam a estrutura e o comportamento de desses objetos.
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
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.
ARTIGO EM DESENVOLVIMENTO
Comentários