UML: Duvida em Diagrama de Classes

Galera sou novo em modelagem em UML e estou com uma duvida. Seguinte, tenho uma classe que faz parte da composição(todo/parte), e ela é a ‘parte’ da outra classe principal(“todo”). porem surgiu agora a necessidade de essa classe fazer parte de outra composicao todo/parte e nao sei se pode fazer isso. Segue um exemplo:

1º - “Cliente” tem um ou mais “endereco” --> composicao onde a parte forte é "Cliente"
2º - “Empresa” tem um “endereco” --> composicao onde a parte forte é “Empresa”

Note nesse exemplo que a classe Empresa surgiu dp e tbm precisa de um endereco, porem a classe endereco ja esta em outra composicao. A duvida é, posso criar uma segunda composicao envolvendo a classe endereco?Ou seria melhor criar outra classe “endereco”?

Obrigado.

Se eu entendi a sua dúvida, não é incorreto, na sintaxe, uma classe se relacionar com n classes.

Se você possui uma classe Endereco, ela será utilizada na composição/agregação tanto de Cliente quanto de Empresa.

[]'s

Obrigado pela resposta amigo. Sei que a nivel d banco de dados e relacionamento entre as classes(programaçao) isso eh mais que comum. Porem, nunca vi uma representacao em diagrama de classes assim, pesquisei bastante na net e nao achei esse caso. Fiquei entao com medo d ser “errado” representar um relacionamento duplo d composicao com mesma classe em UML.

Obrigado.

Na ultima parte desse resumo, ele cita um exemplo que ilustra o que estavamos conversando.

[]'s

Vou analisar, obrigado pela ajuda

Tanto a empresa quanto o Cliente podem se associar a um endereço.

O que eu não entendi foi esse teu exemplo…pq vc citou uma composição entre Cliente e Endereço???

Se o cliente for embora do endereço, o endereço não existirá mais???

Pense nisso…

hah e dê uma olhada neste link…

http://www.ericksasse.com.br/agregao-x-composio/

Sim, se eu remover o cliente o endereço tbm sera apagado. Nao existe uma tabela fixa de endereco onde o usuario vai poder escolher e selecionar pois nao tem necessidade, entao o endereco e cadastrado especificamente para o cliente em questao. Ou seja, apagou cliente, apagou endereco. Porem como a ideia e um sistema que possa ser alugado para varias empresas, surgiu a necessidade de cadastrar a empresa que esta usando o sistema, para que possa usar esses dados nos relatorios emitidos, onde vai constar o endereco e etc da empresa que esta emitindo. Por isso usei a composicao, e preciso d composicao duas vezes usando o “endereco”. Como nunca vi esse exemplo em UML fiquei achando q nao era certo representar assim em UML.

Obrigado

Então kra, pra vc não deixar isso assim…cria atributos dentro da classe cliente e empresa…tipo…

Endereço
Número
Complemento
CEP

por aih vai…pq vc ter uma classe q vai ser feita pra fazer a mesma coisa q os atributos e vc vai excluir o cliente e não vai usar o endereço, então não é necessário tê-lo.