ANALISE ORIENTADA A OBJETOS FUNDAMENTOS

Document Sample
ANALISE ORIENTADA A OBJETOS FUNDAMENTOS Powered By Docstoc
					*Análise de Sistemas
 Orientado a Objetos



          Fundamentos I



                *Fonte: Profª Edna Dias Canedo
                       (com adaptações)
    Objetivos

      Demonstrar uma “visão” completa e
      integrada da Orientação a Objetos
      dentro do processo de desenvolvimento
      de software, apresentando e discutindo
      seus principais métodos de análise e os
      princípios fundamentais do paradigma da
      Orientação a Objetos.

2
    Metodologia

     Aulas expositivas;
     Leituras individuais e em grupo;
     Análise de textos;
     Estudos de Caso e situações problema;
     Exercícios em laboratório
     Desenvolvimento de projeto.


3
    Análise de Sistemas




4
    O que é um modelo???
       Casa do Cachorro
       Sua Casa
       Prédio
       Empresa
       O que você consegue construir sem modelo???




5
    O que é um modelo???




6
    Importância da Modelagem
      Um modelo é uma simplificação da realidade;
      Faz uma representação abstrata dos aspectos essenciais de
      um sistema;
      Possibilita a visualização e o controle da arquitetura do
      sistema;
      Facilita o entendimento do sistema sendo construído;
      Possibilita a identificação de oportunidades para a
      simplificação e a reutilização;
      Possibilita a especificação da estrutura e do comportamento
      do sistema;
      Possibilita a documentação das decisões tomadas.
7
    Importância da Modelagem

      Podemos concluir que:
       – Uma empresa bem sucedida é aquela que
         fornece software de qualidade e capaz de
         atender as necessidades dos respectivos
         usuários;
       – A modelagem é uma parte central de todas
         as atividades que levam a implantação de
         um bom software.

8
Abreviações

 Orientação a Objetos - OO
 Análise Orientada a Objetos - AOO
 Projeto Orientado a Objetos – POO
 Implementação Orientada a Objetos - IOO
 Linguagem de Programação Orientada a
 Objetos – LPOO
     Diferença entre AOO e POO
            AOO                           POO
       Consiste de todas as         Inclui as atividades que
       atividades feitas com ou     resultam em informação que
       para o conhecimento do       interessa     apenas     ao
                                    programador.
       cliente, que deve discutir
       e aprovar.                   Resulta no detalhamento das
                                    especificações para a fase
       Mapear características       de programação do sistema.
       dos objetos em               ênfase está em descrever
       atributos. Mapear            objetos lógicos de software
       comportamentos dos           que        poderão      ser
       objetos em métodos.          implementados com uma
                                    LPOO.

10
     Modelagem não Orientada a
     Objetos

      Raízes associadas às linguagens de terceira geração;
      Sistemas são decompostos em módulos;
      Módulos são decompostos em funções;
      Funções e dados são tratados em separado;
      Funções são ativas e dados são passivos;
      Funções precisam conhecer as estruturas dos dados;
      É problemático modificar estruturas dos dados;
      Dados fluem entre as funções.

11
     Modelagem Orientada a Objetos

     Comportamento e dados são mantidos
     integrados;
     Suportam classe, objeto e herança;
     Sugerem como identificar as classes;
     Sugerem como identificar as responsabilidades;
     Classes agrupadas em hierarquias;
     Sugerem como identificar interações entre
     objetos.
12
     Engenharia de Software OO

       Engenharia de software é uma abordagem
       sistemática para o desenvolvimento de software;
       Enfatiza o entendimento antes do projeto e da
       codificação;
       A construção de modelos é um aspecto chave na
       engenharia de software;
       Um modelo é uma abstração de algum aspecto de um
       problema;
       Modelos      são     representados     através  de
       representações gráficas denominadas diagramas.
13
     Como introduzir a orientação a
     objetos ?

       Treinar equipe em orientação a objetos;
       Treinar equipe em linguagem de programação;
       Desenvolver pequenos programas;
       Desenvolver projeto piloto;
       Projeto piloto deve ser útil;
       Várias metodologias podem ser consideradas;
       Monitorar e avaliar cuidadosamente o projeto;
       Estipular um prazo para conclusão.

