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
FASES DA CONSTRUÇÃO DO DIAGRAMA
Classes Associações Atributos Generalização e Especialização
Refinamento do modelo
Classes candidatas e rejeitadas
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;
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;
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;
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;
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;
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;
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;
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;
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;
REFINAMENTO DO MODELO
Revisão e melhoria da modelagem;
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;
É 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
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
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;
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;
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;
NORMALIZAÇÃO
Dependente da modelagem de banco de dados;
Um estrutura de atributos não normalizada está na
zeríssima forma normal;
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]
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..*
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;