Buscar

Aula8 - 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 45 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 45 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 45 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

Análise e Projeto de Sistemas I
Material disponível no AVA da disciplina
Aula 8
MSc. Karen Figueiredo – karen@ic.ufmt.br
Diagrama 
de Classes
Introdução
2
 É o “principal” diagrama da UML
 Trata da estrutura do sistema
Introdução
3
 O que é uma classe?
 Conjunto de entidades que apresentam a mesma 
estrutura e comportamento
 Exemplos:
 Classe Social
 Classe Biológica
 Classe de Aprendizado
Diagrama de Classes
4
 Um diagrama de classes contém:
 Entidades
 Relacionamentos
Entidades: Classe
5
 Representa o conceito de um conjunto de objetos que 
possuem a mesma estrutura
 Representação:
 É dada por 3 compartimentos: nome da classe, lista de 
atributos e lista de operações
Nome da Classe
Lista de Atributos
Lista de Operações
Entidades: Classe - Atributo
6
 Atributos são as propriedades de uma determinada 
classe
 Ex.: Classe Pessoa – atributos: idade, nome, sexo, 
etc...
 Todo atributo possui um tipo
 O tipo pode ser primitivo (ex.: int, float, boolean, etc)
 Ou composto (String, Pessoa, etc)
Entidades: Classe - Atributo
7
 Representação:
visibilidade nomeDoAtributo : tipoDoAtributo =
valorInicial
 Visibilidade: 
Quem pode acessar o valor do atributo.
 - private - privado
 # protected - protegido
 ~ package - pacote
 + public - público
Entidades: Classe - Atributo
8
 Visibilidade: 
Sistema
Classe A Classe B
Pacote 1
Classe C Classe D
Pacote 2 <<herança>>
Privado:
O atributo privado só é 
acessível pelas operações 
do objeto. Normalmente este é o
estado inicial dos atributos, depois
se necessário, pode ser modificado.
Entidades: Classe - Atributo
9
 Visibilidade: 
Sistema
Classe A Classe B
Pacote 1
Classe C Classe D
Pacote 2 <<herança>>
Protegido:
O atributo só pode ser acessado por
uma classe que tenha uma relação 
de generalização/herança, 
independente do pacote.
Entidades: Classe - Atributo
10
 Visibilidade: 
Sistema
Classe A Classe B
Pacote 1
Classe C Classe D
Pacote 2 <<herança>>
Pacote:
O atributo pode ser acessado por
qualquer outra classe no mesmo 
pacote.
Entidades: Classe - Atributo
11
 Visibilidade: 
Sistema
Classe A Classe B
Pacote 1
Classe C Classe D
Pacote 2 <<herança>>
Público:
O atributo pode ser acessado por
qualquer outra classe do sistema.
Entidades: Classe - Operações
12
 São ações que os objetos daquela classe poderão 
executar
 Ex.: Classe Pessoa – Operações: andar, falar, comer, etc.
 Equivalem aos métodos
 Representação:
visibilidade nomeDaOperação(listaDeParâmetros) 
: tipoDeRetorno
Entidades: Classe - Operações
13
 Visibilidade:
Quem pode chamar a operação.
 - private - privado
 # protected - protegido
 ~ package - pacote
 + public – público
O significado é mesmo.
Entidades: Classe - Operações
14
 Lista de Parâmetros:
Atributos que serão consumidos e/ou alterados pela 
operação.
Ex.: comer(alimento), andar(numpassos)
Entidades: Classe - Operações
15
 Tipo de Retorno:
A saída da operação. O que a operação gera.
Pode ser tipo primitivo ou composto.
Quando não há tipo de retorno é utilizado o termo 
“void”.
Ex.: falar(): String
Entidades: Classe - Operações
16
 Operações básicas:
 Get
Faz a leitura de um atributo
 Set
Atualiza o valor de um atributo
Geralmente as operações básicas são omitidas do 
diagrama de classes para que fique menos poluído.
Entidades: Classe
17
 Tipos de Classe:
 Abstrata
Uma classe abstrata não é instanciada no sistema. 
Geralmente está envolvida em um relacionamento de 
herança, onde desempenha o papel de classe “mãe”
 Representação:
Nome em itálico.
Entidades: Classe
18
 Tipos de Classe:
 Interface
É um “tipo de classe” onde todos as operações não tem 
corpo. 
Ela não pode ser instanciada e deve ter pelo menos uma 
classe que descreva todos os corpos das suas operações.
 Representação:
Estereótipo ou Círculo
Entidades: Pacote
19
 Utilizado para agrupar um conjunto de classes
 Propósitos: 
 Organização
 Políticas de acesso
 Representação:
Relacionamentos
20
 Tipos de Relacionamento entre Classes:
 Associação
 Generalização
 Composição
 Agregação
 Realização
 Dependência
 Classe de Associação
 Todo relacionamento pode ter um nome que fica 
localizado no meio da reta que traça a relação
Relacionamentos: Associação
21
 Representa a relação de uma classe com outra
 É representado por uma reta
 Somente classes que estão relacionadas podem se 
comunicar
 O papel que a classe desempenha na relação deve ser 
