2 O universo é orientado a objetos.
Cada objeto possui seu próprio estado Custo  R$70,00! E quanto custo, será que ele se interessa por isso?
Noções de classe e objeto
Objetos compartilham comportamento
Métodos (descrevem o comportamento) Classe  Impressora Métodos Ligar/desligar Testar ImprimirArquivo AvancarPagina RecuparPagina FlushBuffer ...
Mensagem
Visão Orientada a Objetos Objetos (instâncias de classes) Métodos (serviços oferecidos) Mensagens (requisição de serviços) Conceitos básicos
Aplicação orientada a objetos Aplicação OO é uma coleção de objetos que trocam mensagens entre eles Cenário de troca de mensagens entre vários objetos Classe do objeto  objN
Desenvolvimento Orientado a Objetos Como registrar?
Modelos precisam ser registrados Qual o material usado para imprimir fotografias do mundo OO? UML Há outras propostas:
Modelagem OO usando a UML Diagrama de classes Classes Relacionamento entre as classes Diagrama de seqüência Objetos Troca de mensagens entre objetos
Interpretação de uma classe Pode se referir a um Conceito  do mundo real Entidade abstrata (software) Especificação Implementação  (representa uma  classe em uma linguagem de programação)
Exemplo (oficina mecânica) Uma ordem de serviço é uma composição de serviços.  Um serviço pode ser de Mecânica, Elétrica e Lanternagem. Um pedaço do mundo ... Modelado na UML
Exemplo (classes conceituais) SeuAmigo  e  Você  são instâncias de  Pessoa Seu Seiko : instância de  Relógio Que horas são? : mensagem de  SeuAmigo  para  Você horaCorrente : mensagem de  Você  para  Seu Seiko
Exemplo (classes de especificação)
Exemplo (classes de implementação)
Tecnologia de Objetos Solução dos problemas?
Problemas de desenvolvimento
Vantagens e desvantagens (OO) Vantagens Melhor modularidade, manutenção e qualidade Modelos mais compreensíveis Maior estabilidade e flexibilidade Transição mais suave da análise para o projeto Reutilização de código mais efetiva Melhor comunicação Desvantagens Desempenho inferior Não disponibilidade de SGDBs OO Maior tempo inicial de desenvolvimento Dificuldade em exibir benefícios e de aprender OO Bibliografia –  The Ups and Downs of Object-Oriented Systems Development,  CACM, october 2000, vol. 43 (10), 69-73 Crenças
Principal argumento favorável Forma “mais natural e intuitiva” Modela tanto o problema quanto a solução como um coleção de objetos Análise & Projeto são atividades típicas do desenvolvimento de software. Problema Solução Objetos
Representação mais conveniente
Para pensar ... Sucesso
Neste ponto... Talvez você não saiba muito sobre... desenvolvimento de software outras abordagens (p. ex.: estruturada) Talvez você esteja confuso sobre... os conceitos apresentados sobre as afirmações do professor há o que ler, praticar! então
Resumo Revisão da orientação a objetos “ Principais recursos” da UML Diagrama de classe e diagrama de seqüência Vantagens e dificuldades da OO Não perca... O que é código orientado a objetos? Como criar modelos orientados a objetos? Como desenvolver software orientado a objetos? Quais os relacionamentos entre classes?

Orientação a Objetos (2)

  • 1.
    2 O universoé orientado a objetos.
  • 2.
    Cada objeto possuiseu próprio estado Custo R$70,00! E quanto custo, será que ele se interessa por isso?
  • 3.
  • 4.
  • 5.
    Métodos (descrevem ocomportamento) Classe Impressora Métodos Ligar/desligar Testar ImprimirArquivo AvancarPagina RecuparPagina FlushBuffer ...
  • 6.
  • 7.
    Visão Orientada aObjetos Objetos (instâncias de classes) Métodos (serviços oferecidos) Mensagens (requisição de serviços) Conceitos básicos
  • 8.
    Aplicação orientada aobjetos Aplicação OO é uma coleção de objetos que trocam mensagens entre eles Cenário de troca de mensagens entre vários objetos Classe do objeto objN
  • 9.
    Desenvolvimento Orientado aObjetos Como registrar?
  • 10.
    Modelos precisam serregistrados Qual o material usado para imprimir fotografias do mundo OO? UML Há outras propostas:
  • 11.
    Modelagem OO usandoa UML Diagrama de classes Classes Relacionamento entre as classes Diagrama de seqüência Objetos Troca de mensagens entre objetos
  • 12.
    Interpretação de umaclasse Pode se referir a um Conceito do mundo real Entidade abstrata (software) Especificação Implementação (representa uma classe em uma linguagem de programação)
  • 13.
    Exemplo (oficina mecânica)Uma ordem de serviço é uma composição de serviços. Um serviço pode ser de Mecânica, Elétrica e Lanternagem. Um pedaço do mundo ... Modelado na UML
  • 14.
    Exemplo (classes conceituais)SeuAmigo e Você são instâncias de Pessoa Seu Seiko : instância de Relógio Que horas são? : mensagem de SeuAmigo para Você horaCorrente : mensagem de Você para Seu Seiko
  • 15.
    Exemplo (classes deespecificação)
  • 16.
    Exemplo (classes deimplementação)
  • 17.
    Tecnologia de ObjetosSolução dos problemas?
  • 18.
  • 19.
    Vantagens e desvantagens(OO) Vantagens Melhor modularidade, manutenção e qualidade Modelos mais compreensíveis Maior estabilidade e flexibilidade Transição mais suave da análise para o projeto Reutilização de código mais efetiva Melhor comunicação Desvantagens Desempenho inferior Não disponibilidade de SGDBs OO Maior tempo inicial de desenvolvimento Dificuldade em exibir benefícios e de aprender OO Bibliografia – The Ups and Downs of Object-Oriented Systems Development, CACM, october 2000, vol. 43 (10), 69-73 Crenças
  • 20.
    Principal argumento favorávelForma “mais natural e intuitiva” Modela tanto o problema quanto a solução como um coleção de objetos Análise & Projeto são atividades típicas do desenvolvimento de software. Problema Solução Objetos
  • 21.
  • 22.
  • 23.
    Neste ponto... Talvezvocê não saiba muito sobre... desenvolvimento de software outras abordagens (p. ex.: estruturada) Talvez você esteja confuso sobre... os conceitos apresentados sobre as afirmações do professor há o que ler, praticar! então
  • 24.
    Resumo Revisão daorientação a objetos “ Principais recursos” da UML Diagrama de classe e diagrama de seqüência Vantagens e dificuldades da OO Não perca... O que é código orientado a objetos? Como criar modelos orientados a objetos? Como desenvolver software orientado a objetos? Quais os relacionamentos entre classes?