Buscar

Diagrama de Classes

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 74 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 74 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 74 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

MODELAGEM DE SISTEMAS 
SEMANA 06 – Diagrama de Classes
• Professor: Lázaro P. de Oliveira
• Curso: Sistema de Informação 
OBJETIVO
Construir Diagrama de Classes 
e Diagrama de Objeto, levando 
em conta o Modelo de Domínio
• Capítulo 3: Diagramas de Classes: Os elementos Básicos
DIAGRAMA DE CLASSE CONCEITUAL
LIVRO PROPRIETÁRIO
 Capítulo 5 – Diagramas de Classes: Conceitos Avançados.
DIAGRAMA DE CLASSE DE PROJETO
 Os conceitos de classes e objetos são fundamentais 
para o desenvolvimento de software e de modelos de 
software neste paradigma. 
 De acordo com Booch, Rumbaugh e Jacobson (2005) as 
classes são a estrutura mais importante na construção 
de sistemas orientados a objetos.
CLASSES E OBJETOS
 Os conceitos de classes e objetos são fundamentais 
para o desenvolvimento de software e de modelos de 
software neste paradigma. 
 De acordo com Booch, Rumbaugh e Jacobson (2005) as 
classes são a estrutura mais importante na construção 
de sistemas orientados a objetos.
CLASSES E OBJETOS
A representação de Classe na UML é um retângulo dividido em três partes:
1) Nome da Classe
2) Atributos
3) Métodos
DIAGRAMA DE CLASSE
Nome da 
Classe.
1ª. letra 
maiúscula 
(caixa alta).
O nome deve 
representar 
uma entidade 
no sistema a 
ser modelado
Atributos da 
Classe.
Todas as letras 
minúsculas (caixa 
baixa)
Métodos da 
Classe.
Todas as letras 
minúsculas (caixa 
baixa)
ATRIBUTOS DE UMA CLASSE
De acordo com Foeler (2005) para se 
entender os atributos de uma classe, 
pode-se fazer uma analogia à campos
(variáveis pertencentes a uma estrutura) 
de uma linguagem de programação. Em 
outras palavras, os atributos são as 
qualidades que um objeto possuirá 
quando instanciado seguindo o modelo de 
uma classe.
Sintaxe: <nome atributo>:<tipo atributo>
Exemplo: Nome_cliente: string
MÉTODOS DE UMA CLASSE
Os métodos de uma classe são as 
ações que um objeto instanciado pode 
executar, recebendo ou não 
parâmetros, retornando ou não 
valores.
Os tipos dos métodos são, 
basicamente, o tipo do valor que será 
retornado.
Quando não há retorno, define-se o 
tipo void.
MÉTODOS DE UMA CLASSE - EXEMPLO
girarAntiHorario: ao ser executado 
este método, nenhum valor é 
retornado (void), porém no 
momento da execução do método, é 
necessário que se transmita a 
velocidade desejada.
checaSeEstáLigado: para ser 
executado, este método não 
necessita de parâmetro, porém o 
valor booleano (verdadeiro ou falso) 
é retornado, indicando verdadeiro 
para quando o ventilador está ligado 
e falso para quando está desligado.
OBJETO
• Classe: 
Molde de objetos afins, com as mesmas características (atributos 
e métodos)
• Objeto: 
Instância de uma classe
10
Classe Objeto
EVOLUÇÃO NO DIAGRAMA DE CLASSES
 Modelo conceitual (análise)
• Classes do negócio
 Concebidas a partir das funcionalidades dos casos de uso
• Atributos
 sem tipos
 sem visibilidade
• Relacionamentos
 Só o relacionamento de associação
 Modelo de classes de Projeto (Projeto)
– Multiplicidade 
– Relacionamentos – análise semântica
– Novos atributos
– Métodos
– Visibilidade e tipos dos atributos
– Classes de projeto (persistência,camadas..)
11
MULTIPLICIDADE
12
Multipl Significado
1 Exatamente 1 (um)
1..* Um ou vários (muitos)
0..* Nenhum (zero) ou vários (muitos)
* Muitos. A leitura é Nenhum (zero) ou vários (muitos)
0..1 Nenhum (zero) ou 1 (um)
m..n Faixa de valores. Exemplo : 1 a 3 , 4 a 7 ou 6 a 11
 Outro Exemplo:
 Uma corrida está associada a:
