SlideShare uma empresa Scribd logo
Diagrama de Classes
Diagrama de Classes
Demonstra a estrutura estática das
classes de um sistema, seus atributos e
operações
Mostra o relacionamento entre as
classes
Diagrama de Classes – Um
Exemplo
SalesLineItem
quantity : Integer
subtotal()
ProductCatalog
specification()
ProductSpecification
description : Text
price : Quantity
upc : UPC
Store
address : Address
name : Text
addSale()
Payment
amount : Quantity
Contains
1.. *
Contains
1.. *
POST
endSale()
enterItem()
makePayment()
Sale
date : Date
isComplete : Boolean
time : Time
becomeComplete()
makeLineItem()
makePayment()
total()
Captures
Houses
Uses
Looks-in
Paid-by
Describes
1 1
1
1 1
1
1
1
1
1
1
1
1
*
Logs-completed 4 *
1
Perspectivas de um Diagrama
de Classes
Conceitual: forma abstrata de se
observar classes e objetos e
independente da linguagem de
programação (Modelo Conceitual)
De Implementação: pensa-se em
detalhes de implementação para definir
as classes e objetos.
Definição de Objetos
Conceitual: representa uma entidade,
”coisa” , processo ou conceito do
mundo real e que possui:
Identidade – valor de uma característica
que o identifica para reconhecimento
Atributos – qualidades, características
Comportamento – habilidades de
processamento
Definição de Objetos
De implementação: representa um módulo
de sw que recebe e produz dados
Identidade – identificador em lg de
implementação
Atributos – variáveis e seus tipos, que
recebem diferentes valores e definem o estado
do objeto
Comportamento – funções ou procedimentos,
os resultados dessas funções determinam o
comportamento do objeto
Definição de Classes
Conceitual: são agrupamentos de objetos,
são abstrações de um coletivo de
entidades do mundo real
O modelo genérico desse coletivo contém
atributos e comportamentos comuns.
Definição de Classes
De implementação: corresponde a um tipo
de uma lg de programação
Um modelo genérico para criar variáveis
que armazenarão os objetos
correspondentes.
Notação UML para Classes
Identificação
da classe
Atributos
Métodos
<<entidade>>
Cliente
De Pacote Vendas
Atributos
Métodos
<<entidade>>
Cliente
De Pacote Vendas
Notação UML para Atributos
A maioria é opcional, seu uso vai depender
do tipo de visão no qual estamos trabalhando
e podem ser abstratos ou utilizar a notação
de uma lg de programação
[Visibili/d]Nome[Multiplici/d]:[Tipo]=[Valor][{Proprie/ds}]
Notação UML para Atributos -
Visibilidade
+ : visibilidade pública: o atributo ü
visível no exterior da classe.
- : visibilidade privada : o atributo é
visível somente por membros da classe.
# : visibilidade protegida: o atributo é
visível também por membros de classes
derivadas
Notação UML para Atributos -
Multiplicidade
Usada para especificar atributos que
são arranjos
Indica dimensão de vetores e matrizes
Ex: notas[10]
matrizDeValores[5,10]
Notação UML para Atributos -
Tipos
Indicam o formato do valores que o
atributo pode assumir
Na visão conceitual o tipo é abstrato
Ex: dataDaVenda: tipoData
Na visão de implementação utilizam-se
os tipos da lg de programação
Ex: salario: float
Notação UML para Atributos –
Valor Inicial e Propriedades
Pode-se indicar o valor ou conteúdo do
atributo imediatamente após a sua
criação, ou o seu valor default
Ex: resultado: int=0
As propriedades descrevem comentários
ou indicações sobre o atributo, podem
mostrar se ele é ou não opcional
Ex: dataDaVenda {valor constante}
Notação UML para Métodos
A notação e uso vai depender do tipo de
visão no qual estamos trabalhando e podem
ser abstratos ou utilizar a notação de uma
lg de programação
[Visibili/d]Nome(Parâmetros)]:[Retorno][{Proprie/ds}]
Notação UML para Métodos -
Parâmetros
Os parâmetros – dados de entrada e/ou
saída para o método são representados por
Nome-do-Parâmetro:Tipo=Valor-Padrão
Ex:
Visão conceitual
ImprimirData(data:TipoData)
Visão de implementação
ArmazenarDados(nome:char[30],salario:float=0.0)
Notação UML para Métodos –
Tipo de Retorno
O Valor-de-Retorno indica se o método
retorna algum valor ao término de sua
execução e qual o tipo de dado do valor
retornado.
Ex:
Visão Conceitual
CalcularValor(): TipoDinheiro
Visão de implementação
ArmazenarDados(nome:char[30]): bool
Notação UML para Métodos –
Visibilidade e Propriedades
Visibilidade – similar ao de atributo
Comentários ou restrições para os
métodos
Ex:
Area() {Área <=600}
Restringe a 600 unidades o valor máximo das
áreas a calcular
Notação UML para Métodos –
Propriedades
É útil distingüir operações de métodos. Operações
é algo que se evoca sobre um objeto (a chamada
do procedimento). Para realizar uma operação a
classe implementa um método (o corpo do
procedimento)
É útil distingüir operações que alteram ou não o
estado (atributos) de uma classe
Não alteram: query, métodos de obtenção,
getting methods
Alteram: modificadores, métodos de atribuição ou
fixação, setting methods
Exemplo de Uma Classe
Aluno
<<entidade>>
Aluno
DePacoteCadastro
nome:TipoNome
RA: TipoCódigo
-nome[30]:char
+RA: int {valorconstante}
calculaMédia():TipoNota
+calculaMédia():Double
Visão Conceitual
Visão de Implementação
Identificação das Classes –
Refinamentos Sucessivos
VisãoAbstrata detalhadamento (impl.)
Na visão conceitual: cada classe pode ser vista
como um conceito ou um tipo, e os métodos são
identificados numa fase posterior.
Na visão de implementação: os métodos aparecem
obrigatoriamente e consideramos aspectos de
controle, estereótipos, pacotes, etc.
Podem existir outras visões intermediárias
Identificação de Classes com
Estereótipos
Estereótipo é um classificador. Tipos:
• Entidade: representam conceitos do mundo
real e armazenam dados que os identificam
• Controle: controlam a execução de processos e
o fluxo de execução de todo ou de parte de
casos de uso e comandam outras classes
• Fronteira: realizam o interfaceamento com
entidades externas (atores), contém o protocolo
de comunicação com impressora, monitor,
teclado, disco, porta serial, modem, etc.
Exemplos no Sistema Posto
Comercial
<<identidade>>
Intens
<<controle>><<fronteira>>
ControleComprarItensInterfaceCliente
Identificando Classes
Entidades –Regras Úteis
É melhor especificar demais do que de menos
Não exclua entidades simplesmente porque os
requisitos não indicam a necessidade de
guardar informações sobre eles (comum em
projeto de BD)
Comece fazendo uma lista de entidades
candidatos a partir de uma lista
Considere os substantivos e frases nominais
nas descrições textuais do domínio do
problema como possíveis candidatos a
entidades ou atributos
Classes Entidades Típicas
Categoria
Especificação, projeto, ou
descrição de coisas
Especificação de produto
Descrição de vôo
Objeto físico ou tangível Terminal de ponto-de-venda
Avião
Lugares Loja
Aeroporto
Transações Venda, Pagamento
Reserva
Exemplos
Itens de transação Itens de venda
Parcelas de pagamento
Container de coisas Loja
Avião
Papéis de pessoas Operador
Piloto
Classes Entidades Típicas
Coisas em um container Item
Passageiro
Sistemas externos Serviço de crédito
Controle de tráfego aéreo
Nomes abstratos Fome
Aracnofobia
Eventos Venda, Assalto, Reunião
Vôo, Decolagem
Organizações Departamento de vendas
Companhia aérea
Regras e políticas Política de devolução
Política de cancelamento
Categoria Exemplos
Classes Entidades Típicas
Catálogos Catálogo de produtos
Catálogo de peças
Registros de finança, trabalho,
contrato, questões legais
Recibo, Contrato de trabalho
Registro de manutenção
Manuais, livros Manual do empregado
Manual de reparos
Instrumentos e serviços
financeiros
Linha de crédito
Ações
Categoria Exemplos
Identificando Entidades a
partir dos Casos de Uso
Usar com cuidado!
Linguagens naturais: imprecisão e ambigüidade
Ação do Ator Resposta do Sistema
1. Este caso de uso começa
quando um Cliente chega no
caixa com itens para comprar.
2. O Operador registra o identi-
ficador de cada item.
Se há mais de um do mesmo
item, o Operador também pode
informar a quantidade.
3. Determina o preço do item e
adiciona informação sobre o item
à transação de venda em anda-
mento.
Mostra a descrição e o preço do
item corrente.
Entidades Candidatas para o
Sistema Posto Comercial
Conceitos restritos ao caso de uso Comprar
Itens - Versão 1
StorePOST SaleItem
Payment
Sales
LineItem
Cashier Customer Manager
Product
Catalog
Product
Specification
Entidades de Relatório
Não incluir no modelo conceitual quando:
Toda informação contida no relatório é
derivada de outras fontes
Incluir no modelo conceitual quando:
Relatório tem um papel especial em termos
das regras de negócio
Ex.: Recibo de venda dá direito à devolução dos
itens comprados
Criando um Diagrama de
Classes-Perspectiva Conceitual
1. Liste os conceitos candidatos para os casos de
usos em questão usando a lista de categorias
comuns e identificação textual de nomes.
2. Desenhe-os em um modelo conceitual.
3. Adicione as associações necessárias para
registrar os relacionamentos para os quais é
preciso preservar alguma memória
4. Adicione os atributos necessários para cumprir
os requisitos de informação.
Estratégia do “fazedor de mapas”:
Usar nomes existentes no vocabulário do domínio
Incluir apenas conceitos pertinentes para os
requisitos (casos de uso) em questão
Excluir tudo que não há no domínio do problema
Erro comum: atributo em vez de entidade
Atributos normalmente correspondem a um texto
ou número no mundo real
Criando o Diagrama de
Classes-Perspectiva Conceitual
Vôo Aeroporto
nome
Vôo
destino
ou... ?
A especificação ou descrição de um
objeto deve ser representada como uma
entidade em separado
evita perda de informação quando o objeto é
deletado
reduz informações redundantes ou
duplicadas
Muito comum no domínio de produtos e
vendas
Ex.:
Entidades de Especificação ou
Descrição
Item
descrição
preço
número serial
UPC
Especificação-Produto
Item
Número serial
Descreve
1
*
descrição
preço
UPC
pior melhor
Entidades de Especificação ou
Descrição – Outro exemplo
pior
melhor
Vôo
data
número
hora
Aeroporto
nome
Voa-para
1
*
Vòo
data
hora
Descrição-Vôo
número
Aeroporto
nome
Descreve-vôo-para
Descrito-por
1
*
1
*
Identificação das Classes de
Controle
Definir pelo menos uma classe do tipo
controle para cada caso de uso de forma que
ela contenha a descrição e comando do
processo associado ao caso de uso.
Definir classes de controle auxiliares em
certos casos de uso que devido aà
complexidade requeiram a divisão de seu
processo em subprocessos. As classes
auxiliares seriam controladas pela classe de
controle principal
Identificação das Classes de
Controle
Suas principais características são:
Cria, ativa e anula objetos controlados
Controla a operação de objetos controlados
Controla a concorrência de pedidos de objetos
controlados
Em muitos casos corresponde a implementação de
um objeto intangível.
Gerente de Registro para o Caso de Uso
registrarAlunos
Identificação das Classes de
Fronteira
Definir uma classe do tipo fronteira para
cada ator que participe do caso de uso,
pois cada ator que pode exigir um
protocolo próprio para comunicação.
Uma classe para interface com o
usuário, uma classe para interface com
a impressora, uma classe para interface
com a porta serial, etc.
Identificação das Classes de
Fronteira
Exemplos: Interface tipo Janela,
Protocolo de Comunicação, Interface de
Impressão, Sensores, etc.
Classes: Formulário em Branco e
Sistema de Cobrança
Relacionamentos
Os relacionamentos entre as classes
representam a interação entre seus
objetos
Tipos:
Associação
Agregação
Generalização
Dependência e Refinamentos
Associações
Conexão entre classes/objetos
Relacionamento que descreve uma série
de ligações entre duplas de classes/
objetos
Uma ligação significa por exemplo que:
elas "conhecem uma a outra“
"estão conectadas com“
para cada X existe um Y
Associações Simples
O mais comum, com apenas uma
conexão, representada por uma linha
sólida e um nome (geralmente verbo)
Caixa Venda
registra
Associações
Pode possuir dois nomes, significando
um nome para cada sentido da
associação e os papéis de cada classe
Associações – Cardinalidade
(Multiplicidade)
Especifica o número de objetos de cada
classe envolvidos com a associação
A leitura da cardinalidade é diferente
para os diferentes sentidos da
associação
Caixa Venda
registra
0..*1
Associações - Cardinalidade
zero or more;
"many"
one or more
one to forty
exactly five
T
T
T
T
*
1..*
1..40
5
T
3, 5, 8 exactly three,
five or eight
Associações - Navegabilidade
Mostra a direção de navegação, ou seja
do canal de comunicação entre os
objetos e classes.
Uma associação é navegável da classe
A para a classe B, se, dado um objeto
de A, consegue-se obter de forma
direta os objetos relacionados da classe
B.
Associações - Navegabilidade
Empresa Mercadoria
fornece
Dada uma mercadoria pode-se identificar diretamente
a empresa fornecedora,mas a volta não é verdadeira
0..* 0..*
Associação Recursiva ou
Reflexiva
Os objetos conectados são da mesma
classe
Associação Qualificada
Usadas com multiplicidades 1..* ou *.
O qualificador (chave) identifica um
objeto
Associação Exclusiva
Restrição em duas ou mais associações,
especificando que objetos de uma classe
podem participar de no máximo uma das
associações ao mesmo tempo
Associação Ordenada
Especifica uma ordem entre os objetos
da associação. Ex: janelas de um
sistema têm que ser ordenadas na tela
(uma está no topo, uma está no fundo e
assim por diante).
Janela Top Janela Bottom
{ordenada}
Associações de Classe
Serve para adicionar informações
extras a uma associação existente,
quando essa possuir operações e
métodos (ela é uma classe)
Associação Ternária
Envolve três classes (inclusive uma
classe de associação)
Agregação
A agregação é um caso particular de
associação
Uma das classes é uma parte ou está
contida em outra.
Palavras chaves: consiste em, contém,
é parte de.
Dois casos: composição e
compartilhamento.
Agregação de Composição
Uma classe pertence a um único
composto (vive nele).
Agregação de
Compartilhamento
Uma classe pode fazer parte de mais de
um composto e/ou estar contida nele
várias vezes.
Generalização
Relacionamento entre uma classe geral
e outra mais específica (herança). A
classe mais específica pode ser usada
no lugar da mais geral.
Generalização normal
Generalização restrita: sobreposição,
disjuntiva, completa e incompleta
Generalização Normal
A classe mais específica (sub-classe) herda
tudo da mais geral (super-classe)
Generalização Restrita
Especifica restriçoes sobre a
generalização e herança
Sobreposição: nessa hierarquiva
subclasses herdam de uma superclasse
por sobreposição, ou seja, as sub-
classes dessas poderão herdar de mais
de uma sub-classe
Disjuntiva
Generalização Restrita –
Sobreposição e Disjuntiva
Sobreposição: nessa hierarquiva subclasses
herdam de uma superclasse por
sobreposição, ou seja, as sub-classes dessas
podem herdar de mais de uma sub-classe.
Disjuntiva: as subclasses herdam de mais de
uma superclasse, mas as sub-classes dessas
poderão herdar de apenas uma.
Generalização Sobreposição
Generalização Completa e
Incompleta
Uma generalização está completa se já
foram especificadas todas as sub-
classes até aquele ponto e está
incompleta se exisitir a possibilidade de
uma outra generalização.
Dependências
Conexão entre dois elementos,
representando que uma mudança no
elemento independente afeta o
dependente.
Refinamentos
Relacionamentos entre duas descrições de
uma mesma coisa, mas em níveis de
abstração diferentes
São usados em modelos de coordenação,
ou seja, modelos que mostram como os
modelos de diferentes fases se relacionam
Identificação dos
Relacionamentos
Na perspectiva conceitual representam-
se relacionamentos conceituais
As associações são estabelecidas
analisando-se os papéis.
A generalização representa a hierarquia
entre tipos e seus sub-tipos
A agregação entre um todo e suas
partes.
Perspectiva Conceitual
Associações
Indicam conhecimento de um
relacionamento que precisa ser
preservado durante algum tempo
Duração de milisegundos ou anos,
dependendo do contexto
Associações Típicas
Categoria
A é uma parte lógica de B (*) Item de Venda - Venda
Escala - Vôo
A é uma parte física de B (*) Gaveta - POST
Asa - Avião
A está fisicamente contido em B (*) POST - Loja
Passageiro - Avião
A está logicamente contido em B (*) Descrição-Item - Catálogo
Vôo - Roteiro de Viagem
Exemplos
A é uma descrição de B Descrição-Item - Item
Descrição-Vôo - Vôo
A é conhecido/registrado/repor-
tado/capturado em B (*)
Venda - POST
Reserva - Terminal de Reserva
A é um item de uma transação ou
relatório B
Item de Venda - Venda
Opção de Reserva - Reserva
(*) Alta prioridade
Associações Típicas
Categoria
A é uma sub-unidade
organizacional de B
Departamento - Loja
Manutenção - Companhia Aérea
A é um membro de B Operador - Loja
Piloto - Companhia Aérea
A usa ou gerencia B Operador - POST
Piloto - Avião
A se comunica com B Cliente - Operador
Agente de Reserva - Passageiro
Exemplos
A está relacionado com uma
transação B
Cliente - Pagamento
Passageiro - Bilhete
A é possuído por B POST - Loja
Avião - Companhia Aérea
A é uma transação relacionada
com outra transação B
Pagamento - Venda
Reserva - Cancelamento
Identificando Associações
Regras úteis:
Focar nas associações cujo conhecimento deve ser
preservado
Usar nomes baseados em expressões verbais que
façam sentido quando lidas no contexto do modelo
Evitar mostrar associações deriváveis ou
redundantes
É mais importante identificar conceitos do que
associações
Associações demais tendem a confundir um modelo
ao invés de iluminá-lo
Adicionando Associações ao
Modelo Conceitual do Sistema
POST
Relacionamentos fundamentais
Venda Capturada-em POST
Para conhecer a venda corrente, calcular total e
imprimir recibo
Venda Paga-por Cliente
Para saber se a venda foi paga, calcular troco, e
imprimir recibo
Catálogo-Produto Contém Especificação-Item
Para obter a especificação de um item, dado um
UPC
Aplicando a Lista
Categoria
A é uma parte lógica de B Item de Venda - Venda
A é uma parte física de B N.A.
A está fisicamente contido em B POST - Loja
Item - Loja
A está logicamente contido em B Especificação-Produto - Catálogo
Catálogo - Loja
Exemplos
A é uma descrição de B Especificação-Produto - Item
A é conhecido/registrado/repor-
tado/capturado em B
Venda (corrente) - POST
Venda (completada) - Loja
A é um item de uma transação ou
relatório B
Item de Venda - Venda
Aplicando a Lista
Categoria
A é uma sub-unidade
organizacional de B
N.A.
A é um membro de B Operador - Loja
A usa ou gerencia B Operador - POST
Gerente - POST
A se comunica com B Cliente - Operador
Exemplos
A está relacionado com uma
transação B
Cliente - Pagamento
Operador - Pagamento
A é possuído por B POST - Loja
A é uma transação relacionada
com outra transação B
Pagamento - Venda
Eliminando Associações
Redundantes
Associação
Operador Registra-vendas-em POST Conhecimento não exigido nos
requisitos.
Venda Iniciada-por Operador Conhecimento não exigido nos
requisitos; derivável da associação
Operador Registra-vendas-em POST.
POST Inicializado-por Gerente Conhecimento não exigido nos
requisitos.
Venda Iniciada-por Cliente Conhecimento não exigido nos
requisitos.
Consideração
Loja Armazena Item Conhecimento não exigido nos
requisitos.
Item de Venda Registra-venda-de Item Conhecimento não exigido nos
requisitos.
Preservando Associações de
Compreensão
Preservar apenas associações de conhecimento
pode resultar num modelo que não transmite um
completo entendimento do domínio
Ex.: Venda Iniciada-por Cliente
Remoção deixa de fora um aspecto importante do domínio—
o fato de que um cliente gera uma venda
Regra geral:
Enfatizar associações de conhecimento, mas preservar
associações que enriquecem o entendimento do
domínio
Identificação dos
Relacionamentos
Na perspectiva de implementação
representa um canal de comunicação
entre duas classes
A necessidade desse canal é dada pelos
diagramas de interação. Sempre que
existir uma mensagem trocada entre dois
objetos nesses diagramas existirá uma
associação entre eles, que representa as
responsabilidades das classes.
Identificando Generalizações
Quando particionar em Sub-Classes
a sub-classe tem atributos adicionais de
interesse
a sub-classe tem associações adicionais de
interesse
a sub-classe será manipulada ou usada de
maneira diferente da super-classe ou das
outras sub-classes
a sub-classe se comporta diferente da super-
classe ou das outras sub-classes
Identificando Generalizações
Quando criar uma Super-Classe
as potenciais sub-classes representam
variações de um conceito similar
as sub-classes satisfazem 100% a regra
``is-a''
todas as sub-classes possuem um atributo
comum que poderá ser expresso na super-
classe
todas as sub-classes possuem uma
associação comum que poderá ser
relacionada à super-classe
Identificando Generalizações
Identificando Agregações
Verificar se algumas classes podem ser
agrupadas em algum composto:
elas são geralmente criadas/destruídas no
mesmo instante.
possuem relacionamentos comuns
Identificando Agregações
Verificar se alguma classe pode ser sub-
dividida em partes.
as partes possuem tempo de vida limitado
ao tempo de vida do composto
possuem relacionamentos particulares e de
interesse
Identificando Atributos
Atributos devem preferencialmente
representar tipos primitivos de dados ou
de valores simples
Ex.: Data, Número, Texto, Hora, Endereço,
etc.
Atributos não devem ser usados para:
Representar um conceito complexo
Relacionar conceitos (atributo “chave-
estrangeira”)
Identificando Atributos
Cashier
name
currentPOST
Cashier
name
POST
number
Uses
Worse
Better
not a "simple" attribute
1 1
Um atributo deve ser de tipo não-primitivo
quando:
É composto de seções separadas
Ex.: endereço, data
Precisa ser analisado ou validado
Ex.: CPF, número de matrícula
Possui outros atributos
Ex.: Um preço promocional com prazo de validade
É uma quantidade com uma unidade
Ex.: valores monetários, medidas
Atributos de Tipo Não-
Primitivo
Adicionando Atributos ao
Sistema POST
Conceito
Especificação-Produto descrição—Para mostrar na tela e imprimir no recibo.
UCP—Para localizar especificação do item.
preço—Para calcular o total da venda.
Pagamento quantia—Para determinar se pagamento é suficiente
e calcular troco.
Venda data, hora—Para imprimir no recibo e registrar no log
de vendas.
Item de Venda quantidade—Para registrar a quantidade digitada
quando há mais de um do mesmo item.
Atributos e justificativa
Loja nome, endereço—Para imprimir no recibo.
Atributo Derivado
Um atributo “derivado” é um atributo
cujo valor pode ser deduzido a partir de
outras informações
Ex.: quantidade em Item de Venda—pode
ser deduzido a partir da multiplicidade da
associação entre Item de Venda e Item
SalesLineItem
/quantity
ItemRecords-sale-of0..1 1..*
derived attribute from
the multiplicity value
POST
Item
Store
address
name
Sale
date
time
Payment
amount
Sales
LineItem
/quantity
CashierCustomer
Manager
Product
Catalog
Product
Specification
description
price
UPC
Stocks
*
Houses
1.. *
Used-by
*
Contains
1.. *
Describes
*
Captured-on
Contained-in
1.. *
Described-by
*
Records-sale-of
0..1
Started-by
Paid-by Initiated-by
Logs-
completed
6
*
3 Records-sales-on
1
1
1
1
1
1..*
11
1
1
1
1
1
1
1
1 1
1
Identificação dos Métodos
Os métodos são acrescentados na
perspectiva de implementação e são
derivados a partir dos diagramas de
interação: colaboração e sequências.
É útil distingüir operações de métodos.
Operações é algo que se evoca sobre um
objeto (a chamada do procedimento). Para
realizar uma operação a classe implementa
um método (o corpo do procedimento)
Identificação dos Métodos
É útil distingüir operações que alteram
ou não o estado (atributos) de uma
classe
Não alteram: query, métodos de
obtenção, getting methods
Alteram: modificadores, métodos de
atribuição ou fixação, setting methods
Organização de Classes em
Pacotes Lógicos
Vendas Compras
Adminis-
tração
Organização de Classes em
Pacotes Lógicos
Classes VB
Global
Classes de
fronteira
Classes de
Controle
Coleções
Entidades
Elementos
Entidades
Classes
Entidades

