Diagrama de Classes (UML 2)
Diagrama de Classes (UML 2)
Diagrama de Classes (UML 2)
0)
Análise e Projeto de Sistemas
Classes
Graficamente, as classes são representadas por retângulos incluindo nome,
atributos e métodos. Devem receber nomes de acordo com o vocabulário do
domínio do problema. É comum adotar um padrão para nomeá-las.
Classe Abstrata
Uma classe abstrata que contém pelo menos uma operação abstrata é chamada de
classe abstrata. Esse tipo de classe não pode criar instâncias, visto que algumas de
suas operações não possuem implementação. As classes abstratas devem possuir
subclasses, que implementem as operações abstratas. A classe abstrata pode
possuir métodos concretos.
Interfaces
A interface é uma classe que possui todos os métodos abstratos, é diferente de uma
classe abstrata com todos os métodos abstratos, pois permite a herança múltipla.
As versões mais recentes do Java (a partir do Java8) permitem a criação de um
método default.
Notas e Estereótipo
As notas contêm comentários ou restrições ligados a um elemento. Já o estereótipo
estende o vocabulário do UML permitindo a criação de novos tipos de elementos
semelhantes aos já existentes, porém específicos para o seu problema. Exemplos:
● <<abstract>>
● <<interface>>
● <<liderTeste>>
● <<testadorJunior>>
Atributos
Os atributos representam o conjunto de características (estado) dos objetos da
classe. A visibilidade dos atributos pode ser classificadas em três tipos:
● público (+): o atributo é visível em qualquer classe de qualquer pacote;
● protegido (#): o atributo é visível para classes do mesmo pacote;
● privado (-): o atributo é visível somente para os métodos da própria classe.
Métodos
Os métodos representam o conjunto de operações (comportamento) que a classe
fornece. A visibilidade dos métodos pode ser de três tipos:
● público (+): o método é visível em qualquer classe de qualquer pacote;
● protegido (#): o método é visível para classes do mesmo pacote;
● privado (-): o método é visível somente para a própria classe.
Relacionamentos
Os relacionamentos possuem:
● Nome: descrição dada ao relacionamento;
● Navegabilidade: indica por uma seta no fim do relacionamento;
● Multiplicidade: 0 ... 1, 0..*, 1, 1..*, 2, 3..7;
● Tipo: associação (agregação, composição), generalização e
dependência;
● Papéis: desempenhados por classes em um relacionamento.
Associação
Além disso, existe uma relação de associação entre instâncias da mesma classe,
assumindo papéis distintos.
Quando uma associação tem seus atributos temos uma classe associação.
Agregação
Generalização
É um relacionamento entre itens gerais (superclasses) e itens mais específicos
(subclasses).
Dependência