Buscar

Diagrama_de_Classes_VJ

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

ENGENHARIA DE SOFTWARE I
Diagrama de Classes
MSc. Jacilane Rabelo
Orientação a Objetos
Conceitos
O modelo de casos de uso fornece uma perspectiva do 
sistema a partir de um ponto de vista externo.
De posse da visão de casos de uso, os desenvolvedores 
precisam prosseguir no desenvolvimento do sistema.
A funcionalidade externa de um sistema orientado a 
objetos é fornecida através de colaborações entre 
objetos.
Conceitos
Externamente, os atores visualizam resultados de cálculos, 
relatórios produzidos, confirmações de requisições 
realizadas, etc.
Internamente, os objetos colaboram uns com os outros para 
produzir os resultados.
Essa colaboração pode ser vista sob o aspecto dinâmico e 
sob o aspecto estrutural estático. 
Classes
Uma classe representa um grupo de objetos semelhantes.
Uma classe descreve esses objetos através de atributos e 
operações.
Os atributos correspondem às informações que um objeto 
armazena.
As operações correspondem às ações que um objeto sabe 
realizar.
Tipos de Classes
Tipos de Classes
Tipos de Classes
Tipos de Classes
Classes de Domínio: modelam objetos associados ao
domínio do problema.
• aluno, curso, turma, disciplina, docente, etc.
• médico, paciente, exame, diagnóstico, etc.
• advogado, juiz, processo, julgamento, etc.
Classes de Fronteira: modelam objetos que realizam a
comunicação entre o sistema e a sua vizinhança, ou seja, os
atores.
• janela, formulário, etc.
• catraca, sensor de presença, etc.
• sistema de cobrança, administradora de cartão, etc.
Tipos de Classes
Classes de Controle: modelam objetos que exercem controle
sobre outros objetos.
• criação de objetos controlados.
• controle da operação dos objetos controlados
• controle da concorrência de pedidos dos objetos
controlados.
Classes Utilitárias: modelam comportamentos que
representam algoritmos de uso comum.
• verificação de CPF e CNPJ
• cálculo da alíquota do IR
Classes de Exceção: modelam objetos que representam uma
exceção ou falha em um determinado domínio.
Tipos de Classes
Pergunta:
Somos obrigados a identificar tudo 
isso agora?
Tipos de Classes
Nem todos esses tipos de classe são identificados 
durante a Análise!
Na Análise costuma-se focar nas Classes do Domínio do 
Problema
Identificando Classes
Localizando classes e atributos:
A partir dos Requisitos/Casos de Uso extrair substantivos
• resulta em uma tentativa de Classes e Atributos
A partir daí eliminar Classes estranhas 
• resulta em Classes e Atributos
O que procurar?
• Estruturas
• Outros sistemas
• Dispositivos
• Coisas ou eventos
• Papéis executados
• Lugares
• Unidades organizacionais
Identificando Classes
Identificando Classes
Exemplo: extraindo classes de um trecho de um requisito
“...um sistema de médico pediatra para atender pacientes 
através de plano de saúde ou particular.”
Quais são as classes/atributos?
Identificando Comportamentos
Localizando comportamentos
A partir dos Requisitos/Casos de Uso extrair verbos
• resulta em uma tentativa de Comportamentos
A partir daí eliminar Comportamentos estranhos 
• resulta em Comportamentos das Classes
O que procurar?
• Verbos no imperativo
• Verbos no passivo
• Ações
• Coisas ou eventos
• Procedimentos 
operacionais
Identificando Comportamentos
Exemplo: extraindo classes de um trecho de um requisito
“...um sistema de médico pediatra para atender pacientes 
através de plano de saúde ou particular.”
Quais são os comportamentos?
Hora de Treinar
Exercício
Considere o seguinte cenário:
Um fragmento de um Sistema de Controle Bancário. 
Para este sistema, o gerente deve cadastrar agências, clientes e abrir e fechar contas 
bancárias. Um cliente possui nome, endereço e telefone. Um cliente pode abrir várias contas 
e uma conta pode ser de vários clientes, para o caso de contas conjuntas. Contas são de uma 
determinada agência (que possui nome e número), além de poderem estar vinculadas a uma 
conta de investimento, que nada mais é que uma outra conta bancária. Contas ainda devem 
possuir um número (formado pelo número da agência e pelo número da própria conta) e saldo 
disponível, podendo ser corrente normal, corrente especial e poupança. Para contas 
poupança, devem-se armazenar os dias de vencimento e, para contas correntes especiais, 
informar o limite de crédito. Contas ainda possuem movimentações de saque e depósito, que 
devem ter data e valor, além do tipo de movimento, que pode ser
débito ou crédito. Clientes ainda podem solicitar cartões de contas bancárias, que devem ter 
número, validade e senha para cada cliente, além de talões de cheques para contas 
correntes, que devem armazenar o número inicial e final das folhas do talão. O sistema ainda 
deve permitir aos clientes consultar saldos e extratos. 
Identifique as classes, atributos e comportamentos!
Classes/Atributos
Agência nomeNumero
ControleBancario saldo
Cliente numeroSaldo
Conta limiteSaldo
Conta Corrente extrato
Conta Corrente Normal limiteCredito
Conta Corrente Especial diasVencimento
Conta Poupança nome
Movimentação endereco
Tipo de Movimentação telefone
Talão de Cheques numero
Cartão de Conta validade
Gerente senha
Descricao data
debitoCredito valor
Comportamentos
efetuarSaque solicitarCartao
efetuarDeposito vincularConta
emitirSaldo socilitarTalao
emitirExtrato validarSenha
efetuarMovimentacao verificarValidade
armazenarVencimento RealizarPagamento
Classes/Atributos
Agência nomeNumero
ControleBancario saldo
Cliente numeroSaldo
Conta limiteSaldo
Conta Corrente extrato
Conta Corrente Normal limiteCredito
Conta Corrente Especial diasVencimento
Conta Poupança nome
Movimentação endereco
Tipo de Movimentação telefone
Talão de Cheques numero
Cartão de Conta validade
Gerente senha
Descricao data
debitoCredito valor
Comportamentos
efetuarSaque solicitarCartao
efetuarDeposito vincularConta
emitirSaldo socilitarTalao
emitirExtrato validarSenha
efetuarMovimentacao verificarValidade
armazenarVencimento RealizarPagamento
Classes
Atributos
Comportamentos
Extraindo classes, atributos e relacionamentos
24
• EXERCÍCIO: CONTA DE Luz
CENÁRIO: As informações a seguir se referem á planilha Excel de
Gabriel, que controla os gastos mensais com sua conta de luz.
Para cada conta de luz cadastra-se: data em que a leitura do relógio
de luz foi realizada, número da leitura, quantidade de Kw gasto no
mês, valor a pagar pela conta, data do pagamento e média de
consumo.
Mensalmente, são realizadas as seguintes pesquisas:
- verificação do mês de menor consumo;
- verificação do mês de maior consumo.
Extraindo classes, atributos e relacionamentos
25
Extraindo classes, atributos e relacionamentos
26
Diagrama de Classes
Diagrama de Classes
• O diagrama da UML utilizado para representar o 
aspecto estático é o diagrama de classes.
• O diagrama de classes evolui durante o 
desenvolvimento do sistema.
• À medida que o sistema é desenvolvido, o diagrama de 
classes é incrementado com novos detalhes.
• Três níveis sucessivos de abstração:
Domínio, Especificação e Implementação. 
Diagrama de Classes
Níveis em que podemos ter o diagrama:
• 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.
• Especificação é obtido através da adição de detalhes ao 
modelo anterior conforme a solução de software 
escolhida.
• Implementação corresponde à implementação das 
classes em alguma linguagem de programação.
Diagrama de Classes
Exemplo:
• Domínio
Diagrama de ClassesExemplo:
• Especificação
Diagrama de Classes
Exemplo:
• Implementação
Diagrama de Classes de Domínio
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.
Elementos do Diagrama de 
Classes
Notação para uma classe
• Representada através de uma “caixa” com no máximo três 
compartimentos exibidos. 
• Notação utilizada depende do nível de abstração 
desejado.
Exemplo (classe ContaBancária)
Tipos de Relacionamentos -
Associação
• Para representar o fato de que objetos podem se 
relacionar uns com os outros, utiliza-se a associação.
• Uma associação representa relacionamentos (ligações) 
que são formados entre objetos durante a execução do 
sistema.
• Embora as associações sejam representadas entre classes 
do diagrama, tais associações representam ligações 
possíveis entre objetos das classes envolvidas. 
Notação para uma associação
• Representada através de um segmento de reta ligando as 
classes cujos objetos se relacionam.
• Exemplos: 
Cliente Produto
ContaCorrente HistóricoTransações
Hóspede Quarto
Notação para uma associação
Navegabilidade da Associação:
• Define se é possível, a partir de uma extremidade da 
associação, chegar a outra extremidade.
• Notação na UML 2.0.
Associação UML 2.0
Bidirecional
Unidirecional
Indefinido
Associação - Exemplos
Multiplicidade
• Representam a informação dos limites inferior e superior 
da quantidade de objetos aos quais um outro objeto pode 
estar associado.
• Cada associação em um diagrama de classes possui duas 
multiplicidades, uma em cada extremo da linha de 
associação.
Multiplicidade
Nome Simbologia
Apenas Um 1..1 (ou 1)
Zero ou Muitos 0..* (ou *)
Um ou Muitos 1..*
Zero ou Um 0..1
Intervalo Específico l
i
..l
s
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. 
Cliente Pedido
1 0..*
Exemplo (multiplicidade)
• Uma corrida está associada a, no mínimo, dois 
velocistas 
• Uma corrida está associada a, no máximo, seis 
velocistas. 
• Um velocista pode estar associado a várias corridas.
Velocista Corrida
2..6 0..*
Exemplo (multiplicidade)
• Para cada instância de Professor, diversos cursos 
podem ser oferecidos
• Para cada instância de CourseOffering, pode-se ter 
um ou nenhum Professor como instrutor
Exemplo (multiplicidade)
Pessoa Empresa
1..*
Tipo: associação
multiplicidade
*trabalha para
empregado
papéis
empregador
sentido de leitura
E a navegabilidade?
nome
Navegabilidade
• Navegabilidade (utilizado apenas na perspectiva de 
implementação)
• Um relacionamento sem navegabilidade implica que 
ele pode ser lido de duas formas, isto é, em suas duas 
direções. Ex.: 
Uma empresa possui um trabalhador, como também um 
trabalhador trabalha em uma empresa. 
Navegabilidade
• Utilizando a propriedade de navegabilidade, podemos 
restringir a forma de ler um relacionamento. 
• Em vez de termos duas direções, teremos apenas 
uma direção (de acordo com a direção da 
navegação). Ex.: 
Uma empresa possui um trabalhador
Exemplo (multiplicidade)
O cliente sabe quais são seus endereços, mas o endereço não sabe a 
quais clientes pertence
EndereçoCliente
reside
1 *
navegabilidade
Exemplo (multiplicidade)
Exemplo:
Um Estudante pode ser 
um aluno de uma Disciplina e 
um jogador da Equipe de Futebol
Cada Disciplina deve ser cursada por no mínimo 1 aluno
Um aluno pode cursar de 0 até 8 disciplinas
Tipos de relacionamento - Associação
Tipos de relacionamento – Associação 
Recursiva
Tipos de Relacionamentos -
Agregação
• É uma forma especializada de associação na qual um todo 
é relacionado com suas partes, ou seja, um 
relacionamento “todo-parte”.
• Também é conhecida como relação de conteúdo ou posse 
lógica, pois a classe agregada (parte) é vista como um 
“atributo” da classe agregadora (todo).
• Deve ser lida como “é parte de”.
• É representada como uma linha de associação com um 
diamante vazado junto à classe agregadora.
• Podem existir agregações reflexivas, ou seja, agregações 
de uma classe com ela mesma.
Tipos de Relacionamentos -
Agregação
• É uma associação com a semântica de “contém”
• Serve como uma relação todo-parte fraca
• O todo existe sem as partes 
• As partes existem sem o todo
Tipos de Relacionamentos -
Agregação
• Exemplo:
Pacote UML Elemento 
UML
Tipos de Relacionamentos -
Composição
Composição:
• É um tipo mais forte de relacionamento “todo-parte”.
• A classe ”parte” não tem existência independente da 
classe “todo”.
• É representada como uma linha de associação com um 
diamante preenchido junto à classe “todo”.
• A multiplicidade é representada da mesma maneira que 
nas associações.
• Exemplo:
Tipos de Relacionamentos -
Composição
Composição:
• Os objetos “parte” só podem pertencer a um único objeto 
“todo” e têm o seu tempo de vida coincidente com o dele
Tipos de Relacionamentos -
Composição
Composição:
Tipos de Relacionamentos –
Agregação x Composição
Algumas dicas para se identificar um relacionamento como uma 
agregação ou composição:
• Se você puder dizer no relacionamento de associação que uma classe 
é “parte de”, “contém” ou “pertence à” outra classe, então estamos 
diante de uma agregação ou composição
• Se as partes não podem ser divididas, estamos diante de uma 
composição. Caso contrário, temos uma agregação
• Se o ciclo de vida das partes estão atreladas ao ciclo de vida do todo, 
temos uma composição;
• Se a multiplicidade do todo é 1 ou 0..1, temos uma composição
• Se a multiplicidade do todo puder ser maior do que 1, temos uma 
agregação
Tipos de Relacionamentos –
Agregação x Composição
Dica para 
Generalização/Especialização
• É uma hierarquia de abstrações na qual uma subclasse 
herda a estruturas de dados e comportamentos de uma 
ou mais superclasses.
• A subclasse pode acrescentar novas estruturas de dados e 
comportamentos aos herdados da superclasse 
(especialização).
• A subclasse pode alterar o comportamento originalmente 
herdado da superclasse (polimorfismo).
• Deve ser lida como “é um tipo de”.
Tipos de Relacionamentos -
Generalização/Especialização
• Herança simples é quando uma subclasse herda estruturas de 
dados e comportamentos de uma única superclasse.
• Herança múltipla é quando uma subclasse herda estruturas de 
dados e comportamentos de mais de uma superclasse.
Classe Associativa
• É 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.
• É representada pela notação utilizada para uma classe. A 
diferença é que esta classe é ligada a uma associação. 
•
Classe Associativa
Exemplo:
nome
telefone
endereço
Pessoa
razãoSocial
endereço
Empresa
salário
dataContratação
Emprego
*
empregado
*
empregador
Classe Associativa
Exemplo:
Classe Associativa
Hora de Treinar
Exercícios
Em cada um dos itens a seguir, defina qual o tipo de relacionamento 
é mais adequado (associação, agregação, composição). Desenhe o 
diagrama de classes correspondente, indicando as multiplicidades. 
Especifique, ainda, atributos e possíveisrestrições.
• Um País possui uma Capital.
• Uma Empresa é subsidiária de diversas outras Empresas.
• Uma Pessoa à mesa de jantar está usando uma Faca.
• Um Polígono é composto por um conjunto ordenado de Segmentos.
• Um Estudante acompanha uma Disciplina com um Professor.
• Uma Caixa contém Garrafas.
• Um Livro contém Capítulos.
• Um Arquivo contém Registros.
Exercícios
Em cada um dos itens abaixo, desenhe o diagrama de classes 
correspondente, indicando as multiplicidades. Especifique, ainda, 
possíveis restrições que se apliquem.
• Um Pessoa, como programador, utiliza uma Linguagem de 
Programação.
• Modem, Teclado e Impressora são Dispositivos de Entrada e Saída.
• Um Banco de Dados contém Tabelas de Sistema e Tabelas de Usuário. 
Uma Tabela de Sistema mantém informações sobre uma ou várias 
Tabelas de Usuário. Uma Tabela contém registros.
• Um Item pode ser um Item Atômico ou um Item Composto. Um Item 
Composto possui dois ou mais Itens.
Exercício
A empresa AProf oferece cursos diversos de
aperfeiçoamento profissional. O dono precisa controlar:
os cursos oferecidos, a data de inicio e término, o
horário de início e término, o nome e o telefone celular
do professor e o valor da sua hora/aula. Para cada
curso, deve-se controlar: a carga horária, o conteúdo
programático e o valor do curso. O dono também precisa
ter o ter o controle da matricula e do cadastro de alunos.
Para matrícula cadastram-se: data da matrícula, valor
pago, aluno e a turma. O cadastro de aluno
compreende: nome, número da carteira de identidade,
CPF, data de nascimento, endereço completo e
telefones de contato.
A seguir é apresentado o cenário e o Diagrama de Casos de Uso para
enunciado acima. Faça: Modele o Diagrama de Classes
Exercício
Considere o seguinte cenário:
Um aluno poder estar matriculado em um ou mais cursos. Cada 
curso tem na sua grade uma série de disciplinas. Disciplinas são 
oferecidas por departamentos, que estão subordinados às diretorias 
acadêmicas, e são lecionadas por professores que podem pertencer 
ao departamento que as oferece ou não. Cada curso está associado 
a um único departamento. É importante poder recuperar o histórico 
dos alunos com todas as disciplinas cursadas e respectivas notas, 
mesmo para os alunos que já saíram da universidade (ex-alunos). 
“Alunos” são somente aqueles matriculados.
Modele o Diagrama de Classes
Exercício
Considere o seguinte cenário:
A hierarquia de uma empresa é composta de órgãos. Um órgão tem 
um nome e uma sigla. Um funcionário, que pode ter dependentes, 
tem que estar alocado em um órgão. Os funcionários tem um nome, 
cpf e identidade. Além disso, no sistema procuramos identificar o 
tempo de empresa com base na data de entrada. Precisamos 
informar o salário do funcionário com base no tempo de empresa. O 
tempo de empresa também é usado para verificar se o funcionário 
tem direito a férias. Na empresa, um funcionário só pode ter 2 
dependentes.
Modele o Diagrama de Classes
Obrigado!
Perguntas?
E-mail: jacilane.rabelo@uninorte.com.br

Outros materiais