Você está na página 1de 7

FATEC - SP FACULDADE DE TECNOLOGIA DE SO PAULO

PROG. ORIENTADO A OBJETOS I Professor: Glauber da Rocha Balthazar E-mail: professorglauberbalthazar@yahoo.com.br

CAMPUS

Carapicuba
Aula 01

- Introduo a Programao Orientada a Objetos

1.1 Histrico da programao orientada a objetos


"O computador ideal deveria funcionar como um organismo vivo, isto , cada clula comportar-se-ia relacionando-se com outras clulas a fim de alcanar um objetivo, entretanto, funcionando de forma autnoma." - Alan Key

De acordo com Booch 2000 as linguagens orientadas a objetos surgiram entre a metade da dcada de 1960 e o final da dcada de 1980, medida que o pessoal envolvido com metodologia comeou a experimentar mtodos alternativos de anlise de projeto. Cobra (2009) complementa afirmando que a orientao a objetos tem sua origem nos anos 60 na Noruega, com Kristen Nygaard e Ole-Johan Dahl, no Centro Noruegus de Computao. Atravs da linguagem Simula 67, foram introduzidos os conceitos de classe e herana. Porm, antes disso, David (2007) diz que o termo Programao Orientada a Objetos foi criado por Alan Kay, autor da linguagem de programao Smalltalk. Mas mesmo antes da criao do Smalltalk, algumas das ideias da POO j eram aplicadas, sendo que a primeira linguagem a realmente utilizar estas idias foi a linguagem Simula 67, criada por Ole Johan Dahl e Kristen Nygaard em 1967. Cobra (2009) realizou um estudo sobre o trabalho de Alan Kay e produziu um artigo que faz uma caracterizao de todas as fases do seu trabalho. Este artigo transcrito na ntegra para esta apostila:
Alan Kay comeou a programar em Simula depois de conhecer um inovador programa chamado Sketchpad. Sketchpad foi um editor grfico desenvolvido por Ivan Sutherland, no MIT, em 1963. considerado um marco na informtica, sendo o primeiro editor grfico orientado a objetos. Era possvel colocar bits coloridos no canvas, mas tambm criar objetos que poderiam ser manipulados distintamente uns dos outros. O Sketchpad permitia que fosse definido um master drawing, a partir do qual seriam criadas instance drawing (herana). A partir dos conceitos desse sistema, como tambm dos seus conhecimentos em Biologia e Matemtica, Alan Kay formulou sua analogia algbrico-biolgica. Ele lanou o postulado de que o computador ideal deveria funcionar como um organismo vivo, isto , cada clula comportar-se-ia relacionando-se com outras clulas a fim de alcanar um objetivo, entretanto, funcionando de forma autnoma. As clulas poderiam tambm reagrupar-se para resolver outros problemas ou desempenhar outras funes, trocando mensagens qumicas entre elas. No outono de 1968, Kay teve o seu primeiro encontro com Seymour Papert, no Laboratrio de Inteligncia Artificial do MIT, e ficou interessado na linguagem Logo. Toda a concepo de Kay sobre o papel do computador na sociedade foi alterada quando ele viu Papert e seus colegas ensinando crianas a programar em Logo. Logo uma linguagem de programao interpretada, voltada principalmente para crianas e aprendizes em programao. O Logo implementa a filosofia construtivista.

Alan Kay tambm observou que o conceito de objetos tinha enorme potencial como uma ferramenta cognitiva: havia uma boa correspondncia com a maneira de pensar das pessoas sobre o mundo. Ele percebeu que um substantivo isolado faz aparecer uma imagem concreta na mente das pessoas e um verbo isolado no tem esse efeito. Verbos so propriedades dos substantivos: Garotos correm; cachorro corre; gua corre; trem corre. Na orientao a objetos chamamos isso de polimorfismo. Ento, Alan Kay pensou em como construir um sistema de software a partir de agentes autnomos que interagissem entre si, estabelecendo os seguintes princpios da orientao a objetos: Qualquer coisa um objeto. Objetos realizam tarefas atravs da requisio de servios. Cada objeto pertence a uma determinada classe. Uma classe agrupa objetos similares. Uma classe possui comportamentos associados ao objeto. Classes so organizadas em hierarquias.

