Nvel externo o mais prximo do usurio final: aplicaes, resultado
de consultas, etc.; Nvel interno trata de como os dados sero
efetivamente armazenados: tipos, algoritmos, discos, etc.; Nvel
conceitual o modelo que reflete o banco de dados, abstraindo sua
implementao, preocupando-se apenas com a informao em si.
Slide 5
Slide 6
uma das etapas do Projeto de Banco de Dados; Representa a viso
dos dados a serem armazenadas abstraindo sua implementao fsica;
Apresenta uma viso esttica do sistema; Pode ser baseado em
entidades (MER) ou em objetos (Diagrama de Classes)
Slide 7
Etapas do Projeto de BD: Modelagem Conceitual Projeto Lgico de
Dados Projeto Fsico de Dados BD Conjunto de Requisitos
Slide 8
Um modelo de classes de domnio uma representao das classes
conceituais do mundo real, no dos componentes do software. Ele no
um conjunto de diagramas descrevendo as classes do software ou
objetos do software e suas responsabilidades [LARMAN, Craig,
Utilizando UML e Padres, 2a ed.]
Slide 9
Modelagem conceitual de dados o processo de criao de um modelo
conceitual de dados a partir dos requisitos extrados para um
determinado artefato de software.
Slide 10
Slide 11
Slide 12
Um hospital possui um nmero de, nas quais os so, suas tratadas,
e das quais so liberados aps o. Cada ala a uma e admite pacientes
do feminino ou masculino (no h alas mistas). [] Quem O que como
alas tratamento pacientes doenas especialidade sexo admitidos
atende
Slide 13
Ala sexo Paciente nome sexo Tratamento Data_inicio Data_fim
Especialidade nome Pertence a realizaatende trata 1 0..* 1 1..* 1
0..* 1..* 0..* Quem O que como Doenca nome 1..* engloba 1..*
Slide 14
Resumindo: As informaes para construo do modelo podem vir do
minimundo ou das descries de caso de uso (mais comum); O modelo
conceitual abstrai completamente qualquer tipo de implementao,
concentrando- se apenas na representao lgica do negcio; Serve como
estrutura fundamental para todo o desenvolvimento do sistema.
Slide 15
Slide 16
Ferramenta: Diagrama de Classes da UML Existe em trs nveis de
abstrao A Projeto Implementao Estrutural Representa as classes e
suas relaes Esttico No apresenta informaes de interaes entre os
objetos Anlise
Slide 17
No nvel de anlise, representamos apenas as classes que tenham
relao com o domnio de problema, abstraindo recursos e decises de
projeto ou implementao; Por esse motivo, tambm conhecido como
diagrama de classes de domnio
Slide 18
So representados no diagrama de classes de anlise: Classes;
Atributos (sem os respectivos tipos de dado); Associaes; Simples /
agregaes / composies Multiplicidades Adornos
Generalizaes/especializaes
Slide 19
Classes So abstraes que representam objetos com as mesmas
caractersticas e papis dentro do SW; Pode possuir atributos e
operaes: Atributos so as caractersticas do objeto, as informaes que
conhecemos a seu respeito Operaes So os comportamentos que o objeto
capaz de executar
Slide 20
Classes Notao Representada por um retngulo com um a trs
compartimentos: Nome da classe Atributos Operaes Os nomes de classe
devem ser sempre iniciados com letras maisculas e devem estar no
singular. Exemplos: Livro Pedido ItemPedido
Slide 21
Classes Notao Os atributos e operaes devem iniciar com letras
minsculas e, para cada nova palavra no nome, a letra maiscula deve
ser usada. Exemplos: numero dataRealizacao obterValorTotal()
Slide 22
Classes Notao As operaes sempre devem terminar com parnteses,
mesmo que nao haja parmetros. Exemplos: calcularValor() somar(a :
int, b : int) : int adicionarFuncionario(func : Funcionario)
Slide 23
Classes Notao (exemplos) Nome da Classe Lista de atributos Nome
da Classe Lista de operaes Nome da Classe Lista de atributos Pedido
numero dataRealizacao Pedido obterValorTotal() Pedido numero
dataRealizacao Lista de operaes obterValorTotal()
Slide 24
Associaes Representam a relao entre objetos de duas ou mais
classes; Essa ligao s se concretizar (ou no) durante a execuo do
sistema; Representada no diagrama de classes por uma linha ligando
os elementos envolvidos.
Slide 25
Associaes Uma Classe pode se associar com ela prpria. A esse
fato damos o nome de associao reflexiva; As associaes possuem
atributos que podemos utilizar para lhes dar maior significado,
legibilidade e clareza; Esses atributos so colocados sobre ou sob a
linha que representa a associao
Slide 26
Associaes So atributos possveis de uma associao: Nome Direo de
leitura Papel Multiplicidades
Slide 27
Associaes Nome d legibilidade e significado associao; Direo de
leitura indica para que lado se l o significado dado pelo nome da
associao; Papel indica o papel que determinado objeto executa
naquela associao. Pode ser usado em substituio do nome.
Slide 28
Associaes Multiplicidades representam as quantidades mnima e
mxima de objetos com os quais o outro pode estar ligado.
NomeSimbologia Apenas um1..1 ou 1 Zero ou muitos0..* ou * Um ou
muitos1..* Zero ou um0..1 Valores definidos2..4 | 1..6
Slide 29
Associaes A partir das multiplicidades extramos dois novos
conceitos: conectividade e participao. Conectividade define a
maneira como se d a associao entre as classes. Descoberta a partir
do limite superior de cada um dos pares de multiplicidade de uma
determinada associao ConectividadeLimites superiores da associao Um
para Um1 e 1 Um para Muitos1 e * (ou um nmero superior a 1) Muitos
para Muitos* e * (ou dois nmeros superiores a 1)
Slide 30
Associaes Participao indica a obrigatoriedade ou no da
existncia da ligao entre os objetos durante a execuo do sistema.
Descoberta a partir do limite inferior de cada um dos pares de
multiplicidade de uma determinada associao A participao de uma
classe em uma associao descoberta no extremo oposto a onde ela
est
Slide 31
Associaes Notao (exemplos) DepartamentoFuncionario aloca 0..*1
multiplicidades nome da associo direo de leitura associao
Conectividade: um para muitos Participao de Departamento: opcional
Participao de Funcionario: mandatria
Slide 32
Associaes Notao (exemplos) OrganizaoIndivduo contrata 1..*
Conectividade: muitos para muitos Participao de Organizacao:
mandatria Participao de Individuo: mandatria OrganizaoIndivduo -
contratado 1..* - contratante o mesmo que papel
Slide 33
Associaes Notao (exerccio) CorridaCorredor participa de..
Conectividade? Participao de Corrida? Participao de Corredor?
muitos para muitos opcional mandatria * * 0 1
Slide 34
Associaes Alm da associao simples (que vimos at agora), existem
dois tipos especiais de associao: Agregao; Composio
Slide 35
Associaes Agregao e composio: So usadas para indicar uma
semntica de todo-parte na relao entre duas classes; Podem, em
qualquer caso, ser substitudas por uma associao simples; Seu uso
indicado quando for necessrio enfatizar a semntica da associao;
Todos os adornos de uma associao simples podem ser aplicados a
elas.
Slide 36
Associaes Agregao x Composio: Agregao Neste tipo de associao,
as partes podem ser criadas sem que haja o todo; Uma mesma parte
pode fazer parte de diversos todos; A destruio de um no implica na
destruio do outro. Ex.: Um clube esportivo e seus scios
Slide 37
Associaes Agregao x Composio: Composio Neste tipo de associao,
h uma dependncia entre as classes, de tal forma que a parte no
existe sem o todo; Os objetos parte so pertencentes a um nico todo;
Os objetos parte so criados e destrudos pelo objeto todo. Ex.: Uma
venda e seus itens
Slide 38
Associaes Agregao x Composio: Notao Agregao e composio so
representados no diagrama de classes por um losango na extremidade
todo; Na agregao o losango aberto; Na composio o losango
fechado;
Slide 39
Associaes Agregao x Composio: Exemplo Clube Socio Venda
ItemVenda Agregao Composio 1..* - scio proprietrio 0..* 1..* 1
Sempre 1, por isso alguns autores omitem esta multiplicidade
Slide 40
Associaes Agregao x Composio: IMPORTANTE Pode-se construir
hierarquias de associaes desse tipo, formando hierarquias
todo-parte; Esse tipo de associao transitivo. Capitulo Secao 1..*
Paragrafo 1..*
Slide 41
Associaes n-rias So associaes que envolvem mais de duas classes
simultaneamente (n > 2); O tipo mais comum ou menos incomum
desse tipo de associao a associao ternria (n = 3); So representadas
por um losango que conecta as linhas de associao de todas as
classes que dela participam; Para determinar as multiplicidades de
cada uma das classes, devemos analis-la no contexto da associao com
as demais classes participantes, simultaneamente.
Slide 42
Associaes n-rias Exemplo: Profissional Empresa Projeto Uma
empresa contrata um profissional para trabalhar em um projeto
especfico. Se no houver projeto, no h a contratao; Se no houver
profissionais disponveis, no possvel realizar o projeto; Os
profissionais s podem trabalhar no projeto se forem contratados por
uma empresa. *1..*
Slide 43
Classe de Associao Usada para armazenarmos caractersticas e
operaes referentes a uma associao entre duas classes; Ou seja, a
informao no pertence a uma ou a outra classe da associao, mas sim
unio de ambas, ao par. Tambm conhecida como classe associativa;
Pode ser usada em associaes com qualquer conectividade; Pode ser
usada em uma associao ternria.
Slide 44
Classe de Associao Representada no diagrama de classes por uma
linha tracejada ligando a classe associao qual ela se refere;
Pessoa nome telefone Empresa razaoSocial CNPJ Emprego dtContratacao
salario ** - empregado- empregador S fazem sentido se houver o par,
se houver a realizao da associao
Slide 45
Generalizao/Especializao Relacionamento entre classes do domnio
que representa generalidade ou especificidade entre os envolvidos;
Pode-se dizer que uma classe uma especializao de outra quando ela
adiciona atributos, associaes ou comportamentos a esta; Diz-se mais
comumente que a classe especfica uma extenso da classe mais
genrica.
Slide 46
Generalizao/Especializao Em suma, diz-se que A estende B quando
A pode ser visto como um subtipo de B e lhe adiciona novas
caractersticas (atributos, associaes e/ou operaes); ContaPoupanca e
ContaCorrente so subtipos de ContaBancaria O nome mais comum que se
d a essa relao entre classes herana; Na herana, atributos e operaes
que no sejam privados na classe mais genrica so automaticamente
herdados nas classes mais especficas.
Slide 47
Generalizao/Especializao Benefcio do uso de herana Reuso;
Malefcio do uso de herana Acoplamento; necessrio discernimento e
bom senso no uso de herana no processo de modelagem; Excesso leva a
acoplamentos exagerados.
Slide 48
Generalizao/Especializao Representamos no diagrama de classes
com uma seta fechada e vazada que vai do mais especfico para o mais
genrico; No h limites para o nmero de classes envolvidas em um
relacionamento de herana; Pode-se criar hierarquias de classes em
nveis, a priori, infinitos; O relacionamento de herana : Transitivo
As mais especficas herdam as caractersticas de todos os seus
ascendentes diretos na hierarquia; Assimtrico Se A herda de B, B no
pode herdar de A.
Generalizao/Especializao Termos comuns: GenricoEspecfico
SuperclasseSubclasse SupertipoSubtipo Classe baseClasse herdeira
AncestralDescendente Classe paiClasse filha Classe de
generalizaoClasse de especializao
Slide 52
Generalizao/Especializao possvel adicionar restries aos
diversos relacionamentos de herana: Sobreposta / Disjunta Completa
/ Incompleta
Slide 53
Generalizao/Especializao Exemplo das restries: H ainda outras
subclasses As subclasses so mutuamente exclusivas No h mais outras
subclasses Um nadador pode ser tambm um corredor
Slide 54
Generalizao/Especializao importante no confundir papel de uma
classe em uma associao com herana!!; ERRADO!! CORRETO!! Papel
executado pela classe...
Slide 55
Generalizao/Especializao Uma classe pode ter mais de um
ancestral direto ao mesmo tempo; A este fato damos o nome de herana
mltipla; A maioria das linguagens OO no do suporte herana mltipla;
Deve-se evitar seu uso, pois um conceito complicado de entender e
implementar.
Slide 56
Generalizao/Especializao Herana mltipla (Exemplo):
VeiculoAereoVeiculoAquatico VeiculoAeroAquatico Implementa
comportamentos e guarda caractersticas de ambos os tipos de veculo
Hidroavio um exemplo disso
Slide 57
Classes Abstratas So classes que aparecem no modelo apenas para
definir uma interface comum a uma determinada hierarquia de
classes; No podem ser instanciadas!! Classes abstratas podem herdar
de outras classe abstrata, mas a hierarquia deve terminar em uma
classe concreta; Classes concretas so aquelas que, ao contrrio das
abstratas, so instanciveis; Todas as que vimos at agora
Slide 58
Classes Abstratas Usamos classes abstratas para organizar uma
hierarquia de classes, concentrando nela os atributos e
comportamentos comuns s demais; Em alguns casos as classes so
qualificadas como abstratas simplesmente por no fazer sentido criar
uma instncia sua diretamente; Polgono, por exemplo
Slide 59
Classes Abstratas (Exemplo) Pagamento DinheiroCartaoCheque
Classes concretas Classe abstrata (Representada com o nome em
itlico)