concordo contigo que o modelo de projeto deve já conter detalhes
da implementação, mas não acho elegante amarrar todo o seu modelo
a uma tecnologia. Tente desenvolver sua lógia de negócio de forma
independente e crie uma camada intermediária para resolver as 
questões de banco de dados. Com isso vc terá a flexibilidade de
mudar o seu paradigma de banco de dados no futuro alterando apenas
a camada intermediária.

Aí basta você detalhar esta camada no seu modelo de projeto. 
Pense tmb na possiblidade do uso de algum pattern, por exemplo 
o Factory, para lhe dar a maleabilidade de uso de diversos bancos
de forma facilmente configurável.

Você disse: 

"Se eu desenvolver o modelo de classes já visando um banco
relacional eu poderei minimizar as dificuldades durante a implementação do
sistema..."

mas lembre-se que flexibilidade é inversamente proporcional à
otimização e OO busca tem como pontos principais as facilidades
de manutenção, evolução, escalabilidade, flexibilidade etc.

É possível criar um esquema sóbrio e elegante o bastante de tal 
forma a não te complicar a vida na hora da implementação. Aliás, 
complicações na implementação já é sinal de que algo está errado.



By Alê!

-----Mensagem original-----
De: valter vieira de camargo [mailto:[EMAIL PROTECTED]]
Enviada em: quarta-feira, 14 de março de 2001 19:10
Para: [EMAIL PROTECTED]
Assunto: Re: RES: [java-list] Para Alexandre: implementação de
agregações e associações


Sobre as associações e agregações eu estou achando que é realmente isto:
agregação - atributo do tipo de outra classe
associação - instanciação de uma classe dentro de algum método de outra...

Quanto à abordagem do Furlan... será que se modelarmos um sistema
completamente
OO sem a preocupação com chaves, etc.... a dificuldade na implementação será
muito acentuada, você não acha ? Eu estou desenvolvendo um projeto de
mestrado e
quero fazer da maneira certa entende ? A minha outra preocupação é quanto ao
projeto ..... no modelo de classes de análise tudo bem ... mas o meu modelo
de
classes de projeto tem que ter alguma coisa relacional....


Alexandre Rodrigues Gomes wrote:

