Professor: Leandro Chernicharo. Arquitetura dividida em três níveis: Nível externo Nível interno...
Preview:
Citation preview
- Slide 1
- Professor: Leandro Chernicharo
- Slide 2
- Slide 3
- Arquitetura dividida em trs nveis: Nvel externo Nvel interno
Nvel conceitual
- Slide 4
- 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.
- Slide 49
- Generalizao/Especializao Notao: Superclasse
Subclasse1Subclasse2... SubclasseN Subclasse1 Superclasse
SubclasseNSubclasse2...
- Slide 50
- Generalizao/Especializao Exemplo:
- Slide 51
- 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)
- Slide 60