22
ANÁLISE PROJETO E PROGRAMAÇÃO PARA WEB Profª. Maria Alice Jovinski CLASSE DE ASSOCIAÇÃO, DEPENDÊNCIA E NORMALIZAÇÃO DO MODELO DE CLASSES

Aula classe de associacao 3º periodo uniao

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Aula classe de associacao 3º periodo uniao

ANÁLISE PROJETO E

PROGRAMAÇÃO PARA WEB

Profª. Maria Alice Jovinski

CLASSE DE ASSOCIAÇÃO, DEPENDÊNCIA E

NORMALIZAÇÃO DO MODELO DE CLASSES

Page 2: Aula classe de associacao 3º periodo uniao

FASES DA CONSTRUÇÃO DO DIAGRAMA

Classes Associações Atributos Generalização e Especialização

Refinamento do modelo

Classes candidatas e rejeitadas

Page 3: Aula classe de associacao 3º periodo uniao

IDENTIFICAÇÃO DAS CLASSES (1)

Cada classe só deve ter uma representa um objeto,

conceito ou evento, só deve ter propriedades

associadas a um único “tema”;

A primeira abordagem consiste em, a partir dos

requisitos, procurar substantivos que nele estejam

referenciados, mesmo que de forma implícita.

Cada substantivo ou cada “tema” presente deve

ser examinado, em termos da importância de

armazenarmos informação sobre ele na BD;

Page 4: Aula classe de associacao 3º periodo uniao

IDENTIFICAÇÃO DAS CLASSES (2)

Substantivos que produzam classes irrelevantes

para o problema a resolver, deverão ser eliminadas

da escolha preliminar assim como classes

redundantes;

Devemos ter cuidado com os nomes escolhidos

para as classes. Se tivermos diversos substantivos

parecidos, devemos escolher o que melhor se

encaixe ao domínio do nosso problema;

Page 5: Aula classe de associacao 3º periodo uniao

IDENTIFICAÇÃO DAS CLASSES (3)

Cada classe potencial dever ser examinada em

termos das suas propriedades. Se uma classe

assegura a existência de uma propriedade

importante, deve ser mantida. Se não assegurar, se

a classe servir apenas para fornecer um valor,

deverá ser transformada num atributo;

O teste de cada um dos mecanismo de interação

entre o utilizador e o sistema, em princípio,

permitirá determinar classes em falta;

Page 6: Aula classe de associacao 3º periodo uniao

IDENTIFICAÇÃO DE ASSOCIAÇÕES (1)

Não podemos esquecer que uma associação descreve uma relação conceitual ou física entre classes;

Para procurar essa dependência, um bom ponto de partida podem ser frases que contenham verbos usados numa estrutura substantivo-verbo-substantivo (“Uma venda é paga com um meio de pagamento”) . No entanto uma frase como “um meio de pagamento é o cartão de crédito ou um cheque ou dinheiro”, usa um verbo mas descreve uma relação do tipo “é um”, pelo que descreve uma generalização;

Page 7: Aula classe de associacao 3º periodo uniao

IDENTIFICAÇÃO DE ASSOCIAÇÕES (2)

Procurar dependências, uma dependência entre

classes pode ser uma associação (um voo chega

ou parte a um aeroporto). Algumas associações

podem resultar de conhecimentos gerais;

Uma vez identificadas associações “candidatas”,

deverão ser eliminadas as redundantes e as

irrelevantes para o problema (aquelas que não têm

associada informação importante para a BD);

Deverá procurar evitar-se associações ternárias;

Page 8: Aula classe de associacao 3º periodo uniao

IDENTIFICAÇÃO DE ASSOCIAÇÕES (3)

Cuidado com os nomes atribuídos às associações.

Os nomes são importantes para tornar clara a

natureza da relação entre as classes;

Definir a multiplicidade de cada associação e os

nomes dos papéis desempenhados;

A revisão dos mecanismos de interação entre os

utilizadores e o sistema permitirá detectar

associações em falta;

Page 9: Aula classe de associacao 3º periodo uniao

IDENTIFICAÇÃO DE ATRIBUTOS EM CLASSES E

ASSOCIAÇÕES (1)

Uma vez definida uma estrutura base de classes e

associações, a especificação de requisitos deve ser

percorrida, no sentido de identificar as propriedades

de cada classe e associação. Muitas vezes são

listadas explicitamente (“cada venda terá um recibo

com nº, data e hora de emissão”);

As frases possessivas e as enumerações são

“fontes” de atributos;

Page 10: Aula classe de associacao 3º periodo uniao

IDENTIFICAÇÃO DE ATRIBUTOS EM CLASSES E