Mais conteúdo relacionado

Semelhante a Diagramadeclassesal

Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Adriano Teixeira de Souza
 
Object Oriented Programming
Object Oriented Programming Object Oriented Programming
Object Oriented Programming
Alexandre Schmidt
 
Diagrama classes
Diagrama classesDiagrama classes
Diagrama classes
Gabriel Faustino
 
Programação Orientada por Objectos - Aula 1
Programação Orientada por Objectos - Aula 1Programação Orientada por Objectos - Aula 1
Programação Orientada por Objectos - Aula 1
Manuel Menezes de Sequeira
 
Aula-04-UML.pptx
Aula-04-UML.pptxAula-04-UML.pptx
Aula-04-UML.pptx
rubens708870
 
Integração de Tecnologias
Integração de TecnologiasIntegração de Tecnologias
Integração de Tecnologias
elliando dias
 
Uml
UmlUml
Uml
lcbj
 
Introdução à análise orientada a objetos parte 3
Introdução à análise orientada a objetos parte 3Introdução à análise orientada a objetos parte 3
Introdução à análise orientada a objetos parte 3
ariovaldodias
 
Análise Orientada a Objetos - Objetos E Classes
Análise Orientada a Objetos  -   Objetos E ClassesAnálise Orientada a Objetos  -   Objetos E Classes
Análise Orientada a Objetos - Objetos E Classes
CursoSENAC
 
