Buscar

02-Curso de UML - Classes

Prévia do material em texto

Diagrama 
Objetivo 
• Representar Classes em um Diagrama 
• Representar Atributos e Operações 
• Representar Relacionamentos 
 - Associação 
 - Agregação 
 - Herança 
 
Diagramas de Classes 
• Descrevem a ESTRUTURA do sistema 
• São formados por : 
 - Classes 
 - Atributos 
 - Operações 
 - Relações 
 
O que são Classes ? 
• São Definições Abstratas dos Objetos ; 
• Objetos é uma instância de uma Classe ; 
• Classes são “Fábricas de Objetos” 
• As Classes são implementadas em software 
• Os Objetos são criados na memória do 
computador em tempo de execução 
• Ex.: 
- A Classe dos AUTOMÓVEIS, o Objeto : FUSCA 
 
- A Classe dos FUSCAS, o objeto : 
 
São Paulo 
CXS 2345 
 
Definição de Objeto 
• Todo Objeto possui : 
- uma IDENTIDADE ; 
- um ESTADO ; 
- um COMPORTAMENTO 
 
• Um Objeto existe, guarda informação e possui um 
comportamento. 
 
Onde estão as Classes ? 
• No sujeitos da descrição do problema : 
 - Ex.: A fita é alugada 
• Nas situações, tipos : 
 - Ex.: O aluguel da fita 
• Nos papéis : 
 - Ex.: O funcionário é um gerente 
 
Exemplos de representações na UML 
Pessoa 
Definição de Atributo 
• Um Atributo guarda uma informação 
• Atributo é um dado associado a uma classe 
• Atributos são qualidades das classes 
• Os atributos possuem tipo e valor 
• O conjunto de valores dos atributos definem o estado da 
classe 
• Os atributos são alterados pelas operações 
(Preferencialmente internas às classes) 
 
Notação na UML 
Visibilidade Nome : Tipo = valor_inicial 
 
Ou : 
 
Nome 
Nome : Tipo 
Visibilidade Nome : Tipo 
 
Visibilidades 
+ público 
 pode ser visto fora do limite da classe 
 
- Privado 
 só pode ser visto dentro do limite da classe 
 
# Protegido 
 privado, mas é publico entre classes amigas (pacote) 
 
Estilo dos Atributos 
• Não usar nomes sem significado 
• Podem ser usados prefixos e sufixos para facilitar 
o entendimento 
• Evitar : nome1, nome2, cor1, cor2 ... 
• Não economizar nas teclas : 
 Ex.: NomeDoFuncionarioPublicoAposentado 
 
Definição de Operação 
• Representa um comportamento da Classe 
• Uma operação é um comportamento assumido 
pela classe para o sistema 
• Atua sobre os atributos da classe, ou 
• Envia uma mensagem para outra classe 
 
Notação na UML 
 
 
 
 
Visibilidade Nome (Lista-de-parâmetros) : retorno {propriedades} 
 
Visibilidade 
+ pública 
 pode ser vista fora do limite da classe 
 
– privada 
 só pode ser vista dentro do limite da classe 
 
# protegida 
 privada, mas é publica entre classes amigas (pacote) 
 
Lista de Parâmetros e Retorno 
• Lista-de-parâmetros 
 
 Contém parâmetros separados por virgulas cuja sintaxe é semelhante 
a dos atributos : 
 visibilidade nome:tipo=valor_inicial 
 
• Retorno 
 
 Indica o Tipo (String, Integer, ...) do valor de retorno da Operação 
 
 
Propriedades 
Valores de propriedade que se aplicam ao elemento, podendo ser: 
- Classificação – declara a categoria da operação : 
 . Construtoras, Seletoras, Modificadoras, De iteração, Destrutivas 
- Pré-condição – declara uma condição que deve ser satisfeita para 
uma transformação correta. 
- Pós-condição – declara uma condição que assegura que a 
transformação aconteceu corretamente. 
- Concorrência – declara se a operação é uma operação seqüencial ou 
simultânea. 
- Transformação – declara a fórmula ou expressão da operação. 
- Estereótipo – declara o tipo descritivo da operação. 
 
 
 
Identificando as Operações 
• As operações são ações na descrição do sistema, 
• Procura-se as responsabilidades 
• Procurar as funções que o sistema deve realizar e 
quem a realiza 
• Operações padrões de criação e destruição da 
classe vão aparecer na fase de projeto 
 
Exemplos 
 - Alugar fita 
 - Retornar fita 
 - Solicitar confirmação 
Evitar usar nomes ruins (muito genéricos) 
 - Processar ... 
 - Executar ... 
 - Fazer ... 
 
Relacionamentos 
• Os sistemas são formados por conjuntos de classes 
trabalhando juntas 
• O processamento é realizado em conjunto 
• As afinidades entre as classes são expressas nos 
relacionamentos 
- Afinidades semânticas (Associação) 
- Posse entre classes (Agregação /Composição) 
- Famílias de classes (Generalização/especificação) 
 
Associação 
• O significado de uma classe está ligado 
(associado) ao significado da outra classe; 
• Mostra uma relação semântica entre as classes; 
• As classes tem uma existência própria, são 
independentes; 
Ex.: ”Um cliente pode alugar várias fitas de vídeo.” 
 
Nome e Papel da associação 
• O nome de uma associação mostra a afinidade, 
• O papel da classe é o nome que ela assume na relação 
• Pode-se construir uma frase com : 
 
Classe1, NomePapel1, NomePapel2, Classe2 
 
 
 
 
Empresa, a fornecedora, vende produto 
 
