Agregação ou composição?  XML
Índice dos Fóruns » Arquitetura de Sistemas
Autor Mensagem
tnaires
GUJ Master
[Avatar]

Membro desde: 22/12/2003 08:05:58
Mensagens: 1634
Localização: Natal - RN
Offline

Boa noite.

Neste exato momento, estou tendo aula de Análise e Projeto Orientado a Objetos. O professor deu o seguinte exemplo:

Computador --> Memória

Esse tipo de relacionamento, na opinião de vocês, é agregação ou composição? Por quê?

P.S. - isso não é trabalho de faculdade. Apenas não concordo com a classificação que o professor deu. Após algumas opiniões, eu posto o que ele disse.

Tarso Nunes Aires

Blog - http://cabritin.wordpress.com/
Delicious - http://delicious.com/tnaires
Twitter - @tnaires

André Fonseca
JWizard
[Avatar]

Membro desde: 23/02/2007 15:52:55
Mensagens: 2030
Offline

tnaires wrote:Boa noite.

Neste exato momento, estou tendo aula de Análise e Projeto Orientado a Objetos. O professor deu o seguinte exemplo:

Computador --> Memória

Esse tipo de relacionamento, na opinião de vocês, é agregação ou composição? Por quê?

P.S. - isso não é trabalho de faculdade. Apenas não concordo com a classificação que o professor deu. Após algumas opiniões, eu posto o que ele disse.


Oi Tarso

Pra mim isso se trata de uma Agregação, já que tirando uma memória do computador ela continua existindo e pode ser colocada em outro computador..

Pelo menos acho que essa seria a opinião que andei vendo por ai..

http://www.ericksasse.com.br/agregao-x-composio/
http://www.javafree.org/topic-862928-Associacao-Composicao-e-Agregacao.html
http://www.plugmasters.com.br/sys/materias/667/1/Escolha-o-que-usar,-Agrega%E7%E3o-ou-Composi%E7%E3o
http://www.guj.com.br/posts/list/70434.java



Você é novo no GUJ?


Como fazer perguntas?



www.twitter.com/_afonseca
Vini Fernandes
Virtual Machine Man
[Avatar]

Membro desde: 20/01/2009 08:43:02
Mensagens: 517
Offline

Bem, a seguinte situação ilustra uma agregação: voce tem uma classe Familia e uma segunda classe Pessoa, todos sabem que uma familia é composta por muitas pessoas (uma Collection de pessoas), sendo assim, temos uma relação de agregacao entre as classes Familia e Pessoa, analogamente ocorre o mesmo com as classes Computador e Memoria e nada impede que um computador possua um conjunto contendo uma unica Memoria (minha maquina é assim....rsrr).

Ate

What do you know about Java? Help me!
[MSN]
tnaires
GUJ Master
[Avatar]

Membro desde: 22/12/2003 08:05:58
Mensagens: 1634
Localização: Natal - RN
Offline

André Fonseca wrote:Oi Tarso

Pra mim isso se trata de uma Agregação, já que tirando uma memória do computador ela continua existindo e pode ser colocada em outro computador..

Pelo menos acho que essa seria a opinião que andei vendo por ai..

http://www.ericksasse.com.br/agregao-x-composio/
http://www.javafree.org/topic-862928-Associacao-Composicao-e-Agregacao.html
http://www.plugmasters.com.br/sys/materias/667/1/Escolha-o-que-usar,-Agrega%E7%E3o-ou-Composi%E7%E3o
http://www.guj.com.br/posts/list/70434.java

Eu juraria de pé junto que seria composição, mas depois da aula conversei com o professor e percebi que eu estava errado.

Eu pensava que composição ocorria quando o todo não poderia existir sem suas partes. No exemplo, não faz sentido a existência de um computador sem a sua memória - ele não funciona. Aí onde estava o meu equívoco: na composição, é a parte que não pode existir sem o todo, e não o contrário. Por exemplo, não há razão de existência para os itens de uma nota fiscal sem sua nota correspondente. Nesse caso, uma nota é composta de itens.

Conforme você mencionou - e conforme seus links apontam - na agregação o todo pode existir sem a parte. Logo, no caso do Computador --> Memória, a resposta certa é agregação.

Tarso Nunes Aires

Blog - http://cabritin.wordpress.com/
Delicious - http://delicious.com/tnaires
Twitter - @tnaires

tnaires
GUJ Master
[Avatar]

Membro desde: 22/12/2003 08:05:58
Mensagens: 1634
Localização: Natal - RN
Offline

Vini Fernandes wrote: Bem, a seguinte situação ilustra uma agregação: voce tem uma classe Familia e uma segunda classe Pessoa, todos sabem que uma familia é composta por muitas pessoas (uma Collection de pessoas), sendo assim, temos uma relação de agregacao entre as classes Familia e Pessoa, analogamente ocorre o mesmo com as classes Computador e Memoria e nada impede que um computador possua um conjunto contendo uma unica Memoria (minha maquina é assim....rsrr).

Essa definição não está precisa. Tanto agregação e composição são classes de um relacionamento TEM-UM. No caso de Família e Pessoa, tudo depende da seguinte pergunta: uma pessoa existe sem uma família? Caso sim, é agregação; caso contrário, composição.

Tarso Nunes Aires

Blog - http://cabritin.wordpress.com/
Delicious - http://delicious.com/tnaires
Twitter - @tnaires

