Linguagem de programação


      Introdução a OO
        Carlos Melo
Sumário

• Cenários de desenvolvimento;
• Histórico da OO;
• Conceitos de OO;
• Análise e Desenvolvimento;
• Bancos de dados OO;
CENÁRIOS DE
DESENVOLVIMENTO
Cenário Estrutural

• Foco principal nas funções depois nos
  dados, informações desagrupadas;
• As ideias e necessidades dos usuários normalmente não
  ficam claras:
  • Quais são suas necessidades para o sistema;
  • Preciso de um sistema que controle todas vendas dos
    produtos;
Cenário Estrutural

• Validação com o usuário
  • É muito difícil para o usuário leigo entender um modelo
    ER;
  • Problemas se descobrem durante a implementação
Cenário Estrutural

• Excesso de documentação ou nenhuma;
• Cronograma apertado, prazos estourados, dificuldade de
  reaproveitamento de código;
• Cliente insatisfeito;
• Horas infindáveis de manutenção corretiva;
• Custo elevado de projeto.
Cenário OO

• Foco principal nos objetos do mundo real, com suas
  funções e dados agrupados.
• Deve-se fazer o levantamento de requisitos já pensando
  nos objetos do mundo real;
• Facilita o entendimento por parte do programador das
  necessidades do usuário;
  • O que vamos controlar;
  • Nossos Carros.
Cenário OO

• Diminuição de tempo e custo de desenvolvimento;
• Atendimento da demanda gerada pela evolução
  tecnológica;
• Reutilização do código, facilidade de manutenção.
HISTÓRICO DA ORIENTAÇÃO A
OBJETOS
Histórico

• 1967: Simula – introduz os primeiros conceitos de OO;
• 1972: SmallTalk;
• 1980: C++ linguagem híbrida, derivada da linguagem C;
• 1983: Ada criada para uso militar nos EUA;
• 1984: Eiffel primeiras características formais de OO;
• 1986: Object Pascal;
• 1995: JAVA – Linguagem puramente orientada a objetos;
• 1995: Várias linguagens agregando conceitos de OO
Java

• O Java é ao mesmo tempo um ambiente e uma
  linguagem de programação desenvolvida pela Sun
  Microsystem, Inc;
• Trata-se de mais um representante da nova geração de
  linguagens orientadas a objetos e foi projetado para
  resolver os problemas da área de programação
  cliente/servidor;
• Os aplicativos em Java são compilados em um código de
  bytes independente de arquitetura.
Java

• Esse código de bytes pode então ser executado em
  qualquer plataforma que suporte um interpretador Java.
• O Java requer somente uma fonte e um binário e, mesmo
  assim, é capaz de funcionar em diversas plataformas, o
  que faz dele um sonho de todos que realizam
  manutenção em programas.
Evolução da OO

• Não se configura como mudança de paradigma abrupta.
  Evoluiu de ideias já manifestadas há algum tempo.
• Programação orientada a objetos é uma evolução da
  programação estruturada;
• Na programação estruturada temos funções(procedures
  ou rotinas) e dados (normalmente globais) que podem ser
  acessados por qualquer função.
Evolução da OO

• Na programação orientada a objetos, temos funções
  agregadas aos dados em uma unidade chamada
  objeto, ou seja, os dados não estão separados das
  funções, mas sim unidos as mesmas.
• A tendência para os próximos anos é que a maioria das
  linguagens de programação sejam baseadas em objetos.
CONCEITOS DE ORIENTAÇÃO A
OBJETOS
Bases da orientação a objetos

• Na compreensão do mundo, os seres humanos utilizam-
  se de três ,métodos de pensamento:
  • Diferenciação;
  • Distinção entre todo e parte;
  • Classificação;
  • Vê a orientação a objetos, como técnica para a
    modelagem de sistemas, utiliza esses métodos para
    diminuir a diferença semântica entre a realizade e o
    modelo.
Exemplo




      Computador             docente            aluno
                   Utiliza             Ensina
Conceitos

• Objetos e Instâncias;
• Classes;
• Atributos;
• Métodos;
• Visibilidade de atributos e operações;
• Mensagens;
Objetos

