Orientação para Objetos Projeto de Sistemas Aplicativos para a Internet - PowerPoint PPT Presentation

orienta o para objetos projeto de sistemas aplicativos para a internet l.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Orientação para Objetos Projeto de Sistemas Aplicativos para a Internet PowerPoint Presentation
Download Presentation
Orientação para Objetos Projeto de Sistemas Aplicativos para a Internet

play fullscreen
1 / 129
Orientação para Objetos Projeto de Sistemas Aplicativos para a Internet
206 Views
Download Presentation
alicia
Download Presentation

Orientação para Objetos Projeto de Sistemas Aplicativos para a Internet

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Orientação para ObjetosProjeto de Sistemas Aplicativospara a Internet FEA/USPEAD-5881 – Tecnologia de Informática Prof. Antonio Geraldo da Rocha Vidal vidal@usp.br

  2. Conteúdo • Conceitos de Orientação a Objetos • Classes • Objetos • Programação • Introdução à Linguagem Java • Conceitos e recursos básicos • Projeto de Sistemas Orientados a Objetos • UML - Unified Modeling Language

  3. Paradigma • “Paradigma é um conjunto de regras que estabelece fronteiras e descreve como resolver problemas dentro destas fronteiras. Os paradigmas influenciam nossa percepção: ajudam-nos a organizar e a coordenar a maneira como olhamos para o mundo...” Daniel Morris e Joel Brandon

  4. Paradigmas • Tradicional: baseia-se na compreensão de um sistema de informação como um conjunto de programas que executam processos sobre dados. • Objetos: vê um sistema de informação como uma coletânea de objetos que interagem entre si, apresentam características próprias, que são representadas pelas suas propriedades (dados) e métodos (processos).

  5. Paradigmas Programa Classe Processos Propriedades Dados Métodos Tradicional Objetos

  6. Orientação a Objetos - OO • Análise, projeto e programação orientados a objetos representam uma mudança de paradigma em relação às técnicas clássicas. • Objetos são os componentes de um sistema que pertencem a uma classe e possuem: • Encapsulamento • Herança • Polimorfismo • Propriedades • Métodos • Eventos • Mensagens Reutilização Flexibilidade Interoperabilidade

  7. Bases das Metodologias OO • Diretamente derivada dos conceitos da programação orientada a objetos, a análise e o projeto orientados a objeto definem uma nova maneira de pensar nos problemas utilizando modelos organizados a partir de conceitos do mundo real. • O componente fundamental é a classe de objetos, algo que combina estrutura e comportamento em uma única entidade que pode derivar várias ocorrências ou instâncias de objetos semelhantes.

  8. Origens da OO • Linguagens de Programação: Simula, Smaltalk, Flavours, Objective C, C++, Java, C#, Object Pascal e outras. • Inteligência Artificial: frames. • Banco de Dados: modelos semânticos de dados.

  9. Expectativas da OO • A tecnologia de objetos oferece a modularidade de seus elementos podendo-se tomar um subconjunto existente e integrá-lo de uma maneira diferente em outra parte do software (sistema aplicativo). • Uma aplicação no universo de objetos consiste de um conjunto de blocos de construção auto-contidos e predefinidos que podem ser localizados, reparados ou substituídos. • A construção de código auto-contido propicia o teste completo antes de ser utilizado dentro da lógica de um sistema de informação.

  10. Expectativas da OO • Possibilita incrementos graduais de componentes aos já instalados, ampliando a abrangência do sistema. • A combinação de módulos provê inicialmente um nível básico de funcionalidade que é estendido sucessivamente para atender novas situações, em um progresso contínuo da aplicação perante os usuários. • Forte direcionamento à reutilização de artefatos de software já existentes, que são criados uma única vez e disseminados.

  11. Objetos Concretos

  12. Objetos de Software • Objetos são pacotes de software compostos por dados e procedimentos, que atuam sobre estes dados. • Os procedimentos são também conhecidos como métodos e determinam o comportamento do objeto. • Os dados são também conhecidos como propriedades e determinam o estado do objeto. • Objeto = dado + procedimentoObjeto = estado + comportamento

  13. Objetos de Software Comportamentos Variáveis Dados Procedimentos Propriedades Métodos

  14. Objeto Automóvel Mover Preço Dimensões Cor Potência Buzinar Parar

  15. Objetos de Software Todo acesso aos dados ou propriedades de um objeto é feito através da sua interface, que expõe métodos e propriedades a outros objetos.

  16. Encapsulamento • É definido como uma técnica para minimizar interdependências entre “módulos” através da definição de interfaces externas. Interface Mudanças na implementação de uma classe que preservea interface externa não afetam outras definições de classes.

  17. Interfaces de Classes • Uma Interface descreve um grupo de classes com as mesmas: • Propriedades constantes; • Métodos abstratos; • Uma Interface define a estrutura ou “esqueleto” padrão de uma classe. • Não implementa nenhum comportamento real, mas apenas os declara. • Implementa propriedades constantes e métodos abstratos.

  18. Mensagens • Objetos interagem e comunicam-se através de mensagens... Andar(...) Emissor Receptor As mensagens identificam os métodos a serem executados no objeto receptor e passam-lhes alguma informação.

  19. Métodos • Um determinado método define um comportamento do objeto. • Tipos básicos de métodos: • Construtor (constrói estados) • Destruidor (destrói estados) • Transformador (transforma estados) • Acesso (fornece estados)

  20. Abstração • Focalizar o essencial, ignorar propriedades acidentais ou específicas. Classe Automóvel Classe Mamífero A abstração deve sempre ter algum objetivo, pois é o objetivoele que determina o que é e o que não é essencial

  21. Classes de Objetos • Uma classe de objetos descreve um grupo de objetos com: • Propriedades semelhantes; • Comportamentos semelhantes; • Relacionamentos comuns com outros objetos.

  22. Classes Classificação Classe Automóvel Atributos Potência Velocidade Cor... Métodos Acelerar Frear Buzinar... Instanciação ObjetosInstâncias

  23. Classes Classe PaiSuper Classe Atributos e métodos da classe. Instanciação de classe Subclasse Subclasse Atributos e métodos específicos.

  24. Classes vs. Subclasses • Classes: • Contém informações sobre como uma subclasse ou um objeto deve ser e como deve se comportar. • Definem a forma e o comportamento padrão de subclasses e objetos nela baseados. • Subclasses: • São instâncias ou ocorrências de uma classe. • Herdam todas as suas características padrão de uma classe. • Além disso, podem possuir características específicas. • Podem derivar outras subclasses ou objetos nelas baseados.

  25. Classes vs. Objetos • Classes: • Contém informações sobre como um objeto deve ser e como deve se comportar. • Definem a forma e o comportamento padrão de objetos nela baseados. • Objetos: • São instâncias ou ocorrências de uma classe. • Herdam todas as suas características padrão de uma classe ou subclasse. • Além disso, podem possuir características específicas. • Não podem derivar outros objetos neles baseados.

  26. Relacionamentos entre Classes • Generalização • Herança • Agregação • Polimorfismo

  27. Generalização / Especialização • Generalização é o relacionamento entre uma classe e uma ou mais versões refinadas dessa classe. Generalização Generalização é a abstração que permite compartilharsemelhanças entre classes, preservando suas diferenças. Especialização

  28. Hierarquia de Classes

  29. Herança • Uma classe derivada ou subclasse herda as propriedades e métodos da classe mãe ou superclasse, mas pode: • Adicionar novos métodos próprios; • Estender suas propriedades/atributos; • Redefinir a implementação de métodos existentes.

  30. Herança Localização de Métodos e Propriedades na Hierarquia Calcular() Instância

  31. Herança Generalização Automóvel Propriedades e métodos comunscompartilhados por classes. AutomóvelEsportivo Propriedades e métodos diferentes de uma subclasse, acrescentando ou alterando características herdadas. Ferrari Especialização

  32. Agregação Um objeto agregado é “construído” por vários componentes Agregação Fixa

  33. Agregação Um objeto agregado é “feito” de componentes Empresa Departamento Setor Agregação Variável Pessoa

  34. Polimorfismo • Refere-se a: • Vários comportamentos que um mesmo método ou operação pode assumir; • Capacidade de um nome referir-se a objetos diferentes que executam certas responsabilidades dependendo da mensagem que lhes é passada. • Um nome pode denotar objetos de muitas subclasses diferentes que estão relacionadas por alguma superclasse comum. Assim, um objeto identificado por esse nome tem a capacidade de responder a algum conjunto comum de operações de modos diferentes.

  35. Evento vs. Estado • Evento: • Uma ocorrência significativa no mundo real que deve ser tratada pelos objetos de software. • São atividades específicas e predeterminadas, provocada pelo usuário ou pelo sistema. • Possuem métodos de objetos associados a eles. • Estado: • Situação de um objeto em um dado instante do tempo.

  36. Objetos: propriedades • Características ou atributos dos objetos que são próprias da classe ou subclasse à qual pertencem. • Exemplo: objeto JOSÉ, pertencente à subclasse CLIENTE, da subclasse PESSOA FÍSICA, da classe PESSOA. • Número: 000001 • CPF: 999.888.777-66 • Nome: José da Silva • Endereço: Rua da Independência, 709 • Telefone: 3089-9090 • Etc.

  37. Objetos: métodos & eventos • Cada objeto reconhece e pode responder a ações denominadas eventos próprios da sua classe/subclasse. • Eventos: • São atividades específicas e predeterminadas provocada pelo usuário ou pelo sistema. • Possuem métodos associados a eles. • Métodos: • São comportamentos ou procedimentos associados ao objeto. • Métodos podem existir independentemente de eventos.

  38. Objetos: mensagens • Objetos recebem mensagens de outros objetos com os quais se relacionam. • Mensagens: • Transferem informações de um objeto para outro. • São enviadas e recebidas através de eventos. • São caracterizadas pelos métodos ou comportamentos dos objetos; tanto do que envia como do que recebe.

  39. Objetos: polimorfismo • Usando a mesma mensagem, objetos podem assumir características e comportamentos diferentes: • De acordo com contextos específicos; • De acordo com eventos específicos; • De acordo com eventos e contextos específicos. • Um objeto pode assumir várias formas: • Propriedades/atributos diferentes; • Métodos/comportamentos diferentes.

  40. Linguagens Orientadas a Objetos

  41. Introdução às Linguagens Orientadas a Objetos Conceitos Básicos (Válidos para C++, C#, Java, J++ e J#)

  42. Java It’s a jungle out there So drink your Java Propaganda do Printer’s Caféem Palo Alto CA/USA

  43. Por que surgiu o Java? • Software para eletro-domésticos (1992) • Mínimo uso de memória • Mínimo preço • C++ simplificado • Desenvolvida pela Sun Microsystems Inc. (1994) • Distribuição de software através da Internet (1996) • Novo paradigma de programação: • Orientada a objeto • Totalmente aberta • Independente de plataforma e sistema operacional

  44. Características do Java da Sun • Linguagem orientada a objetos • Estrutura semelhante ao C++ • Gera Bytecodes • Interpretada • Alta Performance (JIT) • Segurança • Endereçamento restrito • Objetos assinados • Aplicação Carregada Localmente

  45. Características do Java da Sun • Aplicações Personalizadas • Independência de Arquitetura • Neutra • Distribuída • Não há herança múltipla • Não há aritmética de ponteiros • Inclui tratamento de exceções • Implementa “Coletor de Lixo”

  46. Arquitetura de Programas Java

  47. Java Script • Primeira Versão do Java • Aplicação Interna ao HTML • Interpretada • Não havia o conceito de ByteCodes <script language=“Java Script” Function -------- { ....... } </script>

  48. Applet Java • Aplicação executada quando se chama uma página WWW • É carregada na Máquina Cliente • Restringe-se a uma determinada área (janela) <applet code=“apl.class” codebase=“http://www.fia.fea.usp.br/vidal align=left width=300 height=100 <param name=tamanho value=30> <param name=fonte value “Arial”> </applet:

  49. Aplicação Java • Aplicação executada “stand-alone” • Exige somente a presença do interpretador Java (Java Virtual Machine) public class HelloWorldApp { // Definição do Método MAIN public static void main (String args[]) { String text = "Hello World!"; System.out.println(text); } }

  50. Java e Orientação a Objetos • Java suporta as principais características da programação orientada a objeto através de seus construtores de classes e de interfaces. • Uma classe é um modelo que descreve um conjunto inteiro de objetos. Em geral, uma classe tem os mesmos membros, isto é, propriedades (dados) e métodos (procedimentos), que os objetos criados a partir dela. • Uma interface representa uma coleção de comportamentos relacionados. Contém somente declarações de métodos e propriedades constantes.