8-uml-e-modelagem-oo Introdução a UML.pdf
8-uml-e-modelagem-oo Introdução a UML.pdf8-uml-e-modelagem-oo Introdução a UML.pdf
8-uml-e-modelagem-oo Introdução a UML.pdf
gabriel-colman
 
DDD > Experiências
DDD > ExperiênciasDDD > Experiências
DDD > Experiências
Giovanni Bassi
 
3 - Modelo Entidade Relacionamento
3 - Modelo Entidade Relacionamento3 - Modelo Entidade Relacionamento
3 - Modelo Entidade Relacionamento
Cris Fidelix
 
04 modelagem de dados introdução
04  modelagem de dados   introdução04  modelagem de dados   introdução
04 modelagem de dados introdução
Centro Paula Souza
 
aula03_uml_diagrama_classe.pdf
aula03_uml_diagrama_classe.pdfaula03_uml_diagrama_classe.pdf
aula03_uml_diagrama_classe.pdf
Antonio Lobato
 
12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...
12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...
12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...
Manuel Menezes de Sequeira
 
UML - Criando Diagramas Eficientes
UML - Criando Diagramas EficientesUML - Criando Diagramas Eficientes
UML - Criando Diagramas Eficientes
Rodrigo Cascarrolho
 
UMLIntro.pptx
UMLIntro.pptxUMLIntro.pptx
UMLIntro.pptx
RicardoMarciano5
 
