TREINAMENTO - BOAS PRATICAS DE HIGIENE NA COZINHA.ppt
Análise de projeto e programação para web - Classes, associações e normalização
1. ANÁLISE PROJETO E
PROGRAMAÇÃO PARA WEB
CLASSE DE ASSOCIAÇÃO, DEPENDÊNCIA E
NORMALIZAÇÃO DO MODELO DE CLASSES
Profª. Maria Alice Jovinski
2. FASES DA CONSTRUÇÃO DO DIAGRAMA
Generalização e Refinamento
Classes Associações Atributos
Especialização do modelo
Classes candidatas e rejeitadas
3. 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;
4. 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;
5. 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;
6. 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;
7. 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;
8. 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;
9. 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;
10. 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;
11. 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;
13. 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;
14. CLASSE DE ASSOCIAÇÃO
É representada como o símbolo de classe anexado por
uma linha tracejada;
Classe A Classe B
Nome da classe de associação
atributos
operacao
15. 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;
Dependência
Classe Classe
Fornecedora Cliente
16. 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;
17. 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;
18. 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;
19. NORMALIZAÇÃO
Dependente da modelagem de banco de dados;
Um estrutura de atributos não normalizada está na
zeríssima forma normal;
20. 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]
21. 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 Pedido Item
numero_pedido
1 1..* codigo_produto[15]
codigo_pedido quantidade_produto[15]
nome_cliente descricao_produto[15]
data_pedido
22. 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;