no mínimo, dois (2) velocistas;
No máximo seis (6) velocistas;
 Um velocista pode estar associado a várias (*) corridas.
MULTIPLICIDADE
EXEMPLO (MULTIPLICIDADE)
 Pode haver um cliente que esteja associado 
a vários pedidos.
 Pode haver um cliente que não esteja 
associado a pedido algum.
 Um pedido está associado a um, e somente 
um, cliente.
1
1
4
0..*
Cliente Pedido
CONECTIVIDADE
1
5
 A conectividade corresponde ao tipo de
associação entre duas classes: “muitos para
muitos”, “um para muitos” e “um para um”.
 A conectividade da associação entre duas classes
depende dos símbolos de multiplicidade que são
utilizados na associação.
CONECTIVIDADE X MULTIPLICIDADE
Conectividade Em um extremo No outro extremo
Um para um 0..1 0..1
1 1
Um para muitos 0..1 *
1 1..*
0..*
Muitos para muitos * *
1..* 1..*
0..* 0..*
1
6
EXEMPLO (CONECTIVIDADE)
1 0..1
Empregado Departamento
0..* 1
Empregado Departamento
0..* 1..*
Empregado Projeto
Um paraum
Um paramuitos
Muitos para muitos
1
7
NOME DE ASSOCIAÇÃO, DIREÇÃO DE 
LEITURA E PAPÉIS
1
8
 Para melhor esclarecer o significado de uma associação 
no diagrama de classes, a UML define três recursos de 
notação:
 Nome da associação: fornece algum 
significado semântico à mesma.
 Direção de leitura: indica como a associação deve ser 
lida
 Papel: para representar um papel específico 
em uma associação.
EXEMPLO 
(NOME DE ASSOCIAÇÃO, DIREÇÃO DE LEITURA E PAPÉIS)
contratante
*
contratado
*
Contrata
Organização Indivíduo
Papel
Nome da 
associaçã
o
Papel
Direção 
de leitura
1
9
Os atributos (campos) e operações (métodos) de uma classe podem ser 
especificados para mostrar como a mesma pode ser vista e utilizada pelos 
outros elementos do sistema.
Os níveis de visibilidade para o atributo ou operação:
VISIBILIDADE 
Visibilidade Comentários
+ Publico Qualquer classe pode usar o método ou atributo
- Privado Apenas a própria classe pode usar o método ou o atributo
~ Pacote Apenas classes dentro do pacote podem usar o método ou atributo
# Protegido Apenas as subclasses (herança), ou classe especializada pode usar o 
atributo ou método
 ( - ) Somente a própria classe tem 
acesso direto aos atributos do veículo
 ( + ) Qualquer classe pode ligar ou 
desligar o veículo
 ( # ) Somente classes do mesmo pacote 
ou sub-classes podem acelerar ou frear
veículo
 ( - ) Somente a própria classe pode 
ativar o ABS
 ( ~ ) Somente classes do mesmo pacote 
podem ver o consumo do veículo
VISIBILIDADE
DIAGRAMA DE CLASSES
Observe a Classe “ContaBancaria” e, no slide a seguir, como ficaria o código 
fonte para sua criação
CÓDIGO FONTE PARA CRIAÇÃO DA CLASSE 
“ContaBancaria”
A
tr
ib
u
to
s
M
ét
o
d
o
s
RELACIONAMENTOS
Os tipos de relacionamento entre classes em um diagrama de 
classes são:
1) Herança (ou generalização/especificação);
2) Associação;
3) Agregação;
4) Composição;
5) Dependência;
6) Autoassociação.
 Trata-se da ação de uma classe herdar toda a estrutura de 
uma outra classe
 Uma sub-classe sempre herda de sua super-classe:
Atributos
Operações
Relacionamentos
 Uma sub-classe pode:
Adicionar atributos e operações
Adicionar relacionamentos
1) HERANÇA
(GENERALIZAÇÃO / ESPECIFICAÇÃO)
PAREI 1) HERANÇA
(GENERALIZAÇÃO / ESPECIFICAÇÃO)
27
1) HERANÇA
(GENERALIZAÇÃO / ESPECIFICAÇÃO)
1) HERANÇA
(GENERALIZAÇÃO / ESPECIFICAÇÃO)
1) HERANÇA
(GENERALIZAÇÃO / ESPECIFICAÇÃO)
2) ASSOCIAÇÃO
(CLASSE ASSOCIATIVA)
3
0
 É uma classe que está ligada a uma associação, 
