Top Banner
Classification in Object-Oriented Systems Peter Wegner Carlos Eduardo da Silva César Frederico dos Santos
22

Classification in Object-Oriented Systems Peter Wegner Carlos Eduardo da Silva César Frederico dos Santos.

Apr 21, 2015

Download

Documents

Internet User
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Classification in Object-Oriented Systems Peter Wegner Carlos Eduardo da Silva César Frederico dos Santos.

Classification in Object-Oriented Systems

Peter Wegner

Carlos Eduardo da SilvaCésar Frederico dos Santos

Page 2: Classification in Object-Oriented Systems Peter Wegner Carlos Eduardo da Silva César Frederico dos Santos.

Objetivo do artigo Fundamentar os mecanismos da

Orientação a objetos, com base na biologia, matemática e filosofia

Caracterizar o paradigma, delimitando o que é e o que não é OO

Page 3: Classification in Object-Oriented Systems Peter Wegner Carlos Eduardo da Silva César Frederico dos Santos.

Por que usamos classes? Idéia universal

Atividade natural de crianças, cientistas e programadores

As classes surgiram na biologia, com Aristóteles Dicotomias (top-down) Distinção de espécies (botton-up)

Page 4: Classification in Object-Oriented Systems Peter Wegner Carlos Eduardo da Silva César Frederico dos Santos.

Por que usamos classes? Linnaeus refinou a idéia de classes

na biologia Classe, ordem, gênero e espécie

Classes => visão botton-up Diferenças => top-down

Page 5: Classification in Object-Oriented Systems Peter Wegner Carlos Eduardo da Silva César Frederico dos Santos.

Classes X diferenças

Seres vivos

Animais Vegetais

Vertebrados Invertebrados

homeotérmicos pecilotérmicos

Top-down

Botton-up

Page 6: Classification in Object-Oriented Systems Peter Wegner Carlos Eduardo da Silva César Frederico dos Santos.

Por que usamos classes? A adoção dos mecanismos de

classes na Computação advém, em parte, dos mecanismos biológicos de classificação. Quando estudamos um domínio de aplicação identificando classes, fazemos o mesmo que Aristóteles e Linnaeus fizeram ao classificar os seres vivos

Page 7: Classification in Object-Oriented Systems Peter Wegner Carlos Eduardo da Silva César Frederico dos Santos.

Darwin e a herança O sistema de classificação de Darwin é

baseado na evolução das espécies Darwin introduziu a herança na biologia A adoção da metáfora de evolução

(herança entre classes) em orientação a objetos é motivada em parte pela Teoria da Evolução, em parte pelo seu poder de organização

Page 8: Classification in Object-Oriented Systems Peter Wegner Carlos Eduardo da Silva César Frederico dos Santos.

Darwin e a herança Desenvolvimento é evolucionário Descrição de alto-nível,

incrementada e modificada através da definição de subclasses

Poder da herança = simultaneamente administra mudanças evolucionárias e organiza semelhanças

Page 9: Classification in Object-Oriented Systems Peter Wegner Carlos Eduardo da Silva César Frederico dos Santos.

Biologia e o poder da OO A combinação dos mecanismos de

classe (Aristóteles e Linnaeus) para organizar o conhecimento, com o mecanismo de herança (Darwin) para tratar a mudança, é onde reside o grande poder da metodologia orientada a objetos

Page 10: Classification in Object-Oriented Systems Peter Wegner Carlos Eduardo da Silva César Frederico dos Santos.

Matemática e OO Teoria dos Conjuntos

predicados necessários para que um membro faça parte da classe (atributos e comportamentos)

tipos polimórficos, ou seja, classes que classificam classes (conjuntos e subconjuntos)

Page 11: Classification in Object-Oriented Systems Peter Wegner Carlos Eduardo da Silva César Frederico dos Santos.

Características de OO Três pontos fundamentais para

uma LP OO abstração de dados (encapsulamento) tipo abstrato de dados (dados +

comportamento) herança

Page 12: Classification in Object-Oriented Systems Peter Wegner Carlos Eduardo da Silva César Frederico dos Santos.

Características de OO O paradigma OO combina três

paradigmas Transição de estados Comunicação Classes

Page 13: Classification in Object-Oriented Systems Peter Wegner Carlos Eduardo da Silva César Frederico dos Santos.

Três paradigmas

Classe1atributoAatributoB

métodoA{ msg classe2 comandos}

métodoB

Classe2atributoAatributoB

métodoAmétodoBmétodoC

Transição de estados

comunicação

Page 14: Classification in Object-Oriented Systems Peter Wegner Carlos Eduardo da Silva César Frederico dos Santos.

Tipos e OO O que é tipo?

conceito primitivo não definível em termos de outros conceitos primitivos

como a noção de “mesa” de Platão, na sua Teoria das Idéias

Filósofos chamam de “coisas naturais”

Page 15: Classification in Object-Oriented Systems Peter Wegner Carlos Eduardo da Silva César Frederico dos Santos.

Tipos e OO OO estende a idéia de tipos

uma classe de coisas que pode ser tipada é estendida para abstração de dados, isto é, coleções de operadores que se relacionam uns com os outros pelo compartilhamento de uma estrutura de dados comum que persiste entre a evocação dos operadores (tipo abstrato de dados)

relações interessantes entre tipos, em particular a herança, podem ser expressadas na linguagem

Page 16: Classification in Object-Oriented Systems Peter Wegner Carlos Eduardo da Silva César Frederico dos Santos.

Tipos e OO A OO estende a estrutura “plana”

de tipos para uma árvore hierárquica

A herança determina relações de paternidade entre tipos e subtipos, fortalecendo a semântica da relação de tipos

Page 17: Classification in Object-Oriented Systems Peter Wegner Carlos Eduardo da Silva César Frederico dos Santos.

Modularização e herança Herança trata a mudança

Complexidade no tempo Modularização trata o tamanho

Complexidade no espaço OO é capaz de administrar a

complexidade em relação ao tempo e ao espaço

Page 18: Classification in Object-Oriented Systems Peter Wegner Carlos Eduardo da Silva César Frederico dos Santos.

Troca de mensagens é OO? Sistemas OO dão ênfase à

comunicação entre classes A comunicação está presente da

em outros paradigmas de forma semelhante

A comunicação não é prerrogativa de OO

Page 19: Classification in Object-Oriented Systems Peter Wegner Carlos Eduardo da Silva César Frederico dos Santos.

Viajando filosoficamente A Alegoria da Caverna

Livro VII de “A República”, Platão Deus O que isso tem com OO?

Page 20: Classification in Object-Oriented Systems Peter Wegner Carlos Eduardo da Silva César Frederico dos Santos.

Deus e Platão Deus, criador do universo, tem a

visão global onisciente O habitante da caverna tem visão

limitada Deus = projetista do sistema Habitante da caverna = operador

Page 21: Classification in Object-Oriented Systems Peter Wegner Carlos Eduardo da Silva César Frederico dos Santos.

Deus e Platão Em alguns contextos, Deus pode

ser o habitante da caverna (?!) Deus e o habitante da caverna

precisam se entender Integração da linguagem de

definição com a de implementação Mapeamento direto

Page 22: Classification in Object-Oriented Systems Peter Wegner Carlos Eduardo da Silva César Frederico dos Santos.

Viajando mais um pouco... Ambos os pontos de vista (de Deus

e do habitante da caverna) são legítimos ou apenas o ponto de vista do criador é legítimo?

Só vemos as coisas que existem ou só existem as coisas que vemos?