Por fim, Cobra (2009) conclui dizendo que portando, depois de reunir conceitos de diversas reas do conhecimento e com base em sua experincia como pesquisador, Alan Kay criou o paradigma de anlise e programao mais eficiente da atualidade. Conhecer a origem da orientao a objetos ajuda a compreender como utiliz-la no desenvolvimento de projetos de software. 1.2 Vantagens da programao orientada a objetos De acordo com [FURLAN], o enfoque tradicional de modelagem para a construo de sistemas de informao baseia-se na compreenso desse sistema como um conjunto de programas que, por sua vez, executam processos sobre dados. O enfoque de modelagem por objetos, v o mundo como uma coletnea de objetos que interagem entre si, apresentam caractersticas prprias que so representadas pelos seus atributos (dados) e operaes (mtodos ou servios). A Figura 1 apresenta um enfoque de um sistema estruturado e outro baseado em objeto.

Figura 1 Enfoque baseado em sistema versus enfoque baseado em objeto

Resumidamente, a mudana de enfoque (entre estruturado e orientado a objetos) justificada pelo fato de que objetos existem na natureza muito antes de haver qualquer tipo de aplicao deles pelo negcio. Equipamento, pessoas, minerais, petrleo, etc., existem por si s e apresentam caractersticas peculiares representadas pelos seus atributos e, adiante, pelo seu comportamento no mundo real. Este tipo de abordagem, oferece os seguintes benefcios:

Manter a modelagem do sistema, e em decorrncia, sua automao o mais prximo possvel de uma viso conceitual do mundo real; Servir de base decomposio e modelagem do sistema nos dados, que o elemento mais estvel de todos aqueles que compem um sistema de informao e Oferecer maior transparncia na passagem da fase de modelagem para a de construo atravs da introduo de detalhes, no requerendo uma reorganizao do modelo. Um aspecto interessante da teoria de objetos a sua caracterstica intrseca de analisar o mundo como ele , permitindo organizar resultados de maneira mais fcil e natural. Procura representar o mundo real como o vemos, pessoas, lugares e coisas existentes que se comportam como objetos e que possuem caractersticas prprias de atributos e operaes. Por definio, a teoria de objetos espelha o mundo de forma mais simples do que modelos algortmicos ou estruturados. Ainda, [FURLAN] apresenta uma forma de transformar a interpretao do mundo real, em uma abstrao na perspectiva Orientada a Objetos. A Tabela 1 apresenta esta forma de interpretao.
Capacidade
Classificao

Perspectiva Humana

Perspectiva OO

Percepo de semelhanas entre coisas Generalizao e atribuindo-lhes uma designao genrica. especificao em um Exemplo: Jazz, Blues, Rock nRoll, Bossa relacionamento de Nova, etc., so estilos musicais. herana entre pai e filho. Composio Elemento cuja vida est intimamente Agregao relacionada a um outro elemento Exemplo: um brao no corpo humano. Comunicao Troca de mensagens entre objetos. Mensagem Exemplo: um indivduo pergunta o nome a outro indivduo. Conscincia A constatao da existncia de coisas Objetos, suas baseada na conscincia, induo propriedades (atributos) intelectual e nas caractersticas e comportamentos observveis pelos sentidos humanos de (mtodos) inerentes. elementos da natureza, suas propriedades e comportamento. Exemplo: uma rvore, um animal, um automvel, uma frmula matemtica, um rudo, um odor. Relacionamento Observao de correlaes entre coisas Associao e papel da fsicas e lgicas. Exemplo: um indivduo associao. tem vrios documentos. Tabela 1 Interpretao do mundo real, em uma abstrao na perspectiva Orientada a Objetos

Finalizando esta parte introdutria da Teoria da Orientao a Objetos, apresentado na Tabela 2, as principais palavras chaves encontradas neste paradigma.

Palavra-chave
Atributo Classe Encapsulamento