ASSOCIAÇÕES (2)

Manter apenas os atributos que são relevantes para

a aplicação;

Notar atributos discordantes numa dada classe. Isso

pode ser uma indicação de que a classe necessita de

ser dividida;

Uma classe deve ser simples e coerente;

Page 11: Aula classe de associacao 3º periodo uniao

DETECÇÃO DE GENERALIZAÇÃO /

ESPECIALIZAÇÃO

As classes devem ser analisadas para determinar a necessidade de serem generalizadas (baixo para cima) ou especializadas;

Cada classe só deve ser especializada se tiver atributos distintos, não basta que tenha valores distintos para os mesmos atributos;

Frase do tipo “é uma” “é um” podem indicar generalização;

Também se pode tentar encontra classes que tenham atributos semelhantes, que possam ser agrupados em super-classes;

Page 12: Aula classe de associacao 3º periodo uniao

REFINAMENTO DO MODELO

Revisão e melhoria da modelagem;

Page 13: Aula classe de associacao 3º periodo uniao

CLASSE DE ASSOCIAÇÃO

É um elemento de modelagem que tem associação e propriedades de classe;

É um único elemento do modelo e tem apenas um nome;

Em caso de multiplicidade de associação 1 para 1 basta uma classe para representar a situação, fundindo os atributos e operações;

Em caso de multiplicidade de associação 0 para 1 ou * para *, nasce a classe associativa;

Page 14: Aula classe de associacao 3º periodo uniao

É representada como o símbolo de classe anexado por

uma linha tracejada;

Classe BClasse A

Nome da classe de associação

atributos

operacao

CLASSE DE ASSOCIAÇÃO

Page 15: Aula classe de associacao 3º periodo uniao

DEPENDÊNCIA

Indica a ocorrência de um relacionamento

semântico entre dois ou mais elementos do modelo

onde uma classe cliente é dependente de algum

serviço da classe fornecedora;

Não possui dependência estrutural;

Mudanças na classe fornecedora podem afetar as

classes clientes;

Classe

Cliente

Classe

Fornecedora

Dependência

Page 16: Aula classe de associacao 3º periodo uniao

TIPOS DE DEPENDÊNCIA

Rastro

Uma conexão histórica entre dois elementos que

representam o mesmo conceito em níveis diferentes de

significado;

Refinamento

Um histórico ou conexão de derivação entre dois elementos

com um mapeamento entre eles;

Page 17: Aula classe de associacao 3º periodo uniao

TIPOS DE DEPENDÊNCIA

Ligação

Uma ligação de parâmetros de modelo para valores reais

visando criar um elemento não parametrizado;

Uso

Uma situação na qual um elemento requer a presença de

outro para sua implementação e funcionamento correto.

Exemplo: chamar uma operação de outra classe,

conceder permissão de acesso, instanciar um objeto de

outra classe;

Page 18: Aula classe de associacao 3º periodo uniao

NORMALIZAÇÃO

É um processo normal que examina os atributos de

classes com o intuito de minimizar redundância de

objetos específicos;

Simplifica os atributos dentro das classes, colabora

para a integridade e a estabilidade do modelo;

Alguns atributos determinam o valor de outros,

criando relações onde os atributos determinantes

são reagrupados;

Page 19: Aula classe de associacao 3º periodo uniao

NORMALIZAÇÃO

Dependente da modelagem de banco de dados;

Um estrutura de atributos não normalizada está na

zeríssima forma normal;

Page 20: Aula classe de associacao 3º periodo uniao

1ª FORMA NORMAL

Remoção de grupos repetidos;

É verifica quando em determinadas estruturas de

atributos existem dados repetidos;

Exemplo:Pedido

numero_pedido

codigo_pedido

nome_cliente

data_pedido

codigo_produto[15]

quantidade_produto[15]

descricao_produto[15]

Page 21: Aula classe de associacao 3º periodo uniao

1ª FORMA NORMAL

Aplicando a 1ª forma normal gera a classe Pedido

Item que herdará os valores repetidos da classe

Pedido;

A relação é de agregação de pedido item com

pedido;

Pedido

numero_pedido

codigo_pedido

nome_cliente

data_pedido

Pedido Item

codigo_produto[15]

quantidade_produto[15]

descricao_produto[15]

1 1..*

Page 22: Aula classe de associacao 3º periodo uniao

1ª FORMA NORMAL

Como obter a 1ª forma normal:

Verificar se há atributos repetidos na classe;

Destacar os atributos repetidos e suas respectivas

operações, criando uma nova classe com esses itens;

Estabelecer a associação de agregação regular e

multiplicidade entre as classes;