14
     Por que orientação a objetos?

       Uma das preocupações da indústria de software é a
       necessidade de criar software e sistemas
       corporativos muito mais rapidamente e a um custo
       mais baixo.
       Para fazermos bom uso da crescente potência dos
       computadores, precisamos de um software de maior
       complexidade. Além de complexo, ele precisa
       também ser confiável e de alta qualidade.


15
     Por que orientação a objetos?

     Em 1968, na Conferência de Engenharia de Software da
       OTAN, utilizou-se pela 1ª vez o termo “crise do software”
       para designar o mau momento que atravessava a
       indústria de sw, na busca por métodos mais
       sistematizados e controlados para o desenvolvimento de
       sw complexos (estrutura de dados, algoritmos,
       procedimentos, funções, módulos, objetos etc.).
        – A partir daí surgiram muitos métodos para o
          desenvolvimento, todos eles com o intuito de superar
          a tal “crise do software”. Neste contexto, surgiu o
          paradigma da orientação a objetos.
                                        objetos
16
     Por que orientação a objetos?

       A programação orientada a objetos, concentra-se
       nos tipos de objetos cuja estrutura de dados
       pode ser manipulada somente com os métodos
       da classe de objetos.
        – As estruturas de dados se relacionam aos
          objetos e podem ser usadas somente com os
          métodos projetados para este tipo de objeto.



17
     Por que orientação a objetos?

       A análise de sistemas no mundo orientado a
       objetos é feita analisando-se os objetos e os
       eventos que interagem com esses objetos.
        – Cada objeto executa uma função específica
          independentemente de outros objetos:
          responde a mensagens, sem saber porque
          a mensagem foi enviada ou quais serão as
          conseqüências.

18
     Origens da orientação a objetos
       Conceitos existentes desde os anos 60:
        – ALGOL: família de LP de alto nível para
          aplicações científicas.
       Início na área acadêmica - Simula 67:
        – Linguagem de simulação baseada em Algol.
       1972 – Smalltalk:
        – Foi a primeira linguagem orientada a objetos
          construída. Ainda hoje serve como referência
          pois é totalmente orientada a objetos. É ainda
          restrita a pesquisas.
19
     Origens da orientação a objetos

       1980s - Objective-X, C++, Eiffel…
       1981 – Método OO – Matt Flavin
       1984 – Interface GUI – Apple Macintosh
       1990s - C++:
        – É a linguagem responsável pela aceitação em larga
          escala da Orientação a Objetos nos grandes
          projetos fora dos laboratórios de pesquisa. Ainda é
          muito utilizada onde performance é primordial.


20
     Origens da orientação a objetos

       – Linguagem C + Classes;
       – Classes: registros (Structs, Union, Class) + funções.
      1990s – Java:
       – Tornou-se muito aceita pela capacidade de rodar seus
         programas em praticamente qualquer plataforma.
            Atualmente é a linguagem mais utilizada para
            desenvolvimento em larga escala de sistemas
            distribuídos    em      ambientes      heterogêneos
            (aplicações em inúmeras plataformas).


21
     Origens da orientação a objetos

         1990s – Ada
          – Desenvolvida    pelo Departamento de
            Defesa do USA, ainda é a linguagem oficial
            do governo americano. É muito utilizada
            por grupos de pesquisa e engenharia.
          – 1ª LP OO padronizada internacionalmente.




22
     Orientação a Objetos



              Fundamentos e
              Conceitos




23
     O que é um Sistema OO?

      Um sistema Orientado a Objeto é modelado, implementado e
      efetivamente funciona como um conjunto de objetos que
      interagem entre si.

                           Obj 2
                           Obj 2          Obj 3
                                          Obj 3


                  Obj 1
                  Obj 1


                                           Obj 4
                                           Obj 4
24
     Resumo do Funcionamento

      Os menores componentes do sistema são
      os objetos, onde são guardadas todas as
      informações.
      Os objetos se comunicam através de
      mensagens.
      As mensagens acionam os métodos dos
      objetos visando efetuar as ações e
      manipular as informações.
25
                                     Mundo Computacional

  Mundo Real


                                          ESPAÇO DE
ESPAÇO DE
                                          SOLUÇÕES
PROBLEMAS

                 Gap Semântico



Aspectos mais importantes do mundo
   real para fins de representação
           no computador
DADOS                                       RESULTADOS
                      ESPAÇO DE
                      PROBLEMAS

