Eu usaria um critério menos formal.
Um Livro pode ou não ter uma Errata [A Errata pode ou não fazer parte do livro]. Então será uma associação simples ou agregação a depender do nível de associação que você queira dar.
Pouca associação, num contexto mais geral, associação simples. Muita associação, num contexto mais geral, então é uma agregação.
Um livro precisa de pelo menos um Autor para existir e também assumir a autoria. O autor pode até ajudar a distinguir livros com nomes iguais. Então é uma composição. Um livro sem autor, mesmo desconhecido, nunca existiria.
Autor: desconhecido. Mas a composição não deixa de existir.
A mesma coisa serve para um Produto que não existiria se não fosse feito pelo Fabricante. É uma composição.
Mas a associação não tem muito haver com os atributos do objeto.
O fato do Carro ser composto de rodas não exige um atributo do tipo Rodas. O que o atributo diz é algo semantico: “Um carro é composto por rodas”, 'Um carro é composto por motor". Mas os atributos, formas de implementação, podem ser construídos de várias formas. Exemplo: atributo Roda[4] rodas. atributo List rodas. atributo Rodas[4] pneus.
Então não confundam a associação com a exigência de determinado atributo.
Uma prova é um objeto cujos atributos são: cabeçalho, título, questões.
A aplicação de uma prova depende de alguns objetos: a prova, o local, o tipo de prova, etc.
Prova
- cabeçalho
- título
- questões
- Disciplina disciplina
AgendaProva/AplicaçãoProva
- id
- Prova prova
- Local local
- DataHora datahora
- Turma turma
- PeriodoLetivo periodo
Uma prova está agregada a uma disciplina. “É a prova X da disciplina de biologia”.
A Aplicação de uma prova é composta da prova, local de realização, data, turma e periodo letivo em que ela será realizada. A aplicação da prova vai ocorrer de acordo com estes moldes.
Obserque que embora prova tenha vários atributos, eu não preciso incluí-los na associação. Pois, associação não implica em atributos. Já na Aplicação a relação é tão forte que cada associação tem um atributo que o relaciona ao objeto Aplicação.
eu faria uma modelagem semelhante a esta
[quote=pgnt]Legal o tópico, estou com dois casos de associações que gostaria que avaliassem
CASO 1: Autor X Livro X Errata
O autor publica o Livro porém o Livro não é composto pelo autor - neste caso é uma associação simples.
Já uma Errata só existe se houver Livro, a não existência do Livro faz a Errata perder o sentido - é então um caso de composição.
Engraçado neste caso é que a Errata pode ou não compor o Livro, já que um livro pode existir sem Errata. Nestas condições está certo tratar Errata como composição mesmo?
CASO 2: Prova X Local da prova (Sala de Aula)
Eu não preciso da Sala de Aula para compor a Prova, é uma associação normal (ok?!)
MAS
Se eu disser que a Prova de biologia só pode ser aplicada na Sala de biologia, como ficaria essa Associação, alguém sabe?
Valeu!
abs
[/quote]