ao invés de estar ligada a outras classes.
 É normalmente necessária quando duas ou mais 
classes estão associadas, e é necessário manter 
informações sobre esta associação.
 Uma classe associativa pode estar ligada a 
associações de qualquer tipo de conectividade.
 A Classe é ligada a uma Associação.
Classe Associativa
Oriunda do 
relacionamentomuitos para muitos
0 .. * 1 .. * 
2) ASSOCIAÇÃO
(CLASSE ASSOCIATIVA)
3) AGREGAÇÃO
3
2
• É uma associação diferente da associação simples 
apresentada no item anterior.
• Considera as classes relacionadas como sendo uma o “TODO” 
e a outra a “PARTE”.
• Por tal motivo, também é conhecida, juntamente com a 
composição, como relacionamento TODO-PARTE. 
• Representado por um losango vazado voltado para a parte 
“TODO”.
 Um Pedido de compra com os itens que serão comprados.
 No caso da agregação, os itens podem existir no sistema mesmo 
antes de fazerem parte de um pedido.
 Em outras palavras, a existência de “item” independe da existência 
de seu “pedido”.
 A existência da “parte” (item) independe da existência do 
“todo” (pedido).
3) AGREGAÇÃO: Exemplo
 A representação gráfica da composição é feita com um losango cheio 
(pintado).
4) COMPOSIÇÃO
 A utilização da composição é bem similar à agregação, porém, com uma 
diferença principal: A EXISTÊNCIA DA “PARTE” NÃO FAZ SENTIDO SE O 
“TODO” NÃO EXISTIR.
 Na AGREGAÇÃO, o objeto “parte” pode pertencer a mais de um “todo”, 
enquanto na composição, o objeto “parte” pode pertencer somente a um 
“todo”.
 Na composição, as “partes” são destruídas como consequência da destruição 
do seu respectivo “todo”.
 Um funcionário pode possuir Dependentes:
 A existência do(s) dependente(s) não faz sentido se não for para 
compor uma classe Funcionario.
 Um funcionário, quando excluído no sistema, seus dependentes 
tabém serão excluídos, pois não faz sentido mantê-los.
4) COMPOSIÇÃO: Exemplo
A dependência de classes é utilizada para que? 
para que ações sejam executadas por um 
objeto, é necessário que exista um objeto de 
outra classe.
5) DEPENDÊNCIA
• Um Caixa de Banco possui métodos de “Depositar” (no caso, dinheiro). 
• Este método recebe dois parâmetros: o “valor” a ser depositado e a 
“conta” em que o valor será creditado. 
• Para que a “conta” possa ser especificada, é necessário que um objeto da 
classe “Conta” seja passado como parâmetro para o método. 
• Portanto, a classe “Caixa” tem uma relação de dependência com a classe 
“Conta”.
5) DEPENDÊNCIA: Exemplo
6) AUTOASSOCIAÇÃO
3
8
 Associa objetos da mesma classe.
 Cada objeto tem um papel distinto na associação.
 A utilização de papéis é bastante importante para evitar ambiguidades na leitura
da associação.
 Uma associação reflexiva não indica que um objeto se associa com ele próprio.
 Ao contrário, indica que objetos de uma mesma classe se associam
supervisor
supervisionado
1
*
Empregado
Supervisão
AUTO ASSOCIAÇÃO
Define quando um objeto de uma classe está relacionado com outro objeto da
mesma classe para atender a algum comportamento. A multiplicidade é
estabelecida normalmente.
6) AUTOASSOCIAÇÃO
EXEMPLO MAIS AMPLO
 Diagrama de Classes não é um modelo ER
 O maior perigo com os diagramas de classes é que
você pode focalizar exclusivamente na estrutura e 
ignorar o comportamento (métodos).
CUIDADO
NÍVEIS DO MODELO DE CLASSES
 Três níveis sucessivos de abstração:
1) Domínio;
2) Especificação;
3) Implementação.
1) CLASSES DE DOMÍNIO
 Representa as classes no domínio 
do negócio em questão. 
 Não leva em consideração restrições 
inerentes à tecnologia a ser utilizada 
na solução de um problema.
4
3
 Representa termos do domínio 
do negócio.
 Objetivo: descrever o 
