TIPOS DE
RELACIONAMENTOS
GENÉRICOS
4 tipos
1. TR: ÉParteDe (parte:Entidade, todo:Entidade)
2. TR: ÉMembroDe (integrante:Entidade,
Grupo:Entidade)
3. TR: Materializa (instancia:Entidade,
especificação:Entidade)
4. TR: É PapelDe(ator:Entidade,
produção:Entidade)
Exemplo
• Seja o TR Genérico ÉParteDe (parte:Entidade,
todo:Entidade) com as seguintes três
realizações:
– {parte: Capítulo, todo:Livro}
– {parte: Parágrafo, todo: Capítulo}
– {parte: Exercício, todo: Capítulo}
• A representação no esquema conceitual:
– CapítuloDeLivro (parte: Capítulo, todo: Livro)
– ParágrafoDeCapítulo (parte: Parágrafo, todo:
Capítulo)
– ExercícioDeCapítulo (parte: Exercício, todo: Capítulo)
Representação em UML
• O TR ÉparteDe é marcado por um losango na
extremidade do TE todo
• A UML diferencia entre duas variantes do TR
ÉparteDe: agregação (losango transparente) e
composição (losango opaco)
• Os outros tipos de relacionamento podem ser
marcados pelo mecanismo de estereótipo
1-Parte - Todo
• ÉParteDe (parte:Entidade, todo:Entidade)
• ÉParteDe (p, t)
– p é parte de t.
• O monitor é parte do computador.
– t é um composto formado por p.
• O computador tem (inclui) um monitor.
• Relacionamentos parte-todo definem a estrutura
parte – todo dos objetos do domínio.
• Dicionários definem conceitos por suas partes
ou pelos todos dos quais eles são parte
Propriedades
• Anti-simétrica
– Se p é parte de t, t não pode ser parte de p.
• Transitiva
– Se p é parte de t e t parte de t2 então p é
parte de t2
• No entanto
– O braço do maestro é parte do maestro.
– O maestro é parte da orquestra.
– O braço do maestro é parte da orquestra ?
Representação em UML
1
Cidade
1
Serviço
Urbano
Serviço
Interurbano
1
0,,1
1..*
1..*
0,,1
*
Linha de
Ônibus
1..*
1..*
Parada
1..*
início 1
1..*
1..*
1
fim
1..*
Segmento
• Agregação: o todo é a “soma” de suas partes.
• Uma linha de ônibus consiste em um conjunto de
Paradas e um conjunto de Segmentos. Paradas e
segmentos podem ser parte de várias linhas de ônibus.
Uma parada é parte de uma cidade
Representação em UML
1
Cidade
1
Serviço
Urbano
Serviço
Interurbano
1
0,,1
1..*
1..*
0,,1
*
Linha de
Ônibus
1..*
1..*
Parada
1..*
início 1
1..*
1..*
1
fim
1..*
Segmento
• Composição: é uma agregação mais forte; requer que a
parte seja parte de no máximo um todo a cada tempo. A
cardinalidade do papel todo tem de ser 0..1 ou 1
• Uma linha de ônibus é parte de um serviço urbano ou
interurbano. O serviço urbano é parte de uma cidade
Aggregation
Aggregation is a kind of association that specifies a whole/part relationship between the
aggregate (whole) and component part.
This relationship between the aggregate and component is a weak “has a” relationship
as the component may survive the aggregate object.
The component object may be accessed through other objects without going through the
aggregate object.
The aggregate object does not take part in the lifecycle of the component object,
meaning the component object may outlive the aggregate object.
The state of the component object still forms part of the aggregate object.
An example of aggregation is a History-Class object contains zero or more of Student
objects. The state of each Student object has an influence on the state of the HistoryClass object. If the History-Class object is destroyed, the Student objects may continue
to exist.
Composition
Composition is a kind of association very similar to aggregation except where the
composite object has sole responsibility for the disposition of the component parts.
The relationship between the composite and the component is a strong “has a”
relationship, as the composite object takes ownership of the component. This means the
composite is responsible for the creation and destruction of the component parts.
An object may only be part of one composite.
If the composite object is destroyed, all the component parts must be destroyed, or the
reference and responsibility of the component part must be handed over to another
object.
Composition enforces encapsulation as the component parts usually are members of the
composite object
An example of composition is a House object contains zero or more Room objects. The
state of each Room object has an influence on the House object. If the House object is
destroyed, the Room objects will also be destroyed.
Compartilhamento de Partes
• partes (compartilhadas) por vários todos
• Tipos
– Local: leva em conta apenas uma realização
– Global: leva em conta todas as realizações.
• Seja R(parte:P,todo:T) um TR correspondente a
uma realização ÉParteDe
– P é localmente exclusivo em R se as instâncias de P
podem ser partes de apenas uma instância de T, ou
seja, Cmax (parte, todo, R) = 1.
– P é localmente compartilhado, caso contrário, ou
seja, Cmax (parte, todo, R) ≥ 1.
Compartilhamento de Partes
1
Cidade
1
Serviço
Urbano
Serviço
Interurbano
1
0,,1
1..*
1..*
0,,1
*
Linha de
Ônibus
1..*
1..*
Parada
1..*
início 1
1..*
1..*
1
fim
1..*
Segmento
• As partes são localmente exclusivas em 4
das realizações e localmente
compartilhadas em 2
Compartilhamento de Partes
1
Cidade
1
Serviço
Urbano
Serviço
Interurbano
1
0,,1
1..*
1..*
0,,1
*
Linha de
Ônibus
1..*
1..*
Parada
1..*
início 1
1..*
1..*
1
fim
1..*
Segmento
• Linha de ônibus e Serviço Urbano são globalmente
exclusivos. Linha de ônibus pode ser parte do Serviço
Urbano ou do Serviço Suburbano, mas não de ambos.
Parada e Segmento são globalmente compartilhadas
Dependência de Parte
1
Cidade
1
Serviço
Urbano
Serviço
Interurbano
1
0,,1
1..*
1..*
0,,1
*
Linha de
Ônibus
1..*
1..*
Parada
1..*
início 1
1..*
1..*
1
fim
1..*
Segmento
• As partes são localmente dependentes em
4 das realizações e localmente
independentes em 2
Dependência de Parte
• Seja P um TE, num dado esquema, parte
de uma ou mais realizações ÉParteDe.
– P é globalmente dependente neste esquema
se as instâncias de P são partes em pelo
menos uma dessas realizações
– P é globalmente independente, caso
contrário.
Dependência de Parte
1
Cidade
1
Serviço
Urbano
Serviço
Interurbano
1
0,,1
1..*
1..*
0,,1
*
Linha de
Ônibus
1..*
1..*
Parada
1..*
início 1
1..*
1..*
1
fim
1..*
Segmento
• Linha de ônibus, Parada, Segmento e Serviço Urbano
são globalmente dependentes. Linha de ônibus é
globalmente dependente porque suas instâncias tem de
ser parte de uma instância de Serviço Urbano ou de
Serviço Suburbano
2-Agrupamento
• ÉMembroDe (membro:Entidade;
grupo:Entidade)
• ÉMembroDe (m, g)
– m é um membro de g, ou
• Uma pessoa é um membro de um clube.
– g é uma coleção que inclui m.
• Um time inclui um jogador
• Diferentemente de ÉparteDe
– membros desempenham a mesma função (?)
– membros são independentes dos grupos (existência)
– membros são compartilhados por grupos
Propriedades
• Anti-simétrica
– Se m é um membro de g então g não pode
ser um membro de m
• Não transitiva
– Uma pessoa é membro de um partido
político.
– O partido político é membro da Frente Ampla.
– A pessoa é membro da Frente Ampla. (?)
Representação em UML
Técnico
1
«ÉMembroDe»
*
◄ «ÉMembroDe»
*
Escola
1
* Time de
Esporte
*
Aluno
*
Turma
1
*
◄ «ÉMembroDe»
• Um aluno é membro de uma Turma e pode ser
membro de vários times de esporte; um técnico
pode ser membro de vários times de esporte.
Homogeneidade
• Um TE G é um grupo homogêneo se G
desempenha o papel grupo em uma ou
mais realizações onde o papel membro é
desempenhado por apenas um TE M.
• Caso contrário, G é heterogêneo.
Homogeneidade
Técnico
1
«ÉMembroDe»
*
◄ «ÉMembroDe»
*
Escola
1
* Time de
Esporte
*
Aluno
*
Turma
1
*
◄ «ÉMembroDe»
• Turma é um grupo homogêneo; Time de
Esporte é um grupo heterogêneo.
3-Papéis
• ÉPapelDe é anti-simétrica
– se er é um papel de e, e não pode ser um papel de er
• ÉPapelDe é (considerada ser) transitiva:
– um alunoDeGraduação é um papel de Pessoa
• uma instância de um tipo papel é o papel de um
e apenas um player
• uma instância de um tipo player pode
desempenhar vários papéis:
– card (papel; player; ÉPapelDe) = (1,1)
– card (player; papel; ;EPapelDe) = (0,∞)
Pessoa
email: String
Participante
Registrado
email: String
1
*
1
1
ÉPapelDe
1
Conferência
1
◄
0..1
Participante
*
1
◄
◄
ÉPapelDe
◄ ÉPapelDe
ÉPapelDe
0..1
Organizador
email: String
0..1
Membro
da CP
1
ÉMembroDe
*
1
Comissão de
Programa
◄
1
ÉPapelDe
0..1
Presente
/email: String
• Uma instância de participante corresponde ao papel
desempenhado por uma pessoa na conferência
• Uma pessoa pode participar de várias conferências
• Ser um organizador é uma forma de participar,
portanto, organizador é um papel de Participante
• Quando os papéis são representados como
representantes eles não herdam os atributos
4-Materialização
• Materializa (materialização: Entity,
modelo: Entity)
• Ex. de realização:
– {materialização: Carro, modelo:
ModeloDoCarro}
• a entidade modelo é um modelo, tipo,
visão abstrata, especificação da entidade
materialização
Materialização
• Materializa (materialização: Entity, modelo: Entity)
• Ex. de realização:
– {materialização: Carro, modelo: ModeloDoCarro}
• a entidade modelo é um modelo, tipo, visão abstrata,
especificação (conjuntos de atributos e restrições
comuns) da entidade materialização
• outras realizações
–
–
–
–
–
produção – peça
performance – produção
assento – tipo de assento
exemplar – livro
instância de vôo – vôo
Propriedades
• Materializa é anti-simétrica
– se mat é uma materialização de mod, então mod não pode ser
uma materialização de mat
• Materializa é (considerada ser) transitiva
– se performance materializa produção e produção materializa
uma peça então performance materializa uma peça
• Uma instância do TE materialização é a materialização
de uma e apenas uma instância do TE modelo
• Uma instância do TE modelo pode ser materializado em
várias instâncias do TE materialização:
– Card (materialização, modelo, Materializa) = (1, 1)
– Card (modelo, materialização, Materializa) = (0, ∞)
Peças
título:String
autor:String
◄Materializa
1
Produção
/título:String
* início:Data
término:Data
EncenadaEm
Teatro
1
*
1
◄
1
Materializa
*
Performance
data:Data
1
Reserva
* numAssentos: *
Natural
Tipo de Assento
1
preço:Dinheiro
1
1
◄
Materializa
*
• Uma produção materializa uma peça.
• Uma performance materializa uma produção
• Uma produção é encenada no teatro.
• Um teatro classifica seus assentos em tipos.
• Um assento materializa um tipo de assento
• Uma reserva solicita um número de assentos
de um dado tipo para uma particular performance
Alocação
*
1
*
Assento
/preço:Dinheiro
numAssento:
Natural
Peças
título:String
autor:String
◄Materializa
1
Produção
/título:String
* início:Data
término:Data
EncenadaEm
Teatro
1
*
1
◄
1
Materializa
*
Performance
data:Data
1
Reserva
* numAssentos: *
Natural
Tipo de Assento
1
preço:Dinheiro
1
1
◄
Materializa
•Entidades materialização herdam
atributos, associações e restrições
de seus modelos
•Em UML podemos definir atributos e
associações herdados como derivados
•Os atributos e associações da entidade
materialização podem ser restritos pelos
atributos e associações do modelo
*
Alocação
*
1
*
Assento
/preço:Dinheiro
numAssento:
Natural
Download

Slides Aula 5