sábado, 22 de março de 2014

Programação Orientada a Objectos (I)

Breve História

A Programação Orientada a Objectos (POO) é um paradigma actual de análise, projecto e desenvolvimento de aplicações informáticas.

A primeira linguagem de programação a implementar sistematicamente os conceitos de OOP foi a Simula 67. De seguida surgiu a linguagem Smalltalk, criada por Alan Kay, na Xerox, que pode ser considerada a linguagem que popularizou e incentivou a utilização da POO.

Apesar de ser um paradigma de programação já bastante antigo (final dos anos 60), o seu grande desenvolvimento só se deu a partir da 2ª metade da década de 90, fortemente impulsionado pelo advento da Internet. Actualmente, existe uma grande variedade de linguagens para POO, tendo, inclusivamente, sido feitas extensões a linguagens tradicionais, para suportar objectos (C++, NetCobol, Delphi, Java, C#, Visual Basic, etc.).

Ideias base

O uso das primeiras linguagens de POO, introduziu um conceito que até então passava "despercebido" à maioria dos projectistas: a similaridade com o mundo real.

O mundo real é composto por objectos que interagem entre si: o martelo interage com o prego, o prego com a parede, um semáforo interage com os condutores, etc. Na POO, os objectos de software modelam os objectos do mundo real e interagem entre si através do envio de mensagens. O programador tem a responsabilidade de definir o mundo dos objetos, sendo a sua principal função a especificação das mensagens que cada objecto pode receber e qual a acção que o objecto deve realizar para cada mensagem específica.

Se consideramos a Orientação a Objectos como um novo paradigma de desenho de software, devemos considerar, também, uma nova maneira de pensar, porque apesar de a escrita do código continuar a ser procedimental, alguns conceitos mudam radicalmente: a estruturação e o modelo computacional.

Este paradigma permite-nos dividir o problema em unidades autónomas – os objectos – que, para além de armazenarem dados, têm a capacidade de realizar operações sobre esses dados. Assim tornou-se mais fácil simular a realidade (e os problemas que queremos solucionar) através de programas de computador.

Basicamente, a POO utiliza os mesmos princípios da engenharia de hardware, que projecta novos equipamentos usando os mesmos componentes básicos como resistências, fusíveis, díodos, transístores, chips, etc. Os "objectos" já existentes são utilizados para produzir novos "objectos", tornando essa metodologia mais poderosa que as metodologias tradicionais de desenvolvimento de software.

Em termos de modelo computacional, podemos dizer que enquanto as metodologias tradicionais utilizam o conceito de um processador, uma memória e dispositivos de I/O para processar, armazenar e exibir as informações, a POO emprega um conceito mais real, mais concreto, que é o de Objecto.
 

Resumo Paradigma da POO

  • É o paradigma mais utilizado actualmente na programação;
  • Os objectos modelam entidades do mundo real ou entidades abstractas;
  • Os programas simulam as situações e os problemas que queremos resolver;
  • Na POO, tudo são objectos. As características dos objectos são, por sua vez, objectos também;
  • Um programa não é mais do que um conjunto de objectos a interagir (enviar mensagens) entre si.

Vantagens e Desvantagens

As principais vantagens da POO são as seguintes:

  • Continuidade no desenvolvimento da solução do problema;
  • Facilidade de manutenção e introdução de alterações e melhorias;
  • Aumento da produtividade;
  • Aumento da robustez;
  • Modularidade;
  • REUTILIZAÇÃO.

Nos paradigmas anteriores, existia um abismo entre as fases de desenvolvimento dum sistema: AnáliseProjectoProgramação, porque cada uma delas gerava documentação distinta.

Na POO, padroniza-se um documento que será utilizado por todos os elementos: o Diagrama de Classes. Surgiu entretanto a linguagem UML, que serve para especificar e ajudar a criar este tipo de documentação.

Como o objecto engloba internamente todos os mecanismos do seu funcionamento, caso haja necessidade de alterá-lo, os componentes (outros objectos) que dependem deste não necessitam de qualquer alteração.

Uma vez que existe uma colecção de classes de objectos devidamente testados, ao criarmos um novo sistema, basta utilizar estas classes, sem necessidade de alterar o código. Isto aumenta a produtividade na criação de programas e aumenta a qualidade dos mesmos, uma vez que os objectos são testados por vários programadores.

Os sistemas são extremamente modulares, tornando-se muito facilmente extensíveis. Para além de podermos utilizar os objectos de um dado sistema, noutro, sem qualquer alteração, também podemos criar novos objectos baseados em outros já existentes, que herdam as características dos objectos base.

As principais desvantagens da POO são as seguintes:

  • A curva de aprendizagem do paradigma da POO é bastante superior ao de outros paradigmas anteriores (Programação Procedimental);
  • Maior complexidade de conceitos e estrutura;
  • Menor desempenho em termos de performance para tarefas simples de computação.

    Sem comentários:

    Enviar um comentário