SlideShare uma empresa Scribd logo
1 de 22
Engenharia de Software

        Aula 7 – Diagrama de Classes
              Profa. Dra. Judith Pavón
    Universidade Salvador – UNIFACS
                                  2012
Objetivo da aula
O objetivo desta aula é apresentar os
conceitos de diagrama de classes.




                                        2
Conteúdo
•   Introdução
•   Classe
•   Atributos
•   Métodos
•   Ligação e Associação
•   Papel do objeto
•   Multiplicidade
•   Agregação/Composição
•   Generalização/Especialização

                                   3
Introdução
   Geralmente é utilizada a linguagem UML,
    especificamente o diagrama de classes.
   Notação que permite descrever:
    •   classes
    •   atributos e métodos
    •   relacionamentos
    •   detalhes de implementação (código)
   Pode ser usada em vários níveis de abstração
    (conceitual, lógico e físico).

                                               4
Classe
   Classe: descrição de uma coleção de objetos
    que possuem propriedades semelhantes
    (atributos, métodos, associações).

                    Produto
               códigoProduto
               descrição
               CalcularPreço( )
               CalcularImpostos( )

                                                  5
Atributo
   Informação associada a um objeto. Cada objeto da
    classe possui um valor em cada atributo definido pela
    classe.
   Na prática, somente aparecem no diagrama os atributos
    mais relevantes, pois a lista completa dos atributos e
    seus domínios estão no dicionário de dados (DD)
    separado.
         Produto
    códigoProduto:            Atributos
    Integer
    descrição: String
    CalcularPreço( )
    CalcularImpostos( )                                 6
Métodos
   São as operações que podem ser executadas sobre um
    objeto. Definida para cada objeto da classe.
   Representar no diagrama somente os métodos importantes
    para a compreensão.

DIFERENÇAS ENTRE MÉTODO DO OBJETO E MÉTODO DAS
   CLASSES

    Método do objeto (instância): atua sobre um objeto
    Método da classe: atua sobre a classe (o conjunto de
    objetos)
    •   Ex.: métodos que procuram determinados objetos na classe.

                                                                    7
Método da classe – Diagrama de classe

                         Funcionario                              Projeto
                                             1..*    1
                 nome: Integer               trabalha    Descrição: Integer
                 cargo: String                           inicio: String
                                        1     0..1
                 Salario:real           gerencia         fim:real
                 obterCargo( )                           Custo: real
Métodos          $CalcularMediaSalario( )                CalcularValorProjeto( )
                                                 Método da classe (indicado pelo
                                                 prefixo $)




   FuncionarioContratado                FuncionarioTerceirizado
  carteiraProfissional:string          inicioContrato:date
  dataAdmissão:date                    terminoContrato:date
                                       taxaAdministração


                                                                                   8
Ligação e Associação
   Uma ligação é um relacionamento entre objetos,
    que se deseja conhecer no sistema.
    •   Ex.: a ligação entre o objeto Projeto e o objeto
        FuncionarioTerceirizado.
   Uma associação é a descrição de uma coleção de
    ligações que, para fins de projeto , possuem
    propriedades semelhantes (classes envolvidas,
    atributos, métodos).
    •   Ex.: a associação entre a classe Funcionario e a classe
        Projeto.
                                                            9
Papel do objeto

    Um objeto cumpre um papel dentro de uma associação.


                                     esposa   - Ser marido ou esposa é
casamento                                     o papel exercido por um
                                    Pessoa    objeto Pessoa dentro de
                      marido      código      uma associação
                                  nome        casamento.
                                  sexo
 nome do associação               endereço
                          papel

                                                                  10
Multiplicidade
   Existem situações em que é necessário restringir o
    número de objetos associados através de uma
    associação a um objeto determinado (restringir a
    cardinalidade).
    •   Ex.: um homem não deve possuir mais de uma esposa.

   As multiplicidades são classificadas de acordo a sua
    cardinalidade máxima:
       0..1 (valor opcional)
       1.. 1 ou 1 (exatamente um)
       0..* ou * (qualquer valor inteiro não-negativo)
       1..* (qualquer valor inteiro positivo)


                                                             11
Associação 1:1


       esposa   0.. 1
                                 casamento
            Pessoa
          código        0.. 1
          nome
          sexo          marido
          endereço



                                             12