• Um objeto denota uma entidade, seja ela de natureza
  física, conceitual ou de software.
  • Entidades físicas: um carro, umas pessoa, uma casa;
  • Entidade conceitual: um organograma de uma
    empresa;
  • Entidade de software: um botão em uma GUI
Objetos

• É uma entidade capaz de reter um
  estado(informação/atributos/propriedades) e que oferece
  uma série de operações (comportamentos/métodos) ou
  para examinar ou para afetar o estado;
• Um objeto é um conceito, uma abstração, algo com
  limites e significados nítidos em relação ao domínio de
  uma aplicação;
• Objetos facilitam a compreensão do mundo real e
  oferecem uma base real para a implementação em
  computador.
Objeto

• Um objeto é algo que tem:
  • Estado;
  • Comportamento;
  • Identidade;
Estado de um objeto

• O estado de um objeto representa uma das possíveis
  condições em que um objeto pode existir;
• O estado é representado pelos valores das propriedades
  de um objeto em um determinado instante;
• O estado do objeto usualmente muda ao longo do tempo;
• Exemplo (Aluno):
  • Nome: Carlos;
  • Matrícula: 229844130;
  • Entrada: 2011.2.
Comportamento de um objeto

• O comportamento determina como um objeto pode
  responder a interações mediante a ativação de operações
  decorrentes de mensagens recebidas de outros objetos;
• O comportamento e determinado pelo conjunto de
  operações que o objeto pode realizar;
• Controle acadêmico;
   • Entrada: Carlos;
• Solicita entrada
   • Retorna:2011.2
Identidade de um objeto

• Cada objeto tem um único identificador, mesmo que seu
  estado seja idêntico ao de outro objeto;
  • Carlos (objeto);
  • Controle acadêmico(sistema que esta sendo
    construído);
  • Entrada(estado);
  • Matrícula 229844130 (propriedade do aluno)
  • Lista de semestres cursados(pode ser um objeto!!)
  • Semestre corrente(mesmo que semestre)
Objeto
• Um objeto de software mantém seu estado em uma ou
  mais de suas variáveis. Ele implementa seu
  comportamento através de seus métodos.
• Método é o mesmo que função ou procedimento.
• Por definição: Um objeto é um pedaço de software que
  possui variáveis (estado) e métodos (comportamento).
Objeto

• Um sistema pode conter um ou inúmeros objetos ativos.
  Cada objeto ativo no sistema em particular também é
  chamado de instância. As diferentes instâncias possuem
  seu próprio estado.
Objeto

• Cada instância de pessoa possui um estado diferente em
  particular.
• Porém, cada instância, além do estado, também possui
  seus métodos (comportamento) que operam sobre o
  próprio estado. Em outras palavras, para pular, cada
  pessoa vai fazer uma determinada força dependendo da
  sua idade, altura e peso, por exemplo.
• A ideia é que cada objeto seja responsável por seus
  dados (estado) e seja capaz de realizar as próprias
  operações que lhe foram atribuídas (comportamento).
Mensagem

• Um objeto por si só não significa muito em um sistema.
  Para ter algum sentido e valor esses objetos precisam
  interagir e comunicar-se entre si.
• Os objetos se comunicam por meio de mensagens.




   Quando um objeto A quer se comunicar com um objeto B é
   enviada uma mensagem de A para B.
Mensagem

• Enviar uma mensagem significa executar um método.
• Então, se A envia uma mensagem para B, podemos entender
  como o objeto A executando um método do objeto B.
As mensagens são compostas por três partes:
1. Objeto a quem a mensagem é endereçada
2. Nome do método a ser chamado
3. Parâmetros que o método recebe
Classe
• No mundo real freqüentemente percebemos vários objetos de um
  mesmo tipo. Por exemplo: seu carro é um dos muitos carros
  existentes no mundo.
• Usando a terminologia OO, dizemos que um carro em particular é
  uma instância da classe de objetos conhecida como carros.
• Os carros, em geral, possuem estado (cor, potência do
  motor, combustível) e comportamento (ligar, acelerar, brecar, mudar
  marcha) em comum.
• O estado de cada carro é independente e pode ser diferente do
  estado dos outros carros. Cada carro pode ter uma cor diferentes, por
  exemplo.