problema representado pelo 
sistema a ser desenvolvido, 
sem considerar características 
da solução a ser utilizada.
2) CLASSES DE ESPECIFICAÇÃO
4
4
É obtido através da adição 
de detalhes ao modelo 
anterior conforme a 
solução de software 
escolhida.
3) CLASSES DE IMPLEMENTAÇÃO
Copyright 2002, 2003 Eduardo Bezerra
4
5
O modelo de classes de 
implementação corresponde à 
implementação das classes em 
alguma linguagem de 
programação.
 A gráfica ABC trabalha com diversos autores que escrevem os livros que 
ela publica. 
 Alguns autores escreveram apenas um livro, enquanto outros já 
escreveram vários. 
 Além disso, alguns livros foram escritos por vários autores, porém um 
livro deve possuir pelo menos um autor. 
 A gráfica ABC trabalha também com diversas impressoras, porém um livro 
só pode ser impresso em uma única impressora.
 Deve ser possível buscar os livros de um autor, saber qual foi a impressora 
em que o livro foi impresso, saber a quantidade de páginas que uma 
impressora já imprimiu e a quantidade de páginas que ela imprimiu de 
um determinado livro, entre outros.
EXERCÍCIO DE FIXAÇÃO 01
EXERCÍCIO DE FIXAÇÃO 01 - SOLUÇÃO
 Um veículo tem chassi, modelo, peso, ano de fabricação. 
 Um veículo não existe por si só, ele deve ser um avião ou um 
carro. 
 Todo veículo liga e desliga. 
 Um carro acelera e freia e um avião decola, voa e pousa.
EXERCÍCIO DE FIXAÇÃO 02
EXERCÍCIO DE FIXAÇÃO 02 - RESOLUÇÃO
 Um imóvel possui um endereço, área (em m2) e um proprietário. 
 O imóvel pode ser uma casa ou um apartamento. 
 Caso seja casa possuirá também o número do registro do lote e, caso seja 
apartamento, possuirá o número do andar e um flag indicando se possui ou não 
elevador. 
 Um proprietário possui cpf, nome e telefone.
 Pelo menos as seguintes operações devem existir:
 Alterar a área de um imóvel
 Alterar o proprietário de um imóvel
 Alterar o flag se possui ou não elevador do apartamento
 Recuperar a quantidade de imóveis de um proprietário
 Alterar o telefone de um proprietário
 PS: Atenção com os parâmetros e com o tipo de retorno das operações
EXERCÍCIO DE FIXAÇÃO 03
EXERCÍCIO DE FIXAÇÃO 03
VAMOS FAZER 
OUTROS 
EXERCÍCIOS?
O proprietário de uma Loja de Material de Construção solicitou, aos alunos da
Estácio de Sá, que desenvolvessem um sistema para gestão de sua loja. Para tanto,
solicitou que fosse, inicialmente, criado Diagrama de Caso de Uso seguido do
Diagrama de Classes.
Em entrevista com o proprietário, os alunos levantaram as seguintes atividades
realizadas na loja e que devem ser contempladas no sistema:
 O gerente só compra os produtos de fornecedores qualificados.
 Os fornecedores são todos cadastrados pelo próprio gerente, antes
mesmo de realizar as compras;
 Os atendentes realizam as vendas dos produtos no balcão e emitem as
respectivas notas fiscais.
 O gerente também pode vir a atender no balcão com vendas de produtos.
 Quando os clientes assim desejam, os produtos vendidos são entregues
em sua residência. Para tanto, o atendente precisa gerar uma nota de
entrega e cadastrar o cliente (caso este seja um cliente novo ou ainda não
tenha sido cadastrado).
LOJA DE MATERIAL DE CONSTRUÇÃO
DIAGRAMA 
DE 
OBJETOS
O diagrama de objetos é uma variação do diagrama de 
classes e utiliza quase a mesma notação. 
A diferença é que o diagrama de objetos mostra os objetos 
que foram instanciados das classes. 
O diagrama de objetos é como se fosse o perfil do sistema 
em certo momento de sua execução.
Pode ser visto com uma instância de diagramas de classes
DIAGRAMA DE OBJETOS
EXERCÍCIO 1
O diagrama de classes abaixo se refere a uma empresa de aluguel de veículos. 
Observe o diagrama e faça um texto, interpretando o que você entendeu no 
diagrama.
EXERCÍCIO 2
Baseado na sua interpretação do exercício 1, faça uma descrição da situação 
representada no diagrama de objetos abaixo:
EXERCÍCIO 3
Como fica o diagrama do exercício 2, se o Pablo 
alugar uma Kombi, no contato 3125.
 Em um hotel da cidade, um hóspede pode obter um quarto de 2 formas: através de uma 
