1 / 35

Introdu ção ao Paradigma de Orientação a Objetos

Introdu ção ao Paradigma de Orientação a Objetos. Prof. Leandro Buss Becker mailto:lbecker@inf.pucrs.br. 'Crise do Software'. prazos ultrapassados custos acima dos previstos não atendimento dos requisitos dos clientes elevado custo de manutenção . Complexidade. complexidade.

Télécharger la présentation

Introdu ção ao Paradigma de Orientação a Objetos

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introdução ao Paradigma de Orientação a Objetos Prof. Leandro Buss Becker mailto:lbecker@inf.pucrs.br

  2. 'Crise do Software' • prazos ultrapassados • custos acima dos previstos • não atendimento dos requisitos dos clientes • elevado custo de manutenção

  3. Complexidade complexidade racionalização (metodologias) engineering fonte: AEG-Alemanha (1993) hardware 1993 1982

  4. Dados Interessantes: • custos hardware vs. software (fonte: SEL-ALCATEL) • 1970 = 8:2 • 1991 = 2:8 • hoje = 1:9 • custos com manutenção de software • HP-Alemanha (50% engenheiros envolvidos em manutenção) • VW (80%)

  5. "Metodologia de Projeto" • Codificação

  6. "Metodologia de Projeto" • Codificação • Oração

  7. Como domar esta complexidade ? • encapsular informação('information hiding') • decomposição • hierarquia (níveis de abstração) • múltiplas visões

  8. Modularidade • Propriedade de construção de sistemas através de módulos • A coesão de um módulo denota a média da inter-relação entre os seus componentes • O acoplamento entre os módulos é o grau de interdependência entre eles • Ideal: Alta coesão e Baixo acoplamento

  9. Modularidade

  10. Modularidade Arquitetura de um sistema de controle fabril Controle Interface Gráfica Sensores Máquinas Classe Máquina ... Classe Cortadora ... Classe Perfuratriz ... Classe Prensa ...

  11. Encapsulamento • Técnica que consiste em separar aspectos de uso dos aspectos de implementação • É igualmente chamado de Ocultamento de Informação ("Information Hide") • Um componente de software ("objeto") possui uma interface visível e uma parte interna invisível. • O compilador se encarrega de verificar a validade de uso dos componentes de um objeto (através de regras de escopo)

  12. Encapsulamento

  13. FILA insere remove Encapsulamento Implementação de uma fila • Visão do cliente • Estado Interno • Vetor de tamanho Fixo Estático ou • Vetor de tamanho Fixo Alocado dinâmicamente ou • Lista de Elementos ou • Abordagens Mista

  14. Hierarquia • Mecanismo utilizado para manipular sistemas complexos • As tres formas mais importantes de Hierarquia são: • Classificação e Instanciação • Generalização e Especialização • Agregação e Decomposição

  15. Hierarquia: Classificação e Instanciação • Classificar significa agrupar objetos com base em estruturas e comportamentos semelhantes. • Instanciar objetos significa gerar novos exemplares a partir de uma descrição abstrata de um objeto genérico Os alunos são exemplares da classe Aluno, que por sua vez é utilizada para gerar novos alunos. Aluno Classificação Instanciação Alunos Alunos Alunos Alunos Alunos Alunos

  16. Classificação

  17. Hierarquia: Generalização e Especialização • Generalizar significa remover restrições para obter abstrações mais genéricas • Especializar significa buscar características que diferenciem abstrações afins Estrutura de dados Generalização Especialização Fila Matriz

  18. Hierarquia: Agregação e Decomposição • Agregar significa combinar abstrações para obter estruturas e comportamentos mais complexos • Decompor significa detalhar uma abstração dividindo-a nos seus elementos constituintes Linha de Montagem Agregação Decomposição Esteira Cortadora Perfuratriz

  19. Abstração • Abstrair é concentrar-se no que é realmente relevante e ignorar detalhes • Observar as coisas por suas características mais gerais e deixar de lado particularidades

  20. Abstração

  21. Conceitos Básicos: Objeto • encapsula dados (atributos) e funções (membros) => um objeto é uma abstração de dados e uma abstração de operações em uma mesma estrutura • possui uma interface de acesso bem definida (atributos e métodos internos são invisíveis ao meio externo “information hidding principle”) • um objeto possui estado, comportamento e identidade

  22. Objetos

  23. Objeto • Estado de um objeto: conjunto de valores associados às propriedades do objeto. Tais propriedades representam características, atributos ou qualidades associadas à entidade representada pelo objeto • O Comportamento de um Objeto descreve como se processam as mudanças de seu estado em função de sua interação com o mundo externo. Tais mudanças são efetuadas através de operações realizadas pelo objeto

  24. Exemplo de Objeto: Empregado • Um empregado de uma firma pode ser representado por um objeto. Todo empregado tem um nome, carteira de identidade, CIC, endereco, seção na qual trabalha, salário, etc. Pode-se alterar o salário de um empregado, imprimir seu endereço, etc.

  25. Objetos Abstratos: Lista • Dentro de um programa, uma lista pode ser representada como um objeto. O número de elementos é uma informação sobre o estado atual da lista. Elementos podem ser inseridos e removidos.

  26. Objetos 'Industriais' • em especial, componentes de sistemas de automação podem ser facilmente modelados com objetos: sensores, tanques, máquinas, etc. ex: uma fresa em uma linha de produção pode ser modelada como um objeto. Cada fresa tem sua especificação, rotação nominal, tensão, etc. Controla-se a fresa através de comandos para mudar a posição, ligar/desligar, abaixar/levantar, etc..

  27. Conceitos Básicos: Classes • Classe: objeto visto como um tipo abstrato, do qual pode-se gerar diversas cópias. Uma classe define, em um único local, propriedades comuns a todos as instâncias desta classe. • Instância: a partir de uma classe pode-se gerar diversas instâncias (objetos)

  28. Classes

  29. Classes e Objetos Mundo Real Ferrari IDN8810 veículo Marca Placa classe instâncias ler_placa Fiat Uno IAS3333

  30. Objetos e Classes • O estado de um objeto é representado pelo conjunto de valores associados às suas características • esses valores são armazenados nas variáveis de instância do objeto. Tais variáveis são definidas na classe que gera o objeto

  31. Objetos e Classes • Uma classe define o comportamento de suas instâncias • Este comportamento é o conjunto de operações que podem ser realizadas pelos objetos

  32. Classes X Instâncias X Objetos • Objetos são gerados a partir de classes • Uma classe define as propriedades e o comportamento dos objetos gerados por ela • Todo objeto é uma instância de uma classe

  33. Exemplo • Objetos • Funcionário Pedro Silva, CI 2819283399, Rua Silva Só, 88 - Porto Alegresalário R$ 1000,00 • Funcionária Marta Andrade, CI 1234567891, Rua Siqueira Campos, 29 - Carazinhosalário R$ 600,00 • Classe Funcionário • Nome, CI, Endereco, Salário

  34. Leitura Recomendada • BECKER, L.B.; PEREIRA, C.E. SIMOO-RT - An Object-oriented Framework for the development of real-time industrial automation systems. Ieee Transactions On Robots Automation, v. 18, n. 4, p. 421-430, 2002. • KIM, Kane. APIs for real-time distributed object programming. IEEE Computer (special issue on OO RT Distributed Computing), p. 72-80, June 2000.

  35. Referências Bibliográficas • Rumbaugh, J. et al. “Modelagem e Projetos Baseados em Objetos“. Ed. Campus, 1994.

More Related