Diagrama de Classes.pdf
Diagrama de Classes.pdfDiagrama de Classes.pdf
Diagrama de Classes.pdf
JoberthSilva
 
TESTE
TESTETESTE
Processo Unificado de Desenvolvimento de Software
Processo Unificado de Desenvolvimento de SoftwareProcesso Unificado de Desenvolvimento de Software
Processo Unificado de Desenvolvimento de Software
elliando dias
 

Semelhante a Diagramadeclassesal (20)

Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
 
Object Oriented Programming
Object Oriented Programming Object Oriented Programming
Object Oriented Programming
 
Diagrama classes
Diagrama classesDiagrama classes
Diagrama classes
 
Programação Orientada por Objectos - Aula 1
Programação Orientada por Objectos - Aula 1Programação Orientada por Objectos - Aula 1
Programação Orientada por Objectos - Aula 1
 
Aula-04-UML.pptx
Aula-04-UML.pptxAula-04-UML.pptx
Aula-04-UML.pptx
 
Integração de Tecnologias
Integração de TecnologiasIntegração de Tecnologias
Integração de Tecnologias
 
Uml
UmlUml
Uml
 
Introdução à análise orientada a objetos parte 3
Introdução à análise orientada a objetos parte 3Introdução à análise orientada a objetos parte 3
Introdução à análise orientada a objetos parte 3
 
Análise Orientada a Objetos - Objetos E Classes
Análise Orientada a Objetos  -   Objetos E ClassesAnálise Orientada a Objetos  -   Objetos E Classes
Análise Orientada a Objetos - Objetos E Classes
 
8-uml-e-modelagem-oo Introdução a UML.pdf
8-uml-e-modelagem-oo Introdução a UML.pdf8-uml-e-modelagem-oo Introdução a UML.pdf
8-uml-e-modelagem-oo Introdução a UML.pdf
 
DDD > Experiências
DDD > ExperiênciasDDD > Experiências
DDD > Experiências
 
3 - Modelo Entidade Relacionamento
3 - Modelo Entidade Relacionamento3 - Modelo Entidade Relacionamento
3 - Modelo Entidade Relacionamento
 
04 modelagem de dados introdução
04  modelagem de dados   introdução04  modelagem de dados   introdução
04 modelagem de dados introdução
 
aula03_uml_diagrama_classe.pdf
aula03_uml_diagrama_classe.pdfaula03_uml_diagrama_classe.pdf
aula03_uml_diagrama_classe.pdf
 
12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...
12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...
12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...
 
UML - Criando Diagramas Eficientes
UML - Criando Diagramas EficientesUML - Criando Diagramas Eficientes
UML - Criando Diagramas Eficientes
 
UMLIntro.pptx
UMLIntro.pptxUMLIntro.pptx
UMLIntro.pptx
 
Diagrama de Classes.pdf
Diagrama de Classes.pdfDiagrama de Classes.pdf
Diagrama de Classes.pdf
 
TESTE
TESTETESTE
TESTE
 
Processo Unificado de Desenvolvimento de Software
Processo Unificado de Desenvolvimento de SoftwareProcesso Unificado de Desenvolvimento de Software
Processo Unificado de Desenvolvimento de Software
 

Último

Atividade letra da música - Espalhe Amor, Anavitória.
Atividade letra da música - Espalhe  Amor, Anavitória.Atividade letra da música - Espalhe  Amor, Anavitória.
Atividade letra da música - Espalhe Amor, Anavitória.
Mary Alvarenga
 
OS elementos de uma boa Redação para o ENEM.pdf
OS elementos de uma boa Redação para o ENEM.pdfOS elementos de uma boa Redação para o ENEM.pdf
OS elementos de uma boa Redação para o ENEM.pdf
AmiltonAparecido1
 
Leis de Mendel - as ervilhas e a maneira simples de entender.ppt
Leis de Mendel - as ervilhas e a maneira simples de entender.pptLeis de Mendel - as ervilhas e a maneira simples de entender.ppt
Leis de Mendel - as ervilhas e a maneira simples de entender.ppt
PatriciaZanoli
 
Leonardo da Vinci .pptx
Leonardo da Vinci                  .pptxLeonardo da Vinci                  .pptx
Leonardo da Vinci .pptx
TomasSousa7
 
