Buscar

04-01-DiagramaClasses

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 3, do total de 46 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

Você também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 6, do total de 46 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

Você também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 9, do total de 46 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

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

UML
Unified Modeling Language
Linguagem de Modelagem Unificada
Diagrama de Classes
Classe - Conceito
◼ Uma classe representa um conjunto de objetos 
que tenham a mesma estrutura e 
comportamento.
◼ É uma abstração de objetos do mundo real.
◼ Os objetos são instâncias da classe.
◼ As classes são utilizadas para classificar os 
objetos identificados no mundo real.
◼ Elas devem ser retiradas do domínio do problema 
e serem nomeadas pelo que elas representam no 
sistema.
Diagrama de Classes
◼ O diagrama de classe expressa a estrutura estática de 
um sistema, pois aquilo que é descrito é sempre 
válido em qualquer ponto no ciclo de vida do sistema.
◼ No diagrama de classes também é mostrada a 
possibilidade de interações entre classes, pois não se 
constituem elementos isolados e com absoluta 
autonomia.
◼ Muitas tarefas somente são possíveis de serem 
realizadas pela colaboração existente entre as classes.
Classes persistentes
◼ Em muitos casos é necessário preservar 
de forma permanente os objetos de uma 
Classe.
◼ A Classe precisa ser Persistente.
◼ Uma Classe Persistente apresenta muitas 
semelhanças com uma entidade como as 
definidas no MER.
◼ Modelo utilizado para definir as tabelas em 
banco de dados Relacional.
Persistência
◼ Deve ficar claro que nem toda Classe é 
persistente, não sendo muitas vezes 
necessário preservar (armazenar) suas 
informações.
Classes, Atributos e Métodos
◼ A notação padrão usada pela UML para 
representar uma Classe de Objetos é:
◼ Nome da Classe
◼ Atributos
◼ Métodos/procedimentos
◼ Classes costumam possuir atributos e atributos 
armazenam os dados dos Objetos da Classe.
◼ Métodos que são as funções que uma instância 
da Classe pode executar.
Representação de uma Classe
◼ Uma Classe é representado por um 
retângulo com três divisões:
◼ Na primeira parte → Nome da Classe;
◼ Na segunda parte → Os Atributos da 
Classe;
◼ Na terceira parte → Os Métodos da Classe 
(funções/procedimentos).
Representação de uma Classe
Representação de uma Classe
Identificação da Classe (Nome da Classe)
- valores que caracterizam os objetos
de uma classe
- tipos: Real, Inteiro, Texto, Booleano,
enumerado,...
- comportamentos (típicos) da classe
(serviços disponibilizados, ...)
Notação UML de uma 
classe
◼ Notação UML
⚫ Coloque o nome da classe sempre no singular 
(centralizado) Ex.: Pessoa, produto, Remessa.
•Com relação aos atributos a proposta geral é:
Visibilidade NomeAtributo: TipoDoAtributo = 
ValorDefault {propriedade}
Ex.: private string dataFatura = “01/01/2012”
Notação UML de uma 
classe
Notação UML
• Nome do atributo (Conceito)
Seqüência de caracteres que devem 
formar um nome auto-explicativo criado 
pelo analista que denota o conteúdo que 
se pretende armazenar.
Notação UML de uma 
classe
⚫ Inicie o nome de um atributo sempre com letra 
minúscula. 
⚫ Se o atributo contiver duas palavras, coloque a 
segunda palavra junto à primeira e com a primeira 
letra maiúscula. 
⚫ Ex: dataNascimento
Atributos
◼ Os valores dos Atributos podem variar de 
instância para instância.
◼ É exatamente essa característica, que permite 
a identificação de cada Objeto.
Atributos
◼ Cada atributo deverá conter um tipo de dados, ou seja a forma 
como a informação deverá ser armazenada.
◼ Byte:
◼ Tamanho em bits: 8
◼ Faixa de valores: -128 a 127
◼ Boolean:
◼ Tamanho em bits: 8
◼ Faixa de valores: true ou false
◼ Int:
◼ Tamanho em bits: 32
◼ Faixa de valores: -2.147.482.648 a 2.147.843.467
◼ Long:
◼ Tamanho em bits: 64
◼ Faixa: -9.223.372.036.854.775.802 a +9.223.372.036.854.775.802
◼ Double:
◼ Tamanho em bits: 64
◼ Faixa: -1.79769313486231570E+308 a +1.79769313486231570E+308
◼ Char: Texto.
◼ Date: Data.
Métodos
◼ Embora os Métodos sejam declarados no 
Diagrama de Classes, não é uma 
preocupação desse Diagrama, definir as 
etapas que estes métodos deverão 
percorrer quando forem chamados.
◼ Essa função é atribuída a outros Diagramas 
como:
◼ Diagrama de Seqüência e
◼ Diagrama de Atividades
Tipos de visibilidade: Atributos 
e Métodos
◼ Visibilidade Pública
◼ O atributo ou método que possuir essa visibilidade 
pode ser utilizado por qualquer Classe.
◼ Símbolo (+), sinal de mais.
◼ Visibilidade Protegida
◼ O atributo ou método que possuir essa visibilidade 
somente a classe possuidora ou as sub-classes terão 
acesso.
◼ Símbolo (#), sustenido.
◼ Visibilidade Privada
◼ Somente a Classe possuidora desse atributo ou 
método poderá utilizá-lo.
◼ Símbolo (-), sinal de menos.
Sintaxe para Operações
⚫ Iniciar o nome das operações com o verbo 
que representa aquela ação 
⚫ Ex: cadastrarPedido()
◼ Sintaxe
◼ [visibilidade] nome [(lista-de-parâmetros)]
[:tipo-de-retorno] [{propriedades}]
◼ Exemplos
◼ LerTemperatura () : Number
◼ Área (Lado : Integer) : Integer
◼ Void ValorPadrão ()
Exemplo de Diagrama de 
Classes
Possui 11
Motor
rotação : Number
temperatura : Temperatura
potência : Potencia
getRotação ()
setRotação (rotação : Number)
getPotência ()
getTemperatura ()
Carro
velocidade : Number
resistênciaAr ()
resistênciaSolo ()
Acelerador
pressão: Number
getPressão ()
setPressão (pressão : Number)
Possui
11
1
Controla1
1
Nome
Atributo
Método
Associação
Multiplicidade
Padrão visual para código 
fonte via Ferramenta case
◼ Com base nos elementos padronizados para 
descrição visual de uma classe, um software 
CASE poderá ser capaz de ‘entender’ a 
especificação visual e gerar um correspondente 
trecho em código-fonte, de acordo com uma 
linguagem de programação previamente 
escolhida, conforme exemplo na Figura a 
seguir.
Construindo um Diagrama de 
Classes
Construindo um Diagrama de 
Classes
◼ Identificar todas as classes que participam da 
solução em software
◼ Normalmente é conseguido através de análise dos 
casos de uso (substantivos) e requisitos do sistema
◼ Adicionar as classes ao diagrama
◼ Copiar os atributos da análise de requisitos 
para as classes apropriadas
◼ Adicionar os nomes das operações de cada 
classe
Construindo um Diagrama de 
Classes
◼ Escolher os tipos dos atributos e dos 
parâmetros das operações
◼ Incluir as associações necessárias para 
dar visibilidade de atributos
◼ Adicionar setas às associações para 
indicar a direção da visibilidade de 
atributos
Relacionamentos entre classes
Relacionamentos entre classes
◼ Poucas classes têm sentido sozinhas
◼ Os relacionamentos ligam 
classes/objetos entre si criando relações 
lógicas entre eles
◼ Os relacionamentos podem ser dos 
seguintes tipos:
◼ Associação (Agregação e Composição)
◼ Dependência
◼ Generalização
Tipo de relacionamento: 
Associações
◼ CONCEITO: Um relacionamento de 
associação representa uma conexão 
semântica entre duas classes.
◼ É o relacionamento mais utilizado.
◼ É bidirecional e é representado por uma 
linha ligando as classes.
◼ Este vínculo é chamado de Associação 
Binária. 
Ex.: Relacionamento de associação: 
‘contrato de aluguel’ e a classe “cliente” 
‘contrato de aluguel’ com a classe “veiculo 
alugado”.
Relacionamento de associação
Multiplicidade
0..1
No mínimo zero (nenhum) e no máximo um. Indica que os 
Objetos da classe associada não precisam obrigatoriamente 
estar relacionados.
1..1
Um e somente um. Indica que apenas um objeto da classe se 
relaciona com os objetos da outra classe.
0..*
No mínimo nenhum e no máximo muitos. Indica que pode não 
haver não instâncias da classe participando do relacionamento.
*
Muitos. Indica que muitos objetos da Classe estão envolvidos no 
Relacionamento.
1..*
No mínimo um e no máximo muitos. Indica que há pelo menos 
um objeto envolvido no relacionamento, podendo haver muitos.
3..5
No mínimo 3 e no máximo 5. Indica que há pelo menos 3 
instâncias envolvidas no relacionamento e que pode ser 4 ou 5 
as instâncias envolvidas, mas não mais do que isso.
Representação da Associação 
Binária
Tipo de relacionamento: 
Agregação por referência
Na agregação por referência (losango sempreenchimento), o tempo de vida das 
partes não são mutuamente dependentes 
do tempo de vida do todo.
◼ relacionamento fraco do tipo “é parte de “.
Agregação por referência
◼ É um tipo especial de associação onde 
tenta-se demonstrar que as informações e 
um objeto (chamado objeto-todo) 
precisam ser complementadas pelas as 
informações contidas em um objeto de 
outra classe (chamado objeto-parte).
Representação de Agregação 
por referência
Representação de Agregação 
por referência
Na Agregação, a existência do Objeto-Parte faz sentido, mesmo não 
existindo o Objeto-Todo. Vejamos o exemplo Time-Atleta:
Composição ou agregação por 
valor
◼ A agregação por valor (losango cheio) indica que o 
tempo de vida das partes são dependentes do 
tempo de vida do todo.
◼ relacionamento forte do tipo “é parte de “. A 
composição entre um elemento (o “todo”) e outros 
elementos (“as partes”)
◼ indica que as partes só podem pertencer ao “todo” 
e são criadas e destruídas com ele
◼ Tenta mostrar que os objetos-parte têm que 
pertencer exclusivamente a um único objeto-todo.
Representação da Composição
Especialização / Generalização
◼ Generalização (herança)
◼ relacionamento entre um elemento mais geral 
e um mais específico
◼ Similar à associação de mesmo nome utilizado 
no Diagrama de Casos de Uso. Seu objetivo é 
identificar classes-mãe (gerais) e classes filhas 
(especializadas).
Especialização / Generalização
Dependência
◼ Não é um tipo comum de relacionamento.
◼ Identifica um certo grau de dependência 
de uma classe em relação a outra.
◼ Representado por uma reta tracejada 
entre duas classes, contendo uma seta na 
extremidade do relacionamento que é 
dependente de alguma forma.
Dependências entre classes
◼ Indica que mudanças em um elemento (o “servidor”) 
podem afetar outro elemento (o “cliente”)
◼ Indica que os objetos de uma classe usam serviços 
dos objetos de outra classe
◼ Existe um relacionamento de dependência entre duas 
classes quando:
◼ uma classe utiliza outra somente como 
parâmetro de entrada na assinatura de ao menos 
uma de suas operações.
Nesse caso um elemento depende do outro, sendo que se um elemento 
mudar o outro poderá ser afetado.
Dependências entre classes
http://tiemprosa.com.br/wp-content/uploads/2012/04/estruturaclasse10.jpg
Classe Associativa
◼ São classes produzidas quando da 
ocorrência de associações que possuem 
multiplicidade muitos (*) em todas as suas 
extremidades.
Classe Associativa
◼ É introduzida quando uma associação tem propriedades 
associadas
Classe Associativa
Notas
◼ São importantes para informar algum 
comentário necessário a classe, método 
ou atributo, fazendo com que, todos 
tomem conhecimento de forma 
imediata a observação feita, seja essa 
observação feita para validar ou 
simplesmente informar como o objeto 
notificado se comporta.
Notas

Outros materiais