Download - ProjetoBD ParteVI Diagrama de Classe
-
CIn/UFPE Projeto Conceitual de BD - Prof. Robson Fidalgo 1
-
CIn/UFPE Projeto Conceitual de BD - Prof. Robson Fidalgo 2
Projeto Conceitual de BD com Diagrama de Classe da UML
Por:Robson do Nascimento Fidalgo
-
CIn/UFPE Projeto Conceitual de BD - Prof. Robson Fidalgo 3
ER no adequada para o POO (no contempla operaes)
Diagrama de Classe da UML adequada para o POO
Diagrama de Classe da UML uma linguagem: Grfica com Ampla variedade notacional e notao
relativamente simples Padro e bem aceita pela comunidade acadmica e industrial Verstil (fcil de estender e personalizar) Independente de LP e SGBD
Motivao
-
CIn/UFPE Projeto Conceitual de BD - Prof. Robson Fidalgo 4
A UML teve muitos contribuintes Principais:
Grady Booch (Booch) James Rumbaugh (OMT) Ivar Jacobson (Objectory/OOSE)
O Diagrama de Classe da UML foibaseado na notao grfica do mtodo OMT de James Rumbaugh
Diagrama de Classes da UML
-
CIn/UFPE Projeto Conceitual de BD - Prof. Robson Fidalgo 5
Diagrama de Classes da UML
Foi inspirado no MER Contudo, contempla comportamento
Oferece uma viso esttica da estrutura do sistema
Mostra um conjunto de classes, suas interfaces e seus relacionamentos
o diagrama central da modelagem orientada a objetos
-
CIn/UFPE Projeto Conceitual de BD - Prof. Robson Fidalgo 6
Diagrama de Classes da UML
Elementos de um diagrama de classes Classe Interface Relacionamento
Associao Associao Simples Agregao Simples Agregao de Composio
Dependncia Generalizao Realizao
-
CIn/UFPE Projeto Conceitual de BD - Prof. Robson Fidalgo 7
Diagrama de Classes da UML
Elementos de um diagrama de classes - Classe
o elemento mais importante de qualquer sistema OO
uma descrio de um conjunto de objetos com os mesmos atributos, relacionamentos, operaes e semntica
usada para capturar o vocabulrio de um sistema
-
CIn/UFPE Projeto Conceitual de BD - Prof. Robson Fidalgo 8
Nome_da_classe
atributo1atributo2...
metodo1metodo2metodo3...
Diagrama de Classes da UML
Elementos de um diagrama de classes - Classe Graficamente, as classes so representadas por retngulos
incluindo nome, atributos e operaes
Nome da Classe(obrigatrio)Funcionrio
- nome: string- data_admisso: data- CPF : string-salrioBase: float = 0.0. . .
+ calculaSalario()+ calculaIR(). . .
Operaes(opcional)
Atributos(opcional)
Classe Genrica Classe Funcionrio
-
CIn/UFPE Projeto Conceitual de BD - Prof. Robson Fidalgo 9
Diagrama de Classes da UML
Elementos de um diagrama de classes - Classe Variaes
Funcionrio
Funcionrio
+ calculaSalario()+ calculaIR(). . .
Funcionrio
- nome: string- data_admisso: data- CPF : string-salrioBase: float = 0.0. . .
Funcionrio
- nome: string- data_admisso: data- CPF : string-salrioBase: float = 0.0. . .
+ calculaSalario()+ calculaIR(). . .
-
CIn/UFPE Projeto Conceitual de BD - Prof. Robson Fidalgo 10
Diagrama de Classes da UML Elementos de um diagrama de classes - Classe
Seu nome deve distingui-la das outras classes nome simples: nome sozinho nome com caminho: o nome da classe precedido pelo nome do
pacote (subsistema) em que a classe existe.
comum adotar um padro para nome-las Ex: todos os nomes de classes sero substantivos singulares com a
primeira letra maiscula
Sistema_vendas :: ClienteCliente
Nome da classeNome do pacote
-
CIn/UFPE Projeto Conceitual de BD - Prof. Robson Fidalgo 11
Diagrama de Classes da UML Elementos de um diagrama de classes Classe
Atributo Representa uma caracterstica (estado) dos objetos de uma classe Sintaxe bsica para atributos:
[visibilidade] nome [multiplicidade] [: tipo] [= valor inicial] Atributos de classe so sublinhados ou precedidas por $ Visibilidade (opcional):
+ pblico: visvel em qualquer classe # protegido: visvel para a classe e suas sub-classes - privado: visvel somente para classe
Exemplos: idade - endereo [0..2] : String + CPF : inteiro {frozen} # nroCorrentistas: inteiro = 0
-
CIn/UFPE Projeto Conceitual de BD - Prof. Robson Fidalgo 12
Diagrama de Classes da UML Elementos de um diagrama de classes Classe
Operao um servio/ao que pode ser requisitado a qualquer objeto da
classe, afetando o seu estado Pode-se ter qualquer nmero de operaes, inclusive nenhuma Sintaxe bsica para Operaes:
[visibilidade] nome [(lista-de-parmetros)] [:tipo-retorno] Visibilidade = Visibilidade de atributos Operaes de classe so sublinhadas ou precedidas por $.
Exemplos: imprimirTemperatura () # calculaArea(lado: inteiro, altura: inteiro) : inteiro + consultaValorPadrao(): real
-
CIn/UFPE Projeto Conceitual de BD - Prof. Robson Fidalgo 13
Diagrama de Classes da UML
Elementos de um diagrama de classes Classe Classes e Operaes Abstratas
Operaes abstratas so operaes para as quais a Classe no prov um mtodo (ou seja, a Classe no implementa a operao)
Uma operao abstrata deve ter seu nome em itlico.
Classes abstratas so aquelas que no apresentam instncias diretas, mas definem uma estrutura para que outras Classes possam herdar e implementar.
Uma classe abstrata deve ter seu nome em itlico. Com uma nica operao abstrata, a classe abstrata
-
CIn/UFPE Projeto Conceitual de BD - Prof. Robson Fidalgo 14
Diagrama de Classes da UML
Elementos de um diagrama de classes Classe Classes e Operaes Abstratas
Funcionrio
- nome: string- data_admisso: data- CPF : string-salrioBase: float = 0.0. . .
+ calculaSalario()+ calculaIR(). . .
-
CIn/UFPE Projeto Conceitual de BD - Prof. Robson Fidalgo 15
Diagrama de Classes da UML Elementos de um diagrama de classes Interface
uma classe que define um conjunto de operaes abstratas (sem implementao, apenas assinaturas)
No tm atributos nem associaes
Especifica um contrato para uma classe, sem definir como esse contrato ser implementado
Correspondem a um conjunto de requisitos para uma classe
A classe que implementa a interface deve implementar suas operaes
Pode ser implementada por mais de uma classe, bem como uma classe pode implementar mais de 1 interface
-
CIn/UFPE Projeto Conceitual de BD - Prof. Robson Fidalgo 16
Diagrama de Classes da UML Elementos de um diagrama de classes Interface
Oferece compatibilidade de tipos de objetos
Permite se concentrar apenas nas operaes oferecidas pelas classes
Prov uma maneira elegante de isolar a especificao da implementao (encapsulamento das operaes)
S podem ter relaes de realizao, generalizao e dependncia
-
CIn/UFPE Projeto Conceitual de BD - Prof. Robson Fidalgo 17
Diagrama de Classes da UML Elementos de um diagrama de classes Interface
Notao Grfica
IFuncionrio
IFuncionrio
calculaSalario()calculaIR()
OU
Notao Compacta Notao Expandida
-
CIn/UFPE Projeto Conceitual de BD - Prof. Robson Fidalgo 18
Diagrama de Classes da UML Elementos de um diagrama de classes - Relacionamento
Determinam as ligaes entre os objetos Fornecem um caminho para a comunicao entre os objetos
Os relacionamentos possuem: Nome: descrio dada ao relacionamento (faz, tem, possui,...) Sentido de leitura Navegabilidade: indicada por uma seta no fim do relacionamento Multiplicidade: 0..1, 0..*, 1, 1..*, 2, 3..7 Papis: desempenhados por classes em um relacionamento
Tipo: associao, agregao, dependncia, generalizao e realizao
-
CIn/UFPE Projeto Conceitual de BD - Prof. Robson Fidalgo 19
Diagrama de Classes da UML Elementos de um diagrama de classes - Relacionamento
Os relacionamentos possuem:
Pessoa Empresa1..*
Tipo: Associao Simples
multiplicidade
*trabalha para
empregado
papis
empregador
sentido de leitura
E a navegabilidade?
nome
Indicadores de multiplicidades:1 Exatamente um1..* Um ou mais0..* Zero ou mais (muitos)* Zero ou mais (muitos)0..1 Zero ou umm..n Faixa de valores (por exemplo: 4..7)
-
CIn/UFPE Projeto Conceitual de BD - Prof. Robson Fidalgo 20
Diagrama de Classes da UML Elementos de um diagrama de classes - Relacionamento
Os relacionamentos possuem: No exemplo anterior a navegabilidade era bidirecional (o padro) No exemplo abaixo a navegabilidade unidirecional
EndereoCliente 1 *navegabilidade
Um objeto cliente sabe quais so seus endereos, mas um objeto endereo no sabe a quais clientes pertence
Para no poluir o seu diagrama, defina apenas as multiplicidades,os papeis e a navegabilidade do relacionamento
-
CIn/UFPE Projeto Conceitual de BD - Prof. Robson Fidalgo 21
Diagrama de Classes da UML
Elementos de um diagrama de classes - Relacionamento Associao Simples (ou somente Associao)
Uma associao um relacionamento estrutural que indica que os objetos de uma classe esto vinculados a objetos de outra classe
Uma associao representada por uma linha slida conectando duas classes
Pessoa Empresa
associao
-
CIn/UFPE Projeto Conceitual de BD - Prof. Robson Fidalgo 22
Diagrama de Classes da UML
Elementos de um diagrama de classes - Relacionamento Associao Unria (Auto-relacionamento)
Quando h um relacionamento de uma classe com ela mesma
Funcionrio
1
1..*
1
1..*
gerencia
chefesubordinados
Papis so necessrios para associaes unrias!
-
CIn/UFPE Projeto Conceitual de BD - Prof. Robson Fidalgo 23
Diagrama de Classes da UML
Elementos de um diagrama de classes - Relacionamento Associao Binria
Quando h duas classes envolvidas na associao
Cliente Pedido0..*1
faz1 0..*
Professor Disciplina
coordenador* *
11Papis tambm so necessrios quando tem-se mais de uma associao binria entre as mesmas classes
-
CIn/UFPE Projeto Conceitual de BD - Prof. Robson Fidalgo 24
Diagrama de Classes da UML
Elementos de um diagrama de classes - Relacionamento Associao N-ria
Quando h mais de duas classes envolvidas na associao
Livro textoCurso Professor
-
CIn/UFPE Projeto Conceitual de BD - Prof. Robson Fidalgo 25
Diagrama de Classes da UML Elementos de um diagrama de classes - Relacionamento
Associao com atributos (Classe Associativa) Para indicar os atributos de uma associao, usar uma linha
tracejada para unir a associao s suas propriedades As propriedades devem ser representadas por uma classe
Companhia Empregado1..*** 1..*+empregador
Trabalhodescriosalrio
* *
-
CIn/UFPE Projeto Conceitual de BD - Prof. Robson Fidalgo 26
Diagrama de Classes da UML Elementos de um diagrama de classes - Relacionamento
Associao com atributos (Classe Associativa) Transformao de uma classe associativa em classe normal
Companhia Empregado1..*** 1..*+empregador
Trabalhodescriosalrio
* * 11
* *Companhia Empregado+empregador
Trabalhodescriosalrio
-
CIn/UFPE Projeto Conceitual de BD - Prof. Robson Fidalgo 27
Diagrama de Classes da UML Elementos de um diagrama de classes - Relacionamento
Associao Qualificada o equivalente em UML idia de estruturas hashtable, map ou
dictionary de LPOO
Toda associao 1:N ou M:N pode ser qualificada O objetivo reduzir a cardinalidade e ter acesso direto ao objeto O qualificador um ou mais atributos chaves que especifica como
um determinado objeto da extremidade oposta da associao qualificada identificado
O qualificador desenhado como uma pequena caixa na extremidade da associao junto classe de onde a navegao deve ser feita
-
CIn/UFPE Projeto Conceitual de BD - Prof. Robson Fidalgo 28
Diagrama de Classes da UML Elementos de um diagrama de classes - Relacionamento
Associao QualificadaCliente * * Conta
Associao no qualificada
Cliente * 0..1 ContanumCCAssociao qualificada
a)
b)
Em b) explicitamente especificado agora que, o qualificador numCC uma chave nica do relacionamento entre Cliente e Conta. Sendo nica, o relacionamento passa a
ser agora lido como Um Cliente tem no mximo 1 Conta para cada valor de numCC
-
CIn/UFPE Projeto Conceitual de BD - Prof. Robson Fidalgo 29
Diagrama de Classes da UML Elementos de um diagrama de classes - Relacionamento
Associao Qualificada outro exemplo
Pedido 1 * ItemPedidoAssociao no qualificada
Pedido 1 0..1 ItemPedidoCodProdutoAssociao qualificada
-
CIn/UFPE Projeto Conceitual de BD - Prof. Robson Fidalgo 30
Diagrama de Classes da UML Elementos de um diagrama de classes - Relacionamento
Associao Exclusiva Em alguns modelos nem todas as combinaes so vlidas, e isto
pode causar problemas que devem ser tratados
Uma associao exclusiva uma restrio em duas ou mais associaes
Ela especifica que objetos de uma classe podem participar de no mximo uma das associaes em um dado momento
Uma associao exclusiva representada por uma linha tracejada entre as associaes que so partes da associao exclusiva, com a especificao {xor} sobre a linha tracejada
-
CIn/UFPE Projeto Conceitual de BD - Prof. Robson Fidalgo 31
Diagrama de Classes da UML Elementos de um diagrama de classes - Relacionamento
Associao Exclusiva
Contrato
*
Pessoa1..*
Empresa
*
1..*{xor}
-
CIn/UFPE Projeto Conceitual de BD - Prof. Robson Fidalgo 32
Diagrama de Classes da UML Elementos de um diagrama de classes - Relacionamento
Associao Ordenada o equivalente em UML idia de estruturas Queue de LPOO Ocorre quando as ligaes entre objetos deve possuir uma ordem O padro para uma associao desordenado definida colocando a especificao {ordered} junto a classe da
extremidade da associao que deseja-se ordenar
Artigo * * Autor
Livro 1 * Captulo
{ordered}
{ordered}
-
CIn/UFPE Projeto Conceitual de BD - Prof. Robson Fidalgo 33
Diagrama de Classes da UML Elementos de um diagrama de classes - Relacionamento
Agregao um tipo especial de associao Representa relacionamentos todo-parte
Agregao transitiva Se A faz parte de B, e B faz parte de C, ento A faz parte de C
Agregao no-simtrica Se A faz parte de B, ento B no faz parte de A
Pode ser: Simples
Composio
-
CIn/UFPE Projeto Conceitual de BD - Prof. Robson Fidalgo 34
Diagrama de Classes da UML Elementos de um diagrama de classes - Relacionamento
Agregao Simples (ou somente agregao) A existncia de um objeto componente no depende da existncia
do objeto agregador Um objeto componente pode ser compartilhado com outro objeto
agregadorEquipeProjeto
AnalistaSistemas1..*
1..*1..*
1..*
Multiplicidade da extremidade do agregador
pode ser maior que 1Agregao Simples
Componente
Agregador
-
CIn/UFPE Projeto Conceitual de BD - Prof. Robson Fidalgo 35
Diagrama de Classes da UML Elementos de um diagrama de classes - Relacionamento
Agregao Simples
A diferena entre associao simples e uma associao de agregao puramente semntica
Onde se puder utilizar uma associao de agregao, uma associao simples tambm poder ser utilizada
-
CIn/UFPE Projeto Conceitual de BD - Prof. Robson Fidalgo 36
Diagrama de Classes da UML Elementos de um diagrama de classes - Relacionamento
Agregao Simples outros exemplos
Campeonato * * Time * * Jogador
Se acabar um campeonato, os times continuam existindo!Se acabar um time, os jogadores continuam existindo!
-
CIn/UFPE Projeto Conceitual de BD - Prof. Robson Fidalgo 37
Diagrama de Classes da UML Elementos de um diagrama de classes - Relacionamento
Agregao de Composio (ou somente composio) uma agregao forte que indica uma dependncia existencial
entre os objetos componentes e o objeto agregador Os objetos componentes s existem dentro do objeto agregador
se o objeto agregador destrudo os objetos componentes tambm so Exemplo:
Empresa
1..*
1
1..*
1 Multiplicidade da extremidade do agregador
deve ser igual a 1Departamento
Agregao Simples
Componente
Agregador
-
CIn/UFPE Projeto Conceitual de BD - Prof. Robson Fidalgo 38
Diagrama de Classes da UML Elementos de um diagrama de classes - Relacionamento
Agregao de Composio Outros Exemplos
Universidade 1 * Centro 1 * Departamento
Curso Disciplina* *
1 1
-
CIn/UFPE Projeto Conceitual de BD - Prof. Robson Fidalgo 39
Diagrama de Classes da UML Elementos de um diagrama de classes - Relacionamento
Agregao Simples X Agregao de Composio
Universidade 1 * Centro 1 * Departamento
Curso Disciplina* *
1 1Aluno * *
Professor * *
-
CIn/UFPE Projeto Conceitual de BD - Prof. Robson Fidalgo 40
Diagrama de Classes da UML Elementos de um diagrama de classes - Relacionamento
Dependncia o relacionamento mais fraco da UML Indica que os objetos de uma classe (dependente) usam servios dos
objetos de outra classe (independente) Denota que mudanas no objeto independente podem afetar o objeto
dependente
Representa um relacionamento semntico. No h dependncia estrutural interna entre as classes envolvidas
Ocorre quando uma classe utiliza outra somente como parmetro deao menos uma de suas operaes. Nesse caso, uma classe acessa o objeto global da outra, denotando uma dependncia entre elas
-
CIn/UFPE Projeto Conceitual de BD - Prof. Robson Fidalgo 41
Diagrama de Classes da UML Elementos de um diagrama de classes - Relacionamento
Dependncia - Exemplo
Obs: Um objeto Produto depende de algum servio de Imposto A mudana de estado do objeto Imposto (e.g. alquota) afeta o objeto
Produto A classe Produto no tem um atributo do tipo Imposto Um objeto Produto recebe um objeto Imposto por parmetro
Dependncia
Produto
calcularPreco(i:Impostos):real
Impostosdependente independente
-
CIn/UFPE Projeto Conceitual de BD - Prof. Robson Fidalgo 42
Diagrama de Classes da UML Elementos de um diagrama de classes - Relacionamento
Dependncia Outros Exemplos
Filme
exibir(c:Canal)
Canal
Excursao
roteiro(p:Programacao)
Programacao
-
CIn/UFPE Projeto Conceitual de BD - Prof. Robson Fidalgo 43
Diagrama de Classes da UML Elementos de um diagrama de classes - Relacionamento
Associao X Dependncia mais fraco que associao Relacionamentos de dependncias representa utilizao
de classes Relacionamentos de associaes so relacionamentos
estruturais entre objetos
Produto Imposto
temPedido*
1
-
CIn/UFPE Projeto Conceitual de BD - Prof. Robson Fidalgo 44
Diagrama de Classes da UML Elementos de um diagrama de classes - Relacionamento
Herana Simples (Generalizao e Especializao) Permite o compartilhamento de atributos, operaes e
relacionamentos entre classes com base em um relacionamento hierrquico
Possibilita a derivao de tipos mais especficos a partir de um tipo mais genrico
Uma classe pode ser definida de forma abrangente e depois ser refinada em sucessivas subclasses
Subclasses herdam os atributos, as operaes e relacionamentos da superclasse, permitindo ainda modificaes nos mesmos
Pode ser: {complete | incomplete, disjoint | overlapping}
-
CIn/UFPE Projeto Conceitual de BD - Prof. Robson Fidalgo 45
Diagrama de Classes da UML Elementos de um diagrama de classes - Relacionamento
Herana Simples (Generalizao e Especializao)
Esp
ecializaoG
e
n
e
r
a
l
i
z
a
o
Herana
Aluno
Pessoa
matricular()
Professor
reajustarSalrio()
Relacionamento: -um-tipo-de
{incomplete, overlapping}
mostrarIdade()verificarPrimNome()
nome: stringdtNascimento: date
matrcula: integernumCarteira: integer
salrio: realformao: string
-
CIn/UFPE Projeto Conceitual de BD - Prof. Robson Fidalgo 46
Diagrama de Classes da UML Elementos de um diagrama de classes - Relacionamento
Herana Mltipla
Veculo Aqutico
Veculo
Veculo Terrestre
Veculo Anfbio
-
CIn/UFPE Projeto Conceitual de BD - Prof. Robson Fidalgo 47
Diagrama de Classes da UML Elementos de um diagrama de classes - Relacionamento
Realizao um relacionamento entre uma classe e uma interface, onde a
interface especifica um contrato que a classe deve implementar
IFuncionrio
calculaSalario()calculaIR()
Funcionrio
- nome: string- data_admisso: data- CPF : string-salrioBase: float = 0.0. . .
+ calculaSalario()+ calculaIR(). . .
Realizao
-
CIn/UFPE Projeto Conceitual de BD - Prof. Robson Fidalgo 48
Diagrama de Classes da UML Elementos de um diagrama de classes - Relacionamento
Realizao outro exemplo
Funcionrio
- nome: string- data_admisso: data- CPF : string-salrioBase: float = 0.0. . .
+ calculaSalario()+ calculaIR(). . .
Realizao
IFuncionrio
-
CIn/UFPE Projeto Conceitual de BD - Prof. Robson Fidalgo 49
Diagrama de Classes da UML Elementos de um diagrama de classes - Relacionamento
Herana Mltipla com Interface Uma interface pode ser implementada por qualquer nmero de
classes distintas, tratadas como um mesmo tipo Algumas linguagens de programao no permitem herana mltipla
e as interfaces permitem superar esta limitao
TerrestreAqutico
IVeculo Iterrestre
Anfbio
-
CIn/UFPE Projeto Conceitual de BD - Prof. Robson Fidalgo 50
Diagrama de Classes da UML Elementos de um diagrama de classes - Relacionamento
Resumindo...
Possui 11
Motor
rotao : Numbertemperatura : Temperaturapotncia : Potencia
getRotao ()setRotao (rotao : Number)getPotncia ()getTemperatura ()
Carro
velocidade : Number
resistnciaAr ()resistnciaSolo ()
Acelerador
presso: Number
getPresso ()setPresso (presso : Number)
Possui11
1
Controla1
1
NomeAtributo
Mtodo
Relacionamento
Multiplicidade
Navegabilidade
-
CIn/UFPE Projeto Conceitual de BD - Prof. Robson Fidalgo 51
Diagrama de Classes da UML Elementos de um diagrama de classes - Relacionamento
Resumindo...
Agregao
Dependncia
Realizao
Associao Bidirecional
Composio
Associao Unidirecional
Associao Qualificadachave
Associao Ordenada
{ordered}
Associao Exclusiva
{XOR}
Herana{complete | incomplete, disjoint | overllaping}
-
CIn/UFPE Projeto Conceitual de BD - Prof. Robson Fidalgo 52