UML
Diagrama de Classes de
Projeto e Diagrama de Objetos
Profª. Marcelo Siedler
[email protected]
Diagrama de Classes de Projeto
 Oferecem uma notação gráfica formal para a
modelagem de classes e seus relacionamentos
 Uma Classe refere-se a descrição de um conjunto
de objetos que compartilham os mesmos atributos,
operações e relacionamentos
Notação
Nome da Classe
 O nome de uma classe distingue uma classe de
outra classe.
 Nome simples
 Nome do caminho: o nome da classe é precedido pelo
nome do pacote (subsistema) em que a classe existe
Atributo
 Características de uma classe
 Exemplos:
 Idade
 - endereço : String
 + CPF : inteiro
 # nroCorrentistas : Inteiro
Operações / Métodos
 Uma operação é um serviço que pode ser
requisitado a qualquer objeto da classe, afetando
seu estado (afetando valor de seus atributos)
 Operações de classes X Operações de Objetos
 Operações de objetos: atuam sobre um objeto (instância)
 Operações de classes: atuam sobre a classe
 Ex: consultar
Visibilidade
 Público (+) : o que pode ser visto pelas operações
de outras classes
 Protegido (#) : o que pode ser visto apenas pelas
operações da própria classe e por suas classes
herdeiras
 Privado (-) : o que pode ser visto apenas pelas
operações da própria classe
Estereótipos
 Mecanismos de extensão da UML
 Podem ser utilizados em diversos diagramas
 Graficamente, um estereótipo é representado por um nome
entre << >> (dois sinais de menor e dois sinas de maior).
 Exemplos:
 No diagrama de classes, podem ser utilizados para
classificar o comportamento dos métodos, por exemplo
<<construtor>>
Relacionamentos entre classes
 Os relacionamentos determinam as ligações entre
as classes.
 Fornecem um caminho para a comunicação entre
elas
 Principais tipos:
 Associação
 Agregação e Composição
 Generalização
Associação
 Uma associação é um relacionamento estrutural
que descreve uma ligação (conexão entre as
classes ou objetos)
Adornos da Associação
 Multiplicidade
 Papel
 Navegabilidade
Multiplicidade (Cardinalidade)
 A multiplicidade (ou cardinalidade) indica a
quantidade de ocorrências de um conceito.
 Ela é aplicada para atributos, classes e associações
Multiplicidade (Cardinalidade)
Papel
 Sua utilização é opcional
Navegabilidade
 Por definição, a navegação entre classes
associadas é bidirecional (segmento de reta)
 Por conveniência, a navegação pode ser
restringida a uma única direção
Tipos de Associação
 Agregação
 Composição
Agregação
 Agregação é um tipo especial de associação
 Representa uma relação todo-parte
 Tenta demonstrar que as informações de um
objeto todo precisam ser complementadas
pelas informações de um objeto parte
 Quando o todo é eliminado, as partes
continuam existindo
 É transitiva (Se A faz parte de B, e
B faz parte de C, então A faz parte de
C)
 É não-simétrica(Se A faz parte B,
então B não faz parte de A)
Composição
 É uma variação da Agregação
 Quando uma parte é criada, sua existência deve
ser coincidente com o todo.
 Quando um todo é eliminado, suas partes também
devem ser eliminadas
Generalização
 A generalização é o compartilhamento de
atributos, operações e relacionamentos entre
classes com base em um relacionamento
hierárquico (herança).
 Superclasses e subclasses;
 Subclasses herdam os atributos e métodos da
superclasse, permitindo ainda modificações nos
mesmos (polimorfismo).
Sem generalização
Com generalização
Especialização
 Processo inverso ao de generalização
 Consiste em:
 Definir uma ou mais subclasses a partir de uma classe
existente.
 Adicionar propriedades e associações específicas de cada
nova subclasse.
 Associações comuns ficam ligadas à superclasse.
 Pode existir mais de um tipo de especialização com base
em diferentes características
Generalização / Especialização
Classe Associativa
 É uma classe derivada de uma associação
Classe Associativa
 Transformação de uma Classe Associativa para
uma Classe Regular
Classe Concreta / Abstrata
 Concreta: pode ter instâncias
 Abstrata: não pode ter instâncias
 Contém uma ou mais operações abstratas:
 Uma operação abstrata possui apenas a
assinatura (cabeçalho) mas não possui
implementação
 A classe abstrata é sempre uma superclasse
que não possui instâncias, e só tem sentido se
tiver subclasses que implementem as
operações abstratas
 O nome de uma classe abstrata é escrito em
Exemplo de Classe Abstrata
Interface
 Interface é uma “classe abstrata” que não possui
atributos e que todas as operações são públicas e
abstratas.
 Notação:
Herança Múltipla
 Muitas linguagens orientadas a objetos não
possuem o mecanismo de herança múltipla.
Diagrama de Classes
Sistema Bancário
Diagrama de Objetos
SERVIÇO NACIONAL DE APRENDIZAGEM COMERCIAL
FACULDADE DE TECNOLOGIA SENAC PELOTAS
Diagrama de Objetos
 Da mesma forma que um objeto é uma instância
de uma classe, um diagrama de objetos é uma
instância de um diagrama de classes.
 Um diagrama de objetos apresenta uma
determinada configuração de um diagrama de
classes, sendo interessante para realizar discussões
sobre o modelo de objetos.
Diagrama de Objetos
Sistema Bancário
Download

Classe - ProgramaTche