Atributos de Associações
    Uma associação pode ser tratada como uma classe,
     que possui atributos, relacionamentos e métodos. Neste
     caso é denominada classe associativa .
      •   Ex.: como toda venda não é financiada, então os atributos e
          métodos da financiamento devem aparecer no relacionamento.


                  0..1                        0..*    Venda
Financeira
                                                     número
    código                                           data
    nome                  Financiamento              ItemdeVenda
                         dataAprovação
                         autoriza( )
                                                                  13
Exemplo de Classe
   Associativa

  Produto        0..*                  0..*    Venda

 código                                       número
 nome                                         data
CalcPreço( )            ItemVenda
CalcImposto( )          quantidade
                        CalcTotal( )




                                                       14
Transformação de Classes
   Associativas

  Produto        1   0..*                  1..*   1     Venda
                            ItemVenda
 código                     quantidade                número
 nome                       CalcTotal( )              data
CalcPreço( )
CalcImposto( )

                            Ainda falta refinar este diagrama!!



                                                                15
Associação ternária
 Cidade                                          Distribuidor
                     Distribuição
código    1                                  1
                                                  número
nome          0..*                  0..*
                                                  nome
                           0..*

                           1
                     TipoProduto
                                           Distribuição é um
                     codprod               relacionamento que
                     nome                  associa estas três
                                           classes.


                                                           16
Agregação
   A agregação corresponde a um caso particular de
    associação, utilizada para expressar um relacionamento
    “todo-parte”.
   A agregação representa uma propriedade fraca, pois
    uma classe “parte” pode estar contida em várias classes
    “todo”.


PaginaWeb                      Imagem               Diretorio
                        0..*             1..*



     “todo”                    “parte”             “todo”
                                                            17
Composição
   A composição é uma variação da agregação simples. A
    diferença com a agregação simples, consiste no fato de que
    a classe parte pertence somente à classe todo.
        Exemplo: uma venda é composta de vários detalhes (itens),
         quando a venda é criada os itens de venda também o são, e
         quando a venda é eliminada também serão eliminados os itens.

    Produto                        ItemVenda                 Venda
                   1        0..*                  1..*
códigoProduto                      quantidade                número
descrição                          CalcTotal( )              data
CalcPreço( )                       CalcImp( )
CalcImp( )
                                                                    18
Generalização/Especialização
   Pessoa física/jurídica são especializações de cliente.
    Cliente é uma generalização de pessoa física/pessoa
    jurídica.
                        Cliente
                                  1       0..*   Venda
                        código
                        nome




    PessoaFísica                           PessoaJurídica
    documentoId                            CGC
    datanasc                               nomeInstituição


                                                             19
Herança e Agregação
   Herança e agregação são conceitos diversos.
   Herança é um relacionamento chamado de “é-um”
     • pessoa física é um cliente

   Agregação é chamada de “é-parte-de”
     • item de venda é parte de uma venda

   Herança não é seletiva
     • Todas as propriedades da classe genérica são

       herdadas




                                                 20
Combinando generalização e
     agregação
   Um documento pode ser composto de vários componentes.
   Um componente é uma figura, uma tabela ou texto.

                      Componente
                                   1..*                  Documento




    Texto                                       Tabela
                         Figura




                                                                21
Dúvidas




          22

Mais conteúdo relacionado

Mais procurados

Aula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem JavaAula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem JavaDaniel Brandão
 
Diagramas de casos de uso
Diagramas de casos de usoDiagramas de casos de uso
Diagramas de casos de usoSergio Chaves
 
Introdução a Banco de Dados
Introdução a Banco de DadosIntrodução a Banco de Dados
Introdução a Banco de DadosDaniel Brandão
 
Aula 01 - UML e Padrões de Projeto
Aula 01 - UML e Padrões de ProjetoAula 01 - UML e Padrões de Projeto
Aula 01 - UML e Padrões de ProjetoVinícius de Paula
 
Modelagem relacional e normalização de dados
Modelagem relacional e normalização de dadosModelagem relacional e normalização de dados
Modelagem relacional e normalização de dadosjulianaveregue
 
Descrição formal de Casos de Uso
Descrição formal de Casos de UsoDescrição formal de Casos de Uso
Descrição formal de Casos de UsoNatanael Simões
 
BDI - Aula 09 - SQL e Algebra Relacional
BDI - Aula 09 - SQL e Algebra RelacionalBDI - Aula 09 - SQL e Algebra Relacional
BDI - Aula 09 - SQL e Algebra RelacionalRodrigo Kiyoshi Saito
 