reservaprévia ou obtendo um quarto se houver disponibilidade no ato. 
 Ao reservar são registrados Nome, CPF, Período da estada, quantidade de quartos e de 
hospedes. 
 Na chegada do hóspede (com ou sem reserva) são registrados, além dos dados acima, os 
dados (Nome e data de nascimento) dos demais hóspedes. 
 Na saída do hóspede, registra-se a data de saída, bem como apresenta o valor a pagar ao 
hospede, que informa forma de pagamento (dinheiro, cartão ou cheque). 
 Se pagamento em cheque (banco, agencia, conta e cheque) registra-se os dados do cheque. Se 
pagamento em cartão, registra-se dados do cartão (administradora, numero cartão e validade). 
 Após saída do hóspede, o recepcionista deve liberar o quarto para limpeza , que ao ser 
encerrada deve liberar o quarto para uso novamente.
 O gerente pode retirar um quarto de uso, seja para obra ou qualquer outra ação, podendo 
retornar o quarto para hospedagem, sempre que desejar. 
 O gerente poderá incluir novos quartos, quando forem construídos.
 Sempre que solicitado o gerente deve receber um mapa de ocupação dos quartos (reservas e 
ocupados) em um período (por ele informado).
 Ao final do dia o caixa precisa saber o total recebido em dinheiro e o gerente as reservas 
canceladas.
 Uma reserva pode ser cancelada pelo recepcionista (obedecendo pedido do hóspede) ou 
automaticamente, se o hóspede não chegar ate as 17h.
 Todo atendimento (reservas, checkin e checkout) é feito pelos recepcionistas.
EXERCÍCIO 4 – Estudo de Caso Hotel
1. Identificando Casos de Uso
6
2
IDENTIFICANDO CLASSES
1. Precisa reter, no sistema, dados de algum ator?
– Não. Nenhum ator é relevante para o domínio do 
problema enquanto retenção de seus dados
2. Que casos de uso dão origem a classes ?
– Incluir quarto e outros – Quarto
– Cadastrar hóspede – Hóspede
– Reservar Quarto o outros – Reserva
– Registrar Entrada do Hóspede / Registrar Saída do 
Hóspede - Hospedagem
– Pagar Cheque, Pagar Dinheiro, Pagar Cartão –
Pagamento, Pag Cartão, Pag Cheque e Pag Dinheiro.
IDENTIFICANDO ATRIBUTOS
3. Que atributos identificam cada classe ?
– Quarto: Num Quarto, Max Pessoas
– Hóspede: CPF, Nome, Data Nasc
– Reserva: Data Reserva, Data Inicial, Data Final, Qtde Pessoas, Qtde 
Quartos
– Hospedagem: Data Cheg, Data Saida
– Pagamento: Forma Pagamento, Valor Pagamento
– Dinheiro : Valor Pago, Troco
– Cheque : Banco, Agencia, Conta, Chequ
– Cartão: Adm, Num Cartão, Val Cartão, Parcelas
IDENTIFICANDO MÉTODOS EVIDENTES
4. Algum caso de uso dá origem a métodos de uma classe?
– Quarto: Incluir quarto, Bloquear Quarto, desbloquear quarto, 
liberar quarto da limpeza.
– Reserva: Incluir Reserva, Cancelar reserva, cancelar reservas do dia, 
consultar reservas canceladas.
– Hóspede: Cadastrar
– Hospedagem: Registrar entrada, registrar saída
– Pagamento: ? – nada evidente
– Pag Dinheiro – Consultar recebimento especie
– Pag Cartão - ? Nada evidente
– Pag Cheque - ? Nada evidente
1ª VERSÃO: DIAGRAMA CONCEITUAL CLASSES
REFINAMENTO 1: DCC
REFINAMENTO 2: DCC
REFINAMENTO 2: DCC
REFINAMENTO 2: DCC
REFINAMENTO 2: DCC
EXERCÍCIOS
Monte o Diagrama de Classes para os seguintes 
Diagramas de Casos de Uso:
1) Barrichelo’s Kart;
2) Estacionamento Praça Estácio;
DIAGRAMA DE CASO DE USO
“BARRICHELO’S KART”
DIAGRAMA DE CASO DE USO
“ESTACIONAMENTO PRAÇA DA ESTÁCIO”

Continue navegando