SlideShare ist ein Scribd-Unternehmen logo
1 von 69
Downloaden Sie, um offline zu lesen
SISTEMAS DE INFORMAÇÃO
Modelação do Conhecimento e Bases de Dados




 3. Modelação Conceptual de Classes


 ©1999 João Falcão e Cunha
3. Modelação Conceptual de Classes

    1 O Processo de Modelação Estática de Classes.

    2 Classes de Objectos, Atributos e Métodos.
    3 Ligações, Associações e Agregações Simples.
    4 Generalização e Herança Simples.
    5 Mapeamento entre o Modelo de Classes e o Modelo
      Relacional.
    6 Conclusões e Principais Referências.




3. Modelação Conceptual de Classes                      3.2
3.1 O Processo de Modelação Estática de
                     Classes

    1 Introdução aos modelos e processos de modelação
    2 Modelação Entidade-Associação (EA) e programação
      orientada por objectos (OO)
    3 Modelação avançada OMT ('Object Modeling
      Technique') e UML ('Universal Modeling Language')
    4 A função da decomposição na análise e modelação de
      Sistemas Complexos




3.1 O Processo de Modelação Estática de Classes            3.3
Os Modelos são obtidos com o Método ou
                Metodologia Científica

    Os modelos são instrumentos para comunicar
      objectivamente, para testar hipóteses ou para prever o
      desempenho dos sistemas reais.
    Exemplos de modelos em engenharia:
           – Uma carta topográfica.
           – Maqueta de um edifício.
           – Projecto estrutural de um edifício.
           – Desenho de um circuito integrado.
           – Conjunto de equações diferenciais.
           – Sequência de bases de uma proteína a sintetizar.
    Um modelo particular deve ser à partida consistente e
     completo.
3.1 O Processo de Modelação Estática de Classes                 3.4
Um Modelo usa uma Linguagem e resulta
            da aplicação de um processo

    Uma linguagem tem regras de utilização informais e
     formais.
    Uma linguagem serve para comunicar efectivamente:
           – Deve ser conhecida pelos intervenientes, deve ser simples,
             clara e concisa.
           – As suas expressões devem ter significados únicos, sem
             ambiguidade.
           – As expressões devem ter uma Sintaxe e uma Semântica
             denotacional, ou matemática.
    Os modelos obtidos devem ser implementáveis
      informaticamente, mas de forma independente do
      equipamento ou suporte lógico particular.

3.1 O Processo de Modelação Estática de Classes                           3.5
Modelos para o estudo de processos e
                  sistemas em organizações

                                                                FCS
                                                      Análise e Modelação dos
                                                    Factores Críticos de Sucesso



                                                                PN
                Nível de                              Análise e Modelação dos                 Nível de
                Abstracção                             Processos de Negócio                    Detalhe
                Crescente                                                                    Crescente


                                                                 SI
                                                      Análise e Modelação do
                                                      Sistema de Informação

                                                                              Documentação


                                             Concepção, Implementação e Endogenização
                                                dos Módulos e Aplicações do Sistema


                                                           Gestão do Projecto
                                                         Planeamento e Controlo

3.1 O Processo de Modelação Estática de Classes                                                          3.6
Análise e Modelação do Sistema de
                            Informação

                                      A&M

               • Modelação da Interface Gráfica com
                 o Utilizador
               • Modelação das Classes de Objectos
               • Modelação de outros Aspectos




                  UTIL                                    SLIE                  PCIE
             Requisitos dos                         Especificação do    Plano para Concepção,
              Utilizadores                         Suporte Lógico e        Implementação e
                                                  Interfaces Externas       Endogenização




3.1 O Processo de Modelação Estática de Classes                                                 3.7
Modelação Estática das Classes de
                            Objectos

    • Estática ? ...
           – Estática: parte da mecânica que estuda o equilíbrio das forças
             sobre corpos em repouso?
           – Dinâmica: parte da mecânica que estuda as relações entre as
             forças e os movimentos por elas produzidos?
           – Cinemática: parte da mecânica que estuda o movimento,
             independentemente das forças que o provocam?
                   • Nota: ainda há a óptica, etc.


    • Classes, Tipos, Conjuntos, Formas, ...
    • Objectos, Entidades, Agentes, ...

3.1 O Processo de Modelação Estática de Classes                               3.8
Modelação EA ou Entidade Associação
                 (ER “Entity-Relationship”).

    • Apenas Modelação estática, com apoio numa linguagem
      de comunicação gráfica, conceptualmente muito simples
      e clara (mas não concisa).
    • Utiliza 4 conceitos primitivos: Entidade, Atributo,
      Associação, Generalização (EA generalizado ou EAG).
                                           códigoSWIFT                                        númeroDeConta



                                                  Banco                                       ContaBancária

                                                                         administra


                                                          siglaDoBanco                tipoDeConta

                                   nomeDoBanco                                                      limiteLevantamento

3.1 O Processo de Modelação Estática de Classes                                                                          3.9
Modelação OMT
                          “Object Modeling Technique”.

    • Modelação estática, dinâmica e funcional com apoio
      em 3 tipos de linguagem de comunicação gráfica,
      conceptualmente clara e concisa (mas não tão simples
      como a EA).
    • Utiliza vários conceitos primitivos, para além dos de
      EAG.
    • Exemplo de um modelo estático de Classes OMT, muito
      simples:
                                              Banco                      ContaBancária

                                    nomeDoBanco {CC3}                 númeroDeConta {CC1}
                                    siglaDoBanco {CC2}   administra   tipoDeConta
                                    códigoSWIFT {CC1}                 limiteLevantamento



3.1 O Processo de Modelação Estática de Classes                                             3.10
Modelação UML
                        “Universal Modeling Language”

    • Utiliza os seguintes modelos (UML v1.1):
           – (1) Diagrama de casos de utilização (quot;use-casesquot;)
           – (2) Diagrama de classes
           – Diagramas de comportamento:
                   • (3) Diagrama de estados (quot;statechartsquot;)
                   • (4) Diagrama de actividades
                   • Diagramas de interacção:
                                  (5) Diagrama de sequências
                                  (6) Diagrama de colaborações
           – Diagramas de Implementação:
                   • (7) Diagrama de componentes
                   • (8) Diagrama de implantação
3.1 O Processo de Modelação Estática de Classes                  3.11
Modelação UML

    • Utiliza dezenas de conceitos primitivos, para além dos
      de OMT

    • Exemplo de um Diagrama de Classes UML muito
      simples:
                                             Banco                                  ContaBancária

                                   nomeDoBanco {CC3}                         *   númeroDeConta {CC1}
                                   siglaDoBanco {CC2}           administra       tipoDeConta
                                   códigoSWIFT {CC1}                             limiteLevantamento




                                             Nota: Repare-se na notação * de multiplicidade UML.

3.1 O Processo de Modelação Estática de Classes                                                        3.12
Atributos dos Sistemas complexos

    • A complexidade toma a forma de uma hierarquia; um
      sistema é composto por sub-sistemas interrelacionados.
    • A escolha dos componentes primitivos (atómicos ?) é
      relativamente arbitrária e depende do observador do
      sistema.
    • A ligação ou a comunicação interna a uma componente
      de um sistema é maior ou mais frequente do que a
      externa, entre componentes.
    • Os sistemas hierárquicos são compostos por poucos
      tipos de sub-sistemas em muitas combinações ou
      arranjos.
    • Um sistema complexo que funciona é sempre o
      resultado de um sistema mais simples que funcionava.
3.1 O Processo de Modelação Estática de Classes                3.13
Que Decomposição?

    • Decomposição algorítmica … vista de processo,
      ordenação de acções e eventos (menos estáveis), ...

    • Decomposição orientada por objectos … vista de
      agentes (mais estáveis) que executam acções, …
           – Programação OO.
           – Modelação EA de Bases de Dados.
           – Filosofia Cartesiana (Descartes).


    Qual das duas decomposições deve ser efectuada
      inicialmente?

3.1 O Processo de Modelação Estática de Classes             3.14
Como modelar e construir Sistemas
                         complexos ?

    • Uma Linguagem … da modelação à programação.

    • Um Processo: as regras para a obtenção ordenada das
      várias partes do modelo e para a construção do sistema
      (do tipo LUCID ou prototipificação evolutiva, mas
      aplicadas a cada um dos modelos particulares em
      causa).
    • Ferramentas: utensílios para apoiar a produção dos
      modelos, de forma a facilitar a aplicação do processo, a
      automatizar a verificação de regras de consistência e a
      eliminar erros sintácticos.


3.1 O Processo de Modelação Estática de Classes                  3.15
3. Modelação Conceptual de Classes

    1 O Processo de Modelação Estática de Classes.

    2 Classes de Objectos, Atributos e Métodos.

    3 Ligações, Associações e Agregações Simples.
    4 Generalização e Herança Simples.
    5 Mapeamento entre o Modelo de Classes e o Modelo
      Relacional.
    6 Conclusões e Principais Referências.


3. Modelação Conceptual de Classes                      3.16
3.2 Classes de Objectos, Atributos e
                            Métodos

    CONTEÚDOS
    1. Objectos e Atributos
    2. Classes de Objectos
    3. Operações e Métodos de Classes
    4. Domínios e Operações Complexas
    5. Atributos Derivados
    6. Atributos de Classe e Operações de Classe
    7. Atributos candidatos a identificadores
    8. Significados implementacional e denotacional


3.2 Classes de Objectos, Atributos e Métodos          3.17
Objectos e Atributos

    • Dado um sistema ou problema em estudo, como
      identificar os objectos e respectivos atributos a incluir
      nos modelos de análise ou concepção?
            – “A empresa OnTime dispõe de uma frota própria de viaturas de carga, ligeiras e
              pesadas, incluindo reboques e atrelados. Dispõe ainda de viaturas que
              pertencem a clientes”.
            – “Cada serviço contratado é realizado num dado percurso, formado por uma
              sequência ligada de trajectos. Cada percurso tem origem e destino em depósitos
              de viaturas, podendo estes depósitos ser diferentes. Cada trajecto, com um
              nome único, é caracterizado por uma origem, um destino e uma distância em
              quilómetros. Por exemplo, o serviço OTN3456, previsto e realizado no percurso
              de Porto-Serralves para Braga-Centro, utilizou a viatura 34-98-DH e foi
              assegurado pelo Senhor Jorge Sampaio. Este percurso foi formado pela
              sequência ligada dos seguintes 3 trajectos: Porto-Leixões/Porto-Serralves,
              Porto-Serralves/Braga-Centro e Braga-Centro/Porto-Leixões. O sistema de
              planeamento operacional GistRv sugeriu que fossem utilizados os trajectos
              indicados para uma viatura do depósito Porto-Leixões”.

3.2 Classes de Objectos, Atributos e Métodos                                                   3.18
Objectos e Atributos

    • Objecto: conceito com individualidade e identidade
      própria, normalmente identificado com um nome, sem
      ambiguidade num dado contexto ou situação. Podemos
      ter objectos concretos ou abstractos, mas um objecto é
      sempre único. Os objectos estão normalmente associados a
          nomes próprios: Jorge Sampaio (motorista), Fernando Pessoa
          (poeta), Princesa Leia (Guerra das Estrelas), OTN3456 (serviço),
          teorema da Incompletude de Gödel.
    • Atributo: dimensão de observação que nos permite dar
      um valor a um objecto, valor esse que pertence a um
      conjunto bem definido. Os valores não têm identidade,
      ao contrário dos objectos, devido a serem abstracções
      matemáticas perfeitas. Os atributos estão normalmente
          associados aos adjectivos, na descrição do problema.
3.2 Classes de Objectos, Atributos e Métodos                                 3.19
Exemplos de Objectos e Atributos


                         FPessoa: Poeta

              nome = Fernando Pessoa
              dataDeNascimento=1888.06.13             FSCarneiro: Aeroporto

                                               código = OPO
                                               nome = Aeroporto Francisco Sá Carneiro
                        V3498DH:Viatura        cidade = Porto
                    matrícula = 34-98-DH
                    marca = Volvo
                    modelo = B400
                    cilindrada = 5000 cc
                    potência = 300 CV                  Heathrow: Aeroporto

                                               código = LHR
                                               nome = Heathrow Airport
                PLeia: PersonagemDeFilme       cidade = Londres

              nome = Princesa Leia
              primeiroFilme=Star Wars

3.2 Classes de Objectos, Atributos e Métodos                                            3.20
Classes de Objectos

    • Classe de objectos: caracterização formal de um grupo
      de objectos semelhantes, no que eles têm de comum.
      Os objectos são instâncias de uma dada classe. As classes
          são os nomes comuns das descrições.
    • Devido à necessidade de identificar cada objecto
      unicamente em todo o sistema, tem de existir um
      atributo externo, ou conjunto de atributos externos, que
      o permita fazer. Tais atributos são designados chaves
      candidatas a identificador. Contudo, por razões de implementação,
          deve-se sempre vir a ter para cada classe um único atributo identificador,
          interno ao sistema que a virá a implementar. Os códigos identificadores
          externos ou públicos, tais como o número do Bilhete de Identidade ou o
          código de um motorista na empresa, estão sujeitos a ser alterados com o
          tempo, não sendo adequados a servir de referências internas. O modelo de
          análise deve assim utilizar apenas atributos externos.
3.2 Classes de Objectos, Atributos e Métodos                                           3.21
Exemplos de Classes de Objectos


                         Livro                           Aeroporto              CódigoPostal

              códigoISBN                             código                   códigoPostal
              nExemplar                              nome                     localidade
              data                                   local
              título


                                                              Classe Pessoa
                                                              para
                    Classe Pessoa                             Concepção:         Pessoa
                    para
                    Análise:      Pessoa                                  nomePróprio
                                                                          apelido
                                      nome                                outrosApelidos
                                      endereço                            endereçoL1
                                      códigoPostal                        endereçoL2
                                      país                                aldeiaVilaOuCidade
                                                                          códigoPostal
                                                                          país
3.2 Classes de Objectos, Atributos e Métodos                                                   3.22
Operações e Métodos de Objectos

    • As operações são funções ou procedimentos definidos
      no âmbito de um objecto com determinados argumentos
      e resultado, implementados como métodos da
      respectiva classe, por exemplo. Algumas operações são
          polimórficas, isto é o tipo dos seus argumentos pode variar.


    Método salárioMensal                                                     Motorista
    de objectos da Classe
                                                                      códigoNaEmpresa
    Motorista. Este método permite                                    nomePróprio
    calcular o salário mensal de                                      apelido
    cada motorista, por exemplo,                                      outrosApelidos
    com base nas horas
                                                                      salárioMensal
    efectivamente trabalhadas.                                        bonusAnual


                                               Nota: Não confundir com Métodos sobre Classe.
3.2 Classes de Objectos, Atributos e Métodos                                                   3.23
Domínios e Operações Complexas

    • Dados primitivos: tipo Natural (abreviado Nat), Inteiro
      (abreviado Int), Real, conjunto enumerado, …
    • Um domínio corresponde a um tipo de dados definido a
      partir dos tipos primitivos através de construções
      simples (simples, sobretudo em caso de implementação com SGBDr).
    • Um domínio é um conjunto de valores; os valores são
      entidades abstractas que não têm identidade, ao
      contrário dos objectos, que correspondem a entidades
      com identidade na realidade do problema. A noção formal de
          domínio corresponde à noção tradicional de um conjunto a que se adiciona
          normalmente um elemento com valor indefinido.
    • É possível ou desejável modelar Métodos ou Operações
      Complexas? (para SGBDr, a resposta é normalmente negativa).
3.2 Classes de Objectos, Atributos e Métodos                                         3.24
Exemplos de Domínios e Operações
                           Complexas


       • Indicação de Domínios
         de valores para os
         atributos e os métodos.                             NodoDeÁrvoreBinária

                                                          identificadorPúblico {CC1}
       • Indicação de valores por
                                                          pesoEsquerdo: Int = 1
         defeito para os atributos                        pesoDireito: Int = 1
         pesoEsquerdo e                                   valorDoNodo: Real
         pesoDireito.
                                                          médiaPesos: Int x Int → Real
                                                          pesoMáximo: Int x Int → Int




                                               Questão: Como implementar num SGBDr?

3.2 Classes de Objectos, Atributos e Métodos                                             3.25
Atributos Derivados

    • Um atributo derivado contem informação que pode ser
      facilmente calculada a partir da informação presente em
      outros atributos.
    • Em termos de implementação, por exemplo recorrendo
      a um SGBDr, coloca-se a questão de tornar um atributo
      derivado persistente ou de calcular o seu valor no
      momento de consulta pelo utilizador.
• O atributo horaDeChegada
  pode ser calculado a partir
  dos atributos horaDePartida                                    Serviço
  e duração.                                               dataDeRealização
                                                           horaDePartida
                                                           duração
                                                           •horaDeChegada
3.2 Classes de Objectos, Atributos e Métodos                                  3.26
Atributos sobre Classes e Operações sobre
                        Classes

    • Atributos de classe: úteis para manter informação
      comum a todos os objectos da classe, como parâmetros
      ou constantes. No entanto não é normalmente uma boa solução
          recorrer a estes atributos, pois existe sempre a possibilidade de definir
          outra classe, correspondente aos parâmetros ou constantes, e recorrer a
          associações para manter a caracterização desejada.
    • Operações de classe: úteis para criar um novo objecto;
      uma operação deste tipo tem assim como domínio a
      própria classe e não objectos ou seus atributos.




3.2 Classes de Objectos, Atributos e Métodos                                          3.27
Exemplos de Atributos de Classe e
                        Operações de Classe



                                                      Motorista

                                               códigoNaEmpresa
                Atributo de Classe:            nomePróprio
                                               apelido
                                               outrosApelidos
                                               códigoDeActividade = 133

                                               salárioMensal
                                               bonusAnual
                Operação de Classe:            novoMotorista




3.2 Classes de Objectos, Atributos e Métodos                              3.28
Atributos candidatos a identificadores

    • Cada classe pode ter um atributo externo que permita
      identificar todas as suas instâncias, isto é nomear cada
      um dos possíveis objectos da classe, sem ambiguidade.
          Na realidade pode haver mais do que um atributo que satisfaça esta
          condição, e assim teremos vários identificadores candidatos.
    • Podemos também ter necessidade de um conjunto de
      atributos para atingir este objectivo, pelo que então
      teremos um identificador composto. Neste último caso os
          atributos têm que ser em número mínimo. Isto é, se retirando do conjunto
          um ou mais atributos se mantiver a possibilidade de identificação, então
          será este conjunto menor o identificador. Obviamente nenhum identificador
          composto pode incluir um atributo identificador simples.




3.2 Classes de Objectos, Atributos e Métodos                                          3.29
Exemplos de Atributos candidatos a
                           identificadores


       Identificador Simples:                  Identificador Composto:
       o código identifica                     o código ISBN e o número
       unicamente um dado                      de cópia do livro (os dois
       aeroporto.                              em conjunto) identificam
                                               unicamente um dado livro
                                               numa biblioteca.

                            Aeroporto                          Livro

                     código {CC1}                        códigoISBN {CC1}
                     nome                                nExemplar {CC1}
                     local                               data
                                                         título




3.2 Classes de Objectos, Atributos e Métodos                                3.30
Significados implementacional e
                                 denotacional

    • Significado Implementacional “Como implemento?”:
      Por exemplo, envolvendo a tradução para o modelo
      relacional, baseado na álgebra relacional, seguindo-se a
      utilização de um dado SGBDr, SQL e linguagem de
      programação apropriada. Todos estes passos
      efectuados com base em normas existentes.
    • Significado Denotaciona “Que significa?”: Por
      exemplo, envolvendo modelos formais recorrendo a uma
      teoria de conjuntos ou domínios, e à lógica formal para
      fornecer um significado de referência, abstracto,
      independente de uma particular sequência de
      implementação.

3.2 Classes de Objectos, Atributos e Métodos                     3.31
podePertencerA


    Exemplo de                                                           Pessoa
                                                                   Ver Modelo Pessoa




    Modelo                                            Cliente                          Motorista                                           Viatura
                                               designaçãoSocial                   códigoNaEmpresa                                       matrícula
                                               $LimiteDeCrédito                   nomePróprio           condutor                        marca
                                                                                  apelido                                matrícula
                                                                                                                                        modelo
                                                                                  outrosApelidos            podeConduzir                cilindrada
                                                                                                                                        potência
                                                                                  salárioMensal
                                                                                  bonusAnual
                                                                                                                             classeDaViatura

     Modelo                                                   negoceia
                                                                                                      Pesado              Reboque                  Ligeiro
     estático de                                                                                   nEixos             nEixos                 nPassageiros

     classes do                                                                                                       tipoAtrelado

                                                                          éAsseguradoPor
     subsistema de
                                                                                                                                          depósitoBase
     gestão de                                                                                         DepósitoDeViatura
                                                                                                                                #DepósitoDeViatura

     transportes da                                                                                     temOrigem          temDestino

     empresa                                   ContratoDeServiço                                            Serviço
                                                                                                                                         utiliza

     OnTime:                                   tipoDeTarifa                                          dataDeRealização
                                                                                                     horaDePartida
                                                                                                     duração                         éRealizadoNo

                                                                                                                                            Percurso

                                                                          EspecificaçãoDeServiço                                         nome
                                                              inclui                                  dáOrigem
                                                                          horaPrevistaDePartida                          éPrevistoNo
                                                                          duraçãoPrevista
                                                                                                                                                     éFormadoPor

                                                                                        regularidadeDoServiço                                        {ordenado}
                                                                                                                                            #Trajecto

                                                              Periódico                             Ocasional                               Trajecto

                                                   frequênciaPrevista                      dataPrevistaDeRealização                      origem
                                                   dataPrevistaDeInício                                                                  destino
                                                   dataPrevistaDeFim                                                                     distância
3.2 Classes de Objectos, Atributos e Métodos                                                                                                                       3.32
Conclusões

    • A identificação das classes de objectos, e dos seus
      atributos e operações, é a primeira fase do processo de
      modelação estática de classes.
    • A identificação das operações não é útil em termos de
      modelo relacional puro. Mas é importante quer para o
      modelo de interacção com o utilizador, quer para a
      implementação global das funcionalidades requeridas.
    • A notação gráfica utilizada, baseada na norma UML do
      diagrama de classes, é simples,clara e concisa, tendo
      um significado denotacional e implementacional preciso.



3.2 Classes de Objectos, Atributos e Métodos                    3.33
3. Modelação Conceptual de Classes

    1 O Processo de Modelação Estática de Classes.
    2 Classes de Objectos, Atributos e Métodos.

    3 Ligações, Associações e Agregações Simples.

    4 Generalização e Herança Simples.
    5 Mapeamento entre o Modelo de Classes e o Modelo
      Relacional.
    6 Conclusões e Principais Referências.


3. Modelação Conceptual de Classes                      3.34
3.3 Ligações, Associações e Agregações
                      Simples


    CONTEÚDOS

    1. Ligações entre Objectos
    2. Associações entre Classes
    3. Atributos ou Classes em Ligações
    4. Agregação entre Classes




3.3 Ligações, Associações e Agregações Simples   3.35
Ligações entre Objectos

    • Uma vez classificados os grupos de entidades, como
      objectos e classes, deve observar-se como é que estes se
      relacionam uns com os outros.
    • Há entidades que são autónomas entre si, mas que
      interagem ou comunicam, há outras que se agrupam para
      formar entidades mais complexas, e há ainda outras que
      nós próprios criamos, tendo normalmente uma existência
      abstracta dependente da de outras entidades.
    • Exemplo: caso de uma autarquia, com os seus clientes,
      funcionários, departamentos, divisões e serviços. Os
      clientes são por exemplo os residentes que pagam a
      contribuição autárquica. Quais as relações existentes?

3.3 Ligações, Associações e Agregações Simples              3.36
Exemplos de Ligações entre Objectos

    • Estabelece-se uma ligação entre 2 ou mais objectos
      quando é importante manter a informação que os relaciona
      de alguma forma relevante para a situação em estudo.

• Exemplo de ligações                                                           V3498DH:Viatura
  podeConduzir entre
                                                                              matrícula = 34-98-DH
  objectos das classes                                         podeConduzir   marca = Volvo
  Motorista e Viatura:                                                        modelo = B400
                                                                              cilindrada = 5000 cc
                                                   JSampaio:Motorista
                                                                              potência = 300 CV
                                                 códigoNaEmpresa = DV07
                                                 nomePróprio = Jorge
                                                 apelido = Sampaio             VR234ADC6:Viatura

                                                                              matrícula = 35-77-KA
                                                               podeConduzir   marca = Mercedes
                                                                              modelo = T5
                                                                              cilindrada = 4000 cc
                                                                              potência = 280 CV
3.3 Ligações, Associações e Agregações Simples                                                       3.37
Associações entre Classes

    • Uma associação entre duas ou mais classes
      corresponde à caracterização e tipificação de ligações
      semelhantes entre objectos dessas classes.
    • Assim como um objecto é uma instância de uma classe,
      uma ligação é uma instância de uma associação.

• Exemplo de associação
  podeConduzir entre
                                                                               Viatura
  classes Motorista e                            Motorista
  Viatura:                                                                  matrícula
                                           códigoNaEmpresa                  marca
                                           nomePróprio       podeConduzir   modelo
                                           apelido                          cilindrada
                                                                            potência


3.3 Ligações, Associações e Agregações Simples                                           3.38
Multiplicidade de Associações


                                   [10]                    Classe   Opcional (0 ou 1)


                                   [1]                     Classe   Exactamente 1


                         [N0] ou [N]                       Classe   0, 1 ou muitos

                                                    1..*
                                  [N1]                     Classe   Um ou mais

                                                 1..2, 4
                                [1..2, 4]                  Classe   Numericamente especificado

                                                    y
    [y:atributo↑] ou [y:atributo↓]                         Classe   [N], [N1] ou especificada, e ordenada
                                             {ordenada}



3.3 Ligações, Associações e Agregações Simples                                                              3.39
Exemplos de Associações Unárias

   • Exemplo de uma associação unária
     (ou reflexiva) relativa ao sistema                      Convidado
     para atribuição de lugares nas                       nome
     mesas aos convidados de uma                          sexo
     empresa de gestão de recepções:                      línguaMãe                  éCasadoCom




   • O modelo com a associação unária é normalmente preferível (porquê?).


                                 2                                                        2 pais
                 Pais                            Filhos                        Pessoa


                                                                      filhoOuFilha
                          L Modelo Incorrecto

3.3 Ligações, Associações e Agregações Simples                                                     3.40
Exemplo de Associação Ternária

                                                    Docente                         Curso
                                                 siglaDocente                   códigoCurso
• Multiplicidade representada
  graficamente:
                                                                             recomendaLivroParaCurso



                                                                    Livro
                                                                códigoISBN
        Questão: qual é a situação que exige a
        associação aqui representada?
                                                    Docente                         Curso
• Multiplicidade                                 siglaDocente                   códigoCurso
  representada pelo
  identificador CC1 da
                                                                             recomendaLivroParaCurso
  associação:                                                                {CC1 = (siglaDocente, códigoCurso, códigoISBN)}

                                                                    Livro
                                                                códigoISBN
3.3 Ligações, Associações e Agregações Simples                                                                         3.41
Atributos ou Classes em Ligações

    • É possível haver atributos e classes em ligações ou em
      associações.
    • Tal é normal e necessário, em particular, nas
      associações muitos-muitos, onde o atributo é
      claramente uma propriedade da ligação (ou associação).
    • Numa associação de um-um ou um-muitos, o atributo
      pode normalmente ser considerado num dos objectos
      (ou classe). Porquê?
    • Se uma dada associação puder participar em novas
      associações, deve ascender ao estatuto de classe de
      ligação (associação). Porquê?


3.3 Ligações, Associações e Agregações Simples                 3.42
Exemplo de Atributo em Ligação



                                       classificação




                     Docente                               Curso
                siglaDocente                           códigoCurso



                                                    recomendaLivroParaCurso



                                            Livro              Nota: Não é desejável a utilização de
                                    códigoISBN                 associações de multiplicidade ternária
                                                               ou superior, devido à complexidade de
                                                               leitura dos modelos resultantes.
3.3 Ligações, Associações e Agregações Simples                                                          3.43
Associações Qualificadas

• Associação qualificada:
                                             ServiçoPeriódico                                 Serviço

                                        horaPrevistaDePartida                         númeroDoServiço
                                                                   dataDeRealização
                                        duraçãoPrevista                               dataDeRealização
                                        frequênciaPrevista      dáOrigem              horaDePartida
                                                                                      duração


        Nota: As linguagens OMT e UML utilizam
        uma notação diferente!

• Associação não qualificada:

                                             ServiçoPeriódico                                 Serviço

                                        horaPrevistaDePartida                         númeroDoServiço
                                        duraçãoPrevista              dáOrigem         dataDeRealização
                                        frequênciaPrevista                            horaDePartida
                                                                                      duração

3.3 Ligações, Associações e Agregações Simples                                                           3.44
Agregação entre Classes

    • A agregação é um tipo especial de associação, utilizada
      por exemplo para indicar a composição física de um tipo
      de produto, ou a estrutura de organização de uma
      entidade, conforme os exemplos seguintes.
    • O conjunto de ligações entre os objectos que a
      agregação descreve, visto como uma relação
      matemática, caracteriza-se pelas propriedades de
      transitividade e anti-simetria.




3.3 Ligações, Associações e Agregações Simples                  3.45
Exemplo de agregação entre classes


                                                                     Universidade
     • Agregação fechada, com
       indicação de todas as
                                                                                       éConstituídaPor
       classes constituintes:


                                                 Faculdade               Instituto               OutrosServiços




                                                                     Universidade
   • Agregação aberta,
     indicando algumas classes
     constituintes:


                                                             Faculdade               Instituto

3.3 Ligações, Associações e Agregações Simples                                                                3.46
Agregação de catálogo e de produto

    • Exemplo de agregação de catálogo e de produto: uma
      peça em catálogo pode pertencer a muitos produtos.

 Atributo de ligação:              quantidade                  Atributo de ligação:    quantidade



              componente                            contem              componente                   contem

             PeçaDeCatálogo                                             PeçaMaterial
                                          produto                                          produto
            númeroDoModelo                                            númeroDeSérie
                                                    descreve


                                                 Exemplo adaptado de [Blaha & Premerlani 1998; 53].

3.3 Ligações, Associações e Agregações Simples                                                                3.47
podePertencerA


    Exemplo de                                                             Pessoa
                                                                     Ver Modelo Pessoa




    Modelo                                              Cliente                          Motorista                                           Viatura
                                                 designaçãoSocial                   códigoNaEmpresa                                       matrícula
                                                 $LimiteDeCrédito                   nomePróprio           condutor                        marca
                                                                                    apelido                                matrícula
                                                                                                                                          modelo
                                                                                    outrosApelidos            podeConduzir                cilindrada
                                                                                                                                          potência
                                                                                    salárioMensal
                                                                                    bonusAnual
                                                                                                                               classeDaViatura

     Modelo                                                     negoceia
                                                                                                        Pesado              Reboque                  Ligeiro
     estático de                                                                                     nEixos             nEixos                 nPassageiros

     classes do                                                                                                         tipoAtrelado

                                                                            éAsseguradoPor
     subsistema de
                                                                                                                                            depósitoBase
     gestão de                                                                                           DepósitoDeViatura
                                                                                                                                  #DepósitoDeViatura

     transportes da                                                                                       temOrigem          temDestino

     empresa                                     ContratoDeServiço                                            Serviço
                                                                                                                                           utiliza

     OnTime:                                     tipoDeTarifa                                          dataDeRealização
                                                                                                       horaDePartida
                                                                                                       duração                         éRealizadoNo

                                                                                                                                              Percurso

                                                                            EspecificaçãoDeServiço                                         nome
                                                                inclui                                  dáOrigem
                                                                            horaPrevistaDePartida                          éPrevistoNo
                                                                            duraçãoPrevista
                                                                                                                                                       éFormadoPor

                                                                                          regularidadeDoServiço                                        {ordenado}
                                                                                                                                              #Trajecto

                                                                Periódico                             Ocasional                               Trajecto

                                                     frequênciaPrevista                      dataPrevistaDeRealização                      origem
                                                     dataPrevistaDeInício                                                                  destino
                                                     dataPrevistaDeFim                                                                     distância
3.3 Ligações, Associações e Agregações Simples                                                                                                                       3.48
Conclusões

    • Depois de identificar os objectos, classes e atributos
      pode-se observar como estes se relacionam, através de
      ligações, associações e agregações.
    • As classes e associações a utilizar dependem do
      detalhe necessário ao modelo em construção. O mesmo
      conceito numa situação ou problema real pode originar
      atributos, objectos, classes, ligações, associações ou
      agregações diferentes em processos de Análise e
      Modelação orientados para níveis de detalhe ou
      objectivos diferentes.
    • A análise global dos diagramas deve permitir validar a
      completude e verificar a consistência do modelo
      construído.
3.3 Ligações, Associações e Agregações Simples                 3.49
3. Modelação Conceptual de Classes

    1 O Processo de Modelação Estática de Classes.
    2 Classes de Objectos, Atributos e Métodos.
    3 Ligações, Associações e Agregações Simples.

    4 Generalização e Herança Simples.

    5 Mapeamento entre o Modelo de Classes e o Modelo
      Relacional.
    6 Conclusões e Principais Referências.


3. Modelação Conceptual de Classes                      3.50
3.4 Generalização e Herança Simples


    CONTEÚDOS

    1. Generalização ou Particularização (exclusiva)
    2. Classes Concretas e Abstractas
    3. Particularização Inclusiva




3.4 Generalização e Herança Simples                    3.51
1. Generalização ou Particularização
                            Exclusiva

    • As noções de associação e generalização capturam as
      duas formas mais tradicionais de análise e especificação
      de sistemas: a associação indica-nos a organização do
      sistema através da sua decomposição em partes, a
      generalização permite-nos identificar semelhanças entre
      sistemas ou seus componentes através da uma
      decomposição em tipos.
    •    Por exemplo, podemos analisar as viaturas utilizadas por uma empresa nos
         seus diversos tipos, por exemplo pesados e ligeiros. Podemos também
         alargar esta análise a níveis mais gerais: uma viatura é um bem móvel, e um
         bem móvel é um bem patrimonial. Temos assim uma hierarquia.
    •    A utilidade de qualquer hierarquia esgota-se na sua capacidade de resumir ou
         explicar conhecimento. Sendo assim aplicam-se as regras normais, pelo que
         não é natural permitir por exemplo menos do que 3 ou mais do que 7
         particularizações distintas para cada classe de objectos, num dado nível.
3.4 Generalização e Herança Simples                                                3.52
Exemplos de Generalização Exclusiva

• Exemplo de Generalização na
  classe Viatura (“super-classe”) da
  informação comum às várias                         Viatura
  classes de viaturas (“sub-classes”)
                                                  matrícula
  utilizadas pela empresa OnTime:                 marca
  Pesados, Reboques e Ligeiros.                   modelo
                                                  cilindrada
• Diz-se que a particularização é                 potência
  exclusiva quando uma viatura pode
  ser apenas de uma e só uma das
  classes particulares.                                        classeDaViatura



                                         Pesado     Reboque                      Ligeiro

                                      nEixos      nEixos                  nPassageiros
                                                  tipoAtrelado


3.4 Generalização e Herança Simples                                                        3.53
2. Classes Concretas e Abstractas

    • Uma classe (super-classe) diz-se abstracta quando não
      tem instâncias. Por exemplo, quando no todo ou em
      parte não corresponde a nunhuma classe que irá ser
      implementada.
    • No final de uma hierarquia de particularização haverá
      sempre classes concretas, isto é classes com instâncias
      a que correspondem directamente objectos, por
      exemplo, nas suas formas de implementação.
    •    Por exemplo, vamos supor que identifico uma super-classe Pessoa e
         respectivas sub-classes Pessoa Singular e Pessoa Colectiva.
         Considerando que decido apenas implementar estas duas últimas, posso
         afirmar que a classe Pessoa é abstracta, visto não existirem instâncias ou
         objectos da classe Pessoa.


3.4 Generalização e Herança Simples                                                   3.54
Exemplo de Particularização Inclusiva


• Exemplo de Generalização
  Inclusiva na classe Estudante
  das classes trabalhador,
  dirigente associativo, dirigente
  sindical ou militar.
                                                       Estudante
• Diz-se que a particularização é
  inclusiva porque o estudante
                                                                   podeSer
  pode pertencer a várias das
  classes particulares.


                    Trabalhador       DirigenteAssociativo     DirigenteSindical   Militar




3.4 Generalização e Herança Simples                                                          3.55
podePertencerA


    Exemplo de                                                  Pessoa
                                                          Ver Modelo Pessoa




    Modelo                                   Cliente                          Motorista                                           Viatura
                                      designaçãoSocial                   códigoNaEmpresa                                       matrícula
                                      $LimiteDeCrédito                   nomePróprio           condutor                        marca
                                                                         apelido                                matrícula
                                                                                                                               modelo
                                                                         outrosApelidos            podeConduzir                cilindrada
                                                                                                                               potência
                                                                         salárioMensal
                                                                         bonusAnual
                                                                                                                    classeDaViatura

     Modelo                                          negoceia
                                                                                             Pesado              Reboque                  Ligeiro
     estático de                                                                          nEixos             nEixos                 nPassageiros

     classes do                                                                                              tipoAtrelado

                                                                 éAsseguradoPor
     subsistema de
                                                                                                                                 depósitoBase
     gestão de                                                                                DepósitoDeViatura
                                                                                                                       #DepósitoDeViatura

     transportes da                                                                            temOrigem          temDestino

     empresa                          ContratoDeServiço                                            Serviço
                                                                                                                                utiliza

     OnTime:                          tipoDeTarifa                                          dataDeRealização
                                                                                            horaDePartida
                                                                                            duração                         éRealizadoNo

                                                                                                                                   Percurso

                                                                 EspecificaçãoDeServiço                                         nome
                                                     inclui                                  dáOrigem
                                                                 horaPrevistaDePartida                          éPrevistoNo
                                                                 duraçãoPrevista
                                                                                                                                            éFormadoPor

                                                                               regularidadeDoServiço                                        {ordenado}
                                                                                                                                   #Trajecto

                                                     Periódico                             Ocasional                               Trajecto

                                          frequênciaPrevista                      dataPrevistaDeRealização                      origem
                                          dataPrevistaDeInício                                                                  destino
                                          dataPrevistaDeFim                                                                     distância
3.4 Generalização e Herança Simples                                                                                                                       3.56
Conclusões

    • Identificar Classes (procurar nomes próprios e nomes comuns)
    • Identificar Associações (procurar verbos transitivos e preposições)
    • Acrescentar Atributos, detalhando as Classes e
      Associações (procurar frases preposicionais possessivas)
    • Utilizar Generalizações para caracterizar semelhanças
      e diferenças entre objectos
    • Testar caminhos de acesso e pesquisa de informação
    • Iterar e refinar o modelo, acrescentando, eliminando ou
      alterando o detalhe ou nível de abstracção
    • Organizar graficamente o modelo final


3. Modelação Conceptual de Classes                                          3.57
3. Modelação Conceptual de Classes

    1    O Processo de Modelação Estática de Classes.
    2    Classes de Objectos, Atributos e Métodos.
    3    Ligações, Associações e Agregações Simples.
    4    Generalização e Herança Simples.

    5 Mapeamento entre o Modelo de Classes e o Modelo
      Relacional.

    6 Conclusões e Principais Referências.


3. Modelação Conceptual de Classes                      3.58
3.5 Mapeamento entre o Modelo de
                  Classes e o Modelo Relacional


    CONTEÚDOS

    1. Exemplo de Conversão de Classes
    2. Exemplo de Conversão de Associações e Agregações
    3. Exemplo de Conversão de Generalizações




3.5 Mapeamento entre o Modelo de Classes e o Modelo Relacional   3.59
Exemplo de conversão de classes


                                                            Motorista

                                                      códigoNaEmpresa
                                                      nomePróprio
                                                      apelido




                      Motorista
                      #motorista              códigoNaEmpresa nomePróprio   apelido
                                          1   DV07               Jorge      Sampaio
                                          3   J007               Maria      Branca
                                          4   P235               José       Lami
                                          5   Y666               Ana        Chaves




3.5 Mapeamento entre o Modelo de Classes e o Modelo Relacional                        3.60
Conversão de Associações e Agregações

    • A implementação de uma associação entre duas ou
      mais classes num SGBDr pode ou não necessitar de
      uma tabela independente das tabelas correspondentes a
      essas classes. De seguida apresentam-se regras de
      conversão para os principais tipos de associações
      utilizadas, havendo normalmente várias opções de
      implementação, umas mais recomendadas do que
      outras.
    • As regras de conversão para agregações são idênticas
      às das associações com a mesma multiplicidade, pelo
      que não se apresentam exemplos.


3.5 Mapeamento entre o Modelo de Classes e o Modelo Relacional   3.61
Associações um-para-um

                                                             ContratoDeServiço                                 EspecificaçãoDeServiço
                                                                                                      inclui
                                                             tipoDeTarifa                                      horaPrevistaDePartida
                                                                                                               duraçãoPrevista



  ContratoDeServiço
  #contratoDeServiço       tipoDeTarifa           #especificaçãoDeServiçoIncluída
                       1   Alfa                                                              1
                       2   Beta                                                              5
                       4   Beta                                                              4
                       8   Gama                                                              3
  …


                              EspecificaçãoDeServiço
                              #especificaçãoDeServiço        horaPrevistaDePartida           duraçãoPrevista
                                                         1                           10:00                        2:44
                                                         3                           15:00                        3:23
                                                         4                           10:00                        5:44
                                                         5                           23:23                        3:30
                              …

3.5 Mapeamento entre o Modelo de Classes e o Modelo Relacional                                                                         3.62
Associações um-para-muitos

                                                                 Banco                                  ContaBancária

                                                      nomeDoBanco {CC3}                              númeroDeConta {CC1}
                                                      siglaDoBanco {CC2}          administra         tipoDeConta
                                                      códigoSWIFT {CC1}                              limiteLevantamento




  Banco
  #banco     nomeDoBanco                       siglaDoBanco      códigoSWIFT
          22 Banco Português do Atlântico      Atlântico                 334455
          33 Banco Comercial Português         BCP                       778907
          34 Caixa Geral de Depósitos          CGD                       333333




                                  ContaBancária
                                  #contaBancária númeroDeConta tipoDeConta limiteLevantamento #bancoQueAdministra
                                        910988876   382-98989-210    O                   200                   34
                                        910988878   12120009-32      O                   100                   34
                                        910988880   AA23347800       O                    50                   22
                                        910988881   334-00899-230    H                                         34

3.5 Mapeamento entre o Modelo de Classes e o Modelo Relacional                                                          3.63
Associações muitos-para-muitos
                                                                                                                               Viatura
                                                                    Motorista
                                                                                                                            matrícula
                                                             códigoNaEmpresa                                                marca
                                                             nomePróprio                         podeConduzir               modelo
                                                             apelido                                                        cilindrada
                                                                                                                            potência




  Motorista
  #motorista         códigoNaEmpresa nomePróprio            apelido


  …

                                                                                           Motorista_podeConduzir_Viatura
                                                                                           #motorista            #viatura


                                                                                           …



 Viatura
 #viatura        matrícula      marca           modelo           cilindrada     potência


 …


3.5 Mapeamento entre o Modelo de Classes e o Modelo Relacional                                                                           3.64
Associações ternárias                                                                           classificação




                                                                                     Docente                                Curso
                                                                                 siglaDocente                          códigoCurso

     Livro
     #livro               códigoISBN                                                                             recomendaLivroParaCurso


     …
                                                                                                         Livro
                                                                                                 códigoISBN


     Curso
     #curso               códigoCurso
                                                                 RecomendaLivroParaCurso

     …                                                           #docente       #curso          #livro               classificação
                                                                            7             33                     1                   18
                                                                            7             33                     2                   15
                                                                            7             33                     3                    7
                                                                            7             22                     1                    7
     Docente                                                                7             22                     3                   20
                                                                            9             33                     1                   15
     #docente             siglaDocente
                                                                            9             33                     3                   12
                                                                 …
     …

3.5 Mapeamento entre o Modelo de Classes e o Modelo Relacional                                                                            3.65
Viatura


     Conversão de generalizações                                                                     matrícula
                                                                                                     marca
                                                                                                     modelo
                                                                                                     cilindrada

     exclusivas                                                                                      potência


                                                                                                                  classeDaViatura



                                                                                       Pesado          Reboque                      Ligeiro

                                                                                    nEixos           nEixos                  nPassageiros
                                                                                                     tipoAtrelado



 Viatura
 #viatura        matrícula   marca    modelo       cilindrada potência    classeDaViatura
            12   12-12-TR    Volvo    Z707               2002       250   Ligeiro
            13   13-44-TR    Volvo    Z704               2002       250   Ligeiro
            77   22-98-ZR    Volvo    P4                 8000       400   Pesado
            78   22-99-ZR    Volvo    X700               2002       200   Ligeiro
            79   22-12-ZZ    Volvo    P4                 8000       500   Pesado
 …


 Pesado                              Reboque                                             Ligeiro
 #viaturaPesado neixos               #viaturaReboque neixos tipoAtrelado                 #viaturaLigeiro nPassageiros
                    77          8                      101        8 Articulado                      12                        5
                    79          8                      102        8 Articulado                      13                        4
                   116         12                      117       12 Longo                           78                        2
 …                                   …                                                   …
3.5 Mapeamento entre o Modelo de Classes e o Modelo Relacional                                                                           3.66
Conversão de generalizações
     inclusivas
                                                                                          Estudante

                                                                                                        podeSer



Estudante
#estudante          podeSer
                                                       Trabalhador   DirigenteAssociativo            DirigenteSindical            Militar
                1   Trabalhador
                1   Militar
                3   Dirigente Associativo
                3   Militar
                5   Militar
…




Trabalhador                        DirigenteAssociativo               DirigenteSindical                       Militar
#estudanteTrabalhador              #estudanteDirigenteAssociativo     #estudanteDirigenteSindical             #estudanteMilitar

                        1                                       3                               10                                   1
                        7                                      15                               11                                   3
                        8                                      19                               45                                   5
…                                  …                                  …                                       …


 3.5 Mapeamento entre o Modelo de Classes e o Modelo Relacional                                                                          3.67
Conclusões


    Fase prévia: Identificar e estudar todas as fontes relevantes de
          conhecimento sobre o sistema, com o objectivo de tipificar os
          utilizadores e descrever exaustivamente os casos de utilização.
          Elaborar descrições do contexto e do problema, bem como
          maquetas de baixa resolução das principais interfaces.

    Fase de Modelação de Classes: Classes, Associações, etc.

    Fase seguinte: Traduzir o modelo de classes para o modelo do
          sistema informático mais apropriado a utilizar, por exemplo,
          obtendo o esquema relacional no caso de se perspectivar a
          implementação com apoio num SGBDr.


3.6 Conclusões e Principais Referências                                     3.68
Principais referências

    [Blaha & Premerlani 1998]: Object-Oriented Modeling and
      Design for Database Applications, Prentice-Hall (Cap. 1, 2,
          3, 7, 8, 9, 13, 14).
    [Rumbaugh et al 1991] Object-Oriented Modeling and
      Design, Prentice-Hall (Cap. 1, 2, 3, 4, 5, 6).
    [Schneider & Winters 1998] Applying Uses Cases: a
      Practical Guide, Addison-Wesley Longman (Cap. 1, 2, 3).
    [UML Summary 1997] UML Summary, version 1.1,
      Rational Software Corporation (www.rational.com/uml).




3.6 Conclusões e Principais Referências                             3.69

Weitere ähnliche Inhalte

Was ist angesagt?

Análise e projeto de sistemas de informação aula1
Análise e projeto de sistemas de informação   aula1Análise e projeto de sistemas de informação   aula1
Análise e projeto de sistemas de informação aula1Gilberto Cysneiros
 
Modelando Sistemas com UML
Modelando Sistemas com UMLModelando Sistemas com UML
Modelando Sistemas com UMLarmeniocardoso
 
Do Diagrama de Fluxo de Dados ao Use Case
Do Diagrama de Fluxo de Dados ao Use CaseDo Diagrama de Fluxo de Dados ao Use Case
Do Diagrama de Fluxo de Dados ao Use CaseRobson Silva Espig
 
A importância da arquitetura de software
A importância da arquitetura de softwareA importância da arquitetura de software
A importância da arquitetura de softwareAdriano Tavares
 
Entendendo a Tríade Model-View-Controller (MVC) Utilizando Padrões de Projeto...
Entendendo a Tríade Model-View-Controller (MVC) Utilizando Padrões de Projeto...Entendendo a Tríade Model-View-Controller (MVC) Utilizando Padrões de Projeto...
Entendendo a Tríade Model-View-Controller (MVC) Utilizando Padrões de Projeto...Lucas Furtado de Oliveira
 
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UMLAnalise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UMLRildo (@rildosan) Santos
 
Metodologia orientado a objetos
Metodologia orientado a objetosMetodologia orientado a objetos
Metodologia orientado a objetosGabriel Faustino
 
Geracao Automatica Assistida Iu Marcelo Mrack
Geracao Automatica Assistida Iu Marcelo MrackGeracao Automatica Assistida Iu Marcelo Mrack
Geracao Automatica Assistida Iu Marcelo MrackMarcelo Mrack
 
Mle Enquadramento Teorico Aula8
Mle Enquadramento Teorico Aula8Mle Enquadramento Teorico Aula8
Mle Enquadramento Teorico Aula8damas2003
 
Um tutor inteligente para o ensino/aprendizado de programaçã com técnicas de ...
Um tutor inteligente para o ensino/aprendizado de programaçã com técnicas de ...Um tutor inteligente para o ensino/aprendizado de programaçã com técnicas de ...
Um tutor inteligente para o ensino/aprendizado de programaçã com técnicas de ...Wellington Pinheiro
 

Was ist angesagt? (19)

Análise e projeto de sistemas de informação aula1
Análise e projeto de sistemas de informação   aula1Análise e projeto de sistemas de informação   aula1
Análise e projeto de sistemas de informação aula1
 
Análise e Modelagem com UML
Análise e Modelagem com UMLAnálise e Modelagem com UML
Análise e Modelagem com UML
 
Modelando Sistemas com UML
Modelando Sistemas com UMLModelando Sistemas com UML
Modelando Sistemas com UML
 
Do Diagrama de Fluxo de Dados ao Use Case
Do Diagrama de Fluxo de Dados ao Use CaseDo Diagrama de Fluxo de Dados ao Use Case
Do Diagrama de Fluxo de Dados ao Use Case
 
A importância da arquitetura de software
A importância da arquitetura de softwareA importância da arquitetura de software
A importância da arquitetura de software
 
Entendendo a Tríade Model-View-Controller (MVC) Utilizando Padrões de Projeto...
Entendendo a Tríade Model-View-Controller (MVC) Utilizando Padrões de Projeto...Entendendo a Tríade Model-View-Controller (MVC) Utilizando Padrões de Projeto...
Entendendo a Tríade Model-View-Controller (MVC) Utilizando Padrões de Projeto...
 
Padrões de Projeto
Padrões de ProjetoPadrões de Projeto
Padrões de Projeto
 
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UMLAnalise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
 
Metodologia orientado a objetos
Metodologia orientado a objetosMetodologia orientado a objetos
Metodologia orientado a objetos
 
Geracao Automatica Assistida Iu Marcelo Mrack
Geracao Automatica Assistida Iu Marcelo MrackGeracao Automatica Assistida Iu Marcelo Mrack
Geracao Automatica Assistida Iu Marcelo Mrack
 
UML
UMLUML
UML
 
Mle Enquadramento Teorico Aula8
Mle Enquadramento Teorico Aula8Mle Enquadramento Teorico Aula8
Mle Enquadramento Teorico Aula8
 
GP4US - Pesquisa Operacional - Introdução à Tomada de Decisão
GP4US - Pesquisa Operacional - Introdução à Tomada de DecisãoGP4US - Pesquisa Operacional - Introdução à Tomada de Decisão
GP4US - Pesquisa Operacional - Introdução à Tomada de Decisão
 
Um tutor inteligente para o ensino/aprendizado de programaçã com técnicas de ...
Um tutor inteligente para o ensino/aprendizado de programaçã com técnicas de ...Um tutor inteligente para o ensino/aprendizado de programaçã com técnicas de ...
Um tutor inteligente para o ensino/aprendizado de programaçã com técnicas de ...
 
Introdução à UML com Casos de Uso
Introdução à UML com Casos de UsoIntrodução à UML com Casos de Uso
Introdução à UML com Casos de Uso
 
Apostila uml
Apostila umlApostila uml
Apostila uml
 
Apresentação da UML
Apresentação da UMLApresentação da UML
Apresentação da UML
 
Apostila uml
Apostila umlApostila uml
Apostila uml
 
UML
UMLUML
UML
 

Ähnlich wie Modelação conceitual de classes em sistemas de informação

Análise e Projeto de Sistemas
Análise e Projeto de SistemasAnálise e Projeto de Sistemas
Análise e Projeto de SistemasGuilherme
 
Documentar Requisitos Usando Modelos
Documentar Requisitos Usando ModelosDocumentar Requisitos Usando Modelos
Documentar Requisitos Usando ModelosBarbara Lima
 
Importância do Teste Unitário na Qualidade do Software
Importância do Teste Unitário na Qualidade do SoftwareImportância do Teste Unitário na Qualidade do Software
Importância do Teste Unitário na Qualidade do SoftwareEdison Moreira
 
Cap 1
Cap 1Cap 1
Cap 1UFRJ
 
Engenharia de Software - Wikipedia
Engenharia de Software - WikipediaEngenharia de Software - Wikipedia
Engenharia de Software - WikipediaRobson Silva Espig
 
Projeto de Sistemas - Aula005
Projeto de Sistemas - Aula005Projeto de Sistemas - Aula005
Projeto de Sistemas - Aula005Cláudio Amaral
 
Merlinferramentassbc2006 Revisado Em6paginas
Merlinferramentassbc2006 Revisado Em6paginasMerlinferramentassbc2006 Revisado Em6paginas
Merlinferramentassbc2006 Revisado Em6paginasMarcelo Mrack
 
Modelos de dados
Modelos de dadosModelos de dados
Modelos de dadosaeasantos
 
Introdução à Simulação
Introdução à SimulaçãoIntrodução à Simulação
Introdução à SimulaçãoSimulação
 
MVC já era! O negócio é DCI!
MVC já era! O negócio é DCI!MVC já era! O negócio é DCI!
MVC já era! O negócio é DCI!Flávio Lisboa
 
57931578-TI-Analise-de-sistemas-Concursos.pdf
57931578-TI-Analise-de-sistemas-Concursos.pdf57931578-TI-Analise-de-sistemas-Concursos.pdf
57931578-TI-Analise-de-sistemas-Concursos.pdfRicardoZorekDaniel1
 
Uma Abordagem Baseada em Modelos para Construção Automática de Interfaces de ...
Uma Abordagem Baseada em Modelos para Construção Automática de Interfaces de ...Uma Abordagem Baseada em Modelos para Construção Automática de Interfaces de ...
Uma Abordagem Baseada em Modelos para Construção Automática de Interfaces de ...Sofia Costa
 
Aula desesenvolvimento segunda semana
Aula desesenvolvimento segunda semanaAula desesenvolvimento segunda semana
Aula desesenvolvimento segunda semanaGabriel Moura
 
Aula4-modelagem e uml
Aula4-modelagem e umlAula4-modelagem e uml
Aula4-modelagem e umlneilaxavier
 

Ähnlich wie Modelação conceitual de classes em sistemas de informação (20)

Análise e Projeto de Sistemas
Análise e Projeto de SistemasAnálise e Projeto de Sistemas
Análise e Projeto de Sistemas
 
Documentar Requisitos Usando Modelos
Documentar Requisitos Usando ModelosDocumentar Requisitos Usando Modelos
Documentar Requisitos Usando Modelos
 
Arquitetura de Software EXPLICADA
Arquitetura de Software EXPLICADAArquitetura de Software EXPLICADA
Arquitetura de Software EXPLICADA
 
Arquitetura de sistemas web
Arquitetura de sistemas webArquitetura de sistemas web
Arquitetura de sistemas web
 
Importância do Teste Unitário na Qualidade do Software
Importância do Teste Unitário na Qualidade do SoftwareImportância do Teste Unitário na Qualidade do Software
Importância do Teste Unitário na Qualidade do Software
 
Cap 1
Cap 1Cap 1
Cap 1
 
Engenharia de Software - Wikipedia
Engenharia de Software - WikipediaEngenharia de Software - Wikipedia
Engenharia de Software - Wikipedia
 
Es 09
Es 09Es 09
Es 09
 
Projeto de Sistemas - Aula005
Projeto de Sistemas - Aula005Projeto de Sistemas - Aula005
Projeto de Sistemas - Aula005
 
Merlinferramentassbc2006 Revisado Em6paginas
Merlinferramentassbc2006 Revisado Em6paginasMerlinferramentassbc2006 Revisado Em6paginas
Merlinferramentassbc2006 Revisado Em6paginas
 
Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme Programming
 
Modelos de dados
Modelos de dadosModelos de dados
Modelos de dados
 
Introdução à Simulação
Introdução à SimulaçãoIntrodução à Simulação
Introdução à Simulação
 
MVC já era! O negócio é DCI!
MVC já era! O negócio é DCI!MVC já era! O negócio é DCI!
MVC já era! O negócio é DCI!
 
Modelagem de dados
Modelagem de dadosModelagem de dados
Modelagem de dados
 
57931578-TI-Analise-de-sistemas-Concursos.pdf
57931578-TI-Analise-de-sistemas-Concursos.pdf57931578-TI-Analise-de-sistemas-Concursos.pdf
57931578-TI-Analise-de-sistemas-Concursos.pdf
 
Uma Abordagem Baseada em Modelos para Construção Automática de Interfaces de ...
Uma Abordagem Baseada em Modelos para Construção Automática de Interfaces de ...Uma Abordagem Baseada em Modelos para Construção Automática de Interfaces de ...
Uma Abordagem Baseada em Modelos para Construção Automática de Interfaces de ...
 
AMSI.pptx
AMSI.pptxAMSI.pptx
AMSI.pptx
 
Aula desesenvolvimento segunda semana
Aula desesenvolvimento segunda semanaAula desesenvolvimento segunda semana
Aula desesenvolvimento segunda semana
 
Aula4-modelagem e uml
Aula4-modelagem e umlAula4-modelagem e uml
Aula4-modelagem e uml
 

Mehr von elliando dias

Clojurescript slides
Clojurescript slidesClojurescript slides
Clojurescript slideselliando dias
 
Why you should be excited about ClojureScript
Why you should be excited about ClojureScriptWhy you should be excited about ClojureScript
Why you should be excited about ClojureScriptelliando dias
 
Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data StructuresFunctional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structureselliando dias
 
Nomenclatura e peças de container
Nomenclatura  e peças de containerNomenclatura  e peças de container
Nomenclatura e peças de containerelliando dias
 
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better AgilityPolyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agilityelliando dias
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Librarieselliando dias
 
How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!elliando dias
 
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the WebA Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Webelliando dias
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduinoelliando dias
 
Incanter Data Sorcery
Incanter Data SorceryIncanter Data Sorcery
Incanter Data Sorceryelliando dias
 
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine DesignFab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine Designelliando dias
 
The Digital Revolution: Machines that makes
The Digital Revolution: Machines that makesThe Digital Revolution: Machines that makes
The Digital Revolution: Machines that makeselliando dias
 
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.elliando dias
 
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at FacebookHadoop and Hive Development at Facebook
Hadoop and Hive Development at Facebookelliando dias
 
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case StudyMulti-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Studyelliando dias
 

Mehr von elliando dias (20)

Clojurescript slides
Clojurescript slidesClojurescript slides
Clojurescript slides
 
Why you should be excited about ClojureScript
Why you should be excited about ClojureScriptWhy you should be excited about ClojureScript
Why you should be excited about ClojureScript
 
Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data StructuresFunctional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structures
 
Nomenclatura e peças de container
Nomenclatura  e peças de containerNomenclatura  e peças de container
Nomenclatura e peças de container
 
Geometria Projetiva
Geometria ProjetivaGeometria Projetiva
Geometria Projetiva
 
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better AgilityPolyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agility
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Libraries
 
How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!
 
Ragel talk
Ragel talkRagel talk
Ragel talk
 
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the WebA Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Web
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduino
 
Minicurso arduino
Minicurso arduinoMinicurso arduino
Minicurso arduino
 
Incanter Data Sorcery
Incanter Data SorceryIncanter Data Sorcery
Incanter Data Sorcery
 
Rango
RangoRango
Rango
 
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine DesignFab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine Design
 
The Digital Revolution: Machines that makes
The Digital Revolution: Machines that makesThe Digital Revolution: Machines that makes
The Digital Revolution: Machines that makes
 
Hadoop + Clojure
Hadoop + ClojureHadoop + Clojure
Hadoop + Clojure
 
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.
 
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at FacebookHadoop and Hive Development at Facebook
Hadoop and Hive Development at Facebook
 
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case StudyMulti-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Study
 

Modelação conceitual de classes em sistemas de informação

  • 1. SISTEMAS DE INFORMAÇÃO Modelação do Conhecimento e Bases de Dados 3. Modelação Conceptual de Classes ©1999 João Falcão e Cunha
  • 2. 3. Modelação Conceptual de Classes 1 O Processo de Modelação Estática de Classes. 2 Classes de Objectos, Atributos e Métodos. 3 Ligações, Associações e Agregações Simples. 4 Generalização e Herança Simples. 5 Mapeamento entre o Modelo de Classes e o Modelo Relacional. 6 Conclusões e Principais Referências. 3. Modelação Conceptual de Classes 3.2
  • 3. 3.1 O Processo de Modelação Estática de Classes 1 Introdução aos modelos e processos de modelação 2 Modelação Entidade-Associação (EA) e programação orientada por objectos (OO) 3 Modelação avançada OMT ('Object Modeling Technique') e UML ('Universal Modeling Language') 4 A função da decomposição na análise e modelação de Sistemas Complexos 3.1 O Processo de Modelação Estática de Classes 3.3
  • 4. Os Modelos são obtidos com o Método ou Metodologia Científica Os modelos são instrumentos para comunicar objectivamente, para testar hipóteses ou para prever o desempenho dos sistemas reais. Exemplos de modelos em engenharia: – Uma carta topográfica. – Maqueta de um edifício. – Projecto estrutural de um edifício. – Desenho de um circuito integrado. – Conjunto de equações diferenciais. – Sequência de bases de uma proteína a sintetizar. Um modelo particular deve ser à partida consistente e completo. 3.1 O Processo de Modelação Estática de Classes 3.4
  • 5. Um Modelo usa uma Linguagem e resulta da aplicação de um processo Uma linguagem tem regras de utilização informais e formais. Uma linguagem serve para comunicar efectivamente: – Deve ser conhecida pelos intervenientes, deve ser simples, clara e concisa. – As suas expressões devem ter significados únicos, sem ambiguidade. – As expressões devem ter uma Sintaxe e uma Semântica denotacional, ou matemática. Os modelos obtidos devem ser implementáveis informaticamente, mas de forma independente do equipamento ou suporte lógico particular. 3.1 O Processo de Modelação Estática de Classes 3.5
  • 6. Modelos para o estudo de processos e sistemas em organizações FCS Análise e Modelação dos Factores Críticos de Sucesso PN Nível de Análise e Modelação dos Nível de Abstracção Processos de Negócio Detalhe Crescente Crescente SI Análise e Modelação do Sistema de Informação Documentação Concepção, Implementação e Endogenização dos Módulos e Aplicações do Sistema Gestão do Projecto Planeamento e Controlo 3.1 O Processo de Modelação Estática de Classes 3.6
  • 7. Análise e Modelação do Sistema de Informação A&M • Modelação da Interface Gráfica com o Utilizador • Modelação das Classes de Objectos • Modelação de outros Aspectos UTIL SLIE PCIE Requisitos dos Especificação do Plano para Concepção, Utilizadores Suporte Lógico e Implementação e Interfaces Externas Endogenização 3.1 O Processo de Modelação Estática de Classes 3.7
  • 8. Modelação Estática das Classes de Objectos • Estática ? ... – Estática: parte da mecânica que estuda o equilíbrio das forças sobre corpos em repouso? – Dinâmica: parte da mecânica que estuda as relações entre as forças e os movimentos por elas produzidos? – Cinemática: parte da mecânica que estuda o movimento, independentemente das forças que o provocam? • Nota: ainda há a óptica, etc. • Classes, Tipos, Conjuntos, Formas, ... • Objectos, Entidades, Agentes, ... 3.1 O Processo de Modelação Estática de Classes 3.8
  • 9. Modelação EA ou Entidade Associação (ER “Entity-Relationship”). • Apenas Modelação estática, com apoio numa linguagem de comunicação gráfica, conceptualmente muito simples e clara (mas não concisa). • Utiliza 4 conceitos primitivos: Entidade, Atributo, Associação, Generalização (EA generalizado ou EAG). códigoSWIFT númeroDeConta Banco ContaBancária administra siglaDoBanco tipoDeConta nomeDoBanco limiteLevantamento 3.1 O Processo de Modelação Estática de Classes 3.9
  • 10. Modelação OMT “Object Modeling Technique”. • Modelação estática, dinâmica e funcional com apoio em 3 tipos de linguagem de comunicação gráfica, conceptualmente clara e concisa (mas não tão simples como a EA). • Utiliza vários conceitos primitivos, para além dos de EAG. • Exemplo de um modelo estático de Classes OMT, muito simples: Banco ContaBancária nomeDoBanco {CC3} númeroDeConta {CC1} siglaDoBanco {CC2} administra tipoDeConta códigoSWIFT {CC1} limiteLevantamento 3.1 O Processo de Modelação Estática de Classes 3.10
  • 11. Modelação UML “Universal Modeling Language” • Utiliza os seguintes modelos (UML v1.1): – (1) Diagrama de casos de utilização (quot;use-casesquot;) – (2) Diagrama de classes – Diagramas de comportamento: • (3) Diagrama de estados (quot;statechartsquot;) • (4) Diagrama de actividades • Diagramas de interacção: (5) Diagrama de sequências (6) Diagrama de colaborações – Diagramas de Implementação: • (7) Diagrama de componentes • (8) Diagrama de implantação 3.1 O Processo de Modelação Estática de Classes 3.11
  • 12. Modelação UML • Utiliza dezenas de conceitos primitivos, para além dos de OMT • Exemplo de um Diagrama de Classes UML muito simples: Banco ContaBancária nomeDoBanco {CC3} * númeroDeConta {CC1} siglaDoBanco {CC2} administra tipoDeConta códigoSWIFT {CC1} limiteLevantamento Nota: Repare-se na notação * de multiplicidade UML. 3.1 O Processo de Modelação Estática de Classes 3.12
  • 13. Atributos dos Sistemas complexos • A complexidade toma a forma de uma hierarquia; um sistema é composto por sub-sistemas interrelacionados. • A escolha dos componentes primitivos (atómicos ?) é relativamente arbitrária e depende do observador do sistema. • A ligação ou a comunicação interna a uma componente de um sistema é maior ou mais frequente do que a externa, entre componentes. • Os sistemas hierárquicos são compostos por poucos tipos de sub-sistemas em muitas combinações ou arranjos. • Um sistema complexo que funciona é sempre o resultado de um sistema mais simples que funcionava. 3.1 O Processo de Modelação Estática de Classes 3.13
  • 14. Que Decomposição? • Decomposição algorítmica … vista de processo, ordenação de acções e eventos (menos estáveis), ... • Decomposição orientada por objectos … vista de agentes (mais estáveis) que executam acções, … – Programação OO. – Modelação EA de Bases de Dados. – Filosofia Cartesiana (Descartes). Qual das duas decomposições deve ser efectuada inicialmente? 3.1 O Processo de Modelação Estática de Classes 3.14
  • 15. Como modelar e construir Sistemas complexos ? • Uma Linguagem … da modelação à programação. • Um Processo: as regras para a obtenção ordenada das várias partes do modelo e para a construção do sistema (do tipo LUCID ou prototipificação evolutiva, mas aplicadas a cada um dos modelos particulares em causa). • Ferramentas: utensílios para apoiar a produção dos modelos, de forma a facilitar a aplicação do processo, a automatizar a verificação de regras de consistência e a eliminar erros sintácticos. 3.1 O Processo de Modelação Estática de Classes 3.15
  • 16. 3. Modelação Conceptual de Classes 1 O Processo de Modelação Estática de Classes. 2 Classes de Objectos, Atributos e Métodos. 3 Ligações, Associações e Agregações Simples. 4 Generalização e Herança Simples. 5 Mapeamento entre o Modelo de Classes e o Modelo Relacional. 6 Conclusões e Principais Referências. 3. Modelação Conceptual de Classes 3.16
  • 17. 3.2 Classes de Objectos, Atributos e Métodos CONTEÚDOS 1. Objectos e Atributos 2. Classes de Objectos 3. Operações e Métodos de Classes 4. Domínios e Operações Complexas 5. Atributos Derivados 6. Atributos de Classe e Operações de Classe 7. Atributos candidatos a identificadores 8. Significados implementacional e denotacional 3.2 Classes de Objectos, Atributos e Métodos 3.17
  • 18. Objectos e Atributos • Dado um sistema ou problema em estudo, como identificar os objectos e respectivos atributos a incluir nos modelos de análise ou concepção? – “A empresa OnTime dispõe de uma frota própria de viaturas de carga, ligeiras e pesadas, incluindo reboques e atrelados. Dispõe ainda de viaturas que pertencem a clientes”. – “Cada serviço contratado é realizado num dado percurso, formado por uma sequência ligada de trajectos. Cada percurso tem origem e destino em depósitos de viaturas, podendo estes depósitos ser diferentes. Cada trajecto, com um nome único, é caracterizado por uma origem, um destino e uma distância em quilómetros. Por exemplo, o serviço OTN3456, previsto e realizado no percurso de Porto-Serralves para Braga-Centro, utilizou a viatura 34-98-DH e foi assegurado pelo Senhor Jorge Sampaio. Este percurso foi formado pela sequência ligada dos seguintes 3 trajectos: Porto-Leixões/Porto-Serralves, Porto-Serralves/Braga-Centro e Braga-Centro/Porto-Leixões. O sistema de planeamento operacional GistRv sugeriu que fossem utilizados os trajectos indicados para uma viatura do depósito Porto-Leixões”. 3.2 Classes de Objectos, Atributos e Métodos 3.18
  • 19. Objectos e Atributos • Objecto: conceito com individualidade e identidade própria, normalmente identificado com um nome, sem ambiguidade num dado contexto ou situação. Podemos ter objectos concretos ou abstractos, mas um objecto é sempre único. Os objectos estão normalmente associados a nomes próprios: Jorge Sampaio (motorista), Fernando Pessoa (poeta), Princesa Leia (Guerra das Estrelas), OTN3456 (serviço), teorema da Incompletude de Gödel. • Atributo: dimensão de observação que nos permite dar um valor a um objecto, valor esse que pertence a um conjunto bem definido. Os valores não têm identidade, ao contrário dos objectos, devido a serem abstracções matemáticas perfeitas. Os atributos estão normalmente associados aos adjectivos, na descrição do problema. 3.2 Classes de Objectos, Atributos e Métodos 3.19
  • 20. Exemplos de Objectos e Atributos FPessoa: Poeta nome = Fernando Pessoa dataDeNascimento=1888.06.13 FSCarneiro: Aeroporto código = OPO nome = Aeroporto Francisco Sá Carneiro V3498DH:Viatura cidade = Porto matrícula = 34-98-DH marca = Volvo modelo = B400 cilindrada = 5000 cc potência = 300 CV Heathrow: Aeroporto código = LHR nome = Heathrow Airport PLeia: PersonagemDeFilme cidade = Londres nome = Princesa Leia primeiroFilme=Star Wars 3.2 Classes de Objectos, Atributos e Métodos 3.20
  • 21. Classes de Objectos • Classe de objectos: caracterização formal de um grupo de objectos semelhantes, no que eles têm de comum. Os objectos são instâncias de uma dada classe. As classes são os nomes comuns das descrições. • Devido à necessidade de identificar cada objecto unicamente em todo o sistema, tem de existir um atributo externo, ou conjunto de atributos externos, que o permita fazer. Tais atributos são designados chaves candidatas a identificador. Contudo, por razões de implementação, deve-se sempre vir a ter para cada classe um único atributo identificador, interno ao sistema que a virá a implementar. Os códigos identificadores externos ou públicos, tais como o número do Bilhete de Identidade ou o código de um motorista na empresa, estão sujeitos a ser alterados com o tempo, não sendo adequados a servir de referências internas. O modelo de análise deve assim utilizar apenas atributos externos. 3.2 Classes de Objectos, Atributos e Métodos 3.21
  • 22. Exemplos de Classes de Objectos Livro Aeroporto CódigoPostal códigoISBN código códigoPostal nExemplar nome localidade data local título Classe Pessoa para Classe Pessoa Concepção: Pessoa para Análise: Pessoa nomePróprio apelido nome outrosApelidos endereço endereçoL1 códigoPostal endereçoL2 país aldeiaVilaOuCidade códigoPostal país 3.2 Classes de Objectos, Atributos e Métodos 3.22
  • 23. Operações e Métodos de Objectos • As operações são funções ou procedimentos definidos no âmbito de um objecto com determinados argumentos e resultado, implementados como métodos da respectiva classe, por exemplo. Algumas operações são polimórficas, isto é o tipo dos seus argumentos pode variar. Método salárioMensal Motorista de objectos da Classe códigoNaEmpresa Motorista. Este método permite nomePróprio calcular o salário mensal de apelido cada motorista, por exemplo, outrosApelidos com base nas horas salárioMensal efectivamente trabalhadas. bonusAnual Nota: Não confundir com Métodos sobre Classe. 3.2 Classes de Objectos, Atributos e Métodos 3.23
  • 24. Domínios e Operações Complexas • Dados primitivos: tipo Natural (abreviado Nat), Inteiro (abreviado Int), Real, conjunto enumerado, … • Um domínio corresponde a um tipo de dados definido a partir dos tipos primitivos através de construções simples (simples, sobretudo em caso de implementação com SGBDr). • Um domínio é um conjunto de valores; os valores são entidades abstractas que não têm identidade, ao contrário dos objectos, que correspondem a entidades com identidade na realidade do problema. A noção formal de domínio corresponde à noção tradicional de um conjunto a que se adiciona normalmente um elemento com valor indefinido. • É possível ou desejável modelar Métodos ou Operações Complexas? (para SGBDr, a resposta é normalmente negativa). 3.2 Classes de Objectos, Atributos e Métodos 3.24
  • 25. Exemplos de Domínios e Operações Complexas • Indicação de Domínios de valores para os atributos e os métodos. NodoDeÁrvoreBinária identificadorPúblico {CC1} • Indicação de valores por pesoEsquerdo: Int = 1 defeito para os atributos pesoDireito: Int = 1 pesoEsquerdo e valorDoNodo: Real pesoDireito. médiaPesos: Int x Int → Real pesoMáximo: Int x Int → Int Questão: Como implementar num SGBDr? 3.2 Classes de Objectos, Atributos e Métodos 3.25
  • 26. Atributos Derivados • Um atributo derivado contem informação que pode ser facilmente calculada a partir da informação presente em outros atributos. • Em termos de implementação, por exemplo recorrendo a um SGBDr, coloca-se a questão de tornar um atributo derivado persistente ou de calcular o seu valor no momento de consulta pelo utilizador. • O atributo horaDeChegada pode ser calculado a partir dos atributos horaDePartida Serviço e duração. dataDeRealização horaDePartida duração •horaDeChegada 3.2 Classes de Objectos, Atributos e Métodos 3.26
  • 27. Atributos sobre Classes e Operações sobre Classes • Atributos de classe: úteis para manter informação comum a todos os objectos da classe, como parâmetros ou constantes. No entanto não é normalmente uma boa solução recorrer a estes atributos, pois existe sempre a possibilidade de definir outra classe, correspondente aos parâmetros ou constantes, e recorrer a associações para manter a caracterização desejada. • Operações de classe: úteis para criar um novo objecto; uma operação deste tipo tem assim como domínio a própria classe e não objectos ou seus atributos. 3.2 Classes de Objectos, Atributos e Métodos 3.27
  • 28. Exemplos de Atributos de Classe e Operações de Classe Motorista códigoNaEmpresa Atributo de Classe: nomePróprio apelido outrosApelidos códigoDeActividade = 133 salárioMensal bonusAnual Operação de Classe: novoMotorista 3.2 Classes de Objectos, Atributos e Métodos 3.28
  • 29. Atributos candidatos a identificadores • Cada classe pode ter um atributo externo que permita identificar todas as suas instâncias, isto é nomear cada um dos possíveis objectos da classe, sem ambiguidade. Na realidade pode haver mais do que um atributo que satisfaça esta condição, e assim teremos vários identificadores candidatos. • Podemos também ter necessidade de um conjunto de atributos para atingir este objectivo, pelo que então teremos um identificador composto. Neste último caso os atributos têm que ser em número mínimo. Isto é, se retirando do conjunto um ou mais atributos se mantiver a possibilidade de identificação, então será este conjunto menor o identificador. Obviamente nenhum identificador composto pode incluir um atributo identificador simples. 3.2 Classes de Objectos, Atributos e Métodos 3.29
  • 30. Exemplos de Atributos candidatos a identificadores Identificador Simples: Identificador Composto: o código identifica o código ISBN e o número unicamente um dado de cópia do livro (os dois aeroporto. em conjunto) identificam unicamente um dado livro numa biblioteca. Aeroporto Livro código {CC1} códigoISBN {CC1} nome nExemplar {CC1} local data título 3.2 Classes de Objectos, Atributos e Métodos 3.30
  • 31. Significados implementacional e denotacional • Significado Implementacional “Como implemento?”: Por exemplo, envolvendo a tradução para o modelo relacional, baseado na álgebra relacional, seguindo-se a utilização de um dado SGBDr, SQL e linguagem de programação apropriada. Todos estes passos efectuados com base em normas existentes. • Significado Denotaciona “Que significa?”: Por exemplo, envolvendo modelos formais recorrendo a uma teoria de conjuntos ou domínios, e à lógica formal para fornecer um significado de referência, abstracto, independente de uma particular sequência de implementação. 3.2 Classes de Objectos, Atributos e Métodos 3.31
  • 32. podePertencerA Exemplo de Pessoa Ver Modelo Pessoa Modelo Cliente Motorista Viatura designaçãoSocial códigoNaEmpresa matrícula $LimiteDeCrédito nomePróprio condutor marca apelido matrícula modelo outrosApelidos podeConduzir cilindrada potência salárioMensal bonusAnual classeDaViatura Modelo negoceia Pesado Reboque Ligeiro estático de nEixos nEixos nPassageiros classes do tipoAtrelado éAsseguradoPor subsistema de depósitoBase gestão de DepósitoDeViatura #DepósitoDeViatura transportes da temOrigem temDestino empresa ContratoDeServiço Serviço utiliza OnTime: tipoDeTarifa dataDeRealização horaDePartida duração éRealizadoNo Percurso EspecificaçãoDeServiço nome inclui dáOrigem horaPrevistaDePartida éPrevistoNo duraçãoPrevista éFormadoPor regularidadeDoServiço {ordenado} #Trajecto Periódico Ocasional Trajecto frequênciaPrevista dataPrevistaDeRealização origem dataPrevistaDeInício destino dataPrevistaDeFim distância 3.2 Classes de Objectos, Atributos e Métodos 3.32
  • 33. Conclusões • A identificação das classes de objectos, e dos seus atributos e operações, é a primeira fase do processo de modelação estática de classes. • A identificação das operações não é útil em termos de modelo relacional puro. Mas é importante quer para o modelo de interacção com o utilizador, quer para a implementação global das funcionalidades requeridas. • A notação gráfica utilizada, baseada na norma UML do diagrama de classes, é simples,clara e concisa, tendo um significado denotacional e implementacional preciso. 3.2 Classes de Objectos, Atributos e Métodos 3.33
  • 34. 3. Modelação Conceptual de Classes 1 O Processo de Modelação Estática de Classes. 2 Classes de Objectos, Atributos e Métodos. 3 Ligações, Associações e Agregações Simples. 4 Generalização e Herança Simples. 5 Mapeamento entre o Modelo de Classes e o Modelo Relacional. 6 Conclusões e Principais Referências. 3. Modelação Conceptual de Classes 3.34
  • 35. 3.3 Ligações, Associações e Agregações Simples CONTEÚDOS 1. Ligações entre Objectos 2. Associações entre Classes 3. Atributos ou Classes em Ligações 4. Agregação entre Classes 3.3 Ligações, Associações e Agregações Simples 3.35
  • 36. Ligações entre Objectos • Uma vez classificados os grupos de entidades, como objectos e classes, deve observar-se como é que estes se relacionam uns com os outros. • Há entidades que são autónomas entre si, mas que interagem ou comunicam, há outras que se agrupam para formar entidades mais complexas, e há ainda outras que nós próprios criamos, tendo normalmente uma existência abstracta dependente da de outras entidades. • Exemplo: caso de uma autarquia, com os seus clientes, funcionários, departamentos, divisões e serviços. Os clientes são por exemplo os residentes que pagam a contribuição autárquica. Quais as relações existentes? 3.3 Ligações, Associações e Agregações Simples 3.36
  • 37. Exemplos de Ligações entre Objectos • Estabelece-se uma ligação entre 2 ou mais objectos quando é importante manter a informação que os relaciona de alguma forma relevante para a situação em estudo. • Exemplo de ligações V3498DH:Viatura podeConduzir entre matrícula = 34-98-DH objectos das classes podeConduzir marca = Volvo Motorista e Viatura: modelo = B400 cilindrada = 5000 cc JSampaio:Motorista potência = 300 CV códigoNaEmpresa = DV07 nomePróprio = Jorge apelido = Sampaio VR234ADC6:Viatura matrícula = 35-77-KA podeConduzir marca = Mercedes modelo = T5 cilindrada = 4000 cc potência = 280 CV 3.3 Ligações, Associações e Agregações Simples 3.37
  • 38. Associações entre Classes • Uma associação entre duas ou mais classes corresponde à caracterização e tipificação de ligações semelhantes entre objectos dessas classes. • Assim como um objecto é uma instância de uma classe, uma ligação é uma instância de uma associação. • Exemplo de associação podeConduzir entre Viatura classes Motorista e Motorista Viatura: matrícula códigoNaEmpresa marca nomePróprio podeConduzir modelo apelido cilindrada potência 3.3 Ligações, Associações e Agregações Simples 3.38
  • 39. Multiplicidade de Associações [10] Classe Opcional (0 ou 1) [1] Classe Exactamente 1 [N0] ou [N] Classe 0, 1 ou muitos 1..* [N1] Classe Um ou mais 1..2, 4 [1..2, 4] Classe Numericamente especificado y [y:atributo↑] ou [y:atributo↓] Classe [N], [N1] ou especificada, e ordenada {ordenada} 3.3 Ligações, Associações e Agregações Simples 3.39
  • 40. Exemplos de Associações Unárias • Exemplo de uma associação unária (ou reflexiva) relativa ao sistema Convidado para atribuição de lugares nas nome mesas aos convidados de uma sexo empresa de gestão de recepções: línguaMãe éCasadoCom • O modelo com a associação unária é normalmente preferível (porquê?). 2 2 pais Pais Filhos Pessoa filhoOuFilha L Modelo Incorrecto 3.3 Ligações, Associações e Agregações Simples 3.40
  • 41. Exemplo de Associação Ternária Docente Curso siglaDocente códigoCurso • Multiplicidade representada graficamente: recomendaLivroParaCurso Livro códigoISBN Questão: qual é a situação que exige a associação aqui representada? Docente Curso • Multiplicidade siglaDocente códigoCurso representada pelo identificador CC1 da recomendaLivroParaCurso associação: {CC1 = (siglaDocente, códigoCurso, códigoISBN)} Livro códigoISBN 3.3 Ligações, Associações e Agregações Simples 3.41
  • 42. Atributos ou Classes em Ligações • É possível haver atributos e classes em ligações ou em associações. • Tal é normal e necessário, em particular, nas associações muitos-muitos, onde o atributo é claramente uma propriedade da ligação (ou associação). • Numa associação de um-um ou um-muitos, o atributo pode normalmente ser considerado num dos objectos (ou classe). Porquê? • Se uma dada associação puder participar em novas associações, deve ascender ao estatuto de classe de ligação (associação). Porquê? 3.3 Ligações, Associações e Agregações Simples 3.42
  • 43. Exemplo de Atributo em Ligação classificação Docente Curso siglaDocente códigoCurso recomendaLivroParaCurso Livro Nota: Não é desejável a utilização de códigoISBN associações de multiplicidade ternária ou superior, devido à complexidade de leitura dos modelos resultantes. 3.3 Ligações, Associações e Agregações Simples 3.43
  • 44. Associações Qualificadas • Associação qualificada: ServiçoPeriódico Serviço horaPrevistaDePartida númeroDoServiço dataDeRealização duraçãoPrevista dataDeRealização frequênciaPrevista dáOrigem horaDePartida duração Nota: As linguagens OMT e UML utilizam uma notação diferente! • Associação não qualificada: ServiçoPeriódico Serviço horaPrevistaDePartida númeroDoServiço duraçãoPrevista dáOrigem dataDeRealização frequênciaPrevista horaDePartida duração 3.3 Ligações, Associações e Agregações Simples 3.44
  • 45. Agregação entre Classes • A agregação é um tipo especial de associação, utilizada por exemplo para indicar a composição física de um tipo de produto, ou a estrutura de organização de uma entidade, conforme os exemplos seguintes. • O conjunto de ligações entre os objectos que a agregação descreve, visto como uma relação matemática, caracteriza-se pelas propriedades de transitividade e anti-simetria. 3.3 Ligações, Associações e Agregações Simples 3.45
  • 46. Exemplo de agregação entre classes Universidade • Agregação fechada, com indicação de todas as éConstituídaPor classes constituintes: Faculdade Instituto OutrosServiços Universidade • Agregação aberta, indicando algumas classes constituintes: Faculdade Instituto 3.3 Ligações, Associações e Agregações Simples 3.46
  • 47. Agregação de catálogo e de produto • Exemplo de agregação de catálogo e de produto: uma peça em catálogo pode pertencer a muitos produtos. Atributo de ligação: quantidade Atributo de ligação: quantidade componente contem componente contem PeçaDeCatálogo PeçaMaterial produto produto númeroDoModelo númeroDeSérie descreve Exemplo adaptado de [Blaha & Premerlani 1998; 53]. 3.3 Ligações, Associações e Agregações Simples 3.47
  • 48. podePertencerA Exemplo de Pessoa Ver Modelo Pessoa Modelo Cliente Motorista Viatura designaçãoSocial códigoNaEmpresa matrícula $LimiteDeCrédito nomePróprio condutor marca apelido matrícula modelo outrosApelidos podeConduzir cilindrada potência salárioMensal bonusAnual classeDaViatura Modelo negoceia Pesado Reboque Ligeiro estático de nEixos nEixos nPassageiros classes do tipoAtrelado éAsseguradoPor subsistema de depósitoBase gestão de DepósitoDeViatura #DepósitoDeViatura transportes da temOrigem temDestino empresa ContratoDeServiço Serviço utiliza OnTime: tipoDeTarifa dataDeRealização horaDePartida duração éRealizadoNo Percurso EspecificaçãoDeServiço nome inclui dáOrigem horaPrevistaDePartida éPrevistoNo duraçãoPrevista éFormadoPor regularidadeDoServiço {ordenado} #Trajecto Periódico Ocasional Trajecto frequênciaPrevista dataPrevistaDeRealização origem dataPrevistaDeInício destino dataPrevistaDeFim distância 3.3 Ligações, Associações e Agregações Simples 3.48
  • 49. Conclusões • Depois de identificar os objectos, classes e atributos pode-se observar como estes se relacionam, através de ligações, associações e agregações. • As classes e associações a utilizar dependem do detalhe necessário ao modelo em construção. O mesmo conceito numa situação ou problema real pode originar atributos, objectos, classes, ligações, associações ou agregações diferentes em processos de Análise e Modelação orientados para níveis de detalhe ou objectivos diferentes. • A análise global dos diagramas deve permitir validar a completude e verificar a consistência do modelo construído. 3.3 Ligações, Associações e Agregações Simples 3.49
  • 50. 3. Modelação Conceptual de Classes 1 O Processo de Modelação Estática de Classes. 2 Classes de Objectos, Atributos e Métodos. 3 Ligações, Associações e Agregações Simples. 4 Generalização e Herança Simples. 5 Mapeamento entre o Modelo de Classes e o Modelo Relacional. 6 Conclusões e Principais Referências. 3. Modelação Conceptual de Classes 3.50
  • 51. 3.4 Generalização e Herança Simples CONTEÚDOS 1. Generalização ou Particularização (exclusiva) 2. Classes Concretas e Abstractas 3. Particularização Inclusiva 3.4 Generalização e Herança Simples 3.51
  • 52. 1. Generalização ou Particularização Exclusiva • As noções de associação e generalização capturam as duas formas mais tradicionais de análise e especificação de sistemas: a associação indica-nos a organização do sistema através da sua decomposição em partes, a generalização permite-nos identificar semelhanças entre sistemas ou seus componentes através da uma decomposição em tipos. • Por exemplo, podemos analisar as viaturas utilizadas por uma empresa nos seus diversos tipos, por exemplo pesados e ligeiros. Podemos também alargar esta análise a níveis mais gerais: uma viatura é um bem móvel, e um bem móvel é um bem patrimonial. Temos assim uma hierarquia. • A utilidade de qualquer hierarquia esgota-se na sua capacidade de resumir ou explicar conhecimento. Sendo assim aplicam-se as regras normais, pelo que não é natural permitir por exemplo menos do que 3 ou mais do que 7 particularizações distintas para cada classe de objectos, num dado nível. 3.4 Generalização e Herança Simples 3.52
  • 53. Exemplos de Generalização Exclusiva • Exemplo de Generalização na classe Viatura (“super-classe”) da informação comum às várias Viatura classes de viaturas (“sub-classes”) matrícula utilizadas pela empresa OnTime: marca Pesados, Reboques e Ligeiros. modelo cilindrada • Diz-se que a particularização é potência exclusiva quando uma viatura pode ser apenas de uma e só uma das classes particulares. classeDaViatura Pesado Reboque Ligeiro nEixos nEixos nPassageiros tipoAtrelado 3.4 Generalização e Herança Simples 3.53
  • 54. 2. Classes Concretas e Abstractas • Uma classe (super-classe) diz-se abstracta quando não tem instâncias. Por exemplo, quando no todo ou em parte não corresponde a nunhuma classe que irá ser implementada. • No final de uma hierarquia de particularização haverá sempre classes concretas, isto é classes com instâncias a que correspondem directamente objectos, por exemplo, nas suas formas de implementação. • Por exemplo, vamos supor que identifico uma super-classe Pessoa e respectivas sub-classes Pessoa Singular e Pessoa Colectiva. Considerando que decido apenas implementar estas duas últimas, posso afirmar que a classe Pessoa é abstracta, visto não existirem instâncias ou objectos da classe Pessoa. 3.4 Generalização e Herança Simples 3.54
  • 55. Exemplo de Particularização Inclusiva • Exemplo de Generalização Inclusiva na classe Estudante das classes trabalhador, dirigente associativo, dirigente sindical ou militar. Estudante • Diz-se que a particularização é inclusiva porque o estudante podeSer pode pertencer a várias das classes particulares. Trabalhador DirigenteAssociativo DirigenteSindical Militar 3.4 Generalização e Herança Simples 3.55
  • 56. podePertencerA Exemplo de Pessoa Ver Modelo Pessoa Modelo Cliente Motorista Viatura designaçãoSocial códigoNaEmpresa matrícula $LimiteDeCrédito nomePróprio condutor marca apelido matrícula modelo outrosApelidos podeConduzir cilindrada potência salárioMensal bonusAnual classeDaViatura Modelo negoceia Pesado Reboque Ligeiro estático de nEixos nEixos nPassageiros classes do tipoAtrelado éAsseguradoPor subsistema de depósitoBase gestão de DepósitoDeViatura #DepósitoDeViatura transportes da temOrigem temDestino empresa ContratoDeServiço Serviço utiliza OnTime: tipoDeTarifa dataDeRealização horaDePartida duração éRealizadoNo Percurso EspecificaçãoDeServiço nome inclui dáOrigem horaPrevistaDePartida éPrevistoNo duraçãoPrevista éFormadoPor regularidadeDoServiço {ordenado} #Trajecto Periódico Ocasional Trajecto frequênciaPrevista dataPrevistaDeRealização origem dataPrevistaDeInício destino dataPrevistaDeFim distância 3.4 Generalização e Herança Simples 3.56
  • 57. Conclusões • Identificar Classes (procurar nomes próprios e nomes comuns) • Identificar Associações (procurar verbos transitivos e preposições) • Acrescentar Atributos, detalhando as Classes e Associações (procurar frases preposicionais possessivas) • Utilizar Generalizações para caracterizar semelhanças e diferenças entre objectos • Testar caminhos de acesso e pesquisa de informação • Iterar e refinar o modelo, acrescentando, eliminando ou alterando o detalhe ou nível de abstracção • Organizar graficamente o modelo final 3. Modelação Conceptual de Classes 3.57
  • 58. 3. Modelação Conceptual de Classes 1 O Processo de Modelação Estática de Classes. 2 Classes de Objectos, Atributos e Métodos. 3 Ligações, Associações e Agregações Simples. 4 Generalização e Herança Simples. 5 Mapeamento entre o Modelo de Classes e o Modelo Relacional. 6 Conclusões e Principais Referências. 3. Modelação Conceptual de Classes 3.58
  • 59. 3.5 Mapeamento entre o Modelo de Classes e o Modelo Relacional CONTEÚDOS 1. Exemplo de Conversão de Classes 2. Exemplo de Conversão de Associações e Agregações 3. Exemplo de Conversão de Generalizações 3.5 Mapeamento entre o Modelo de Classes e o Modelo Relacional 3.59
  • 60. Exemplo de conversão de classes Motorista códigoNaEmpresa nomePróprio apelido Motorista #motorista códigoNaEmpresa nomePróprio apelido 1 DV07 Jorge Sampaio 3 J007 Maria Branca 4 P235 José Lami 5 Y666 Ana Chaves 3.5 Mapeamento entre o Modelo de Classes e o Modelo Relacional 3.60
  • 61. Conversão de Associações e Agregações • A implementação de uma associação entre duas ou mais classes num SGBDr pode ou não necessitar de uma tabela independente das tabelas correspondentes a essas classes. De seguida apresentam-se regras de conversão para os principais tipos de associações utilizadas, havendo normalmente várias opções de implementação, umas mais recomendadas do que outras. • As regras de conversão para agregações são idênticas às das associações com a mesma multiplicidade, pelo que não se apresentam exemplos. 3.5 Mapeamento entre o Modelo de Classes e o Modelo Relacional 3.61
  • 62. Associações um-para-um ContratoDeServiço EspecificaçãoDeServiço inclui tipoDeTarifa horaPrevistaDePartida duraçãoPrevista ContratoDeServiço #contratoDeServiço tipoDeTarifa #especificaçãoDeServiçoIncluída 1 Alfa 1 2 Beta 5 4 Beta 4 8 Gama 3 … EspecificaçãoDeServiço #especificaçãoDeServiço horaPrevistaDePartida duraçãoPrevista 1 10:00 2:44 3 15:00 3:23 4 10:00 5:44 5 23:23 3:30 … 3.5 Mapeamento entre o Modelo de Classes e o Modelo Relacional 3.62
  • 63. Associações um-para-muitos Banco ContaBancária nomeDoBanco {CC3} númeroDeConta {CC1} siglaDoBanco {CC2} administra tipoDeConta códigoSWIFT {CC1} limiteLevantamento Banco #banco nomeDoBanco siglaDoBanco códigoSWIFT 22 Banco Português do Atlântico Atlântico 334455 33 Banco Comercial Português BCP 778907 34 Caixa Geral de Depósitos CGD 333333 ContaBancária #contaBancária númeroDeConta tipoDeConta limiteLevantamento #bancoQueAdministra 910988876 382-98989-210 O 200 34 910988878 12120009-32 O 100 34 910988880 AA23347800 O 50 22 910988881 334-00899-230 H 34 3.5 Mapeamento entre o Modelo de Classes e o Modelo Relacional 3.63
  • 64. Associações muitos-para-muitos Viatura Motorista matrícula códigoNaEmpresa marca nomePróprio podeConduzir modelo apelido cilindrada potência Motorista #motorista códigoNaEmpresa nomePróprio apelido … Motorista_podeConduzir_Viatura #motorista #viatura … Viatura #viatura matrícula marca modelo cilindrada potência … 3.5 Mapeamento entre o Modelo de Classes e o Modelo Relacional 3.64
  • 65. Associações ternárias classificação Docente Curso siglaDocente códigoCurso Livro #livro códigoISBN recomendaLivroParaCurso … Livro códigoISBN Curso #curso códigoCurso RecomendaLivroParaCurso … #docente #curso #livro classificação 7 33 1 18 7 33 2 15 7 33 3 7 7 22 1 7 Docente 7 22 3 20 9 33 1 15 #docente siglaDocente 9 33 3 12 … … 3.5 Mapeamento entre o Modelo de Classes e o Modelo Relacional 3.65
  • 66. Viatura Conversão de generalizações matrícula marca modelo cilindrada exclusivas potência classeDaViatura Pesado Reboque Ligeiro nEixos nEixos nPassageiros tipoAtrelado Viatura #viatura matrícula marca modelo cilindrada potência classeDaViatura 12 12-12-TR Volvo Z707 2002 250 Ligeiro 13 13-44-TR Volvo Z704 2002 250 Ligeiro 77 22-98-ZR Volvo P4 8000 400 Pesado 78 22-99-ZR Volvo X700 2002 200 Ligeiro 79 22-12-ZZ Volvo P4 8000 500 Pesado … Pesado Reboque Ligeiro #viaturaPesado neixos #viaturaReboque neixos tipoAtrelado #viaturaLigeiro nPassageiros 77 8 101 8 Articulado 12 5 79 8 102 8 Articulado 13 4 116 12 117 12 Longo 78 2 … … … 3.5 Mapeamento entre o Modelo de Classes e o Modelo Relacional 3.66
  • 67. Conversão de generalizações inclusivas Estudante podeSer Estudante #estudante podeSer Trabalhador DirigenteAssociativo DirigenteSindical Militar 1 Trabalhador 1 Militar 3 Dirigente Associativo 3 Militar 5 Militar … Trabalhador DirigenteAssociativo DirigenteSindical Militar #estudanteTrabalhador #estudanteDirigenteAssociativo #estudanteDirigenteSindical #estudanteMilitar 1 3 10 1 7 15 11 3 8 19 45 5 … … … … 3.5 Mapeamento entre o Modelo de Classes e o Modelo Relacional 3.67
  • 68. Conclusões Fase prévia: Identificar e estudar todas as fontes relevantes de conhecimento sobre o sistema, com o objectivo de tipificar os utilizadores e descrever exaustivamente os casos de utilização. Elaborar descrições do contexto e do problema, bem como maquetas de baixa resolução das principais interfaces. Fase de Modelação de Classes: Classes, Associações, etc. Fase seguinte: Traduzir o modelo de classes para o modelo do sistema informático mais apropriado a utilizar, por exemplo, obtendo o esquema relacional no caso de se perspectivar a implementação com apoio num SGBDr. 3.6 Conclusões e Principais Referências 3.68
  • 69. Principais referências [Blaha & Premerlani 1998]: Object-Oriented Modeling and Design for Database Applications, Prentice-Hall (Cap. 1, 2, 3, 7, 8, 9, 13, 14). [Rumbaugh et al 1991] Object-Oriented Modeling and Design, Prentice-Hall (Cap. 1, 2, 3, 4, 5, 6). [Schneider & Winters 1998] Applying Uses Cases: a Practical Guide, Addison-Wesley Longman (Cap. 1, 2, 3). [UML Summary 1997] UML Summary, version 1.1, Rational Software Corporation (www.rational.com/uml). 3.6 Conclusões e Principais Referências 3.69