Matemática Discreta - Parte IV teoria dos-conjuntos
Matemática Discreta - Parte IV teoria dos-conjuntosMatemática Discreta - Parte IV teoria dos-conjuntos
Matemática Discreta - Parte IV teoria dos-conjuntosUlrich Schiel
 
POO - 01 - Introdução ao Paradigma Orientado a Objetos
POO - 01 - Introdução ao Paradigma Orientado a ObjetosPOO - 01 - Introdução ao Paradigma Orientado a Objetos
POO - 01 - Introdução ao Paradigma Orientado a ObjetosLudimila Monjardim Casagrande
 
Java orientação a objetos (associacao, composicao, agregacao)
Java   orientação a objetos (associacao, composicao, agregacao)Java   orientação a objetos (associacao, composicao, agregacao)
Java orientação a objetos (associacao, composicao, agregacao)Armando Daniel
 
Diagrama de implantação
Diagrama de implantaçãoDiagrama de implantação
Diagrama de implantaçãoelliando dias
 
Banco de dados exercícios resolvidos
Banco de dados exercícios resolvidosBanco de dados exercícios resolvidos
Banco de dados exercícios resolvidosGleydson Sousa
 
Aula 02 - UML e Padrões de Projeto
Aula 02 - UML e Padrões de ProjetoAula 02 - UML e Padrões de Projeto
Aula 02 - UML e Padrões de ProjetoVinícius de Paula
 