Objetos e Operações                       Objetos do mundo
                        Algoritmo do             real
   do mundo real        mundo real

     Mapeamento do
       domínio de                       Interpretação Humana dos
        soluções                                 resultados

                        ESPAÇO DE
                        SOLUÇÕES

  Objetos e Operações                     Dados de Saída
       abstratas          Algoritmo
                        computacional
     Gap Semântico

      Diferença entre Espaço de Problemas e Soluções;
      Diferença entre uma representação de um contexto do
      conhecimento em uma linguagem natural e uma
      representação do conhecimento em uma linguagem
      formal (como uma LP).
      Todo software representa um Modelo de um problema
      do mundo real (Espaço de Soluções);
      A construção de um software envolve um processo de
      mapeamento de objetos pertencentes ao espaço de
      problemas para o espaço de soluções, de tal maneira
      que operações sobre essas representações abstratas
      correspondam a operações do mundo real;
28
     Gap Semântico

      Projetista cria algoritmos que quando executados no
      computador produzirão resultados, que podem ser
      mapeados fisicamente para alguma ação do mundo real
      ou examinados/interpretados por pessoas.
      EVIDENTE: quanto mais próximo (conceitualmente)
      estiver o espaço de soluções do espaço de problemas,
      mais fácil será:
       – O desenvolvimento da aplicação;
       – Assegurar     a compreensão, confiabilidade e
         manutenção da aplicação.
      Objetivo do Paradigma de OO: diminuir o GAP
      semântico.
29
                                   Mundo Computacional
 Mundo Real



                                             ESPAÇO DE
  ESPAÇO DE                                  SOLUÇÕES
  PROBLEMAS
                      Mapeamento




                 Processo de Identificação
                     de Abstrações
Obs: Se essas abstrações não tiverem uma expressão direta (ou
próxima) do mundo computacional, a complexidade da solução
será aumentada
     Modelagem Conceitual

      Tarefa mais importante de um processo de
      desenvolvimento de software
       – realiza-se a análise do domínio da aplicação e a
         modelagem das entidades e fenômenos desse
         domínio que o projetista considera importante,
         independentemente da implementação.
      A tarefa de modelagem conceitual envolve dois
      mecanismos:
       – Abstração;
       – Representação.
31
                             Modelagem Conceitual


     Operação mental
     para observar um                                Refere-se às
     domínio e capturar
                                  REPRESENTAÇÃO
                                                     convenções de
     sua estrutura
     (características                                representação
     principais +     ABSTRAÇÃO
     comportamento)
                                         Objeto       Notação gráfica,
                  Objeto              Representado     linguagem de
                 Observado                             programação

                                           Avião




32
     Paradigma de Orientação a Objetos



                     Histórico, Conceitos e
                     Terminologia




33
     Paradigma de Orientação a Objetos
      Surgiu na tentativa de solucionar problemas
      existentes no desenvolvimento de Softwares
      Complexos e Confiáveis com baixo custo de
      desenvolvimento e manutenção;
      Mundo Real é formado por objetos que interagem
      entre si;
      Representar esses objetos em um software é mais
      natural e permanente do que representar a sua
      funcionalidade (decomposição funcional), pois essa
      é mutável;
34
     Paradigma de Orientação a Objetos

      Idéia básica
       “Nós percebemos o mundo como uma coleção de
                objetos que interagem entre si”.
        “Maneira de ver as coisas, uma nova maneira de
                            pensar”
      Permite que objetos do mundo real sejam mapeados
     em Objetos no computador;
      Visão do DOMÍNIO da aplicação é composto por
     OBJETOS      que    se    comunicam      através  de
     MENSAGENS;

35
     Paradigma de Orientação a Objetos

       Paradigma de OO = objetos + classificação +
       herança + comunicação (Coad e Yourdon, 1990);
       Modelo de Objetos
        – Objetos, Mensagens e Métodos.
       Tradicionalmente
        – Softwares   são formados por dados e
          procedimentos independentes.


36
     Paradigma de Orientação a Objetos

       Paradigma OO
        – Softwares são formados, principalmente, por:
            Objetos
               –   parte interna: define o comportamento do
                   objeto, ou seja, especifica os métodos
                   associados ao objeto.
               –   parte externa: interface - maneira que o
                   objeto se apresenta para outros objetos.
             Mensagens
       –   Diminuir o gap semântico.