igorCouto
What is classpath?

Membro desde: 24/09/2008 20:24:24
Mensagens: 5
Offline

Pessoal,

Agregação ou Composição depende do domínio que você está estudando/modelando.

[ ] 's

Vini Fernandes
Virtual Machine Man
[Avatar]

Membro desde: 20/01/2009 08:43:02
Mensagens: 517
Offline

Bom, conversei um pouco com uma amigo e ele me disse que soa dois conceitos há muito tempo utilizado por analistas quando estao modelando um sistema. Na verdade Composicao e Agregacao sao dois tipos distintos de uma Associacao. Encontrei um material que pode nos ajudar:

http://www.plugmasters.com.br/sys/materias/667/1/Escolha-o-que-usar,-Agrega%E7%E3o-ou-Composi%E7%E3o

abracao.

What do you know about Java? Help me!
[MSN]
maior_abandonado
JWizard
[Avatar]

Membro desde: 03/09/2007 11:30:08
Mensagens: 2413
Localização: sp
Offline

edit...

li rapido, intendi errado e falei merda....

This message was edited 1 time. Last update was at 30/01/2009 08:53:46


espero ter ajudado...

falando nisso, caso seu problema tenha sido resolvido, edite o seu primeiro post e coloque um [RESOLVIDO] no titulo do tópico.
tnaires
GUJ Master
[Avatar]

Membro desde: 22/12/2003 08:05:58
Mensagens: 1634
Localização: Natal - RN
Offline

igorCouto wrote:Pessoal,

Agregação ou Composição depende do domínio que você está estudando/modelando.

[ ] 's


É verdade. Mas qual seria a situação onde Computador --> Memória poderia ser classificado de outra forma que não fosse agregação?

Tarso Nunes Aires

Blog - http://cabritin.wordpress.com/
Delicious - http://delicious.com/tnaires
Twitter - @tnaires

fantomas
GUJ Master
[Avatar]

Membro desde: 24/04/2008 16:10:55
Mensagens: 1506
Localização: Terra (maior parte do tempo)
Offline

Minha opinião...

Acredito que o Vini Fernandes está apontando para a direção correta.

No modelo estatico, em dado momento da analise tudo entre as entidades não passa de associações; a medida que o estudo começa a evoluir o desenvolvedor adiciona mais detalhes semanticos a estas associações, no caso associação por agregação ou por composição (simplificado fica apenas agregação ou composição).

Na associação por agregação os agregados deixam de existir quando a entidade que os agrega deixa de existir no caso da composição quando a entidade que os compõe deixa de existir eles continua existindo.

O problema dos exemplos é que isso tudo é apenas conceitos que abstrai aspectos da realidade se vc se apoiar 110% no mundo "real" muitas vezes a coisa pode ficar confusa.

flws
igorCouto
What is classpath?

Membro desde: 24/09/2008 20:24:24
Mensagens: 5
Offline

Se a memória não tem identidade e existe apenas para descrever este computador. Quando o computador é excluído, ela vai junto.
luistiagos
GUJ Expert
[Avatar]

Membro desde: 10/07/2006 10:37:23
Mensagens: 3009
Offline

depende qual memoria... se for processador -> registradores a existencia dos registradores não fazem sentido sem o processador... então seria uma composição...




SCJP 1.5
SCJA 1.0
IBM DB2 Associate
[Email] [MSN]
tnaires
GUJ Master
[Avatar]

Membro desde: 22/12/2003 08:05:58
Mensagens: 1634
Localização: Natal - RN
Offline

luistiagos wrote:depende qual memoria... se for processador -> registradores a existencia dos registradores não fazem sentido sem o processador... então seria uma composição...

O exemplo por acaso está ambíguo? Processador, registradores? Estamos falando de computador e memória RAM. Além disso, um registrador continua existindo pois pode ser reutilizado em outro computador. Não é composição.

Tarso Nunes Aires

Blog - http://cabritin.wordpress.com/
Delicious - http://delicious.com/tnaires
Twitter - @tnaires

fantomas
GUJ Master
[Avatar]

Membro desde: 24/04/2008 16:10:55
Mensagens: 1506
Localização: Terra (maior parte do tempo)
Offline

Desculpem a vacilada inverti as idéias, no meu ultimo post sobre o assunto:

Corrigindo...

Na associação por agregação os agregados continuam existindo quando a entidade que os agrega deixa de existir no caso da composição quando a entidade que compõe deixa de existir os componentes que compõe deixam de existir tambem.

flws

tnaires
GUJ Master
[Avatar]

Membro desde: 22/12/2003 08:05:58
Mensagens: 1634
Localização: Natal - RN
Offline

fantomas wrote:Desculpem a vacilada inverti as idéias, no meu ultimo post sobre o assunto:

Corrigindo...

Na associação por agregação os agregados continuam existindo quando a entidade que os agrega deixa de existir no caso da composição quando a entidade que compõe deixa de existir os componentes que compõe deixam de existir tambem.

flws


Exato.
Agregação -> as partes existem sem o todo.
Composição -> as partes não existem sem o todo.

Tarso Nunes Aires

Blog - http://cabritin.wordpress.com/
Delicious - http://delicious.com/tnaires
Twitter - @tnaires

 
Índice dos Fóruns » Arquitetura de Sistemas
Ir para:   
Powered by JForum 2.1.8 © JForum Team