Upload
internet
View
109
Download
1
Embed Size (px)
Citation preview
Modelagem de Entidade/Objetos de Domínio com Diagrama de Classes
Projeto Orientada a ObjetosProf. Wolley W. Silva
Paradigma: Orientação a Objetos
• Um paradigma pode ser entendido como um modelo interpretativo de certa realidade;
• Orienta a organização de ideias para o entendimento de uma realidade e o estabelecimento da melhor maneira de agir sobre ela.
Conceitos da Orientada a Objetos.
ENCAPSULAMENTO HERANÇA POLIMORFISMO
ABSTRAÇÃO
OBJETO CLASSE
Agenda
• As disciplinas de Análise e Projeto;• Identificar classes conceituais a partir da
descrição de um requisito (caso de uso);• Criar um modelo de Domínio inicial• Especificar Atributos e Associações.
As disciplinas de Análise e ProjetoOrientada aos Objetos
• AOO: enfatiza um investigação do problema e dos requisitos em vez de uma solução. Modelagem dos objetos de Domínio.
• POO: enfatiza uma solução conceitual que satisfaça os requisitos e não uma implementação. – Projetos podem ser implementados e a
implementação(o códigos) expressa o verdadeiro e completo projeto realizado.
As disciplinas de A/POO
Análise e Design - Disciplina do RUP
Modelo de Domínio
• Um modelo de domínio é um representação visual de classes conceituais, ou objetos do mundo real, em um domínio.
• Exemplo de Domínios:– Clinica Médica– Biblioteca– Loja vitual
Exemplo: Modelo de Domínio
Representação UML
Conta
NúmeroSaldodataAbertura
CriarBloquearDesbloquearCreditarDebitar
Nome da classe
Lista de atributos
Lista de métodos
Atributos
• Permite a identificação de cada objeto de uma classe;
• Os valores dos atributos podem variar de instância para instância;
• Atributos devem identificar o tipo de dado a ser armazenado:– Byte, boolean, int, double, char, String, etc.
Métodos
• Representam os comportamentos das instâncias (objetos) da classe;
• Outros diagramas permitem modelar o comportamento interno dos métodos– Diagrama de Seqüência
Tipos de Visibilidade
• Pública (+)– O atributo ou método pode ser utilizado por
qualquer classe• Protegida (#)– Somente a classe ou sub-classes terão acesso
• Privada (-)– Somente a classe terá acesso
Classe: Conta
RELACIONAMENTO ENTRE CLASSES
• Classes possuem relacionamentos entre elas afim de:– Compartilham informações– Colaboram umas com as outras
PRINCIPAIS TIPOS DE RELACIONAMENTOS
• Associação• Herança• Composição• Dependência
Associações:
• No domínio de vendas, um cliente compra produtos
Associações:
• No domínio bancário, uma conta-corrente possui um histórico de transações
Associações
• Em um hotel, os hóspedes de um ocupam quartos
Multiplicidade
• Determina o numero máximo e mínimo de objetos envolvidos em cada extremidade da associação.
Nome Simbologia
Apenas Um 1
Zero ou Um 0..1
Zero ou Muitos 0..*
Um ou Muitos 1..*
Intervalo específico 1i..1s
Multiplicidade
IDENTIFICANDO CLASSES DE DOMÍNIO
Estratégias
1. Usar uma lista de categoria2. Identificar substantivos ou frases nominais
Lista de categoria
• Criar um lista de conceitos (objetos do domínio) candidatos a classes seguindo algumas categorias comuns:
Categoria de Classes Conceituais
Exemplos
Transações de negócio Venda, Pagamento, ReservaItem de uma transação ItemDeVenda, ItemDePedidoProdutos ou serviços relacionados a uma transação
Produto, Refeição, Viagem, Filme
Papéis de pessoas ou organizações relacionadas à uma transação (atores de um caso de uso)
Caixa ou Funcionário, Cliente, Fornecedor
Eventos com uma hora e local Vôo, Aula, Reunião, Entrega
Lista de categoria
Identificar substantivos ou frases nominais
• Os substantivos e as frases nominais nas descrições textuais de domínio são consideradas classes candidatas.
Exemplo: Transportadora de Cargas
• As solicitações de viagens são recebidas por um funcionário do escritório via internet ou por telefone. O cliente deverá fornecer: o tipo de carga, volume, peso, data desejada para o carregamento, origem e destino, além de seus dados como nome, endereço e telefone.
Exemplo: Transportadora de Cargas
• As solicitações de viagens são recebidas por um funcionário do escritório via internet ou por telefone. O cliente deverá fornecer: o tipo de carga, volume, peso, data desejada para o carregamento, origem e destino, além de seus dados como nome, endereço e telefone.
Classes
Atributos
Exemplo: Transportadora de Cargas
Classes Associativas
• Uma classe associativa permite tratar uma associação em si como uma classe e modelá-la com atributos e operações.
• É uma classe que está ligada a uma associação, em vez de estar ligada a outras classes.
• É normalmente necessária quando duas ou mais classes estão associadas, e é necessário manter informações sobre esta associação.
Classes Associativas
Classes Associativas
Generalização
Compartilhamento de características entre classes com base em um relacionamento hierárquico.
• Representado com uma linha sólida e uma seta triangular grande da subclasse para a superclasse.
Generalização
• Cada instância de uma subclasse é também uma instancia indireta de sua superclasse.
• Uma subclasse herda os atributos e os métodos de sua superclasse.
Generalização
Generalização
É umaÉ uma
Exercícios
• Em Dupla• A partir da descrição dos requisitos, modelar
um diagrama de classe que representa as entidade/objetos do domínio.