37
     Paradigma de Orientação a Objetos

      O desenvolvimento orientado a objetos evoluiu no
      sentido:        PROGRAMAÇÃO

                           ANÁLISE
      Conceitos desse paradigma foram introduzidos com o
      surgimento da linguagem Smalltalk;
      Em seguida, surgiram métodos de projeto para dar
      suporte à implementação de sistemas orientados a
      objetos;
      Recentemente, propostas de métodos para análise e
      projeto vêm emergindo.
38
     Histórico

        A OO surgiu no final da década de 60, quando dois
        cientistas dinamarqueses criaram a linguagem Simula
        (Simulation Language).
        1967 - Linguagem de Programação Simula-67-
        conceitos de classe e herança.
        O termo Programação Orientada a Objeto (POO) é
        introduzido com a linguagem Smalltalk (1983).
        FINS DOS ANOS 80          Paradigma de Orientação a
        Objetos: abordagem poderosa e prática para o
        desenvolvimento de software
39
     Histórico

       Linguagens híbridas:
       •   C++ (1986), Object-Pascal (1986).
       Métodos de Análise e Projeto OO
       •   CRC (Class Responsability Collaborator, Beecke e
           Cunningham, 1989).
       •   OOA (Object Oriented Analysis, Coad e Yourdon, 1990)
       •   Booch (1991).
       •   OMT (Object Modeling Technique, Rumbaugh, 1991).
       •   Objectory (Jacobson, 1992).
       •   Fusion (1994).
       •   Unified Modeling Language – “Notação” (UML, 1997).
40
     Benefícios Principais


      Reusabilidade.

      Redução da Complexidade.

      Garantia de Integridade.



41
           Processo de Construção
            de Sistemas

Reusabilidade transforma o processo de construção de
  sistemas.




     antes
                    Processo semi-artesanal.
     Processo de Montagem

      Descobrir o que há de
      comum       entre   várias
      aplicações    do   mesmo
      domínio de problema. Não
      é fácil.
      Reutilização            de
      componentes já testados
      existentes       em uma
      Biblioteca de Classes.       Processo de montagem
                                   semelhante ao da
                   depois          indústria mecânica.
43
     Ganhos Decorrentes da Reusabilidade


      Aumento de produtividade
      • uso de bibliotecas de classes;
      • mecanismos de herança.


      Aumento de qualidade
      • uso de componentes testados e aprovados.



44
     Redução de Complexidade


     Maior facilidade de transição entre as fases:
     • mesmo paradigma desde a análise até a
       implementação;
     • não existe necessidade de conversões de
       modelos a cada fase.



45
     Redução de Complexidade

      Facilidade de modularização
       • delimitação clara e precisa das fronteiras
         entre os objetos.

      Facilidade de manutenção
       • operações residem em um único lugar, não
         estando espalhadas e repetidas pelos
         programas.
46
     Paradigma de Orientação a Objetos




47
     Analogia dos conceitos principais na POO e no
     paradigma tradicional de programação


       Linguagens Tradicionais      Linguagens OO


     Valor                       Objeto
     Tipo Abstrato de            Classe
     Dados(TAD)
     Chamada de Procedimento     Mensagem
     Procedimento ou Função      Método
     Conjunto de nomes e
                                 Interface
     funções para um fim
     específico.




48
     Orientação a Objeto - Paradigma

       Enfoque: representar o mundo real por meio de objetos
       e suas interações.
       Coisas do mundo real: mesas, papéis, animais.
       Objetos têm propriedade.
       Mesa
        – Feita de madeira;
        – Tem uma altura;
        – Tem uma localização.
       É possível exercer ações sobre objetos
        – Criar, destruir, mudar a localização.
49
     O que se ganha com Objetos??

       O comportamento do objeto é independente da
       representação interna dos dados;
       Dados são protegidos contra acesso indevido;
       Acesso, checagem de erro, etc., são
       concentrados em um único lugar;
       Extensibilidade, mudança de representação e
       adição de novo funcionamento pode ser feito de
       maneira incremental e com mínimo distúrbio no
       sistema como um todo.
50
     O que é Software OO??

       Software organizado como uma coleção de
       objetos interdependentes cada um fornecendo
       um serviço específico através de sua interface;
       Objetos são entidades comuns do domínio da
       aplicação;
       Sistemas modelam diretamente a interação entre
       estes objetos no ambiente computacional.


51
     OO - Benefícios

       Os conceitos de OO:
       –   Facilitam a reutilização de código;
       –   Forçam a modularização dos sistemas e;
       –   Oferecem suporte a dados complexos e
           programação baseada em eventos.



