Modelagem Conceitual Orientada a Objetos Classes e Tipos Classe

Propaganda
Modelagem Conceitual
Orientada a Objetos
Fernanda Baião
UNIRIO
Material parcialmente extraído a partir das notas de aula de
Maria Luiza M. Campos, Arnaldo Vieira e Maria Cláudia Cavalcanti
1
Classes e Tipos
„
„
Classe: conjunto de objetos descritos pelo
mesmo conjunto de propriedades.
Tipo: conjunto de propriedades que
descreve os objetos de uma classe.
Os objetos da classe Empregado podem ser representados por
diferentes tipos, isto é, por diferentes conjuntos de propriedades:
Tipo 1: (Matrícula, Nome, Endereço)
Tipo 2: (CPF, Nome, Endereço, Telefone, Lotação)
2
Classe x Tipo x Instância ...
A Classe Mulher
Nome
o tipo
Mulher
Idade
Cidade
duas instâncias
da classe
Mulher
M. Esteves
20
S. Paulo
L. Rocha
16
Rio de Janeiro
3
Mecanismo de Abstração
„
Processo mental que seleciona algumas
propriedades de um conjunto de objetos e
exclui outras irrelevantes em um dado
contexto.
Def. do Michaelis: Velocípede de
duas rodas iguais, movido a pedal .
o conceito
de bicicleta
a figura de uma bibicleta é uma
representação dessa abstração ! O texto
com uma definição de dicionário também é.
4
Abstração por Classificação
„
„
Define um conceito abstrato (CLASSE), a
partir de uma coleção de OBJETOS do
mundo real, caracterizados por
propriedades comuns.
Estabelece um relacionamento “é membro
de”, entre a classe e seus objetos.
oo conceito
conceito de
de bicicleta
bicicleta define
define aa classe
classe cujos
cujos
membros
membros compartilham
compartilham uma
uma série
série de
de propriedades
propriedades
comuns
comuns aa todas
todas as
as bicicletas
bicicletas do
do universo.
universo.
5
Abstração por Classificação
BICICLETA
É membro de
Por exemplo: definida a classe BICICLETA através do
mecanismo de abstração por classificação, pode-se dizer que
a bicicleta vermelha da Bia, a bicicleta verde do Dudu e a
bicicleta azul da Lulu são membros desta classe.
6
Diferentes Classificações de
um Objeto
MESA
Mesa preta
CADEIRA
Mesa amarela
Cadeira preta
MOBÍLIA PRETA
Cadeira amarela
MOBÍLIA AMARELA
7
Abstração por Agregação
„
Define uma nova classe a partir de um conjunto
de outras classes que representam suas partes
componentes.
„
„
„
objetos são agregações de objetos de outras classes
Os objetos incluídos em uma agregação representam as
partes componentes do objeto da nova classe.
Estabelece um relacionamento “é parte de” entre a nova
classe e seus membros.
aaclasse
podeser
serdefinida
definidaatravés
atravésdo
doconjunto
conjuntode
de
classebicicleta
bicicletapode
componentes
pedal eeguidon
guidon
componentesroda
roda,,pedal
8
Exemplo
BICICLETA
é_membro_de
é_parte_de
...
é_membro_de
RODA
PEDAL
...
GUIDON
9
Abstração por Agregação
BICICLETA
é_parte_de
RODA
PEDAL
GUIDON
As classes RODA, PEDAL e GUIDON são partes da classe
BICICLETA
Os objetos das classes RODA, PEDAL e GUIDON podem ser
compartilhados?
Se um objeto bicicleta é formado por uma roda, um pedal e um
guidon, podemos dizer que temos uma bicicleta?
10
Abstração por Generalização
„
Define uma nova classe, a partir da abstração
das diferenças entre os objetos de duas ou
mais classes.
„
„
cada classe participante é um subconjunto da nova
classe.
As propriedades da classe mais genérica são
compartilhadas pelas classes mais específicas
aaclasse
umageneralização
generalizaçãodas
dasclasses
classesbicicleta
bicicleta eecarro.
carro.
classeveículo
veículoéé uma
..
aaclasse
pessoa
é
uma
generalização
das
classes
homem
e
mulher.
classe pessoa é uma generalização das classes homem e mulher.
11
Cobertura de Generalizações
total, exclusiva (t,e)
PESSOA
parcial, exclusiva (p,e)
VEÍCULO
AUTOMÓVEL
HOMEM
MULHER
BICICLETA
total, inclusiva (t,i)
ESTUDANTE
MESTRADO
GRADUAÇÃO
parcial, inclusiva (p,i)
ESPORTISTAS DO CLUBE
JOGADOR
DE TÊNIS
JOGADOR
DE FUTEBOL
12
Mais exemplos de Parcial
inclusiva...
PROFISSÕES ou
PROFISSIONAIS?
PROFESSOR
ENGENHEIRO
ALUNOS DA UNIVERSIDADE
POR CURSO OU POR SEXO?
ALUNOS
COMP.
ALUNOS
HOMENS
13
Associação Binária ...
„
estabelece um mapeamento entre
os elementos de duas classes.
z utiliza é uma associação binária entre as
classes pessoa e apartamento.
z possui é uma outra associação binária entre
as classes pessoa e apartamento.
z dirige é uma associação binária entre as
classes pessoa e automóvel.
14
Associação Binária
PESSOA
UTILIZA
POSSUI
PESSOA
APARTAMENTO
APARTAMENTO
PESSOA
utiliza
p1
p2
p3
APARTAMENTO
possui
a1
a2
a3
a4
p1
p2
p3
a1
a2
a3
a4
15
Cardinalidade
„
Seja a associação binária A entre as
classes C1 e C2:
„ a cardinalidade mínima de C1/C2 em A é definida
como o número mínimo de mapeamentos nos quais
cada elemento de C1/C2 pode participar.
„ a cardinalidade máxima de C1/C2 em A é definida
como o número máximo de mapeamentos nos
quais cada elemento de C1/C2 pode participar.
16
Cardinalidade Mínima
PESSOA
APARTAMENTO
utiliza
„
a1
p1
a2
p2
a3
p3
„
a4
PESSOA
APARTAMENTO
„
possui
a1
p1
a2
p2
„
a3
p3
a4
se assumirmos que cada pessoa utiliza
pelo menos um apartamento:
min-card (pessoa, utiliza) = 1.
se assumirmos que alguns apartamentos
podem não ser habitados:
min-card (apartamento, utiliza) = 0.
se assumirmos que todo apartamento
tem pelo menos um proprietário:
min-card (apartamento, possui) = 1.
se assumirmos que algumas pessoas não
possuem apartamentos:
min-card (pessoa, possui) = 0.
17
Cardinalidade Máxima
PESSOA
APARTAMENTO
„
utiliza
a1
p1
a2
p2
a3
p3
PESSOA
„
a4
p2
p3
max-card (pessoa, utiliza) = n.
se assumirmos que um apartamento
pode ter vários habitantes:
max-card (apartamento, utiliza) = n.
APARTAMENTO „ se assumirmos que uma pessoa pode
possuir vários apartamentos:
possui
p1
se assumirmos que uma pessoa pode
utilizar vários apartamentos:
a1
a2
a3
a4
„
max-card (pessoa, possui) = n.
se assumirmos que um apartamento só
pode ter um único proprietário:
max-card (apartamento, possui) = 1.
18
Cardinalidade Máxima
A
C1
C2
C1 max-card (C1, A) = 1 max-card (C1, A) = n
C2
max-card (C2, A) = 1
um-para-um
um-para-muitos
max-card (C2, A) = n
muitos-para-um
muitos-para-muitos
19
Cardinalidade
C1
1:1
C2
um-para-um
C1
C1
1:n
C2
um-para-muitos
C2
C1
C2
m:1
m:n
muitos-para-um
muitos-para-muitos
20
Associação n-ária ...
„
estabelece um mapeamento entre
os elementos de três ou mais
classes.
sessão é uma associação ternária
entre as classes disciplina, dia e sala.
SESSÃO
DISCIPLINA
DIA
SALA
21
Cardinalidade
„
Seja a associação n-ária A entre as classes
C1, C2, …, Cn :
„ a cardinalidade mínima de Ci em A é definida
como o número mínimo de mapeamentos nos quais
cada elemento de Ci pode participar.
„ a cardinalidade máxima de Ci em A é definida
como o número máximo de mapeamentos nos
quais cada elemento de Ci pode participar.
22
Cardinalidade
„
se assumirmos que cada dia da semana pode ter
nenhuma ou muitas sessões de aula:
min-card (dia, sessão) = 0
max-card (dia, sessão) = n
card (dia, sessão) = (0, n)
„
se assumirmos que cada disciplina pode ter de
uma a três sessões por semana:
„
se assumirmos que cada sala de aula comporta no
máximo 40 sessões por semana:
card (disciplina, sessão) = (1, 3)
card (sala, sessão) = (0, 40)
23
Associação n-ária
FEN110
(1,3)
(0,40)
FEN300
D501
D530
SALA
DISCIPLINA
DIA
(0,n)
SEG
TER
QUA
QUI
SEX
24
Modelagem Conceitual e a
Representação de Conhecimento
„
Objetivo das técnicas de RC
„
Desenvolver conceitos para a
modelagem mais precisa de um
domínio de conhecimento
• Classificação
• Identificação
• Especialização e Generalização
• Agregação e Associação
„
Criação de uma ontologia
25
Ontologia
“Descrição das estruturas e dos
relacionamentos que são possíveis
na realidade, por meio de algum
vocabulário comum”
“Meio para descrever o conhecimento
de uma certa comunidade sobre a
realidade”
26
Ontologia
“A especificação de uma
conceitualização”
„ Conceitualização
„
„
Conjunto de conceitos utilizados para
representar a realidade
Especificação
„
Linguagem e termos do vocabulário
27
Ontologia
„
Técnicas possíveis para
especificação [Elmasri, Navathe]
Thesaurus
Taxonomia
„ Esquema de banco de dados
„ Teoria lógica
„
„
28
Exercício
„
Discuta qual o papel das ontologias
na modelagem conceitual de dados
29
Projeto de Banco de Dados
Mundo real
COLETA E ANÁLISE DAS
NECESSIDADES
Independente
do SGBD
Requisitos do Banco de Dados
PROJETO CONCEITUAL
Esquema Conceitual
PROJETO LÓGICO
Dependente
do SGBD
Esquema Lógico
PROJETO FÍSICO
Esquema Interno
30
Projeto Conceitual
Foco nos dados e em seus interrelacionamentos.
„ Independente do SGBD utilizado.
„ Produz um esquema mais estável do
que o esquema lógico.
„ Mais fácil de ser entendido pelos
usuários.
„ Livre de considerações de eficiência e
armazenamento.
„
31
Projeto Lógico
Foco nos dados e em seus
interrelacionamentos, mas ....
„ Sujeito às restrições do SGBD
utilizado.
„ Produz um esquema sujeito a
eventuais reestruturações, para
garantir a eficiência das consultas.
„ Fácil de ser entendido pelos usuários.
„
32
Projeto Físico
„
Foco nos requisitos de desempenho:
„ tempo de resposta: p.ex., 95% das
transações devem ser processadas em
até 2 segundos.
„ throughput: número médio de
transações/segundo.
„ utilização de espaço.
„
Define estruturas de
armazenamento e caminhos de
acesso.
33
Refs Bibliográficas
„
Conceptual Database Design
„
Batini, Ceri e Navathe
Benjamin/Cummings Pub. Co.
34
Artigo para discussão
„
Gonzalo Génova, Juan Llorens, Paloma Martínez,
“Semantics of the Minimum Multiplicity in
Ternary Associations in UML”, Proceedings of the
4th International Conference on The Unified
Modeling Language, Modeling Languages,
Concepts, and Tools, 2001. Lecture Notes In
Computer Science 2185, pp. 329 - 341
„
http://www.lsi.upc.edu/~xpi/material/Semantics
OfMinimumMutiplicity.pdf
35
Download