• A partir dessas semelhanças, os fabricantes de veículos tiram
  vantagem disso para padronizar a construção de carros de um
  mesmo tipo, definindo um modelo único com características iguais
  para todos os carros a serem produzidos.

Linguagem de programação introdução v1

  • 1.
    Linguagem de programação Introdução a OO Carlos Melo
  • 2.
    Sumário • Cenários dedesenvolvimento; • Histórico da OO; • Conceitos de OO; • Análise e Desenvolvimento; • Bancos de dados OO;
  • 3.
  • 4.
    Cenário Estrutural • Focoprincipal nas funções depois nos dados, informações desagrupadas; • As ideias e necessidades dos usuários normalmente não ficam claras: • Quais são suas necessidades para o sistema; • Preciso de um sistema que controle todas vendas dos produtos;
  • 5.
    Cenário Estrutural • Validaçãocom o usuário • É muito difícil para o usuário leigo entender um modelo ER; • Problemas se descobrem durante a implementação
  • 6.
    Cenário Estrutural • Excessode documentação ou nenhuma; • Cronograma apertado, prazos estourados, dificuldade de reaproveitamento de código; • Cliente insatisfeito; • Horas infindáveis de manutenção corretiva; • Custo elevado de projeto.
  • 7.
    Cenário OO • Focoprincipal nos objetos do mundo real, com suas funções e dados agrupados. • Deve-se fazer o levantamento de requisitos já pensando nos objetos do mundo real; • Facilita o entendimento por parte do programador das necessidades do usuário; • O que vamos controlar; • Nossos Carros.
  • 8.
    Cenário OO • Diminuiçãode tempo e custo de desenvolvimento; • Atendimento da demanda gerada pela evolução tecnológica; • Reutilização do código, facilidade de manutenção.
  • 9.
  • 10.
    Histórico • 1967: Simula– introduz os primeiros conceitos de OO; • 1972: SmallTalk; • 1980: C++ linguagem híbrida, derivada da linguagem C; • 1983: Ada criada para uso militar nos EUA; • 1984: Eiffel primeiras características formais de OO; • 1986: Object Pascal; • 1995: JAVA – Linguagem puramente orientada a objetos; • 1995: Várias linguagens agregando conceitos de OO
  • 11.
    Java • O Javaé ao mesmo tempo um ambiente e uma linguagem de programação desenvolvida pela Sun Microsystem, Inc; • Trata-se de mais um representante da nova geração de linguagens orientadas a objetos e foi projetado para resolver os problemas da área de programação cliente/servidor; • Os aplicativos em Java são compilados em um código de bytes independente de arquitetura.
  • 12.
    Java • Esse códigode bytes pode então ser executado em qualquer plataforma que suporte um interpretador Java. • O Java requer somente uma fonte e um binário e, mesmo assim, é capaz de funcionar em diversas plataformas, o que faz dele um sonho de todos que realizam manutenção em programas.
  • 13.
    Evolução da OO •Não se configura como mudança de paradigma abrupta. Evoluiu de ideias já manifestadas há algum tempo. • Programação orientada a objetos é uma evolução da programação estruturada; • Na programação estruturada temos funções(procedures ou rotinas) e dados (normalmente globais) que podem ser acessados por qualquer função.
  • 14.
    Evolução da OO •Na programação orientada a objetos, temos funções agregadas aos dados em uma unidade chamada objeto, ou seja, os dados não estão separados das funções, mas sim unidos as mesmas. • A tendência para os próximos anos é que a maioria das linguagens de programação sejam baseadas em objetos.
  • 15.
  • 16.
    Bases da orientaçãoa objetos • Na compreensão do mundo, os seres humanos utilizam- se de três ,métodos de pensamento: • Diferenciação; • Distinção entre todo e parte; • Classificação; • Vê a orientação a objetos, como técnica para a modelagem de sistemas, utiliza esses métodos para diminuir a diferença semântica entre a realizade e o modelo.
  • 17.
    Exemplo Computador docente aluno Utiliza Ensina
  • 18.
    Conceitos • Objetos eInstâncias; • Classes; • Atributos; • Métodos; • Visibilidade de atributos e operações; • Mensagens;
  • 19.
    Objetos • Um objetodenota uma entidade, seja ela de natureza física, conceitual ou de software. • Entidades físicas: um carro, umas pessoa, uma casa; • Entidade conceitual: um organograma de uma empresa; • Entidade de software: um botão em uma GUI
  • 20.
    Objetos • É umaentidade capaz de reter um estado(informação/atributos/propriedades) e que oferece uma série de operações (comportamentos/métodos) ou para examinar ou para afetar o estado; • Um objeto é um conceito, uma abstração, algo com limites e significados nítidos em relação ao domínio de uma aplicação; • Objetos facilitam a compreensão do mundo real e oferecem uma base real para a implementação em computador.
  • 21.
    Objeto • Um objetoé algo que tem: • Estado; • Comportamento; • Identidade;
  • 22.
    Estado de umobjeto • O estado de um objeto representa uma das possíveis condições em que um objeto pode existir; • O estado é representado pelos valores das propriedades de um objeto em um determinado instante; • O estado do objeto usualmente muda ao longo do tempo; • Exemplo (Aluno): • Nome: Carlos; • Matrícula: 229844130; • Entrada: 2011.2.
  • 23.
    Comportamento de umobjeto • O comportamento determina como um objeto pode responder a interações mediante a ativação de operações decorrentes de mensagens recebidas de outros objetos; • O comportamento e determinado pelo conjunto de operações que o objeto pode realizar; • Controle acadêmico; • Entrada: Carlos; • Solicita entrada • Retorna:2011.2
  • 24.
    Identidade de umobjeto • Cada objeto tem um único identificador, mesmo que seu estado seja idêntico ao de outro objeto; • Carlos (objeto); • Controle acadêmico(sistema que esta sendo construído); • Entrada(estado); • Matrícula 229844130 (propriedade do aluno) • Lista de semestres cursados(pode ser um objeto!!) • Semestre corrente(mesmo que semestre)
  • 25.
    Objeto • Um objetode software mantém seu estado em uma ou mais de suas variáveis. Ele implementa seu comportamento através de seus métodos. • Método é o mesmo que função ou procedimento. • Por definição: Um objeto é um pedaço de software que possui variáveis (estado) e métodos (comportamento).
  • 26.
    Objeto • Um sistemapode conter um ou inúmeros objetos ativos. Cada objeto ativo no sistema em particular também é chamado de instância. As diferentes instâncias possuem seu próprio estado.
  • 27.
    Objeto • Cada instânciade pessoa possui um estado diferente em particular. • Porém, cada instância, além do estado, também possui seus métodos (comportamento) que operam sobre o próprio estado. Em outras palavras, para pular, cada pessoa vai fazer uma determinada força dependendo da sua idade, altura e peso, por exemplo. • A ideia é que cada objeto seja responsável por seus dados (estado) e seja capaz de realizar as próprias operações que lhe foram atribuídas (comportamento).
  • 28.
    Mensagem • Um objetopor si só não significa muito em um sistema. Para ter algum sentido e valor esses objetos precisam interagir e comunicar-se entre si. • Os objetos se comunicam por meio de mensagens. Quando um objeto A quer se comunicar com um objeto B é enviada uma mensagem de A para B.
  • 29.
    Mensagem • Enviar umamensagem significa executar um método. • Então, se A envia uma mensagem para B, podemos entender como o objeto A executando um método do objeto B. As mensagens são compostas por três partes: 1. Objeto a quem a mensagem é endereçada 2. Nome do método a ser chamado 3. Parâmetros que o método recebe
  • 30.
    Classe • No mundoreal freqüentemente percebemos vários objetos de um mesmo tipo. Por exemplo: seu carro é um dos muitos carros existentes no mundo. • Usando a terminologia OO, dizemos que um carro em particular é uma instância da classe de objetos conhecida como carros. • Os carros, em geral, possuem estado (cor, potência do motor, combustível) e comportamento (ligar, acelerar, brecar, mudar marcha) em comum. • O estado de cada carro é independente e pode ser diferente do estado dos outros carros. Cada carro pode ter uma cor diferentes, por exemplo. • A partir dessas semelhanças, os fabricantes de veículos tiram vantagem disso para padronizar a construção de carros de um mesmo tipo, definindo um modelo único com características iguais para todos os carros a serem produzidos.