52
     OO - Terminologia

       A programação OO apoia-se basicamente nos princípios
       de:
        – Abstração;
        – Objeto;
        – Mensagem;
        – Polimorfismo;
        – Herança;
        – Classe;
        – Encapsulamento;
        – Método;
        – Instância.

53
     Abstração

      Mecanismo utilizado na análise de um domínio.
      Através dela, o indivíduo observa a realidade e dela abstrai
      entidades, ações, etc. consideradas essenciais para uma
      aplicação, excluindo todos os aspectos julgados
      irrelevantes.
      Exemplo:
        – Fotografia por satélite (imagem da realidade), despida
          de alguns aspectos (por exemplo, cor, movimento).
        – Da foto, pode-se abstrair um mapa, que elimina diversas
          propriedades da foto (detalhes particulares de um
          edifício ou praça). O mapa pode ser a base para abstrair
54        um grafo.
     Abstração
     “a beleza está nos olhos de quem a vê”


        O resultado de uma operação mental de abstração
        depende não tanto do fenômeno observado, mas do
        interesse do observador.




55
                      Abstração
                      “a beleza está nos olhos de quem a vê”


                            É um
       O que é isto???      felino???
                                           É um ladrão???

É um animal
 peludo???                            É um mamífero???
     É o Frajola???

                                  É um gatinho???

56
                                                    Acho que vi

     Abstração
                                                        um
                                                    “gatinho”...
     “a beleza está nos olhos de quem a vê”



     Depende do ponto de vista:
        Dona: um animal de estimação;
          Veterinário: um sistema de órgãos;
          Piu-piu: um inimigo.

          É o princípio de ignorar aspectos de um assunto não relevante
          para o propósito em questão, tornando possível uma
          concentração nos assuntos de maior interesse.
          É como se estivéssemos observando, com um binóculo, um
          elemento, por um de seus lados apenas (aquele que interessa
          no momento).
57
                     Abstração
           “a beleza está nos olhos de quem a vê”
Diferentes abstrações a partir de um mesmo objeto
do mundo real.




                                                    Cardinalidade
                                           I, II,   do conjunto


    Maça
  Peso
  cor da casca
  formato                 Receita
                                                    3
                                               ATRIBUTO
CATEGORIA
                          AÇÃO
     Operações de Abstração
     relevantes para a modelagem conceitual


       Classificação/Classes (Instanciação)
        – categorização dos objetos em grupos e/ou classes
          (categoria), com base em algum conjunto de
          propriedades comuns.
       Generalização (Especialização)
        – a partir de duas categorias abstrai-se uma categoria
          mais genérica.
        – sub-categorias satisfazem todas as propriedades das
          categorias de que elas constituem especializações.
        – deve existir pelo menos uma propriedade que
          distingue duas categorias especializadas.
59
     Operações de Abstração
     relevantes para a modelagem conceitual


       Agregação (Decomposição)
        • composição de uma nova categoria como um
          agregado de categorias pré-existentes.
        • instâncias de uma categoria (Estudante) são
          compostas por instâncias de outras categorias.




60
      Classificação/Instanciação
                 Estudante
     CATEGORIA      de
                 Graduação

                              CLASSIFICAÇÃO

                                      INSTANCIAÇÃO

             José         Maria

                 INDIVÍDUO
                   (Objeto)
61
      Classificação/Instanciação
                        Estudante
     CATEGORIA             de
                        Graduação
       Membro
         do                         CLASSIFICAÇÃO
        Coral
                                            INSTANCIAÇÃO

                José                Maria


                       INDIVÍDUO
                         (Objeto)
62
      Generalização/Especialização

                 Estudante
     CATEGORIA



                              GENERALIZAÇÃO


        Estudante        Estudante    ESPECIALIZAÇÃO
           de             de Pós-        (herança)
        Graduação        Graduação

                 CATEGORIA

63
      Generalização/Especialização
                        Mamífero
     Atributos
     •sangue quente
     •vertebrado


                                   GENERALIZAÇÃO



                                               ESPECIALIZAÇÃO
                         Baleia                   (herança)
     Atributos
     •Habitat: mar
     •Tempo médio de
     vida: 200 anos


                       CATEGORIA
64
       Agregação/Decomposição


     CATEGORIA      Casa
                                  AGREGAÇÃO
                                  (composição -
                                     síntese)

                                            DECOMPOSIÇÃO
                                             (refinamento -
                                                 análise)
           Porta        Parede
           CATEGORIA/COMPONENTE


