Escolar Documentos
Profissional Documentos
Cultura Documentos
Diagrama de Classes
Diagrama de Classes Um
Exemplo
Store
1
Uses
Perspectivas de um Diagrama de
Classes
address : Address
name : Text
ProductSpecification
ProductCatalog
addSale()
description : Text
Contains
1
Looks-in
price : Quantity
1..
upc : UPC
specification()
Houses
1
1
Describes
Sale
POST
date : Date
SalesLineItem
isComplete : Boolean
time : Time
Captures
endSale()
enterItem()
makePayment()
Contains
1
quantity : Integer
1.. *
becomeComplete()
subtotal()
makeLineItem()
makePayment()
total()
Logs-completed 4
Payment
Paid-by
amount : Quantity
1
Perspectivas de um Diagrama de
Classes
O modelo conceitual (anlise) representa as
classes no domnio do negcio em questo. No
leva em considerao restries inerentes
tecnologia a ser utilizada na soluo de um
problema.
O modelo de classes de especificao (projeto)
obtido atravs da adio de detalhes ao modelo
anterior conforme a soluo de software escolhida.
O modelo de classes de implementao
corresponde implementao das classes em
alguma linguagem de programao.
Definio de Objetos
Definio de Objetos
Definio de Classes
Definio de Classes
Identificao
da classe
Atributos
Mtodos
Atributo
Caracterstica, qualidade de um objeto ou classe.
Seus valores servem para diferenciar objetos
(Instncias)
Overriding (ou Sobreposio)
Mecanismo para redefinir ou tornar um atributo
no aplicvel
<<entidade>>
Cliente
<<entidade>>
Cliente
De Pacote Vendas
De Pacote Vendas
Atributos
Mtodos
Ex: notas[10]
matrizDeValores[5,10]
Mtodos ou Servios
Processamento realizado por um objeto que
indica o seu comportamento, em funo do
recebimento de uma mensagem
Mensagens
Ativao de um mtodo. Um objeto se utiliza
de um servio ou se comunica com outro
objeto enviando uma mensagem
Mtodos ou Servios
Ligao Dinmica (late binding)
Mecanismo pelo qual se decide o destino de
uma mensagem em tempo de execuo
Ex: int (*f)();
i =f();
a funo s definida
durante a execuo
Mtodos ou Servios
Mtodos ou Servios
Polimorfismo
Possibilidade de uma funo poder manipular
valores com tipos (formas) diversas
Ex: function comp(L:lista):integer
Mtodos ou Servios
Mtodos ou Servios
Construtor/Destrutor
Funo para criao/remoo de instncias
de objetos/classes
Viso conceitual
ImprimirData(data:TipoData)
Viso de implementao
ArmazenarDados(nome:char[30],salario:float=0.0)
Viso Conceitual
CalcularValor(): TipoDinheiro
Viso de implementao
ArmazenarDados(nome:char[30]): bool
<<entidade>>
Aluno
DePacoteCadastro
-nome[30]:char
+RA: int {valorconstante}
calculaMdia():TipoNota
+calculaMdia():Double
Construo do Diagrama de
Classes
Na fase de anlise constri-se
primeiramente um diagrama de classes
sem se preocupar em definir os mtodos,
ao qual chamaremos de Modelo
Conceitual
Na fase de projeto os mtodos so
adicionados e o Modelo Conceitual
refinado gerando o Diagrama de Classes
Modelo Conceitual
Diagrama de Classes
Perspectiva Conceitual
Modelo Conceitual
Identificando Conceitos
(Entidades) Regras teis
Identificando Conceitos
uma entidade (idia, coisa ou objeto) do mundo
real.
Exemplos
Categoria
Terminal de ponto-de-venda
Coisas em um container
Avio
Especificao, projeto, ou
descrio de coisas
Passageiro
Especificao de produto
Sistemas externos
Servio de crdito
Fome
Descrio de vo
Lugares
Loja
Nomes abstratos
Transaes
Aeroporto
Venda, Pagamento
Organizaes
Itens de transao
Itens de venda
Aracnofobia
Reserva
Operador
Regras e polticas
Piloto
Container de coisas
Departamento de vendas
Companhia area
Eventos
Parcelas de pagamento
Papis de pessoas
Exemplos
Item
Poltica de devoluo
Poltica de cancelamento
Loja
Avio
Ao do Ator
Categoria
Exemplos
Catlogos
Catlogo de produtos
Catlogo de peas
Instrumentos e servios
financeiros
Aes
Manuais, livros
Manual do empregado
Resposta do Sistema
Manual de reparos
Item
Store
Sale
Entidades de Relatrio
Sales
LineItem
Cashier
Customer
Payment
Product
Catalog
Product
Specification
Manager
Entidades de Especificao ou
Descrio
Vo
Aeroporto
ou... ?
destino
nome
Ex.:
pior
Entidades de Especificao ou
Descrio Outro exemplo
data
nmero
hora
Aeroporto
Voa-para
1
pior
nome
Descrio-Vo
Descrito-por
data
hora
melhor
*
Descreve-vo-para
1
Aeroporto
nome
Identificando Atributos
Cashier
not a "simple" attribute
Worse
name
currentPOST
Better
name
Uses
Nmero serial
POST
Cashier
Item
Descreve
1
melhor
nmero
descrio
preo
UPC
Vo
Especificao-Produto
Identificando Atributos
Vo
descrio
preo
nmero serial
UPC
number
Adicionando Atributos ao
Sistema POST
Conceito
Atributo Derivado
Atributos e justificativa
Pagamento
Especificao-Produto
Item de Venda
Loja
0..1
Records-sale-of
Item
1..*
/quantity
Identificando Relacionamentos
1. Associaes
Tipos:
Associaes
Uma associao representa relacionamentos
(ligaes) que so formados entre objetos
durante a execuo do sistema.
embora as associaes sejam representadas
entre classes do diagrama, tais associaes
representam ligaes possveis entre objetos
das classes envolvidas
Associaes
Caixa
registra
Venda
Associaes
registra
Caixa
Venda
registrada por
Associaes Cardinalidade
(Multiplicidade)
Papel
Direo
de leitura
Papel
contratante
Contrata
contratado
Organizao
Indivduo
*
registra
Caixa
Associaes - Multiplicidade
*
1..*
1..40
3, 5, 8
zero or more;
"many"
one or more
one to forty
exactly five
exactly three,
five or eight
0..*
Venda
Multiplicidades
Cada associao em um diagrama de classes
possui duas multiplicidades, uma em cada
extremo da linha de associao.
10
Exemplo (multiplicidade)
Exemplo (multiplicidade)
A caixa pode registrar vrias vendas
Uma venda registrada em somente uma
caixa
Pode haver uma caixa que no registra
nenhuma venda
Caixa
0..*
Exemplo (conectividade)
Departamento
0..1
Empregado
0..*
Um para um
Um para muitos
0..*
1..*
Corrida
Conectividade
Um para um
Um para muitos
Muitos
muitos
Em um
extremo
0..1
1
0..1
1
para *
1..*
0..*
No outro
extremo
0..1
1
*
1..*
0..*
*
1..*
0..*
Participao
Departamento
Empregado
0..*
Conectividade X Multiplicidade
2..6
Venda
Conectividade
Empregado
participa
Velocista
registra
1
11
Associaes - Navegabilidade
Associaes - Navegabilidade
fornece
Empresa
0..*
0..*
Mercadoria
Exemplo (associao
reflexiva)
Associaes reflexivas
Associa objetos da mesma classe.
Cada objeto tem um papel distinto na associao.
supervisor
Superviso
1
Empregado *
supervisionado
Associao Exclusiva
Contrato
0..*
Associao Ordenada
em OCL: xor
{OU}
1..*
Empresa
1..*
Pessoa
Janela Top
{ordenada}
Janela Bottom
12
Associaes n-rias
So utilizadas para representar a associao
existente entre objetos de n classes.
Uma associao ternria um caso mais
comum (menos raro) de associao n-ria
(n = 3).
Na notao da UML, as linhas de
associao se interceptam em um losango.
empregado
empregador
Empresa
razoSocial
endereo
Uso
Projeto
nome
verba
*
Computador
modelo
2. Agregao/ Composio
Associao Qualificada
chave para
recupera conta
Cliente
nr.
conta
possui
0..*
ContaCorrente
conseqentemente, multiplicidades,
participaes, papis, etc. podem ser usados
igualmente
onde se puder utilizar uma
agregao/composio, uma associao tambm
poder ser utilizada.
13
Agregao/Composio
Caractersticas particulares:
So assimtricas: se um objeto A parte de um
objeto B, B no pode ser parte de A.
Propagam comportamento, no sentido de que
um comportamento que se aplica a um todo
automaticamente se aplica as suas partes.
As partes so criadas e destrudas pelo todo, na
classe do objeto todo, existem operaes para
remover e adicionar as partes
Como identificar
Sejam duas classes associadas, X e Y. Se
uma das perguntas a seguir for respondida
com um sim, provavelmente h uma
agregao onde X todo e Y parte.
X tem um ou mais Y?
Y parte de X?
Agregao, caractersticas
A destruio de um objeto todo no implica
necessariamente a destruio de suas partes
Um objeto pode pertencer a mais de um
composto, ou estar contido nele vrias vezes
- conhecida como agregao de
compartilhamento (ou compartilhada)
Composio, caractersticas
A destruio de um objeto todo implica
necessariamente a destruio de suas partes
Uma classe pertence a um nico composto (vive
nele).
- conhecida como agregao no compartilhada
composto de
Time
composto de
Jogador
captulo
seo
3. Generalizao/Especializao
Superclasse
Subclasse1
Superclasse
14
Herana de associaes
Generalizao/Especializao
Pedido
1
ClientePessoaFsica
ClientePessoaJurdica
Hierarquias de generalizao
Forma
origem
Retngulo
Crculo
raio : float
Generalizao/Especializao
Transitividade: uma classe em uma hierarquia herda
propriedades e relacionamentos de todos os seus
ancestrais.
Ou seja, a herana pode ser aplicada em vrios nveis,
dando origem a hierarquia de generalizao.
uma classe que herda propriedades de uma outra classe
pode ela prpria servir como superclasse.
mover()
exibir()
ponto : Ponto
Polgono
pontos : ListaDePontos
exibir()
Quadrado
Herana mltipla
Veculo
Veculo Terrestre
Veculo Aqutico
Veculo Anfbio
15
Herana Mltipla
(Entrelaamento)
Herana Mltipla
_________
Telefone
Telefone Celular
16
Como identificar
O seguinte teste pode ser realizado para identificar
se duas classes X e Y se relacionam por
generalizao:
X um tipo de Y?
Sobreposta
Disjunta
Completa
Incompleta
Veculo
{incompleta, disjunta}
{incompleta}
Caminho
Trator
Elipse
Quadrado
Crculo
Atleta
Indivduo
{incompleta, sobreposta}
{completa, disjunta}
Mulher
Homem
Corredor
Nadador
ContaBancria
-nmero
-dataAbertura
-saldo
+debitar()
+creditar()
ContaCorrente
-limiteSaque
HistricoTransaes
1
ContaPoupana
-dataAniversrio
-rendimento
17
Dicas
Deve-se evitar a construo de hierarquias de
generalizao muito profundas (com mais de trs nveis)
dificultam a leitura do diagrama.
Papis e subclasses no devem ser confundidos.
Um papel corresponde ao uso de uma certa classe em
uma associao.Uma classe pode assumir vrios papis.
Deve-se evitar a criao de subclasses em situaes que
podem ser resolvidas atravs da utilizao de papis.
4. Dependncias
Mercadoria
5. Refinamentos
Fornecedor
Identificao dos
Relacionamentos
Classe de
Projeto
Perspectiva Conceitual
Associaes
Indicam conhecimento de um
relacionamento que precisa ser preservado
durante algum tempo
18
Associaes Tpicas
Categoria
A uma parte fsica de B (*)
Associaes Tpicas
Exemplos
Categoria
Gaveta - POST
A um membro de B
Asa - Avio
A uma parte lgica de B (*)
Exemplos
Operador - Loja
Piloto - Companhia Area
A uma sub-unidade
organizacional de B
Escala - Vo
Departamento - Loja
Manuteno - Companhia Area
POST - Loja
A usa ou gerencia B
Operador - POST
Passageiro - Avio
Descrio-Item - Catlogo
A se comunica com B
Piloto - Avio
Cliente - Operador
Vo - Roteiro de Viagem
A uma descrio de B
Descrio-Item - Item
Descrio-Vo - Vo
A conhecido/registrado/reportado/capturado em B (*)
Venda - POST
Cliente - Pagamento
Pagamento - Venda
A possudo por B
Passageiro - Bilhete
Reserva - Cancelamento
POST - Loja
Avio - Companhia Area
Adicionando Associaes ao
Modelo Conceitual do Sistema
POST
Identificando Associaes
Regras teis:
Aplicando o Checklist
Categoria
Exemplos
Relacionamentos fundamentais
Aplicando o Checklist
Categoria
Exemplos
N.A.
A um membro de B
Operador - Loja
A uma sub-unidade
organizacional de B
N.A.
POST - Loja
A usa ou gerencia B
Operador - POST
Item - Loja
Especificao-Produto - Catlogo
A se comunica com B
Gerente - POST
Cliente - Operador
Catlogo - Loja
A uma descrio de B
Especificao-Produto - Item
Cliente - Pagamento
Pagamento - Venda
A conhecido/registrado/reportado/capturado em B
A possudo por B
POST - Loja
Operador - Pagamento
19
Eliminando Associaes
Redundantes
Preservando Associaes de
Compreenso
Associao
Considerao
Identificao dos
Relacionamentos
Na perspectiva de implementao representa
um canal de comunicao entre duas classes
A necessidade desse canal dada pelos
diagramas de interao. Sempre que existir
uma mensagem trocada entre dois objetos
nesses diagramas existir uma associao
entre eles, que representa as responsabilidades
das classes.
Identificando Generalizaes
Regra geral:
Enfatizar associaes de conhecimento, mas preservar
associaes que enriquecem o entendimento do domnio
Identificando Generalizaes
Identificando Generalizaes
20
Identificando Agregaes
Identificando Agregaes
1..
1
0..1
Describes
Sales
LineItem
Store
Item
Stocks
/quantity
1
1..
address
name
Logscompleted
1
Houses
1..
Sale
POST
Payment
Captured-on
time
1
Manager
Started-by
date
Paid-by
1..*
Contained-in
description
price
UPC
Used-by
1
Initiated-by
1
Customer
Referncias
Records-sale-of
Described-by
Product
Catalog
Records-sales-on
1
Cashier
amount
21