ProjetoBD ParteVI Diagrama de Classe

52
CIn/UFPE – Projeto Conceitual de BD - Prof. Robson Fidalgo 1

description

ProjetoBD ParteVI Diagrama de Classe

Transcript of 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

    [email protected]

  • 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