65
     Aspectos OO

      Modelo de Objetos
       – Objeto;
       – Mensagem;
       – Método.
      Classe
      Atributo
      Protocolo
      Classificação
      Herança
      Encapsulamento/Ocultamento de Informação
      Polimorfismo.
66
     Objeto

     Tudo em Orientação Objeto é OBJETO;
     Objeto, no mundo físico, é tipicamente um produtor e
     consumidor de itens de informação: exemplo: máquina,
     comandos, arquivos, pessoas, sinais.
     Definição (mundo do software):
      – “Qualquer coisa, real ou abstrata, a respeito da qual
        armazenamos dados e métodos que os manipulam”
        Martin, Odell (1995);
      – Abstração de uma entidade do mundo real de modo
        que essa entidade possui várias características;
          Exemplo: objetos: cachorro e casa.
67
     Objeto

     • Substantivo (entidade do mundo real).
     • Uma ocorrência específica (instância) de uma entidade.
     • Um “Pacote” que contém procedimentos e dados
     relacionados.

     •Todo objeto tem:
        • Identidade
        • Estado
        • Comportamento


68
      Objeto

     • Identidade é a propriedade que distingue um objeto
     dos outros (Obrigatório). Esta identidade de objeto deve
     ser única, uniforme e independente do conteúdo do
     objeto.

     • Estado é o conjunto das propriedades de um objeto e
     seus valores atuais (Opcional).

     • Comportamento é representado pelas ações e reações
     do objeto em termos de seu estado e de troca de
     mensagens (Opcional).
69
     Estado de um Objeto

      O conjunto dos valores dos atributos de um objeto em
      determinado tempo que define o seu estado.



                         nome,                 Pedro
                      nascimento,            14/05/68
                       profissão,            marceneiro
                          ...


70
     Comportamento de um Objeto


      Representado por uma abstração, algo com
      limites nítidos e significado em relação ao
      problema em causa.
      As funcionalidades de um objeto estão
      relacionadas ao seu comportamento.
      Um objeto sabe como executar o seu
      trabalho e possui informação dentro de seu
      próprio escopo.
71
           •Raça
           •cor
           •pedigree



CACHORRO               CASA
     Objeto

      OBJETO: Entidade independente, composta por um
      conjunto de elementos que a caracterizam (domínio) e
      as ações que agem sobre esse domínio (operações);


                                         DOMÍNIO
      OBJETO                                +
                                        OPERAÇÕES




73
     Objeto

     Visão implementacional (Takahashi, 1990)
       Entidade composta por:
        – ESTADO INTERNO: é onde os valores podem
          ser armazenados e modificados ao longo da vida
          do objeto, caracterizando seu domínio;
        – COMPORTAMENTO: é o conjunto de ações pré-
          definidas (denominadas métodos) através das
          quais o objeto responderá a demanda de
          processamento por parte de outros objetos.

74
     Objeto

      Objeto é algo DINÂMICO: é criado por alguém, tem
      uma vida, e morre ou é morto por alguém;
      Pode ter vida temporária (como a execução de um
      programa) ou persistente (persistirá até que seu
      desaparecimento seja explicitamente ordenado).




75
                     Objeto
                      Mapeamento
            Abstração        Implementação

                      DOMÍNIO
      ABSTRAÇÃO          +
                     OPERAÇÕES



                                       <Nome do Objeto>
                       ATRIBUTOS
                         (Dados)
                            +            <Atributos>
     IMPLEMENTAÇÃO      MÉTODOS
                     (Procedimentos)
                                         <Métodos>
76
     Objeto

      Resumindo:
       – Pacote de informações (atributos) e a descrição de suas
         operações (métodos), de modo que elas são intrínsecas
         ao seu domínio e este é formado pelos elementos que o
         caracterizam.                            Objeto: Pessoa
                                                  Nome
       – Exemplo:                                 Data
            Objeto: Pessoa                        Nascimento
                                                  Cor
            Atributos: Nome, Data de              Acordar
      Nascimento, Cor                             Comer
                                                  Beber
            Métodos: Acordar, Comer, Beber
                                                  Dormir
