380 likes | 577 Views
Modelagem de Entidade/Objetos de Domínio com Diagrama de Classes. Projeto Orientada a Objetos Prof. Wolley W. Silva. Paradigma: Orientação a Objetos. Um paradigma pode ser entendido como um modelo interpretativo de certa realidade;
E N D
Modelagem de Entidade/Objetos de Domínio com Diagrama de Classes Projeto Orientada a Objetos Prof. 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. Objeto Classe Encapsulamento Herança Polimorfismo Abstração
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 A/POO • 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.
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
Representação UML 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
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.
Estratégias • Usar uma lista de categoria • Identificar substantivos ou frases nominais
Lista de categoria • Criar um lista de conceitos (objetos do domínio) candidatos a classes seguindo algumas categorias comuns:
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
Classes Associativas • Uma classe associativa permite tratar uma associação em si como uma classe e modelá-la com atributos e operações.
Classes Associativas • É 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.
Generalização Compartilhamento de características entre classes com base em um relacionamento hierárquico.
Generalização • 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 É 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.