- TEMPLATE DA PRATICA - Psicomotricidade.pptx
- TEMPLATE DA PRATICA - Psicomotricidade.pptx- TEMPLATE DA PRATICA - Psicomotricidade.pptx
- TEMPLATE DA PRATICA - Psicomotricidade.pptx
LucianaCristina58
 
GÊNERO TEXTUAL - POEMA.pptx
GÊNERO      TEXTUAL     -     POEMA.pptxGÊNERO      TEXTUAL     -     POEMA.pptx
GÊNERO TEXTUAL - POEMA.pptx
Marlene Cunhada
 
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptxSlides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
LuizHenriquedeAlmeid6
 
Potenciação e Radiciação de Números Racionais
Potenciação e Radiciação de Números RacionaisPotenciação e Radiciação de Números Racionais
Potenciação e Radiciação de Números Racionais
wagnermorais28
 
Introdução à Sociologia: caça-palavras na escola
Introdução à Sociologia: caça-palavras na escolaIntrodução à Sociologia: caça-palavras na escola
Introdução à Sociologia: caça-palavras na escola
Professor Belinaso
 
Slides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptx
Slides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptxSlides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptx
Slides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptx
LuizHenriquedeAlmeid6
 
000. Para rezar o terço - Junho - mês do Sagrado Coração de Jesús.pdf
000. Para rezar o terço - Junho - mês do Sagrado Coração de Jesús.pdf000. Para rezar o terço - Junho - mês do Sagrado Coração de Jesús.pdf
000. Para rezar o terço - Junho - mês do Sagrado Coração de Jesús.pdf
YeniferGarcia36
 
atividade 8º ano entrevista - com tirinha
atividade 8º ano entrevista - com tirinhaatividade 8º ano entrevista - com tirinha
atividade 8º ano entrevista - com tirinha
Suzy De Abreu Santana
 
Redação e Leitura_7º ano_58_Produção de cordel .pptx
Redação e Leitura_7º ano_58_Produção de cordel .pptxRedação e Leitura_7º ano_58_Produção de cordel .pptx
Redação e Leitura_7º ano_58_Produção de cordel .pptx
DECIOMAURINARAMOS
 
Estrutura Pedagógica - Laboratório de Educação a Distância.ppt
Estrutura Pedagógica - Laboratório de Educação a Distância.pptEstrutura Pedagógica - Laboratório de Educação a Distância.ppt
Estrutura Pedagógica - Laboratório de Educação a Distância.ppt
livrosjovert
 
O que é um Ménage a Trois Contemporâneo .pdf
O que é um Ménage a Trois Contemporâneo .pdfO que é um Ménage a Trois Contemporâneo .pdf
O que é um Ménage a Trois Contemporâneo .pdf
Pastor Robson Colaço
 
Treinamento NR 38 - CORPO PRINCIPAL da NORMA.pptx
Treinamento NR 38 - CORPO PRINCIPAL da NORMA.pptxTreinamento NR 38 - CORPO PRINCIPAL da NORMA.pptx
Treinamento NR 38 - CORPO PRINCIPAL da NORMA.pptx
MarcosPaulo777883
 
UFCD_3546_Prevenção e primeiros socorros_geriatria.pdf
UFCD_3546_Prevenção e primeiros socorros_geriatria.pdfUFCD_3546_Prevenção e primeiros socorros_geriatria.pdf
UFCD_3546_Prevenção e primeiros socorros_geriatria.pdf
Manuais Formação
 
Funções e Progressões - Livro completo prisma
Funções e Progressões - Livro completo prismaFunções e Progressões - Livro completo prisma
Funções e Progressões - Livro completo prisma
djincognito
 
cronograma-enem-2024-planejativo-estudos.pdf
cronograma-enem-2024-planejativo-estudos.pdfcronograma-enem-2024-planejativo-estudos.pdf
cronograma-enem-2024-planejativo-estudos.pdf
todorokillmepls
 
epidemias endemia-pandemia-e-epidemia (1).ppt
epidemias endemia-pandemia-e-epidemia (1).pptepidemias endemia-pandemia-e-epidemia (1).ppt
epidemias endemia-pandemia-e-epidemia (1).ppt
MarceloMonteiro213738
 

Último (20)

Atividade letra da música - Espalhe Amor, Anavitória.
Atividade letra da música - Espalhe  Amor, Anavitória.Atividade letra da música - Espalhe  Amor, Anavitória.
Atividade letra da música - Espalhe Amor, Anavitória.
 
OS elementos de uma boa Redação para o ENEM.pdf
OS elementos de uma boa Redação para o ENEM.pdfOS elementos de uma boa Redação para o ENEM.pdf
OS elementos de uma boa Redação para o ENEM.pdf
 
Leis de Mendel - as ervilhas e a maneira simples de entender.ppt
Leis de Mendel - as ervilhas e a maneira simples de entender.pptLeis de Mendel - as ervilhas e a maneira simples de entender.ppt
Leis de Mendel - as ervilhas e a maneira simples de entender.ppt
 
Leonardo da Vinci .pptx
Leonardo da Vinci                  .pptxLeonardo da Vinci                  .pptx
Leonardo da Vinci .pptx
 
- TEMPLATE DA PRATICA - Psicomotricidade.pptx
- TEMPLATE DA PRATICA - Psicomotricidade.pptx- TEMPLATE DA PRATICA - Psicomotricidade.pptx
- TEMPLATE DA PRATICA - Psicomotricidade.pptx
 
GÊNERO TEXTUAL - POEMA.pptx
GÊNERO      TEXTUAL     -     POEMA.pptxGÊNERO      TEXTUAL     -     POEMA.pptx
GÊNERO TEXTUAL - POEMA.pptx
 
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptxSlides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
 
Potenciação e Radiciação de Números Racionais
Potenciação e Radiciação de Números RacionaisPotenciação e Radiciação de Números Racionais
Potenciação e Radiciação de Números Racionais
 
Introdução à Sociologia: caça-palavras na escola
Introdução à Sociologia: caça-palavras na escolaIntrodução à Sociologia: caça-palavras na escola
Introdução à Sociologia: caça-palavras na escola
 
Slides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptx
Slides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptxSlides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptx
Slides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptx
 
000. Para rezar o terço - Junho - mês do Sagrado Coração de Jesús.pdf
000. Para rezar o terço - Junho - mês do Sagrado Coração de Jesús.pdf000. Para rezar o terço - Junho - mês do Sagrado Coração de Jesús.pdf
000. Para rezar o terço - Junho - mês do Sagrado Coração de Jesús.pdf
 
atividade 8º ano entrevista - com tirinha
atividade 8º ano entrevista - com tirinhaatividade 8º ano entrevista - com tirinha
atividade 8º ano entrevista - com tirinha
 
Redação e Leitura_7º ano_58_Produção de cordel .pptx
Redação e Leitura_7º ano_58_Produção de cordel .pptxRedação e Leitura_7º ano_58_Produção de cordel .pptx
Redação e Leitura_7º ano_58_Produção de cordel .pptx
 
Estrutura Pedagógica - Laboratório de Educação a Distância.ppt
Estrutura Pedagógica - Laboratório de Educação a Distância.pptEstrutura Pedagógica - Laboratório de Educação a Distância.ppt
Estrutura Pedagógica - Laboratório de Educação a Distância.ppt
 
O que é um Ménage a Trois Contemporâneo .pdf
O que é um Ménage a Trois Contemporâneo .pdfO que é um Ménage a Trois Contemporâneo .pdf
O que é um Ménage a Trois Contemporâneo .pdf
 
Treinamento NR 38 - CORPO PRINCIPAL da NORMA.pptx
Treinamento NR 38 - CORPO PRINCIPAL da NORMA.pptxTreinamento NR 38 - CORPO PRINCIPAL da NORMA.pptx
Treinamento NR 38 - CORPO PRINCIPAL da NORMA.pptx
 
UFCD_3546_Prevenção e primeiros socorros_geriatria.pdf
UFCD_3546_Prevenção e primeiros socorros_geriatria.pdfUFCD_3546_Prevenção e primeiros socorros_geriatria.pdf
UFCD_3546_Prevenção e primeiros socorros_geriatria.pdf
 