77    Dormir.
     Objeto

      Exemplo:
         uma Pessoa e um Carro podem ser considerados
         como um objeto de dados no sentido de que
         qualquer um deles pode ser definido em termos
         de um conjunto de atributos e operações.
      Objetos podem relacionar-se um com o outro;
      Uma Pessoa pode possuir Carro, onde o
      relacionamento possuir define uma conexão
      específica entre Pessoa e Carro.
78
     Objeto


                       Objeto
                         =
                 Atributos (Dados)
                         +
              Métodos (Funcionalidade)
                         +
                  Encapsulamento

79
     Exemplos de Objeto

       Uma fatura;
       Uma organização;
       Uma tela com a qual o usuário interage;
       Um desenho de engenheiro;
       Um avião;
       Um vôo de avião;
       Uma reserva num avião;
       Um processo de atendimento de pedidos;
       Um computador;
       Um ser humano neurótico pode ser estereotipado como um
       objeto: possui memória em que valores podem ser
       armazenados e que condicionarão seu comportamento.
80
     Atributos

       Representam um conjunto de informações, ou seja,
       elementos de dados que caracterizam um objeto;
       Descrevem as informações que ficam escondidas
       em um objeto para serem exclusivamente
       manipulado pelas operações daquele objeto;
       São variáveis que definem o estado de um objeto,
       ou seja, são entidades que caracterizam os objetos;
       Cada objeto possui seu próprio conjunto de
       atributos;

81
     Atributos

       Exemplos:
        – Objeto: Pessoa
            Atributos: Nome, Cor, Data de Nascimento.
        – Objeto: Empregado
            Atributos: Nome do empregado, nome do
            departamento,       salário,      endereço,
            dependentes.



82
                               Classe
      Atributos               Atributos
                              Métodos
     Definem            as
     características    do
     objeto.
     Um objeto pode ser
     composto por um ou
     mais atributos, que
     pertencem apenas a
     ele e não dependem de
     qualquer         outra
     estrutura
     complementar.

83
                      Atributos




     Dicionário
                                  Objeto: Dicionário

                                  Atributos: Código
                                  Título,Editora.
          Objeto do mundo Real
                                  Adicionar Palavra
                                  Eliminar Palavra
                                  Encontrar Palavra
                                  Imprimir definição


84
     Atributos

       Um valor armazenado pelos objetos da classe
        • PESSOA: nome, idade, peso, cor.
        • CARRO: cor, peso, ano, modelo.
        • Cada atributo possui um valor para cada instância.
        • João tem 24 anos e Maria tem 40.




85
     Identificação de Objetos

       O processo de análise para identificação dos
       objetos e classes DIFÍCIL
       Basicamente a mesma tarefa realizada na
       análise e no projeto de sistemas (Análise
       Estruturada).
       Os domínios de aplicação que naturalmente
       refletem entidades concretas do mundo real
       se beneficiam da abordagem OO.
86
     Identificação de Objetos

       Objetos podem ser:
       –   Entidades Externas que produzem ou consomem
           informações (outros sistemas, pessoas).
       –   Coisas que fazem parte do domínio (relatórios, displays,
           cartas).
       –   Eventos que ocorrem no contexto do sistema (transferência
           de propriedade).
       –   Papéis desempenhados por pessoas (gerente, engenheiro,
           vendedor).
       –   Unidades organizacionais (grupo, equipe).
       –   Lugares que estabelecem o contexto do problema (piso de
           fábrica, área de descarga).
87
     Classificação

      Categorização em Classes: Quando estamos modelando
      um domínio (problema), observamos que há várias
      entidades similares que podem ser abstraídas em um
      conceito único que engloba esta similaridade;
      Operação de abstração das similaridades;
      A Programação Orientada a Objeto incorporou esta
      operação através da abstração dos atributos e dos
      métodos que caracterizam objetos semelhantes,
      especificando-os na CLASSE;
      Exemplo:
       – Classificação de espécies em Zoologia.
88
     Classe

      Objeto: abstração de uma entidade do mundo real,
      através dos atributos e operações;
      Classe: abstração de um conjunto de objetos similares
      do mundo real;
      Agrupamento de objetos similares.
      Todo objeto é uma instância de uma Classe;
      Todas as instâncias de uma classe têm valores
      próprios para os atributos especificados na classe;
      Os objetos representados por determinada classe
      diferenciam-se entre si pelos valores de seus atributos;
90
      Classe

     •Exemplo: Automóvel (Classe)


                                         Identidade




        Um objeto é uma instância de uma classe
