Refinando o Modelo Conceitual

Introdução
- Apresentam-se idéias adicionais associadas à modelagem conceitual
Tipos Associativos
- Quando uma Loja usa um Serviço de Autorização, a comunicação envolve uma
Identificação de Lojista
- Onde seria armazenado o atributo?
- Não pode ficar na Loja, pois a identificação é diferente para cada Serviço
- Não pode ficar no Serviço, pois a identificação é diferente para cada Loja
(Lojista)
- Podemos modelar isso com um tipo associativo (ou Tipo de Associação)

- Regras: quando usar um tipo associativo?
- Um atributo está relacionado com uma associação
- Instâncias do tipo associativo têm tempo de vida dependentes da associação
- Há uma associação muitos-para-muitos entre dois conceitos e há informação
associada à associação em si
- Há uma única instância do tipo associativo para uma associação envolvendo dois
conceitos
- Exemplo fácil para os alunos: Modele o domínio de problema envolvendo Aluno,
DescriçãoDeDisciplina, DisciplinaCursada, etc. Onde vai o conceito recebido numa
disciplina cursada?
Agregação e composição
- A agregação é uma associação que modela um relacionamento todo-parte
- O "todo" é chamado composite
- As partes não têm nome padronizado (parte, componente, elemento, ...)
- Exemplo: todo = mão, partes = dedos
- Agregação na UML

- Agregação composta
- A cardinalidade do lado composite é 1
- O losango é cheio (preto)
- Significa que o composite possui as partes sozinho, sem compartilhamento
- Agregação compartilhada
- A cardinalidade do lado composite pode ser maior que 1
- Significa que uma parte pode estar em mais de um composite
- Exemplo no domínio de desenho gráfico

- Regras para identificar agregação
- O tempo de vida das partes está incluso no tempo de vida do composite
- Tem uma relação óbvia de todo-parte ou montagem lógica
- Algumas propriedades do composite se propagam para as partes
- Operações aplicadas ao composite propagam paraa as partes
- Exemplos: movimento, destruição, ...
- Usa ou não usar agregação nos diagramas
- Não é muito importante e pode ser excluído ao construir um modelo conceitual
- As vantagens são mais importantes durante a fase de projeto
- Durante o projeto, a agregação
- Identifica mais claramente dependências de tempo de vida
- Ajuda a identificar o criador das partes (padrão Creator)
- Alerta para a possível propagação de operações
- Exemplo: clone, ou Deep Copy
- Agregação no estudo de caso

Nomes de papeis na associações
- O uso de nomes de papeis, de cada lado de uma associação é possível mas não
obrigatório

Associações qualificadas
- Numa associação, um qualificador ajuda a determinar um ou
mais objetos do lado destino de uma associação
- Exemplo: UPC é usado (conceitualmente) para identificar Especificações de Produtos
dentro de um Catálogo de Produtos
- Observe que a cardinalidade foi afetada

- Cuidado! Já que estamos na análise, uma associação qualificada apenas pode ajudar a
entender o modelo melhor
- Nada significa sobre a escolha de chaves de recuperação no projeto
anal2-6 programa anterior
próxima