Multiplicidade 
• Indica o número de cardinalidade (ocorrências) 
que a classe pode assumir 
• Notação : 
 limite_inferior .. Limite_superior 
 asterisco (*) indica ilimitado 
• Exemplos: 
 0..1 1 * 0..* 1,2,3 
 
Multiplicidade - resumo 
0 Zero 
0..1 Zero ou Um 
0..* Zero ou Muitos 
1 Um 
1..* Um ou Muitos 
1..2 Um ou Dois 
3 Exatamente 3 
* Muitos 
Exemplo de Multiplicidade 
 
 
Restrições 
• Expressa uma condição 
• É colocada entre chaves ligada aos elementos 
 
 
 
 
 
 
Fornecedor 
 Vende 
Comprador 
 Compra 
* 0..* 
1 * 
{ou} 
Navegabilidade 
• Uma associação é bidirecional; 
• Pode-se adotar a navegabilidade do NOME adotado 
 
 
 
 
 
• A empresa tem a responsabilidade de informar quais 
produtos vende, mas um produto não possui a habilidade 
de responder a qual empresa pertence 
 
 
 
Vende 
Qualificador 
• O Qualificador reduz a Multiplicidade 
 
 
 
 
 
• Para aquele CODIGO_PRODUTO a empresa só 
vende um do produto 
 
 
 
CODIGO_PRODUTO 
Vende 
 1 
Agregação 
• É uma forma de relacionamento que indica uma ligação 
forte de posse entre as classes; 
 Agregação Regular 
 
• Uma classe é composta pelas outras classes que são suas 
partes; 
 Agregação de Composição 
 
 
• Notação : Todo’:’Parte 
 
 
TODO PARTE 
 
TODO PARTE 
 
Agregação Regular 
• É o relacionamento “parte de”. 
 
Carro Rodas 
 4 
Tela 
Botão OK 
 
 
Campos 
 
 
Agregação de Composição 
• O objeto parte pode pertencer a somente um todo; 
 
 
 
• Qualquer REMOÇÃO do todo, tem efeito cascata 
nas partes; 
 
Carro Motor 
 
possui 
Quando usar uma agregação ? 
• Quando se encontra uma composição ou 
decomposição na descrição do sistema. 
• Quando há frases do tipo : 
 - A é formado de B 
 - B é parte de A 
 - A possui B 
• Há uma dependência de existência. 
• B não existe sem A. 
 
Diferença entre Agregação e Associação 
Neste contexto : 
 
O Motor só existe em conjunto com o carro, 
O carro é composto pelo Motor. 
O Motorista pode existir sem o Carro. 
 
Carro 
 
 
 
Motor 
 
 
 
Motorista 
 
 
 
 
 
 Dirige 
Possui 
Relacionamento de Herança 
• Mostra uma relação entre um elemento mais geral 
para um mais específico 
• O elemento mais específico agrega mais 
informações do que o elemento mais geral 
• A relação aplica-se a classes, pacotes, Casosde 
Usos e outros elementos 
 
Notação da Herança 
• Notação 
 subtipo : supertipo 
 
Formas 
Polígono Elipse 
 
 
... 
( ... ) Indica que 
existem outras 
 subclasses 
Herança 
• A classe “filha” herda os 
atributos, operações e 
relacionamentos da classe 
“mãe” 
 
• Não existe nome nem 
multiplicidade na relação 
 
Mãe 
 
 
Filha 
 
 
 
 
 
 
Quando usar a Herança ? 
• Pergunta : A classe filha é do tipo da mãe ? 
• Quando existe uma hierarquia entre as classes 
• Quando existe uma classificação (tipos) 
• Frases : A é do tipo B, B é um A. 
• Para reaproveitar definições e para simplificar o 
projeto 
• Para criar variações de uma classe 
 
Como ficam as novas Operações? 
• A classe Mãe possui as 
operações OP1 e OP2 
• A classe filha possui as 
operações OP1, OP2* e OP3 
• A operação OP2 (mesmo 
nome) é sobrescrita (override) 
na classe filha 
 
Mãe 
 
OP1 
OP2 
Filha 
 
OP3 
OP2* 
 
 
 
 
Exemplo de Herança 
CONTAS 
Poupança Corrente 
 
Generalização/Polimorfismo 
• A função Print() nas classes 
filhas possui a mesma 
chamada, mas responde 
diferente; 
• Assim, quem chama esta 
operação não precisa se 
importar em como ela vai 
processar; 
• A interface das classes devem 
ser estáveis (iguais) 
 
Herança de Relacionamento 
• O gerente é um 
funcionário 
 
• Todo funcionário tem 
direito a convenio, o 
gerente também 
 
• Só os gerentes tem direito 
a celular 
 
Exemplo de Generalização 
 
 
 
 
 
Veículo 
À Vela Motorizado Terrestre Aquático 
Trator Veleiro 
Diferença entre Herança e Agregação 
 
 
Documento 
 
 
Um documento contém 
uma imagem. Se o 
documento deixar de 
existir a imagem 
também deixa 
 
 
A imagem pode ser uma 
Figura ou um desenho. 
Para a agregação elas 
se comportam como 
uma classe única 
Conclusão 
• A modelagem deve refletir o sistema real 
• Deve-se selecionar nomes e termos representativo 
• Busca-se uma estrutura estável (duradoura) para 
construir a solução 
• A UML apresenta uma notação rica que pode 
variar no grau de detalhes

Continue navegando