91
      Classe

     Classe: representa um
     “gabarito”    para  muitos
     objetos e descreve como
     estes      objetos   estão
     estruturados internamente.
     Ela define os atributos e
     comportamentos comuns
     compartilhados por um tipo
     de objeto.


92
     Classe

      Conjunto de objetos que possuem propriedades semelhantes
      (ATRIBUTOS), o mesmo comportamento (MÉTODOS) e os
      mesmos relacionamentos com outros objetos.
      Todo objeto é instância de apenas uma única classe.
      •   PESSOA, CARRO, CASA, VEÍCULO;
      •   EMPRESA, PAÍS, SERES HUMANOS, HOMENS, MULHERES etc.
      Uma vez que uma instância de uma classe é criada, se
      comporta como todas as outras instâncias de sua classe.


                   Instância = Objeto
93
                              Representação
                              de Classes
                 Instâncias                            Classe

      pessoa              pessoa
       Pedro                Carla                         pessoa
      14/05/68            25/10/71                         nome
     marceneiro            médica                       nascimento
                                                         profissão
       pessoa             pessoa
        Paulo               João
                                                           dançar
      22/08/64            10/10/75
                                                            pular
                                                           vestir
      motorista          marceneiro

     Na definição de uma classe, descreve-se que propriedades -- ou
     atributos -- o objeto terá e os métodos aplicados a eles. Os atributos são
     nomeados e armazenam o estado abstrato de cada objeto.
94
     Classe

      Similar a um TAD (Tipo-Abstrato-de-Dados): pode ser
      usado como base para a criação de objetos que
      sejam entidades executáveis com atributos e
      operações (métodos) da classe.
      Sua especificação é uma especificação da interface
      na qual as partes visíveis da entidade são expostas.




95
     Classe         Livro




     Bíblia   Relatório     Dicionário
96
     Classe
                CASA

     Reformar     Portas    Quartos
     Limpar       Salas     Localização
     Pintar       Cozinha   Telhado
     Mobiliar




97
                       Características
      Exemplo de objeto do mundo real
      •   “a coisa em que você está sentado agora”




               É membro - (instância)
               de uma classe maior de
                     Objetos.
     Cadeira                                  Mobiliário


98
         Cor      Classe
                 Mobiliário
                                  Comprado
  Peso

                                  Vendido
Dimensões

                                 Modificado
Localização

         Custo
                         herda

                                   Operações
  Atributos
                                   (Serviços e
(Propriedades)    Cadeira           Métodos)
      Classe

       O Objeto Cadeira é um membro (INSTÂNCIA) de uma CLASSE
       maior de objetos – MOBILIÁRIO.
       O objeto herda todos os atributos e as operações da sua
       classe de origem.
       As classes devem ser instanciadas para criar um objeto. Ex:
       comando new (Java).
       CLASSE de objetos descreve um conjunto de objetos que
       possuem:
        • propriedades semelhantes (ATRIBUTOS);

        • mesmo comportamento (MÉTODOS);
        • mesmos relacionamentos com outros objetos;

        • mesma semântica.
100
      Classe

        Atributos GENÉRICOS da classe MOBILIÁRIO:
         • custo, dimensões, peso, localização, cor.
        Atributos se aplicam a todos os objetos da classe
        MOBILIÁRIO: mesa, cadeira, sofá, armário.
        Uma vez que o objeto CADEIRA é um membro da
        classe MOBILIÁRIO, HERDA todos os atributos
        definidos para a classe.
        •   Comprado;
        •   vendido, pesado;
        •   modificado (pintar de roxo, serrar uma perna).
101
      Classe



               <Nome da classe>


                 <Atributos>



                <Operações>


102
      Exemplo de uma Classe
      Java


       Class Abastecimento {
       float litros;
       float custo;
       date horário;
       }


103
                       Exemplo de uma Classe
                       Java
      public class Contador {
         private int num;                       Atributos
         private int inicio;

          public Contador(int valorInicial) {
            inicio = valorInicial;
             num = inicio;
          }
                                                Métodos
          public void incrementa() {
             num = num + 1;
          }

          public int mostraNum() {
             return num;
          }
      }
104
      Classe


        O objeto CADEIRA e outros da mesma classe
        ENCAPSULA:
         • Dados (os valores dos atributos que definem
           a cadeira);
         • Operações (as ações aplicadas para mudar
           os atributos da cadeira).




105

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:79
posted:10/14/2012
language:Portuguese
pages:105