identificado na extremidade da reta
 É possível o auto-relacionamento
Relacionamentos: Associação
22
 A multiplicidade da relação também deve ser definida
 0..1
 1
 0..*
 1..*
 *
 Outra: 2, 5, etc.
Relacionamentos: Associação
23
 Navegabilidade:
 Indica qual classe pode acessar qual
 É representada por uma seta indicando a o sentido da 
relação
 Quando a navegabilidade não é representada entende-
se que ambas classes podem se ler
Relacionamentos: Generalização
24
 Indica um relacionamento do tipo “é um”
 Representa a herança
 Uma superclasse é relacionada a uma subclasse que irá 
estender a superclasse
 Uma superclasse nem sempre é abstrata
 Uma subclasse não pode ter mais de uma superclasse
 Uma superclasse pode ter várias subclasses
 É representado por uma seta larga que aponta para a 
superclasse
Relacionamentos: Composição
25
 Indica um relacionamento do tipo “é composto de”
 Funciona como uma relação todo-parte onde as partes não 
existem sem o todo
 A remoção do todo implica na remoção das partes
 É representado por uma reta com losango preenchido na parte 
do todo
Relacionamentos: Agregação
26
 Indica um relacionamento do tipo “contém” “agrega”
 Funciona como uma relação todo-parte onde o todo existe sem 
as partes e as partes existem sem o todo
 A remoção do todo implica não implica na remoção das partes
 É representado por uma reta com losango sem preenchimento na 
parte do todo
Relacionamentos: Realização
27
 É similar a generalização, mas trabalha com interfaces
 Leitura: “implementa”
 Se Carro “implementa” Veículo
– Todas as operações definidas em Veículos devem ser 
implementadas em Carro
– Carro pode utilizar os atributos definidos em Veículo (que 
sempre são constantes)
Relacionamentos: Dependência
28
 Deixa explícito que mudanças em uma classe podem gerar 
consequências em outra classe
 Exemplos:
– Uma classe chama métodos de outra
– Uma classe tem operações que retornam outra classe (método 
2)
– Uma classe tem operações que esperam como parâmetro outra 
classe (método 1)
 Outros relacionamentos (ex.: associação com navegação) 
implicitamente determinam dependência
Relacionamentos: Classe de Associação
29
 É um recurso a nível de modelo
 Permitem a adição de informações em uma associação
 Devem ser transformadas em classes comuns 
posteriormente para viabilizar implementação
Implementações
30
Implementações
31
Implementações
32
Implementações
33
Implementações
34
Dicas
35
 Inicie com um diagrama simples
 O que normalmente tem em todo diagrama:
– Classes
– Atributos
– Operações
– Associações
 Use os demais recursos da linguagem somente quando 
for realmente necessário
Dicas: PossíveisCandidatos
36
Classes:
– Entidades externas que produzem ou consomem 
informações (ex.: sistema de validação do cartão de crédito)
– Coisas que são parte do problema e que são informações 
compostas (ex.: Produto)
– Eventos que ocorrem durante a operação do sistema (ex.: 
Pedido)
– Papeis que interagem com o sistema (ex.: Cliente)
– Unidades organizacionais relevantes (ex.: Rede de lojas)
– Lugares que fornecem o contexto do problema ou do 
sistema (ex.: Loja)
– Estruturas definidas no problema (ex.: Estoque)
Dicas: Possíveis Candidatos
37
Atributos:
– Informação primitiva que precisa ser memorizada (ex.: 
Preço)
Associações:
– A classe A precisa se relacionar com a classe B para 
atender a operações específicas (ex.: Cliente – Pedido)
Operações:
– Funcionalidades que devem ser providas por uma classe 
para viabilizar o uso do sistema (ex.: calculaTotal em 
Pedido)
Um diagrama de classes pode oferecer três perspectivas, 
cada uma para um tipo de observador diferente. São elas:
• Conceitual
• Especificação
• Implementação
Perspectivas
• Representa os conceitos do domínio em estudo.
• Perspectiva destinada ao cliente
• Apenas classes são utilizadas. Neste tipo de perspectiva, 
uma classe é interpretada como um conceito
• Detalhamento no máximo a nível de atributos
Perspectivas: Conceitual
• Tem foco nas principais interfaces da arquitetura, nos
principais métodos, e não como eles irão ser
implementados
• Perspectiva destinada as pessoas que não precisam saber 
detalhes de desenvolvimento, tais como gerentes de 
projeto
• Tanto classes como interfaces são utilizados neste tipo de 
perspectiva. O foco consiste em mostrar as principais
interfaces e classes juntamente com seus métodos.
• Não é necessário mostrar todos os métodos e detalhes
ainda.
Perspectivas: Especificação
• Aborda todos os detalhes possíveis a nível de 
implementação
• Perspectiva destinada ao time de desenvolvimento.
Perspectivas: Implementação
1) Baseado nas especificações da Biblioteca, Diagrama de 
Casos de Uso e DER, construir o Diagrama de Classes da 
Biblioteca.
2) Baseado nas especificações do Sistema de Submissão de 
artigos, construir um Diagrama de Classes.
Exercício

Outros materiais