Funções e Progressões - Livro completo prisma
Funções e Progressões - Livro completo prismaFunções e Progressões - Livro completo prisma
Funções e Progressões - Livro completo prisma
 
cronograma-enem-2024-planejativo-estudos.pdf
cronograma-enem-2024-planejativo-estudos.pdfcronograma-enem-2024-planejativo-estudos.pdf
cronograma-enem-2024-planejativo-estudos.pdf
 
epidemias endemia-pandemia-e-epidemia (1).ppt
epidemias endemia-pandemia-e-epidemia (1).pptepidemias endemia-pandemia-e-epidemia (1).ppt
epidemias endemia-pandemia-e-epidemia (1).ppt
 

Diagramadeclassesal

  • 2. Diagrama de Classes Demonstra a estrutura estática das classes de um sistema, seus atributos e operações Mostra o relacionamento entre as classes
  • 3. Diagrama de Classes – Um Exemplo SalesLineItem quantity : Integer subtotal() ProductCatalog specification() ProductSpecification description : Text price : Quantity upc : UPC Store address : Address name : Text addSale() Payment amount : Quantity Contains 1.. * Contains 1.. * POST endSale() enterItem() makePayment() Sale date : Date isComplete : Boolean time : Time becomeComplete() makeLineItem() makePayment() total() Captures Houses Uses Looks-in Paid-by Describes 1 1 1 1 1 1 1 1 1 1 1 1 1 * Logs-completed 4 * 1
  • 4. Perspectivas de um Diagrama de Classes Conceitual: forma abstrata de se observar classes e objetos e independente da linguagem de programação (Modelo Conceitual) De Implementação: pensa-se em detalhes de implementação para definir as classes e objetos.
  • 5. Definição de Objetos Conceitual: representa uma entidade, ”coisa” , processo ou conceito do mundo real e que possui: Identidade – valor de uma característica que o identifica para reconhecimento Atributos – qualidades, características Comportamento – habilidades de processamento
  • 6. Definição de Objetos De implementação: representa um módulo de sw que recebe e produz dados Identidade – identificador em lg de implementação Atributos – variáveis e seus tipos, que recebem diferentes valores e definem o estado do objeto Comportamento – funções ou procedimentos, os resultados dessas funções determinam o comportamento do objeto
  • 7. Definição de Classes Conceitual: são agrupamentos de objetos, são abstrações de um coletivo de entidades do mundo real O modelo genérico desse coletivo contém atributos e comportamentos comuns.
  • 8. Definição de Classes De implementação: corresponde a um tipo de uma lg de programação Um modelo genérico para criar variáveis que armazenarão os objetos correspondentes.
  • 9. Notação UML para Classes Identificação da classe Atributos Métodos <<entidade>> Cliente De Pacote Vendas Atributos Métodos <<entidade>> Cliente De Pacote Vendas
  • 10. Notação UML para Atributos A maioria é opcional, seu uso vai depender do tipo de visão no qual estamos trabalhando e podem ser abstratos ou utilizar a notação de uma lg de programação [Visibili/d]Nome[Multiplici/d]:[Tipo]=[Valor][{Proprie/ds}]
  • 11. Notação UML para Atributos - Visibilidade + : visibilidade pública: o atributo ü visível no exterior da classe. - : visibilidade privada : o atributo é visível somente por membros da classe. # : visibilidade protegida: o atributo é visível também por membros de classes derivadas
  • 12. Notação UML para Atributos - Multiplicidade Usada para especificar atributos que são arranjos Indica dimensão de vetores e matrizes Ex: notas[10] matrizDeValores[5,10]
  • 13. Notação UML para Atributos - Tipos Indicam o formato do valores que o atributo pode assumir Na visão conceitual o tipo é abstrato Ex: dataDaVenda: tipoData Na visão de implementação utilizam-se os tipos da lg de programação Ex: salario: float
  • 14. Notação UML para Atributos – Valor Inicial e Propriedades Pode-se indicar o valor ou conteúdo do atributo imediatamente após a sua criação, ou o seu valor default Ex: resultado: int=0 As propriedades descrevem comentários ou indicações sobre o atributo, podem mostrar se ele é ou não opcional Ex: dataDaVenda {valor constante}
  • 15. Notação UML para Métodos A notação e uso vai depender do tipo de visão no qual estamos trabalhando e podem ser abstratos ou utilizar a notação de uma lg de programação [Visibili/d]Nome(Parâmetros)]:[Retorno][{Proprie/ds}]
  • 16. Notação UML para Métodos - Parâmetros Os parâmetros – dados de entrada e/ou saída para o método são representados por Nome-do-Parâmetro:Tipo=Valor-Padrão Ex: Visão conceitual ImprimirData(data:TipoData) Visão de implementação ArmazenarDados(nome:char[30],salario:float=0.0)
  • 17. Notação UML para Métodos – Tipo de Retorno O Valor-de-Retorno indica se o método retorna algum valor ao término de sua execução e qual o tipo de dado do valor retornado. Ex: Visão Conceitual CalcularValor(): TipoDinheiro Visão de implementação ArmazenarDados(nome:char[30]): bool
  • 18. Notação UML para Métodos – Visibilidade e Propriedades Visibilidade – similar ao de atributo Comentários ou restrições para os métodos Ex: Area() {Área <=600} Restringe a 600 unidades o valor máximo das áreas a calcular
  • 19. Notação UML para Métodos – Propriedades É útil distingüir operações de métodos. Operações é algo que se evoca sobre um objeto (a chamada do procedimento). Para realizar uma operação a classe implementa um método (o corpo do procedimento) É útil distingüir operações que alteram ou não o estado (atributos) de uma classe Não alteram: query, métodos de obtenção, getting methods Alteram: modificadores, métodos de atribuição ou fixação, setting methods
  • 20. Exemplo de Uma Classe Aluno <<entidade>> Aluno DePacoteCadastro nome:TipoNome RA: TipoCódigo -nome[30]:char +RA: int {valorconstante} calculaMédia():TipoNota +calculaMédia():Double Visão Conceitual Visão de Implementação
  • 21. Identificação das Classes – Refinamentos Sucessivos VisãoAbstrata detalhadamento (impl.) Na visão conceitual: cada classe pode ser vista como um conceito ou um tipo, e os métodos são identificados numa fase posterior. Na visão de implementação: os métodos aparecem obrigatoriamente e consideramos aspectos de controle, estereótipos, pacotes, etc. Podem existir outras visões intermediárias
  • 22. Identificação de Classes com Estereótipos Estereótipo é um classificador. Tipos: • Entidade: representam conceitos do mundo real e armazenam dados que os identificam • Controle: controlam a execução de processos e o fluxo de execução de todo ou de parte de casos de uso e comandam outras classes • Fronteira: realizam o interfaceamento com entidades externas (atores), contém o protocolo de comunicação com impressora, monitor, teclado, disco, porta serial, modem, etc.
  • 23. Exemplos no Sistema Posto Comercial <<identidade>> Intens <<controle>><<fronteira>> ControleComprarItensInterfaceCliente
  • 24. Identificando Classes Entidades –Regras Úteis É melhor especificar demais do que de menos Não exclua entidades simplesmente porque os requisitos não indicam a necessidade de guardar informações sobre eles (comum em projeto de BD) Comece fazendo uma lista de entidades candidatos a partir de uma lista Considere os substantivos e frases nominais nas descrições textuais do domínio do problema como possíveis candidatos a entidades ou atributos
  • 25. Classes Entidades Típicas Categoria Especificação, projeto, ou descrição de coisas Especificação de produto Descrição de vôo Objeto físico ou tangível Terminal de ponto-de-venda Avião Lugares Loja Aeroporto Transações Venda, Pagamento Reserva Exemplos Itens de transação Itens de venda Parcelas de pagamento Container de coisas Loja Avião Papéis de pessoas Operador Piloto
  • 26. Classes Entidades Típicas Coisas em um container Item Passageiro Sistemas externos Serviço de crédito Controle de tráfego aéreo Nomes abstratos Fome Aracnofobia Eventos Venda, Assalto, Reunião Vôo, Decolagem Organizações Departamento de vendas Companhia aérea Regras e políticas Política de devolução Política de cancelamento Categoria Exemplos
  • 27. Classes Entidades Típicas Catálogos Catálogo de produtos Catálogo de peças Registros de finança, trabalho, contrato, questões legais Recibo, Contrato de trabalho Registro de manutenção Manuais, livros Manual do empregado Manual de reparos Instrumentos e serviços financeiros Linha de crédito Ações Categoria Exemplos
  • 28. Identificando Entidades a partir dos Casos de Uso Usar com cuidado! Linguagens naturais: imprecisão e ambigüidade Ação do Ator Resposta do Sistema 1. Este caso de uso começa quando um Cliente chega no caixa com itens para comprar. 2. O Operador registra o identi- ficador de cada item. Se há mais de um do mesmo item, o Operador também pode informar a quantidade. 3. Determina o preço do item e adiciona informação sobre o item à transação de venda em anda- mento. Mostra a descrição e o preço do item corrente.
  • 29. Entidades Candidatas para o Sistema Posto Comercial Conceitos restritos ao caso de uso Comprar Itens - Versão 1 StorePOST SaleItem Payment Sales LineItem Cashier Customer Manager Product Catalog Product Specification
  • 30. Entidades de Relatório Não incluir no modelo conceitual quando: Toda informação contida no relatório é derivada de outras fontes Incluir no modelo conceitual quando: Relatório tem um papel especial em termos das regras de negócio Ex.: Recibo de venda dá direito à devolução dos itens comprados
  • 31. Criando um Diagrama de Classes-Perspectiva Conceitual 1. Liste os conceitos candidatos para os casos de usos em questão usando a lista de categorias comuns e identificação textual de nomes. 2. Desenhe-os em um modelo conceitual. 3. Adicione as associações necessárias para registrar os relacionamentos para os quais é preciso preservar alguma memória 4. Adicione os atributos necessários para cumprir os requisitos de informação.
  • 32. Estratégia do “fazedor de mapas”: Usar nomes existentes no vocabulário do domínio Incluir apenas conceitos pertinentes para os requisitos (casos de uso) em questão Excluir tudo que não há no domínio do problema Erro comum: atributo em vez de entidade Atributos normalmente correspondem a um texto ou número no mundo real Criando o Diagrama de Classes-Perspectiva Conceitual Vôo Aeroporto nome Vôo destino ou... ?
  • 33. A especificação ou descrição de um objeto deve ser representada como uma entidade em separado evita perda de informação quando o objeto é deletado reduz informações redundantes ou duplicadas Muito comum no domínio de produtos e vendas Ex.: Entidades de Especificação ou Descrição Item descrição preço número serial UPC Especificação-Produto Item Número serial Descreve 1 * descrição preço UPC pior melhor
  • 34. Entidades de Especificação ou Descrição – Outro exemplo pior melhor Vôo data número hora Aeroporto nome Voa-para 1 * Vòo data hora Descrição-Vôo número Aeroporto nome Descreve-vôo-para Descrito-por 1 * 1 *
  • 35. Identificação das Classes de Controle Definir pelo menos uma classe do tipo controle para cada caso de uso de forma que ela contenha a descrição e comando do processo associado ao caso de uso. Definir classes de controle auxiliares em certos casos de uso que devido aà complexidade requeiram a divisão de seu processo em subprocessos. As classes auxiliares seriam controladas pela classe de controle principal
  • 36. Identificação das Classes de Controle Suas principais características são: Cria, ativa e anula objetos controlados Controla a operação de objetos controlados Controla a concorrência de pedidos de objetos controlados Em muitos casos corresponde a implementação de um objeto intangível. Gerente de Registro para o Caso de Uso registrarAlunos
  • 37. Identificação das Classes de Fronteira Definir uma classe do tipo fronteira para cada ator que participe do caso de uso, pois cada ator que pode exigir um protocolo próprio para comunicação. Uma classe para interface com o usuário, uma classe para interface com a impressora, uma classe para interface com a porta serial, etc.
  • 38. Identificação das Classes de Fronteira Exemplos: Interface tipo Janela, Protocolo de Comunicação, Interface de Impressão, Sensores, etc. Classes: Formulário em Branco e Sistema de Cobrança
  • 39. Relacionamentos Os relacionamentos entre as classes representam a interação entre seus objetos Tipos: Associação Agregação Generalização Dependência e Refinamentos
  • 40. Associações Conexão entre classes/objetos Relacionamento que descreve uma série de ligações entre duplas de classes/ objetos Uma ligação significa por exemplo que: elas "conhecem uma a outra“ "estão conectadas com“ para cada X existe um Y
  • 41. Associações Simples O mais comum, com apenas uma conexão, representada por uma linha sólida e um nome (geralmente verbo) Caixa Venda registra
  • 42. Associações Pode possuir dois nomes, significando um nome para cada sentido da associação e os papéis de cada classe
  • 43. Associações – Cardinalidade (Multiplicidade) Especifica o número de objetos de cada classe envolvidos com a associação A leitura da cardinalidade é diferente para os diferentes sentidos da associação Caixa Venda registra 0..*1
  • 44. Associações - Cardinalidade zero or more; "many" one or more one to forty exactly five T T T T * 1..* 1..40 5 T 3, 5, 8 exactly three, five or eight
  • 45. Associações - Navegabilidade Mostra a direção de navegação, ou seja do canal de comunicação entre os objetos e classes. Uma associação é navegável da classe A para a classe B, se, dado um objeto de A, consegue-se obter de forma direta os objetos relacionados da classe B.
  • 46. Associações - Navegabilidade Empresa Mercadoria fornece Dada uma mercadoria pode-se identificar diretamente a empresa fornecedora,mas a volta não é verdadeira 0..* 0..*
  • 47. Associação Recursiva ou Reflexiva Os objetos conectados são da mesma classe
  • 48. Associação Qualificada Usadas com multiplicidades 1..* ou *. O qualificador (chave) identifica um objeto
  • 49. Associação Exclusiva Restrição em duas ou mais associações, especificando que objetos de uma classe podem participar de no máximo uma das associações ao mesmo tempo
  • 50. Associação Ordenada Especifica uma ordem entre os objetos da associação. Ex: janelas de um sistema têm que ser ordenadas na tela (uma está no topo, uma está no fundo e assim por diante). Janela Top Janela Bottom {ordenada}
  • 51. Associações de Classe Serve para adicionar informações extras a uma associação existente, quando essa possuir operações e métodos (ela é uma classe)
  • 52. Associação Ternária Envolve três classes (inclusive uma classe de associação)
  • 53. Agregação A agregação é um caso particular de associação Uma das classes é uma parte ou está contida em outra. Palavras chaves: consiste em, contém, é parte de. Dois casos: composição e compartilhamento.
  • 54. Agregação de Composição Uma classe pertence a um único composto (vive nele).
  • 55. Agregação de Compartilhamento Uma classe pode fazer parte de mais de um composto e/ou estar contida nele várias vezes.
  • 56. Generalização Relacionamento entre uma classe geral e outra mais específica (herança). A classe mais específica pode ser usada no lugar da mais geral. Generalização normal Generalização restrita: sobreposição, disjuntiva, completa e incompleta
  • 57. Generalização Normal A classe mais específica (sub-classe) herda tudo da mais geral (super-classe)
  • 58. Generalização Restrita Especifica restriçoes sobre a generalização e herança Sobreposição: nessa hierarquiva subclasses herdam de uma superclasse por sobreposição, ou seja, as sub- classes dessas poderão herdar de mais de uma sub-classe Disjuntiva
  • 59. Generalização Restrita – Sobreposição e Disjuntiva Sobreposição: nessa hierarquiva subclasses herdam de uma superclasse por sobreposição, ou seja, as sub-classes dessas podem herdar de mais de uma sub-classe. Disjuntiva: as subclasses herdam de mais de uma superclasse, mas as sub-classes dessas poderão herdar de apenas uma.
  • 61. Generalização Completa e Incompleta Uma generalização está completa se já foram especificadas todas as sub- classes até aquele ponto e está incompleta se exisitir a possibilidade de uma outra generalização.
  • 62. Dependências Conexão entre dois elementos, representando que uma mudança no elemento independente afeta o dependente.
  • 63. Refinamentos Relacionamentos entre duas descrições de uma mesma coisa, mas em níveis de abstração diferentes São usados em modelos de coordenação, ou seja, modelos que mostram como os modelos de diferentes fases se relacionam
  • 64. Identificação dos Relacionamentos Na perspectiva conceitual representam- se relacionamentos conceituais As associações são estabelecidas analisando-se os papéis. A generalização representa a hierarquia entre tipos e seus sub-tipos A agregação entre um todo e suas partes.
  • 65. Perspectiva Conceitual Associações Indicam conhecimento de um relacionamento que precisa ser preservado durante algum tempo Duração de milisegundos ou anos, dependendo do contexto
  • 66. Associações Típicas Categoria A é uma parte lógica de B (*) Item de Venda - Venda Escala - Vôo A é uma parte física de B (*) Gaveta - POST Asa - Avião A está fisicamente contido em B (*) POST - Loja Passageiro - Avião A está logicamente contido em B (*) Descrição-Item - Catálogo Vôo - Roteiro de Viagem Exemplos A é uma descrição de B Descrição-Item - Item Descrição-Vôo - Vôo A é conhecido/registrado/repor- tado/capturado em B (*) Venda - POST Reserva - Terminal de Reserva A é um item de uma transação ou relatório B Item de Venda - Venda Opção de Reserva - Reserva (*) Alta prioridade
  • 67. Associações Típicas Categoria A é uma sub-unidade organizacional de B Departamento - Loja Manutenção - Companhia Aérea A é um membro de B Operador - Loja Piloto - Companhia Aérea A usa ou gerencia B Operador - POST Piloto - Avião A se comunica com B Cliente - Operador Agente de Reserva - Passageiro Exemplos A está relacionado com uma transação B Cliente - Pagamento Passageiro - Bilhete A é possuído por B POST - Loja Avião - Companhia Aérea A é uma transação relacionada com outra transação B Pagamento - Venda Reserva - Cancelamento
  • 68. Identificando Associações Regras úteis: Focar nas associações cujo conhecimento deve ser preservado Usar nomes baseados em expressões verbais que façam sentido quando lidas no contexto do modelo Evitar mostrar associações deriváveis ou redundantes É mais importante identificar conceitos do que associações Associações demais tendem a confundir um modelo ao invés de iluminá-lo
  • 69. Adicionando Associações ao Modelo Conceitual do Sistema POST Relacionamentos fundamentais Venda Capturada-em POST Para conhecer a venda corrente, calcular total e imprimir recibo Venda Paga-por Cliente Para saber se a venda foi paga, calcular troco, e imprimir recibo Catálogo-Produto Contém Especificação-Item Para obter a especificação de um item, dado um UPC
  • 70. Aplicando a Lista Categoria A é uma parte lógica de B Item de Venda - Venda A é uma parte física de B N.A. A está fisicamente contido em B POST - Loja Item - Loja A está logicamente contido em B Especificação-Produto - Catálogo Catálogo - Loja Exemplos A é uma descrição de B Especificação-Produto - Item A é conhecido/registrado/repor- tado/capturado em B Venda (corrente) - POST Venda (completada) - Loja A é um item de uma transação ou relatório B Item de Venda - Venda
  • 71. Aplicando a Lista Categoria A é uma sub-unidade organizacional de B N.A. A é um membro de B Operador - Loja A usa ou gerencia B Operador - POST Gerente - POST A se comunica com B Cliente - Operador Exemplos A está relacionado com uma transação B Cliente - Pagamento Operador - Pagamento A é possuído por B POST - Loja A é uma transação relacionada com outra transação B Pagamento - Venda
  • 72. Eliminando Associações Redundantes Associação Operador Registra-vendas-em POST Conhecimento não exigido nos requisitos. Venda Iniciada-por Operador Conhecimento não exigido nos requisitos; derivável da associação Operador Registra-vendas-em POST. POST Inicializado-por Gerente Conhecimento não exigido nos requisitos. Venda Iniciada-por Cliente Conhecimento não exigido nos requisitos. Consideração Loja Armazena Item Conhecimento não exigido nos requisitos. Item de Venda Registra-venda-de Item Conhecimento não exigido nos requisitos.
  • 73. Preservando Associações de Compreensão Preservar apenas associações de conhecimento pode resultar num modelo que não transmite um completo entendimento do domínio Ex.: Venda Iniciada-por Cliente Remoção deixa de fora um aspecto importante do domínio— o fato de que um cliente gera uma venda Regra geral: Enfatizar associações de conhecimento, mas preservar associações que enriquecem o entendimento do domínio
  • 74. Identificação dos Relacionamentos Na perspectiva de implementação representa um canal de comunicação entre duas classes A necessidade desse canal é dada pelos diagramas de interação. Sempre que existir uma mensagem trocada entre dois objetos nesses diagramas existirá uma associação entre eles, que representa as responsabilidades das classes.
  • 75. Identificando Generalizações Quando particionar em Sub-Classes a sub-classe tem atributos adicionais de interesse a sub-classe tem associações adicionais de interesse a sub-classe será manipulada ou usada de maneira diferente da super-classe ou das outras sub-classes a sub-classe se comporta diferente da super- classe ou das outras sub-classes
  • 76. Identificando Generalizações Quando criar uma Super-Classe as potenciais sub-classes representam variações de um conceito similar as sub-classes satisfazem 100% a regra ``is-a'' todas as sub-classes possuem um atributo comum que poderá ser expresso na super- classe todas as sub-classes possuem uma associação comum que poderá ser relacionada à super-classe
  • 78. Identificando Agregações Verificar se algumas classes podem ser agrupadas em algum composto: elas são geralmente criadas/destruídas no mesmo instante. possuem relacionamentos comuns
  • 79. Identificando Agregações Verificar se alguma classe pode ser sub- dividida em partes. as partes possuem tempo de vida limitado ao tempo de vida do composto possuem relacionamentos particulares e de interesse
  • 80. Identificando Atributos Atributos devem preferencialmente representar tipos primitivos de dados ou de valores simples Ex.: Data, Número, Texto, Hora, Endereço, etc. Atributos não devem ser usados para: Representar um conceito complexo Relacionar conceitos (atributo “chave- estrangeira”)
  • 82. Um atributo deve ser de tipo não-primitivo quando: É composto de seções separadas Ex.: endereço, data Precisa ser analisado ou validado Ex.: CPF, número de matrícula Possui outros atributos Ex.: Um preço promocional com prazo de validade É uma quantidade com uma unidade Ex.: valores monetários, medidas Atributos de Tipo Não- Primitivo
  • 83. Adicionando Atributos ao Sistema POST Conceito Especificação-Produto descrição—Para mostrar na tela e imprimir no recibo. UCP—Para localizar especificação do item. preço—Para calcular o total da venda. Pagamento quantia—Para determinar se pagamento é suficiente e calcular troco. Venda data, hora—Para imprimir no recibo e registrar no log de vendas. Item de Venda quantidade—Para registrar a quantidade digitada quando há mais de um do mesmo item. Atributos e justificativa Loja nome, endereço—Para imprimir no recibo.
  • 84. Atributo Derivado Um atributo “derivado” é um atributo cujo valor pode ser deduzido a partir de outras informações Ex.: quantidade em Item de Venda—pode ser deduzido a partir da multiplicidade da associação entre Item de Venda e Item SalesLineItem /quantity ItemRecords-sale-of0..1 1..* derived attribute from the multiplicity value
  • 86. Identificação dos Métodos Os métodos são acrescentados na perspectiva de implementação e são derivados a partir dos diagramas de interação: colaboração e sequências. É útil distingüir operações de métodos. Operações é algo que se evoca sobre um objeto (a chamada do procedimento). Para realizar uma operação a classe implementa um método (o corpo do procedimento)
  • 87. Identificação dos Métodos É útil distingüir operações que alteram ou não o estado (atributos) de uma classe Não alteram: query, métodos de obtenção, getting methods Alteram: modificadores, métodos de atribuição ou fixação, setting methods
  • 88. Organização de Classes em Pacotes Lógicos Vendas Compras Adminis- tração
  • 89. Organização de Classes em Pacotes Lógicos Classes VB Global Classes de fronteira Classes de Controle Coleções Entidades Elementos Entidades Classes Entidades