> Valter,
>
> na implementação acho que poderíamos resumir na seguinte forma:
> para agregar, utilizaremos atributos de instância, ou seja,
> "variáveis globais" e para associação podemos criar apenas
> variáveis locais de métodos. Será que é plausível esta abordagem ?
> Se bem que podemos ter atributos de classe que não são verdadeiras
> agregações mas apenas realizam papel associativo. Acho que
> isto é bem conceitual mesmo. O pessoal da lista podia dar
> uma forcinha.....
>
> Quanto àquela abordagem do Furlan, eu questiono um pouco.
> Ora, temos hoje que o que se busca é a independência da fonte
> de dados. Devemos abstrair a forma com que a base de informações
> será implementada, nos deter apenas numa interface pré-definida
> e deixar as questões peculiares de cada banco com uma camada
> de software que realize o mapeamento OO/Relacional. Amarrar
> o seu modelo de negócios numa solução única de backend é
> limitar seu processo de desenvolvimento à não escalabilidade
> e evolução.
>
> By Alê!
>
> -----Mensagem original-----
> De: valter vieira de camargo [mailto:[EMAIL PROTECTED]]
> Enviada em: quarta-feira, 14 de março de 2001 10:48
> Para: [EMAIL PROTECTED]
> Assunto: [java-list] Para Alexandre: implementação de agregações e
> associações
>
> Ok... Alexandre ...
>               É justamente no ponto da implementação a minha
preocupação....
>               Gostei do que você disse e acho que realmente está certo.
> Minhas dúvidas eram mais quanto à  implementação das associação. E também
> ach
> oque é assim que funciona.... isto é, dentro de uma classe , instancio uma
> outra e a utilizo para cumprimento das responsabilidades da primeira.
>         No caso da agregação, um atributo da classe é do tipo de outra....
>         É isto, não é ?
>
>         Agora veja bem.
>
>         Em um livro de UML do Furlan, encontrei que para se fazer a
> normalização de um modelo de classes, visando o projeto é claro, deve-se
> basear em algum tipo de banco de dados será utilizado. Se os dados do meu
> sistema serão persistidos utilizando BD OO a normalização se dá sem a
> preocupação das chaves primárias e estrangeiras... mas quando o me sistema
> utiliza BD relacional devo me preocupar com isso... só que ele apenas
> exemplifica a normalização utilizando BD OO. Você sabe alguma coisa sobre
> essas normalizações com BD relacional ?
>
> []'s Valter.
>
> Alexandre Rodrigues Gomes wrote:
>
> > Valter,
> >
> > no nível de linguagem, tanto agregação quando associação
> > se dão de maneiras similiares. O que as distingue é o seu
> > modelo. Na UML, a associação é feita apenas com uma linha
> > ligando as classes envolvidas enquanto que a agregação é
> > uma linha com um losango na ponta da classe agregadora.
> >
> > Conceitualmente, deveria-se utilizar agregação quando o
> > propósito de uma classe for o de encapsular o funcionamento
> > de algum objeto, ou seja, ele será parte constituinte daquela
> > classe. No caso da associação, a classe apenas tem conhecimento
> > de alguma outra classe e faz uso de alguma instância desta para
> > completude de suas responsabilidades.
> >
> > No primeiro capítulo do livro do Gamma (Design Patterns),
> > ele dá uma descrição legal sobre a utilização destas duas
> > alternativas.
> >
> > Abraços,
> > By Alê!
> >
> > -----Mensagem original-----
> > De: valter vieira de camargo [mailto:[EMAIL PROTECTED]]
> > Enviada em: terça-feira, 13 de março de 2001 19:38
> > Para: [EMAIL PROTECTED]
> > Assunto: [java-list] implementação de agregações e associações
> >
> >         Visto que é comum a utilização de linguagens orientadas a
> > objetos e banco de dados relacionais, pretendo estipular um padrão de
> > implementação para tais casos de modelagem.
> >         Estou desenvolvendo uma pesquisa com java e SyBase e devido as
> > diferenças entre os dos paradigmas algumas dúvidas surgem.
> >         Eu gostaria de saber a diferença entre a implementação de um
> > modelo de classes com agregação e com associação. Percebo que a
> > agregação é fácil identificar, isto é, quando uma classe possui um
> > atributo cujo tipo é de outra classe. Mas e quando temos uma associação
> > ? Como vocês implementam uma associação sendo fiel à documentação ?
> >
> > Valter
> >
> > ------------------------------ LISTA SOUJAVA
----------------------------
> > http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP
> > dúvidas mais comuns: http://www.soujava.org.br/faq.htm
> > regras da lista: http://www.soujava.org.br/regras.htm
> > para sair da lista: envie email para
[EMAIL PROTECTED]
> >
-------------------------------------------------------------------------
> >
> > ------------------------------ LISTA SOUJAVA
----------------------------
> > http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP
> > dúvidas mais comuns: http://www.soujava.org.br/faq.htm
> > regras da lista: http://www.soujava.org.br/regras.htm
> > para sair da lista: envie email para
[EMAIL PROTECTED]
> >
-------------------------------------------------------------------------
>
> ------------------------------ LISTA SOUJAVA ----------------------------
> http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP
> dúvidas mais comuns: http://www.soujava.org.br/faq.htm
> regras da lista: http://www.soujava.org.br/regras.htm
> para sair da lista: envie email para [EMAIL PROTECTED]
> -------------------------------------------------------------------------
>
> ------------------------------ LISTA SOUJAVA ----------------------------
> http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP
> dúvidas mais comuns: http://www.soujava.org.br/faq.htm
> regras da lista: http://www.soujava.org.br/regras.htm
> para sair da lista: envie email para [EMAIL PROTECTED]
> -------------------------------------------------------------------------


------------------------------ LISTA SOUJAVA ---------------------------- 
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP 
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED] 
-------------------------------------------------------------------------

------------------------------ LISTA SOUJAVA ----------------------------
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED]
-------------------------------------------------------------------------

Responder a