Sem resumo de edição
 
(6 revisões intermediárias por 2 usuários não estão sendo mostradas)
Linha 14: Linha 14:




*Décado de 2000: Utilização rotineira da OOA (Object Oriented Analysis)como método de análise e uma certa padronização através da utilizaçãoextensiva do UML (Unified Modeling Language).
*Década de 2000: Utilização rotineira da OOA (Object Oriented Analysis)como método de análise e uma certa padronização através da utilização extensiva do UML (Unified Modeling Language).
<br>
<br>




*A OOA baseia-se num conceito simples de que as pessoas adquirem desde ainfância, como objetos e atributos, classes e membros, todo e partes dotodo.
*A OOA baseia-se num conceito simples de que as pessoas adquirem desde a infância, como objetos e atributos, classes e membros, todo e partes do todo.
<br>
<br>


Linha 24: Linha 24:
* Atual: Orientação a Serviço (SOA).
* Atual: Orientação a Serviço (SOA).
<br>
<br>


= Foco =
= Foco =
Linha 32: Linha 31:




*'''Foco OOA:''' O sistema é uma coletânea de objetos que interagementre si, com características próprias, representados por atributos(dados) e operações (processos).
*'''Foco OOA:''' O sistema é uma coletânea de objetos que interagem entre si, com características próprias, representados por atributos(dados) e operações (processos).
<br>
<br>


Linha 94: Linha 93:


* a) Mantém a modelagem do sistema e, conseqüentemente, a automação do mesmo o mais próximo possível de uma visão conceitual do mundo real.
* a) Mantém a modelagem do sistema e, conseqüentemente, a automação do mesmo o mais próximo possível de uma visão conceitual do mundo real.
<br>


* b) Baseia a decomposição e modelagem do sistema nos dados, que é o elemento mais estável de todos aqueles que compõem um sistema de informação.
* b) Baseia a decomposição e modelagem do sistema nos dados, que é o elemento mais estável de todos aqueles que compõem um sistema de informação.
Linha 147: Linha 145:




*'''Programação OO''' se incumbe da implementação do Projeto OO usandouma linguagem de programação OO (C++, Java, Python, ...).
*'''Programação OO''' se incumbe da implementação do Projeto OO usando uma linguagem de programação OO (C++, Java, Python, ...).
<br>
<br>


Linha 158: Linha 156:
* A análise de sistemas no mundo orientado a objetos é feita analisando-se os objetos e os eventos que interagem com esses objetos
* A análise de sistemas no mundo orientado a objetos é feita analisando-se os objetos e os eventos que interagem com esses objetos
<br>
<br>


* O projeto de software é feito reusando-se classes de objetos existentes e quando necessário, construindo-se novas classes.
* O projeto de software é feito reusando-se classes de objetos existentes e quando necessário, construindo-se novas classes.
Linha 178: Linha 175:
*A modelagem e o projeto orientados a objeto são os paradigmas que devem integrar todas as ferramentas e técnicas poderosas para a criação de software.
*A modelagem e o projeto orientados a objeto são os paradigmas que devem integrar todas as ferramentas e técnicas poderosas para a criação de software.
<br>
<br>


= Conceitos básicos =
= Conceitos básicos =

Edição atual tal como às 19h57min de 15 de junho de 2011

Orientação a Objetos


Breve Histórico



  • Fim da década de 80: Amadurecimento da orientação a objeto



  • Década de 1990: Diversas proposições (Booch, Rumbaugh, Jacobson, ...)



  • Década de 2000: Utilização rotineira da OOA (Object Oriented Analysis)como método de análise e uma certa padronização através da utilização extensiva do UML (Unified Modeling Language).



  • A OOA baseia-se num conceito simples de que as pessoas adquirem desde a infância, como objetos e atributos, classes e membros, todo e partes do todo.



  • Atual: Orientação a Serviço (SOA).


