Buscar

04_APOO_MODELAGEM_DE_CLASSES_D

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 37 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 6, do total de 37 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 9, do total de 37 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

Classes
Modelagem
Visual
Sobre Classes
• Classes são o elemento mais importante de 
qualquer sistema orientado a objetos
• Uma classe é uma descrição de um conjunto de 
objetos com os mesmos atributos, 
relacionamentos, operações e semântica
Modelagem
Visual
relacionamentos, operações e semântica
• Classes são usadas para capturar o vocabulário
de um sistema, representando os conceitos 
envolvidos
• Classes podem ser abstrações do domínio do 
problema, como “Cliente”, “Banco”, “Conta”
• Classes podem também ser usadas a nível de 
implementação (listas, filas, eventos)
Nomes
• Toda classe deve ter um nome no singular que a 
distingüa das outras classes
• Um nome pode ser simples (apenas o nome), ou 
pode ser precedido pelo nome do pacote em que 
a classe está contida
Modelagem
Visual
a classe está contida
Sensor de
temperatura
ClienteParede
Interface Gráfica:: JanelaPrincipal
Exceções:: ClienteNaoEncontrado
Notação básica
origem
Forma
nome
atributos
Modelagem
Visual
mover()
redimensionar()
exibir()
origem
operações
Atributos
• Um atributo representa alguma propriedade do 
que está sendo modelado, que é compartilhada 
por todos os objetos da classe.
• Os atributos descrevem os dados contidos nas 
instâncias de uma classe
Modelagem
Visual
instâncias de uma classe
• Em um momento dado, um objeto de uma classe 
conterá valores para todos os atributos descritos 
na sua classe.
Atributos (notação)
• Atributos podem ser identificados apenas com 
nomes.
nome
endereço
telefone
Cliente
Modelagem
Visual
telefone
dataNascimento
• Atributos podem ter seus tipos (ou classes) 
especificados e terem valores padrão definidos.
altura: Real
largura: Real
espessura: Real
ehUmaViga: Boolean = false
Parede
Operações
• Uma operação é uma abstração de alguma coisa 
que se pode fazer com um objeto –
comportamento, e que é compartilhada por 
todos os objetos da classe
• Uma classe pode ter qualquer número de 
Modelagem
Visual
• Uma classe pode ter qualquer número de 
operações, inclusive nenhuma
Operações (notação)
• Como para os atributos, você pode 
especificar uma operação apenas 
com seu nome
• Você pode também especificar a 
mover()
aumentar()
diminuir()
esticar()
estaVazio()
Retângulo
Modelagem
Visual
• Você pode também especificar a 
assinatura da operação: seus 
parâmetros, o tipo desses 
parâmetros e o tipo de retorno
estaVazio()
mover(dx: int, dy: int)
aumentar(perc: float)
diminuir(perc: float)
esticar(dx: int)
estaVazio(): boolean
Retângulo
Visibilidade
• Você pode usar marcações de acesso para
especificar o tipo de acesso permitido aos
atributos e operações
• Classificador: classes, interfaces, componentes,
nós, use cases, subsistemas
Modelagem
Visual
nós, use cases, subsistemas
+ publico: todos os classificadores podem
usar.
# protegido: qualquer descendente do
classificador poderá usar .
- privado: somente o próprio classificador
poderá usar.
Visibilidade
#creditoPermitido: Currency
#nivelCredibilidade()
-nome: String
-endereco: String
-dataPrimeiraCompra: Date
-dataUltimaCompra: Date
-totalComprado: Currency
Cliente
Modelagem
Visual
#nivelCredibilidade()
nomeContato: String
telefones[1..10]: String
CGC: String
FAX[1..3]: String
Cliente pessoa-jurídica
colocarListaNegra()
nome: String
CPF: String
numCartaoCredito
Cliente pessoa-física
Sobre Relacionamentos
• Poucas classes vivem sozinhas.
• A maioria das classes colabora com outras 
classes de várias maneiras.
• Tipos de relacionamentos especialmente 
importantes na modelagem orientada a objetos:
Modelagem
Visual
importantes na modelagem orientada a objetos:
– Dependências
– Generalizações
– Associações
– Agregação
– Composição
– Realização
Dependência
• Dependências são relações de uso.
• Uma dependência indica que mudanças em um 
elemento (o “servidor”) podem afetar outro 
elemento (o “cliente”).
Modelagem
Visual
• Uma dependência entre classes indica que os 
objetos de uma classe usam serviços dos 
objetos de outra classe
Cliente Servidor
Generalização
• Uma generalização é um relacionamento entre 
um elemento mais geral (chamado de 
superclasse ou pai) e um mais específico 
(chamado de subclasse ou filho).
Forma
Ponto
Modelagem
Visual
mover()
redimensionar()
exibir()
origem
Forma
canto: Ponto
Retângulo
raio: float
Circulo
exibir()
pontos: ListaPontos
Polígono
x: int
y: int
Ponto
Quadrado
Associação
• A associação é um relacionamento estrutural que 
especifica que objetos de um elemento estão 
conectados a objetos de outro elemento.
Modelagem
Visual
Companhia Empregado
emprega
Associação: Navegabilidade
• Em geral a navegação entre as classes de uma 
associação é bi-direcional
• Porém é possível limitá-la a apenas uma direção
Modelagem
Visual
SenhaUsuário navegação da associação
• Link: uma conexão física ou conceitual entre 
objetos. Um link é uma uma instância de uma 
associação
Associação: um relacionamento entre instâncias de 
duas ou mais classes descrevendo um grupo de 
links, com estrutura e semântica comuns.
Associação e Link
Modelagem
Visual
Companhia
nome
endereço
Empregado
nome
endereço
cpf 
emprega
links, com estrutura e semântica comuns.
Associação com Atributos
• Modela as propriedades associadas com uma 
associação.
• Para indicar os atributos de uma associação, 
usamos uma linha tracejada para unir a 
associação às suas propriedades.
Modelagem
Visual
associação às suas propriedades.
• As propriedades e/ou conceitos devem ser 
representadas por uma classe.
Associação com atributo
Companhia Empregado
Modelagem
Visual
Função
Salário
• Papéis : um dos lados da associação.
• Uma associação binária possui duas
“terminações”. Cada uma delas pode possuir um
“nome de papel”. Uma associação n-ária pode
Associação e papéis
Modelagem
Visual
“nome de papel”. Uma associação n-ária pode
possuir um “papel” para cada terminação.
• Nomes de papéis são necessários para
associação entre dois objetos da mesma classe
Associação e papéis
Companhia Empregado
*1
contrata
0..1
1..*
+chefe
+subordinado
gerencia0..1
*1
Modelagem
Visual
Função
Salário
performance
� Nome de papéis são úteis para distinguir 
associações entre o mesmo par de classes.
Associação e papéis
0..*
contém
0..*
Modelagem
Visual
usuário diretório
+proprietário possui
+user autorizado
acessa
*
0..*0..*
*
+sub-dir
• Associação qualificada: uma associação que
relaciona uma classe e um qualificador a outra
classe.
• O qualificador é um atributo especial que reduz a
efetiva multiplicidade de uma associação
• Associações do tipo um-para-muitos e muitos-
Associação e Qualificador
Modelagem
Visual
• Associações do tipo um-para-muitos e muitos-
para muitos podem ser qualificadas
microcomputador
• Uma forma especial de associação, entre o todo 
e suas partes, no qual o todo é composto de 
partes.
Agregação
Modelagem
Visual
monitor
caixa do
sistema
mouse teclado
HD CPU RAM Ventilador
Agregação
• Distingue um “Todo” de uma “Parte”.
• Não muda o significado de navegação entre o 
“Todo” e as “Partes”.
Modelagem
Visual
“Todo” e as “Partes”.
• Não impõe que a vida das “Partes”’ esteja 
relacionado com a vida do “Todo”.
Composição
• Uma forma mais forte de agregação.
• Há uma coincidência da vida das partes.
• Uma vez criada a parte ela irá viver e morrer 
com ele.
Modelagem
Visual
com ele.
• O “Todo” é responsável pelo gerenciamento da 
criação e destruição das partes. 
Composição
+confirmar()
+cancelar()
-calcularTotal():Currency
gerarNovoCodigo: String
-codigo: Integer
-dataRecebido
-total: Currency
Pedido
Modelagem
Visual
-emEstoque: Boolean
-quantidade: Integer
-preco: Currency
Item de Pedido
Produto
*
*
Realização
• É um relacionamento semântico entre 
classificadores no qual um classificador 
especifica um contrato que outro classificador 
garante cumprir.
• Entre dependênciae generalização
Modelagem
Visual
• Entre dependência e generalização
• Será usado no contexto de interface.
• Uma interface é uma coleção de operações que 
será usada para especificar os serviços de uma 
classe ou componente.
• A interface especifica um contrato que a classe 
ou componente irá executar. 
Realização
IAgentedeRegras
adiçãoRegra()
mudançaRegra()
<<Interface>>
RegrasdeNegóciodaConta
Modelagem
Visual
mudançaRegra()
explicarRegra()
realiza
Interfaces
• Uma interface é um conjunto de operações 
usado para especificar um serviço de uma classe 
ou componente
• Diferentemente das classes, as interfaces não 
especificam nenhuma estrutura
Modelagem
Visual
especificam nenhuma estrutura
• Interfaces não podem conter atributos
Interfaces
• Com as interfaces, é possível se concentrar 
apenas nos serviços oferecidos por classes ou 
componentes
• O uso de interfaces é uma maneira elegante e 
poderosa de isolar a especificação da 
Modelagem
Visual
poderosa de isolar a especificação da 
implementação
• Uma interface especifica o contrato para uma 
classe ou componente, sem definir como ele 
será implementado
Interfaces (notação)
<<interface>>
Empregado
Modelagem
Visual
verificarFicha( )
calcularSalario( )
calcularDeducoes( )
Empregado
Interfaces e realização
• Realização é uma relação pela qual um 
elemento especifica o contrato que outro 
elemento deve implementar
• A realização é um relacionamento entre uma 
especificação e sua implementação
Modelagem
Visual
especificação e sua implementação
Realização (notação)
verificarFicha( )
calcularSalario( )
<<interface>>
Empregado
Empregado_Impl
Modelagem
Visual
calcularSalario( )
calcularDeducoes( )
Empregado
Empregado_Impl
Dicas
• Não comece a construção do modelo apenas 
colocando junto classes, associações e herança. 
Primeiro você deve entender o problema que vai 
ser resolvido
• Tente manter o modelo simples
Modelagem
Visual
• Tente manter o modelo simples
• Não tente resolver toda a multiplicidade tão 
cedo
• Use sempre que possível associação qualificadas
• Evite generalizações em muitos níveis
• Desconfie de associações um-para-um. Em 
geral é opcional ou zero-ou-uma
• Revise o modelo várias vezes
• Peça a outros para fazer a revisão
Dicas
Modelagem
Visual
• Peça a outros para fazer a revisão
• Sempre documente o seu Diagrama de Classe
• Não é necessário o uso de todos os construtores 
apresentados no Diagrama de Classe
Modelagem
Visual
Diagrama de classe
1
Associação
Agregação
{ou}
Indivíduo
Organização
Cliente
CódigoDoCliente 
limiteDeCrédito
Pedido
Incluir Pedido () 
atender Pedido ()
Modelagem
Visual
*
1 Agregação
Multiplicidade
Classe
Atributos
Organização 
cliente
Produto
Leite Chocolate Biscoito
Operações
Subclasse
Generalização
{disjunção, incompleto}
Classe associativa
Restrição
Superclasse
Pedido,item
qualidade
incluirItemPedido () 
calcularTotalPedido ()

Outros materiais