POO - Unidade 2 (parte 2) - Classe de Associação, Agregação, Composição (ver...
POO - Unidade 2 (parte 2) - Classe de Associação, Agregação, Composição  (ver...POO - Unidade 2 (parte 2) - Classe de Associação, Agregação, Composição  (ver...
POO - Unidade 2 (parte 2) - Classe de Associação, Agregação, Composição (ver...Marcello Thiry
 

Mais procurados (20)

Aula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem JavaAula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem Java
 
Diagramas de casos de uso
Diagramas de casos de usoDiagramas de casos de uso
Diagramas de casos de uso
 
Introdução a Banco de Dados
Introdução a Banco de DadosIntrodução a Banco de Dados
Introdução a Banco de Dados
 
Aula 01 - UML e Padrões de Projeto
Aula 01 - UML e Padrões de ProjetoAula 01 - UML e Padrões de Projeto
Aula 01 - UML e Padrões de Projeto
 
Diagramas de casos de uso - aula 2
Diagramas de casos de uso - aula 2Diagramas de casos de uso - aula 2
Diagramas de casos de uso - aula 2
 
Modelagem relacional e normalização de dados
Modelagem relacional e normalização de dadosModelagem relacional e normalização de dados
Modelagem relacional e normalização de dados
 
Descrição formal de Casos de Uso
Descrição formal de Casos de UsoDescrição formal de Casos de Uso
Descrição formal de Casos de Uso
 
BDI - Aula 09 - SQL e Algebra Relacional
BDI - Aula 09 - SQL e Algebra RelacionalBDI - Aula 09 - SQL e Algebra Relacional
BDI - Aula 09 - SQL e Algebra Relacional
 
Matemática Discreta - Parte IV teoria dos-conjuntos
Matemática Discreta - Parte IV teoria dos-conjuntosMatemática Discreta - Parte IV teoria dos-conjuntos
Matemática Discreta - Parte IV teoria dos-conjuntos
 
Aula 7 - Modelagem de Software
Aula 7 - Modelagem de SoftwareAula 7 - Modelagem de Software
Aula 7 - Modelagem de Software
 
POO - 01 - Introdução ao Paradigma Orientado a Objetos
POO - 01 - Introdução ao Paradigma Orientado a ObjetosPOO - 01 - Introdução ao Paradigma Orientado a Objetos
POO - 01 - Introdução ao Paradigma Orientado a Objetos
 
Java orientação a objetos (associacao, composicao, agregacao)
Java   orientação a objetos (associacao, composicao, agregacao)Java   orientação a objetos (associacao, composicao, agregacao)
Java orientação a objetos (associacao, composicao, agregacao)
 
Estrutura de dados - Pilhas
Estrutura de dados - PilhasEstrutura de dados - Pilhas
Estrutura de dados - Pilhas
 
Diagrama de implantação
Diagrama de implantaçãoDiagrama de implantação
Diagrama de implantação
 
Banco de dados exercícios resolvidos
Banco de dados exercícios resolvidosBanco de dados exercícios resolvidos
Banco de dados exercícios resolvidos
 
Aula 02 - UML e Padrões de Projeto
Aula 02 - UML e Padrões de ProjetoAula 02 - UML e Padrões de Projeto
Aula 02 - UML e Padrões de Projeto
 
Diagrama de Casos de Uso
Diagrama de Casos de UsoDiagrama de Casos de Uso
Diagrama de Casos de Uso
 
POO - Unidade 2 (parte 2) - Classe de Associação, Agregação, Composição (ver...
POO - Unidade 2 (parte 2) - Classe de Associação, Agregação, Composição  (ver...POO - Unidade 2 (parte 2) - Classe de Associação, Agregação, Composição  (ver...
POO - Unidade 2 (parte 2) - Classe de Associação, Agregação, Composição (ver...
 
POO - 08 - Prática de Encapsulamento
POO - 08 - Prática de EncapsulamentoPOO - 08 - Prática de Encapsulamento
POO - 08 - Prática de Encapsulamento
 
Linguagem C - Vetores
Linguagem C - VetoresLinguagem C - Vetores
Linguagem C - Vetores
 

Destaque

Diagrama de classes
Diagrama de classesDiagrama de classes
Diagrama de classesErica Fabri
 
Projeto de sistemas com UML - Parte 2
Projeto de sistemas com UML - Parte 2Projeto de sistemas com UML - Parte 2
Projeto de sistemas com UML - Parte 2Natanael Simões
 
Aula 03 - Introdução aos Diagramas de Atividade
Aula 03 - Introdução aos Diagramas de AtividadeAula 03 - Introdução aos Diagramas de Atividade
Aula 03 - Introdução aos Diagramas de AtividadeAlberto Simões
 
Uml Diagramas estruturais - parte escrita
Uml   Diagramas estruturais - parte escritaUml   Diagramas estruturais - parte escrita
Uml Diagramas estruturais - parte escritathaisedd
 
Diagrama de Atividades - UML
Diagrama de Atividades - UMLDiagrama de Atividades - UML
Diagrama de Atividades - UMLVinícius Barros
 
Aula diagrama de atividade 3º periodo uniao
Aula diagrama de atividade 3º periodo uniaoAula diagrama de atividade 3º periodo uniao
Aula diagrama de atividade 3º periodo uniaoMaria Alice Jovinski
 
Diagrama de classe
Diagrama de classeDiagrama de classe
Diagrama de classeSuissa
 
Uml Diagramas Estruturais
Uml   Diagramas EstruturaisUml   Diagramas Estruturais
Uml Diagramas Estruturaisthaisedd
 
UML - Criando Diagramas Eficientes
UML - Criando Diagramas EficientesUML - Criando Diagramas Eficientes
UML - Criando Diagramas EficientesRodrigo Cascarrolho
 

Destaque (16)

Diagrama de classes
Diagrama de classesDiagrama de classes
Diagrama de classes
 
Aula diagrama de classes
Aula diagrama de classesAula diagrama de classes
Aula diagrama de classes
 
Diagrama de classes
Diagrama de classesDiagrama de classes
Diagrama de classes
 
Modulo Algorítmica III - Julio Vasquez
Modulo Algorítmica III - Julio VasquezModulo Algorítmica III - Julio Vasquez
Modulo Algorítmica III - Julio Vasquez
 
Diagrama de Classe
Diagrama de ClasseDiagrama de Classe
Diagrama de Classe
 
8 02
8 028 02
8 02
 
Projeto de sistemas com UML - Parte 2
Projeto de sistemas com UML - Parte 2Projeto de sistemas com UML - Parte 2
Projeto de sistemas com UML - Parte 2
 
Aula 03 - Introdução aos Diagramas de Atividade
Aula 03 - Introdução aos Diagramas de AtividadeAula 03 - Introdução aos Diagramas de Atividade
Aula 03 - Introdução aos Diagramas de Atividade
 
Aula 7 diagramas_classes2
Aula 7 diagramas_classes2Aula 7 diagramas_classes2
Aula 7 diagramas_classes2
 
Uml Diagramas estruturais - parte escrita
Uml   Diagramas estruturais - parte escritaUml   Diagramas estruturais - parte escrita
Uml Diagramas estruturais - parte escrita
 
Banco de Dados
Banco de DadosBanco de Dados
Banco de Dados
 
Diagrama de Atividades - UML
Diagrama de Atividades - UMLDiagrama de Atividades - UML
Diagrama de Atividades - UML
 
Aula diagrama de atividade 3º periodo uniao
Aula diagrama de atividade 3º periodo uniaoAula diagrama de atividade 3º periodo uniao
Aula diagrama de atividade 3º periodo uniao
 
Diagrama de classe
Diagrama de classeDiagrama de classe
Diagrama de classe
 
Uml Diagramas Estruturais
Uml   Diagramas EstruturaisUml   Diagramas Estruturais
Uml Diagramas Estruturais
 
UML - Criando Diagramas Eficientes
UML - Criando Diagramas EficientesUML - Criando Diagramas Eficientes
UML - Criando Diagramas Eficientes
 

Semelhante a Aula7 diagrama classes

Mapeamento de Objetos para o Modelo Relacional.ppt
Mapeamento de Objetos para o Modelo Relacional.pptMapeamento de Objetos para o Modelo Relacional.ppt
Mapeamento de Objetos para o Modelo Relacional.pptJoberthSilva
 
08 modelo conceitual_fisico_logico_er
08 modelo conceitual_fisico_logico_er08 modelo conceitual_fisico_logico_er
08 modelo conceitual_fisico_logico_erWalter Alves Pereira
 
Revisão 1º bimestre - Casos de Usos e Classes
Revisão 1º bimestre - Casos de Usos e ClassesRevisão 1º bimestre - Casos de Usos e Classes
Revisão 1º bimestre - Casos de Usos e ClassesMaria Alice Jovinski
 
Modelo conceitual fisico_logico_er[1]
Modelo conceitual fisico_logico_er[1]Modelo conceitual fisico_logico_er[1]
Modelo conceitual fisico_logico_er[1]Miguel Aquino
 
Aula classes abstratas 3º periodo uniao
Aula classes abstratas  3º periodo uniaoAula classes abstratas  3º periodo uniao
Aula classes abstratas 3º periodo uniaoMaria Alice Jovinski
 
Diagrama de classes1.1
Diagrama de classes1.1Diagrama de classes1.1
Diagrama de classes1.1Maikynata
 
bd_aula02-IPMY.pdf
bd_aula02-IPMY.pdfbd_aula02-IPMY.pdf
bd_aula02-IPMY.pdfssuser69006f
 
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)Adriano Teixeira de Souza
 
Uml
UmlUml
Umllcbj
 
Aula sobre Diagrama Classe para a modelagem de requisitos.pptx
Aula sobre Diagrama Classe para a modelagem de requisitos.pptxAula sobre Diagrama Classe para a modelagem de requisitos.pptx
Aula sobre Diagrama Classe para a modelagem de requisitos.pptxCarlos Albuquerque
 
Aula 02 - Principios da Orientação a Objetos (POO)
Aula 02 - Principios da Orientação a Objetos (POO)Aula 02 - Principios da Orientação a Objetos (POO)
Aula 02 - Principios da Orientação a Objetos (POO)Daniel Brandão
 
Aula 3-IDB - Modelo Conceptual-2.pdf
Aula 3-IDB - Modelo Conceptual-2.pdfAula 3-IDB - Modelo Conceptual-2.pdf
Aula 3-IDB - Modelo Conceptual-2.pdfCelestino24
 
Programação Orientada a Objeto(POO)
Programação Orientada a Objeto(POO)Programação Orientada a Objeto(POO)
Programação Orientada a Objeto(POO)Carlos Alberto
 
Modelagem
ModelagemModelagem
Modelagemprsimon
 
Resumo diagramas de classes
Resumo diagramas de classesResumo diagramas de classes
Resumo diagramas de classesMarco Coelho
 

Semelhante a Aula7 diagrama classes (20)

Mapeamento de Objetos para o Modelo Relacional.ppt
Mapeamento de Objetos para o Modelo Relacional.pptMapeamento de Objetos para o Modelo Relacional.ppt
Mapeamento de Objetos para o Modelo Relacional.ppt
 
08 modelo conceitual_fisico_logico_er
08 modelo conceitual_fisico_logico_er08 modelo conceitual_fisico_logico_er
08 modelo conceitual_fisico_logico_er
 
Revisão 1º bimestre - Casos de Usos e Classes
Revisão 1º bimestre - Casos de Usos e ClassesRevisão 1º bimestre - Casos de Usos e Classes
Revisão 1º bimestre - Casos de Usos e Classes
 
Modelo conceitual fisico_logico_er[1]
Modelo conceitual fisico_logico_er[1]Modelo conceitual fisico_logico_er[1]
Modelo conceitual fisico_logico_er[1]
 
Aula classes abstratas 3º periodo uniao
Aula classes abstratas  3º periodo uniaoAula classes abstratas  3º periodo uniao
Aula classes abstratas 3º periodo uniao
 
Diagrama classes
Diagrama classesDiagrama classes
Diagrama classes
 
Diagrama de classes1.1
Diagrama de classes1.1Diagrama de classes1.1
Diagrama de classes1.1
 
bd_aula02-IPMY.pdf
bd_aula02-IPMY.pdfbd_aula02-IPMY.pdf
bd_aula02-IPMY.pdf
 
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
 
Uml
UmlUml
Uml
 
Aula sobre Diagrama Classe para a modelagem de requisitos.pptx
Aula sobre Diagrama Classe para a modelagem de requisitos.pptxAula sobre Diagrama Classe para a modelagem de requisitos.pptx
Aula sobre Diagrama Classe para a modelagem de requisitos.pptx
 
Aula 02 - Principios da Orientação a Objetos (POO)
Aula 02 - Principios da Orientação a Objetos (POO)Aula 02 - Principios da Orientação a Objetos (POO)
Aula 02 - Principios da Orientação a Objetos (POO)
 
Banco de dados [ aula 2 ]
Banco de dados [ aula 2 ]Banco de dados [ aula 2 ]
Banco de dados [ aula 2 ]
 
Aula 3-IDB - Modelo Conceptual-2.pdf
Aula 3-IDB - Modelo Conceptual-2.pdfAula 3-IDB - Modelo Conceptual-2.pdf
Aula 3-IDB - Modelo Conceptual-2.pdf
 
Programação Orientada a Objeto(POO)
Programação Orientada a Objeto(POO)Programação Orientada a Objeto(POO)
Programação Orientada a Objeto(POO)
 
Modelagem
ModelagemModelagem
Modelagem
 
Resumo diagramas de classes
Resumo diagramas de classesResumo diagramas de classes
Resumo diagramas de classes
 
Relacionamentos do mapeamento OR
Relacionamentos do mapeamento ORRelacionamentos do mapeamento OR
Relacionamentos do mapeamento OR
 
Treinamento DDD .Net
Treinamento DDD .NetTreinamento DDD .Net
Treinamento DDD .Net
 
Modelagem de Sistemas de Informação 08 - Diagrama de Classes
Modelagem de Sistemas de Informação 08 - Diagrama de ClassesModelagem de Sistemas de Informação 08 - Diagrama de Classes
Modelagem de Sistemas de Informação 08 - Diagrama de Classes
 

Mais de Computação Depressão

Sd08 (si) sistemas de arquivos distribuídos
Sd08 (si)   sistemas de arquivos distribuídosSd08 (si)   sistemas de arquivos distribuídos
Sd08 (si) sistemas de arquivos distribuídosComputação Depressão
 
Sd02 (si) gerenciamento de entrada e saída
Sd02 (si)   gerenciamento de entrada e saídaSd02 (si)   gerenciamento de entrada e saída
Sd02 (si) gerenciamento de entrada e saídaComputação Depressão
 

Mais de Computação Depressão (20)

Sd08 (si) sistemas de arquivos distribuídos
Sd08 (si)   sistemas de arquivos distribuídosSd08 (si)   sistemas de arquivos distribuídos
Sd08 (si) sistemas de arquivos distribuídos
 
Sd06 (si) exclusão mútua
Sd06 (si)   exclusão mútuaSd06 (si)   exclusão mútua
Sd06 (si) exclusão mútua
 
Sd05 (si) relógios e sincronização
Sd05 (si)   relógios e sincronizaçãoSd05 (si)   relógios e sincronização
Sd05 (si) relógios e sincronização
 
Sd04 (si) comunicação em sd
Sd04 (si)   comunicação em sdSd04 (si)   comunicação em sd
Sd04 (si) comunicação em sd
 
Sd03 (si) conceitos básicos de sd
Sd03 (si)   conceitos básicos de sdSd03 (si)   conceitos básicos de sd
Sd03 (si) conceitos básicos de sd
 
Sd02 (si) gerenciamento de entrada e saída
Sd02 (si)   gerenciamento de entrada e saídaSd02 (si)   gerenciamento de entrada e saída
Sd02 (si) gerenciamento de entrada e saída
 
Sd01 (si) sistemas de arquivos
Sd01 (si)   sistemas de arquivosSd01 (si)   sistemas de arquivos
Sd01 (si) sistemas de arquivos
 
Sd07 (si) eleição
Sd07 (si)   eleiçãoSd07 (si)   eleição
Sd07 (si) eleição
 
Ufbamat2013
Ufbamat2013Ufbamat2013
Ufbamat2013
 
Ufbaingles2013
Ufbaingles2013Ufbaingles2013
Ufbaingles2013
 
Ufbagab mat 2013
Ufbagab mat 2013Ufbagab mat 2013
Ufbagab mat 2013
 
Ufbagab ingles2013
Ufbagab ingles2013Ufbagab ingles2013
Ufbagab ingles2013
 
Ufbagab fis 2013
Ufbagab fis 2013Ufbagab fis 2013
Ufbagab fis 2013
 
Ufbafisqui2013
Ufbafisqui2013Ufbafisqui2013
Ufbafisqui2013
 
Ufbagab qui 2013
Ufbagab qui 2013Ufbagab qui 2013
Ufbagab qui 2013
 
Questesdetecnologia ano2002
Questesdetecnologia ano2002Questesdetecnologia ano2002
Questesdetecnologia ano2002
 
Questesdematemtica ano2003
Questesdematemtica ano2003Questesdematemtica ano2003
Questesdematemtica ano2003
 
Questesdematemtica ano2002
Questesdematemtica ano2002Questesdematemtica ano2002
Questesdematemtica ano2002
 
Questesdefundamentos ano2003
Questesdefundamentos ano2003Questesdefundamentos ano2003
Questesdefundamentos ano2003
 
Questesdefundamentos ano2002
Questesdefundamentos ano2002Questesdefundamentos ano2002
Questesdefundamentos ano2002
 

Aula7 diagrama classes

  • 1. Engenharia de Software Aula 7 – Diagrama de Classes Profa. Dra. Judith Pavón Universidade Salvador – UNIFACS 2012
  • 2. Objetivo da aula O objetivo desta aula é apresentar os conceitos de diagrama de classes. 2
  • 3. Conteúdo • Introdução • Classe • Atributos • Métodos • Ligação e Associação • Papel do objeto • Multiplicidade • Agregação/Composição • Generalização/Especialização 3
  • 4. Introdução  Geralmente é utilizada a linguagem UML, especificamente o diagrama de classes.  Notação que permite descrever: • classes • atributos e métodos • relacionamentos • detalhes de implementação (código)  Pode ser usada em vários níveis de abstração (conceitual, lógico e físico). 4
  • 5. Classe  Classe: descrição de uma coleção de objetos que possuem propriedades semelhantes (atributos, métodos, associações). Produto códigoProduto descrição CalcularPreço( ) CalcularImpostos( ) 5
  • 6. Atributo  Informação associada a um objeto. Cada objeto da classe possui um valor em cada atributo definido pela classe.  Na prática, somente aparecem no diagrama os atributos mais relevantes, pois a lista completa dos atributos e seus domínios estão no dicionário de dados (DD) separado. Produto códigoProduto: Atributos Integer descrição: String CalcularPreço( ) CalcularImpostos( ) 6
  • 7. Métodos  São as operações que podem ser executadas sobre um objeto. Definida para cada objeto da classe.  Representar no diagrama somente os métodos importantes para a compreensão. DIFERENÇAS ENTRE MÉTODO DO OBJETO E MÉTODO DAS CLASSES  Método do objeto (instância): atua sobre um objeto  Método da classe: atua sobre a classe (o conjunto de objetos) • Ex.: métodos que procuram determinados objetos na classe. 7
  • 8. Método da classe – Diagrama de classe Funcionario Projeto 1..* 1 nome: Integer trabalha Descrição: Integer cargo: String inicio: String 1 0..1 Salario:real gerencia fim:real obterCargo( ) Custo: real Métodos $CalcularMediaSalario( ) CalcularValorProjeto( ) Método da classe (indicado pelo prefixo $) FuncionarioContratado FuncionarioTerceirizado carteiraProfissional:string inicioContrato:date dataAdmissão:date terminoContrato:date taxaAdministração 8
  • 9. Ligação e Associação  Uma ligação é um relacionamento entre objetos, que se deseja conhecer no sistema. • Ex.: a ligação entre o objeto Projeto e o objeto FuncionarioTerceirizado.  Uma associação é a descrição de uma coleção de ligações que, para fins de projeto , possuem propriedades semelhantes (classes envolvidas, atributos, métodos). • Ex.: a associação entre a classe Funcionario e a classe Projeto. 9
  • 10. Papel do objeto Um objeto cumpre um papel dentro de uma associação. esposa - Ser marido ou esposa é casamento o papel exercido por um Pessoa objeto Pessoa dentro de marido código uma associação nome casamento. sexo nome do associação endereço papel 10
  • 11. Multiplicidade  Existem situações em que é necessário restringir o número de objetos associados através de uma associação a um objeto determinado (restringir a cardinalidade). • Ex.: um homem não deve possuir mais de uma esposa.  As multiplicidades são classificadas de acordo a sua cardinalidade máxima:  0..1 (valor opcional)  1.. 1 ou 1 (exatamente um)  0..* ou * (qualquer valor inteiro não-negativo)  1..* (qualquer valor inteiro positivo) 11
  • 12. Associação 1:1 esposa 0.. 1 casamento Pessoa código 0.. 1 nome sexo marido endereço 12
  • 13. Atributos de Associações  Uma associação pode ser tratada como uma classe, que possui atributos, relacionamentos e métodos. Neste caso é denominada classe associativa . • Ex.: como toda venda não é financiada, então os atributos e métodos da financiamento devem aparecer no relacionamento. 0..1 0..* Venda Financeira número código data nome Financiamento ItemdeVenda dataAprovação autoriza( ) 13
  • 14. Exemplo de Classe Associativa Produto 0..* 0..* Venda código número nome data CalcPreço( ) ItemVenda CalcImposto( ) quantidade CalcTotal( ) 14
  • 15. Transformação de Classes Associativas Produto 1 0..* 1..* 1 Venda ItemVenda código quantidade número nome CalcTotal( ) data CalcPreço( ) CalcImposto( ) Ainda falta refinar este diagrama!! 15
  • 16. Associação ternária Cidade Distribuidor Distribuição código 1 1 número nome 0..* 0..* nome 0..* 1 TipoProduto Distribuição é um codprod relacionamento que nome associa estas três classes. 16
  • 17. Agregação  A agregação corresponde a um caso particular de associação, utilizada para expressar um relacionamento “todo-parte”.  A agregação representa uma propriedade fraca, pois uma classe “parte” pode estar contida em várias classes “todo”. PaginaWeb Imagem Diretorio 0..* 1..* “todo” “parte” “todo” 17
  • 18. Composição  A composição é uma variação da agregação simples. A diferença com a agregação simples, consiste no fato de que a classe parte pertence somente à classe todo.  Exemplo: uma venda é composta de vários detalhes (itens), quando a venda é criada os itens de venda também o são, e quando a venda é eliminada também serão eliminados os itens. Produto ItemVenda Venda 1 0..* 1..* códigoProduto quantidade número descrição CalcTotal( ) data CalcPreço( ) CalcImp( ) CalcImp( ) 18
  • 19. Generalização/Especialização  Pessoa física/jurídica são especializações de cliente. Cliente é uma generalização de pessoa física/pessoa jurídica. Cliente 1 0..* Venda código nome PessoaFísica PessoaJurídica documentoId CGC datanasc nomeInstituição 19
  • 20. Herança e Agregação  Herança e agregação são conceitos diversos.  Herança é um relacionamento chamado de “é-um” • pessoa física é um cliente  Agregação é chamada de “é-parte-de” • item de venda é parte de uma venda  Herança não é seletiva • Todas as propriedades da classe genérica são herdadas 20
  • 21. Combinando generalização e agregação  Um documento pode ser composto de vários componentes.  Um componente é uma figura, uma tabela ou texto. Componente 1..* Documento Texto Tabela Figura 21
  • 22. Dúvidas 22