Buscar

Diagrama de Classes (Análise de casos de uso)_Cesar Augusto Tacla

Prévia do material em texto

Diagrama de Classes
(Análise de casos de uso)
Prof. Cesar Augusto Tacla
Diagrama de classes
�Estrutura do sistema (classes)
�Representação estática da colaboração 
(relações)
�Relações
�associação (mais comum)
�agregação (um tipo de associação),
�generalização/especialização
�dependência
Associação
 
Professor 
 
 
Disciplina 
 
 
leciona 
Objetos de uma classe se associam a objetos de outra
Nome da 
associação
Multiplicidade das relações
��������	�
��
�
�
�
�����������
�����
����������
��
�
�
���������
����
��
���	��
�
� ��
��
����
����
����
��
����	����
�
 ��!����!�
���
�
��
�
��������
Multiplicidade: exemplo
 
Professor 
 
 
Disciplina 
 
 
leciona 1..* 1 
João
José
Maria
Matemática
Física
quim
História
Multiplicidade: exercício
João
José
Maria
FIAT AXY8704
FUSCA BHY9910
CORCEL ATT1020
Qual a representação em UML para o caso seguinte?
Pessoa Carro
Multiplicidade: exemplo
Qual a representação em UML para o caso seguinte?
Faça um exemplo com instâncias que ilustre a representação.
Uma pessoa participa de no máximo 3 
projetos, mas pode não participar.
Um projeto pode ter vários participantes 
e somente pode começa a existir quando 
o primeiro participante é designado.
Navegabilidade: unidirecional
 Professor 
 
 
Disciplina 
 
 
leciona 
Não 
navegável
navegável
Navegabilidade: bidirecional
navegável navegável
 Professor 
 
 
Disciplina 
 
 
leciona 
Direção 
de leitura
Navegabilidade: não especificada
 Professor 
 
 
Disciplina 
 
 
leciona 
Não
especificada
Não
especificada
Papéis
 
Empresa 
 
 
Pessoa 
 
 
Trabalha ou emprega ? 
Qual a interpretação desejada?
pessoa trabalha para Empresa 
ou
empresa trabalha (presta um 
serviço) para Pessoa;
Trabalha Emprega (contrata)
empresa emprega Pessoa ou
pessoa emprega (contrata) Empresa
Papéis
Empresa 
 
 
Pessoa 
 
 
empregador empregado 
Papel de 
empresa Papel de 
pessoa
Uso de papéis pode suprimir ambigüidades
Levantamento das associações
�Examinar
�Regras do negócio, 
�Modelo do domínio
�Requisitos funcionais
�Casos de uso
�Diagramas de interação
Associações reflexiva
Objetos de uma classe se relacionam com 
objetos da mesma classe
Associação reflexiva: exemplo 1
Pessoas
 Pessoa 
 
 
0..* 
filho 
pai 0..1 
Mário
José
Maria
Carlos
Filho(a) pai
Mário é pai de Maria
Quem é o pai de Mário?
Associação reflexiva: exemplo 2
João
Maria
José
Mário
Gerente
subordinado João é gerente de Maria e José
 Empregado 
 
 0..* 
gerente
subordinado 
1 
José é gerente de Mário
Quem é gerente de João?
Classes associativas
Quando uma relação associativa possui atributos próprios 
pode ser transformada em classe.
Classes associativas: características
�Frequentes em relações de multiplicidade 
*:*
�Não é nomeada: somente a classe 
associativa
�Classes associativas podem estar 
relacionadas a outras classes.
Classes associativas: exercício
� Uma companhia aérea oferece vôos
�Número do vôo
�Data e horário de partida
�Duração
� Passageiros tem programa de fidelidade
�Número do cartão de fidelidade
�Nome
�Sobrenome
� Passageiros recebem milhas por vôo função da 
duração
Levantamento de associações
�Exemplo: 
�regras do negócio de uma biblioteca
�“um aluno pode emprestar no máximo quatro 
obras”
 
Aluno 
 
 
Livro 
 
Empresta 0..4 0..1 
Levantamento das associações
sd análise casos de uso
:meteorologista
:IUConv ersao :CtrlConv ersao :Historico :Conv ersaoCF
solicitar valor Celsius
valor Celsius?
c
c
converter valor c
guardar conversao
valor Fahrenheitmostrar valor convertido
valor Fahrenheit
Classes de análise e associações
class Classes de análise (associações)
ConversaoCFCtrlConversao
Historico
IUConversao
:IUHistorico CtrlHistorico
0..10
pertence
1
1 111
1 11 1
AGREGAÇÃO
� Composição/pertinência
�associação
� Parte
� Todo
� Propagação
class Classe
Janela
Botão ComboBox ScrollBar
3
1
1
1
0..1
1
 
Exercício: desenhe 
uma instância 
possível da classe 
janela
Agregação: adornos
class Classe
Time Jogador
**
 
Qual a interpretação?
Tipos de agregação
�Composição
�Associação
class Classe
Janela
Botão ComboBox ScrollBar
3
1
1
1
0..1
1
 
class Classe
Time Jogador
**
 
Agregação por composição
�Relação forte
�Destruição do todo se propaga para as partes
�Tempo de vida do todo = das partes
Exemplo: agregação por composição
class Aluno {
public String nome;
private Endereco endereço = new 
Endereco(“R. JP”,518, “APTO 14”, 
“Curitiba”);
}
Agregação por associação
�Relação mais fraca que anterior
�Tempos de vida diferentes
Agregação: diferença
Levantamento de agregações
� Decomposição
� dividir classe complexa
� Composição
� Coleção de objetos reunidos
� barra de rolagem + menu + text area = janela
� Partes comuns
� classes com subconjunto de atributos 
semelhantes
Agregação: partes comuns
Classes de análise e relações
 class Classes de análise (associações)
ConversaoCFCtrlConversao
Historico
IUConversao
:IUHistorico CtrlHistorico
0..10
1
1 111
1 11 1
GENERALIZAÇÃO
� Classes 
compartilham 
atributos e 
comportamentos
� É um tipo de
� Herda atributos e 
métodos
Relação de 
generalização
GENERALIZAÇÃO
Sobreposição do método calcularIPVA
Taxonomia: hierarquia de classes
Atributos e operações comuns
Atributos e operações específicas
Qualidade de uma hierarquia
�Estável: critérios de classificação não 
mudam ao longo do tempo.
�Extensível: é fácil incluir novas classes 
derivadas na hierarquia
�Dica: respeitar o princípio da substituição
Princípio da substituição
Qualquer instância de uma classe derivada 
pode ser tratada como se fosse uma instância 
de uma classe base sem alterar a semântica
de um programa escrito para a classe base.
Exemplo
Círculo e polígonos podem 
ser tratados como
FormaGeométrica
Exemplo: taxonomia mal feita
Livro
LivroEmprestado LivroDisponível
�Não construir hierarquias em função de estados das classes
Herança múltipla
ObjetoVoador
Av ião Helicóptero Pássaro
Animal

Continue navegando