Foco

  • Foco tradicional: Compreensão do sistema como um conjunto de programas que executam processos sobre os dados.



  • Foco OOA: O sistema é uma coletânea de objetos que interagem entre si, com características próprias, representados por atributos(dados) e operações (processos).





  • Os métodos de orientação a objetos apresentam uma visão mais integrada das funções e dados



  • O sistema orientado a objetos é estruturado através de objetos, que contemplam: funções + dados



  • Resultados:
    • Produtos mais estáveis e de melhor qualidade
    • Processo de desenvolvimento que permite:
      • melhor entendimento do sistema e do seu ambiente
      • melhor entendimento do domínio da aplicação
      • melhor independência da implementação até estágios mais avançados.



  • Quando usar uma análise OO?


  • Projeto de grande porte: Muita informação e subprojeto
    • Ex: Sistema para organização da Copa do Mundo



  • Requisitos não completamente fechados : Modelos relativamente estáveis
    • Ex Sistema a ser desenvolvido pela equipe



  • Requisitos vagos, incompletos ou inconsistentes:
    • Recursos para identificar as informações. Ex: Sistema solicitado oralmente



  • Novas aplicações: Abordagem sistemática para melhor entendimento
    • Ex: Sistema Realidade Aumentada



  • Equipe com especialidades diversas : Linguagem comum
    • Ex: Sistemas de controle de um avião



  • Sistemas críticos: Definição mais sistemática da lógica
    • Ex: Sistema bancário



  • Benefícios da AOO


  • a) Mantém a modelagem do sistema e, conseqüentemente, a automação do mesmo o mais próximo possível de uma visão conceitual do mundo real.
  • b) Baseia a decomposição e modelagem do sistema nos dados, que é o elemento mais estável de todos aqueles que compõem um sistema de informação.
  • c) Oferece maior transparência na passagem da análise ( modelo essencial ) para o projeto ( modelo de implementação )



Características



  • Objetos são abstrações de entidades do mundo real (ou de algum sistema) que se auto-gerenciam



  • Objetos são independentes e encapsulam suas representações de estado e de informações



  • A funcionalidade de um sistema é expressa em termos de serviços que os objetos prestam



  • Áreas de dados compartilhadas são eliminadas



  • Objetos se comunicam através do envio de mensagens



  • Objetos podem ser distribuídos



  • Objetos podem ser executados sequencialmente ou de forma paralela.




Projeto, análise e programação são atividades distintas

  • Análise OO se preocupa com a modelagem dos objetos para o domínio da aplicação



  • Projeto OO se encarrega do desenvolvimento de um modelo de sistema que implemente os requisitos pré-definidos pela AOO



  • Programação OO se incumbe da implementação do Projeto OO usando uma linguagem de programação OO (C++, Java, Python, ...).


___________________________________________________________________________________________________________


  • As técnicas orientadas a objeto permitem que o software seja construído de objetos que tenham um comportamento especifico


  • A análise de sistemas no mundo orientado a objetos é feita analisando-se os objetos e os eventos que interagem com esses objetos


  • O projeto de software é feito reusando-se classes de objetos existentes e quando necessário, construindo-se novas classes.


___________________________________________________________________________________________________________



  • A análise e o projeto orientados a objeto modelam o mundo em termos de objetos que tem propriedades e comportamentos e eventos que disparam operações que mudam o estado dos objetos



  • Os objetos interagem com outros objetos



  • A modelagem e o projeto orientados a objeto são os paradigmas que devem integrar todas as ferramentas e técnicas poderosas para a criação de software.


Conceitos básicos

Objetos



  • São entidades em um sistema de software que representam instâncias de entidades do mundo real e de algum sistema



Características:


  • Objeto é um conceito, uma abstração ou uma coisa, com limites e significados bem definidos em relação ao problema considerado



  • Um objeto é normalmente identificado por um substantivo



  • Um objeto contém estrutura e comportamento.



  • Exemplos de objetos



Motor            Carro           Frota
Fração           Equação         Fórmula
Coração          Corpo Humano    Pessoa
Parágrafo        Documento       Biblioteca