Breve definio
Caracterstica particular de uma ocorrncia da classe Agrupamento de objetos similares que apresentam os mesmos atributos e mtodos. Combinao de atributos e mtodos em uma classe.

Exemplo
Indivduo possui nome, sexo, data de nascimento. Indivduo, caracterizando as pessoas do mundo. Atributo: data do nascimento. Mtodo: clculo da idade a partir da data do nascimento. Subclasses [Organizao] e [indivduo] acrescentam atributos e mtodos distintos da superclasse. Emitindo nota fiscal.

Especificao

Atributos e mtodos diferentes de uma subclasse, acrescentando ou substituindo caractersticas herdadas da classe pai. Situao de um objeto em um dado instante de tempo. Uma ocorrncia significativa no mundo real que deve ser tratada.

Estado Evento

Pedido tomado, entrega efetuada, ponto de solicitao de material atingido. Generalizao Atributos e operaes comuns Superclasse [Parte] ou compartilhados por classes. [Pessoa] como generalizao das subclasses [Organizao] e Indivduo. Herana Compartilhamento pela subclasse dos Subclasse Eucalipto atributos e operaes da classe pai. compartilha atributos e operaes da classe rvore. Instncia de classe Uma ocorrncia especfica de uma classe. Uma pessoa, uma o mesmo que objeto. organizao, um equipamento, uma localizao geogrfica. Mensagem Uma solicitao entre objetos para invocar Informar a idade da certo mtodo. pessoa. Objeto Elemento do mundo real (natureza). Uma pessoa: Fulano de Sinnimo de instncia de classe. Tal. Mtodos (servios) Lgica contida em uma classe para Clculo da idade de uma designar-lhe um comportamento. pessoa em uma classe. Polimorfismo (sobrecarga) Habilidade para usar a mesma mensagem Chamada da operao: para invocar comportamentos diferentes do calcularSaldo de objeto. correntista. Invoca as derivaes correspondentes para clculo de saldo de poupana, renda fixa, fundo de aes, etc. SubClasse Caracterstica particular de uma classe. Classe rvore -> subclasses Ip, Jacarand, Eucalipto, etc. Tabela 2 Principais palavras chaves na Teoria da Orientao a Objetos.

1.3 Exerccios 1. O programa apresentado a seguir est escrito em trs paradigmas diferentes de programao. a) Paradigma semi-estruturado

b) Paradigma estruturado

c) Paradigma orientado a objetos

Baseado nos paradigmas apresentados anteriormente responda s perguntas a seguir: a) As atividades que os trs programas fazem so as mesmas? b) Quais so as diferenas entre os trs paradigmas?

Leitura/Atividade Obrigatria: Realizar um resumo (1 pgina de caderno pautada - frente e verso), por escrito em caneta azul ou preta e individual. Captulo 1 - Introduo programao orientada a objetos do livro: SANTOS, Rafael. Introduo programao orientada a objetos usando Java / Rafael Santos. - Rio de Janeiro: Elsevier, 2003 - 12 reimpresso. Valor 1,0 ponto na prova do 1 bimestre.

Referencial Bibliogrfico COBRA, Alexandre. Origem da Orientao a Objetos. WebGoal - Software simples para empresas grandes, 2009. Acessado em <14/01/13>. Disponvel em < http://www.webgoal.com.br/origem-da-orientacao-a-objetos/ >. DAVID, Marcio Frayze. Programao Orientada a Objetos: uma introduo. Guia do Hardware.net, 2007. Acessado em <14/01/2013>. Disponvel em <http://www.hardware.com.br/artigos/programacao-orientada-objetos/>. BOOCH, Grady. UML guia do usurio / Grady Booch, James Rumbaugh, Ivar Jacobson ; traduo de Fbio Freitas da Silva. - Rio de Janeiro : Campus, 2000. SANTOS, Rafael. Introduo programao orientada a objetos usando Java / Rafael Santos. - Rio de Janeiro : Elsevier, 2003 - 12 reimpresso. FURLAN, Jos D. Modelagem de Objetos atravs da UML the Unified Modeling Language So Paulo : Makron Books, 1998.

Você também pode gostar