Conceitos A POO e a POE são facilmente confundidas, mas lembre-se a POO contém a POE mas a POE não contém a POO, um objeto pode existir mesmo que não exista nenhum evento associado a ele, mas um evento não pode existir se não houver um objeto a ele associado. Outra característica que pode causar confusão são ambientes Orientados a Objetos e ambientes Baseados em Objetos. Em ambiente Orientado a Objetos consegue-se criar e manipular objetos enquanto que o Baseado em Objetos não é possivel a criação de objetos apenas a sua manipulação. A POO é um conceito desenvolvido para facilitar o uso de códigos de desenvolvimento em interfaces gráficas. Sendo a Borland, uma das primeiras a entrar neste novo conceito, possui suas principais linguagens de programação (tais como Object Pascal e C++), totalmente voltadas para este tipo de programação. A POO atraiu muitos adeptos principalmente pelo pouco uso de código que o projeto (diferente de sistema) carrega no programa fonte, ao contrário das linguagens mais antigas como o Clipper'87 © muito utilizado no final da década de 90 e início da década de 90. O resultado desta "limpeza" no código resulta que a manutenção do projeto torna-se muito mais simples. Orientação a Objeto.
Mas afinal de contas o que é este raio de POO e POE? Antes de começarmos a falar realmente de linguagem orientada a objetos e necessário que você possua os conceitos básicos da orientação a objetos, são eles: Objeto - é qualquer estrutura modular que faz parte de um produto. Uma janela por exemplo, é um objeto de uma casa, de um carro ou de um software com interface gráfica para o usuário. Atributos - São as características do objeto, como cor e tamanho, a janela, por exemplo, tem atributos como o modelo, tamanho, abertura simples ou dupla, entre outros. Encapsulação - é um mecanismo interno do objeto "escondido" do usuário. Uma pessoa pode abrir uma janela girando a tranca sem precisar saber o que há dentro dela. Ação - é a operação efetuada pelo objeto. Todas as janelas, por exemplo, controlam a iluminação e temperatura ambiente, dependendo do seu design. Herança - um objeto novo nem sempre é criado do zero. Ele pode "herdar" atributos e ações de outros já existentes. Um basculante herda atributos das janelas e das persianas. Polimorfismo - é a capacidade de objetos diferentes reagirem segundo a sua função a uma ordem padrão. O comando "abre", por exemplo, faz um objeto entrar em ação, seja ele uma janela, uma porta ou uma tampa de garrafa. Ligação - é quando um objeto conecta a sua ação a outro. Um sensor de claridade, por exemplo, ativa o acendimento automático da iluminação de rua. Embutimento - Permite a um objeto incorporar funções de outros, como um liqüidificador que mói carne com a mudança do tipo da lâmina. A OO implementa o conceito de CLASSE, OBJETO, ABSTRAÇÃO, ENCAPSULAMENTO E HERANÇA mais POLIMORFISMO
PONTOS CHAVE:classe e objeto
A Orientação a Objetos em computação tem 20 anos apesar de ter surgido fortemente
apenas nos últimos 7 anos. Surgiu mesmo na área acadêmica.
EVOLUÇÃO DAS LINGUAGENS PARA OO:
Anos 70 - Época da não estruturada, dados e códigos emaranhados.
A partir dos anos 80, as principais linguagens incluiram conceitos de
OO. Ex. Pascal, C, Lisp, Cobol, depois evoluiram com a
inclusão de classes. C++ foi um marco para aplicações em todos os níveis. Surge o
Visual Object Oriented Cobol ( c/ win95) e o Visual Basic.
BENEFÍCIOS DA OOP Listaremos a seguir os principais ganhos, para o desenvolvedor, caso este troque a Metodologia Tradicional pela Orientada ao Objeto. Exatidão- Devido a característica do desenvolvimento estruturado, onde elabora-se um projeto e DEPOIS faz-se os programas, podemos ter no final um sistema que não atenda perfeitamente seus objetivos depois de implementado. No desenvolvimento OOP, devido ao fato deste ser feito de maneira quase que interativa com o usuário, este risco é significativamente diminuido. A pouca quantidade de código programável também reduz os problemas inerentes as mudanças das especificações durante o desenvolvimento do projeto. Potencialidade- Definimos potencialidade a forma como o programa reage aos erros imprevistos como uma falha na impressora, ou a um disco cheio. Tanto maior for a potencialidade, maior a capacidade do programa em causar o menor estrago possível aos dados e evitar uma saída drástica do sistema. Extensibilidade- Dizemos que quanto maior for a extensibilidade do software, maior será sua capacidade em adequar-se as especificações definidas pelos analistas. Reutilização-A capacidade de se otimizar a produtividade do programador depende diretamente da maneira como o software disponibiliza a reutilização do código gerado. De fato, a maioria dos programadores profissionais, já reutiliza código anteriormente gerado, porém a perfeita reutilização consiste na utilização COMPLETA de um código gerado para algum sistema SEM qualquer outra adaptação prévia.
LINGUAGENS PROCEDURAIS x ORIENTADA A OBJETOS : Mesmo as linguagens procedurais oferecem alguma característica funcional OO. Seu conjunto de primitivas porém permite que você digite comandos para que o computador execute. A organização e manipulação dos dados vem depois. A linguagem OO é projetada para permitir a definição dos objetos que compõe os programas e as propriedades que estes objetos contem. O código é secundário. Pode-se programar na forma procedural com estilo OO quando o programa tem um nível tal de sofisticação que você começaa a criar seus próprios tipos e estruturas de dados. A linguagem OO pura tem como um parâmetro de referência que todos os dados sejam representados na forma de objetos. A única pura é a Small Talk (tudo via classe, não tem var. global). Eiffel também.
ALGUNS EXEMPLOS DE LINGUAGENS PROCEDURAIS COM EXTENSÕES OO:
C++, PASCAL do ambiente DELPHI, PERL, OBJECTIVE C
LINGUAGENS COMPILADAS X INTERPRETADAS : Linguagem Compilada - código gerado tem alta performance pois é ajustado para um tipo específico de processador. Código Objeto em binário para aquele processador. Ex. Pascal (entenda-se tambem no Delphi). Linguagem Interpretada - só existe em código fonte. Durante a execução o interpretador pega o fonte e vai executando as ações. Facilita o uso em múltiplas plataformas. Ex. Clipper
Um caso de linguagem Compilada/Interpretada é o Java A OO tem a filosofia de implementar uma abstração do mundo real facilitando a reutilização de código, denominado de caixas pretas de softwares ou ainda softwares IC's. (Integrated Circuits) que estã sendo utilizado aqui como uma analogia de chip com objeto.
METODOLOGIAS DE ANÁLISE E PROJETO :
Estas também evoluiram da análise estruturada para OO.
ORIENTADO X BASEADO EM OBJETO :
Em 70 Cardelli e Wegner já discutiam em um famoso artigo sobre este conflito.
CONCEITO DE OBJETOS DISTRIBUIDOS: Objetos distribuidos no desenvolvimento de software distribuido devido as suas caracteristicas de encapsulamento, polimorfismo, compilação separada, acoplamento dinamico, reuso, e interfaces bem definidas.
SISTEMA DE OBJETOS: Muitos objetos, muitas requisições.
SISTEMA DE OBJETOS DISTRIBUIDOS: Mesmos objetos e requisições, objetos em processadores diferentes, requisições entre processos. São serviços em processadores diferentes, com pontos de contato entre os serviços. Quem provê? Nenhuma linguagem, Banco de dados, rede ou protocolo, mas o ORB. ORB - Object Request Broker: Manipula requisições para objetos remotos em diferentes processos. Opera através de todas as redes e protocolos. Transparente para quem recebe ou envia. Sua implementação pode ser feita em qualquer linguagem inclusive não orientadas a objeto e executada em qualquer processador. A industria de ORB's é crescente ( DEC : Object Broker , Expersoft : PowerBroker, Iona : Orbix).
OBJETO DISTRIBUIDO OU COMPONENTE: Independe de linguagem, hardware ou sistema operacional, rede ou protocolo de comunicação. OMG - Object Management Group: Organização fundada em 1989 com o objetivo de difundir a Orientação a Objetos. Tem mais de 680 membros. Alguns membros: SUN,DEC,IBM,HP,IONA,MICROSOFT,etc. Em 1991 a OMG produziu o Common Object Request Broker Architecture (CORBA 1.1). E em 1995 o Corba 2.0 (com interoperabilidade). Objetivo: estabelecer guias e especificações de gerência de objetos para a industria, visando prover uma base comum para o desenvolvimento de aplicações distribuidas. CORBA - se baseia em OMA - Object Mamagement Archictecture, object services, com forte enfase em IDL - Interface Definition Language. Já estão mapeando esta arquitetura para C, C++, Ada e SmallTalk, e iniciando o mapeamento para Java e Cobol. A CORBA é uma arquitetura para midleware (a barra do cliente/servidor ) e estã se transformando no principal padrão de Objetos Distribuidos.
OBJETOS E INTERNET:
As aplicações de mercado, crescentes em tamanho tornam comuns a necessidade de
valores de memória acima de 20 MB em disco. Cada software tendo que tomar conta de tudo
sozinho. Na rede procura-se criar um só pacote que processe os vários protocolos,
sistemas operacionais e plataformas de hardware.
A LINGUAGEM DA WEB - JAVA:
A linguagem Java é uma linguagem de terceira geração com suporte para OO, ou seja
procedural OO.
DESCRIÇÃO DA LINGUAGEM JAVA:
- Semelhança semântica com C e carracterísticas de C++.
Atualmente arquitetura de execução vem com browsers. O JVM e o compilador JIT (Just in Time) vem com o Win95 e Win NT, OS/2 Merlin, Solaris, System7 da Macintosh. Em futuro próximo fará parte de sistemas operacionais. AMBIENTES JAVA: JDK - Java software, Visual J++ (Microsoft), Visual Café(Symantec), Java Workshop (Sun), Latté e depois JBuilder (Borland). Atualmente em desenvolvimento pela Sun o chip picoJava(aumentar desempenho e p/ web PCs) . Prometido para 97 impressão em Java. |
E-Mail: walterchagas@yahoo.com |
![]() |