wpjr2’s Weblog

Artigos e tutoriais úteis

Orientação por Objetos: Vantagens e Desvantagens

Posted by wpjr2 em abril 23, 2008

História

Nos anos 60 é lançado a Simula-67 que apresentou pela primeira vez os conceitos de classes, rotinas correlatas e subclasses. Na década de 70 a Seros-PARC cria a Smalltak até hoje considerada a mais pura das LPOO. No final da década de 80 aparece a C++, uma linguagem híbrida.
Orientação a Objetos é o maior avanço em software destes últimos anos. É uma forma mais natural de se analisar o mundo. Ela nos permite construir sistemas melhores e, além disso, de maneira mais fácil. Será a mais importante das tecnologias emergentes na área de software nos anos 90.
As técnicas estruturadas que, sem dúvida, atualmente são as mais populares na comunidade de informática, obtiveram grande aceitação desde que foram lançadas no final dos anos 70. Contudo a medida que foram sendo utilizadas, a decomposição funcional mostrou-se inadequada em situações de sistemas complexos e principalmente para profissionais iniciantes. Os aperfeiçoamentos introduzidos em 1984, por Sthephen M e John F Palmer e, mais tarde, complementados por Stephen Mellor e Paul Ward, para sistemas em real-time, ajudaram a análise estruturada a se tornar mais eficiente. Contudo os sistemas criados com as técnicas estruturadas ainda são difíceis de serem incrementados com novas funções e as alterações em funções já existentes, muitas vezes, provocam sérios problemas em outras partes do software.

A Reutilização
A reutilização está baseada na padronização a qual é adotada há longa data em toda a indústria moderna, seja no projeto de carros, televisores, computadores, etc. A padronização traz inúmeras vantagens, entre elas podemos citar a seguintes:

  1. as peças padrões são mais baratas
  2. são mais confiáveis
  3. geralmente são mais fáceis de serem consertadas ou substituídas

Na informática a reutilização de códigos ainda é praticada em escala muito reduzida e decorrente da iniciativa isolada de alguns programadores e projetistas. São vários os motivos para isso, entre eles:

  1. existência de uma Biblioteca e de um Sistema de Catálogo
  2. facilidade para documentação
  3. sistemática rigorosa para testes
  4. novas técnicas para especificação de sistemas tendo em vista a reutilização de módulos
  5. linguagem, ferramentas e ambientes de desenvolvimento que estimulem a adoção, em larga escala, de tais métodos dentro das empresas
  6. criação de novos geradores de sistemas que operem selecionando e combinando módulos padrões e que satisfaçam as necessidades específicas das aplicações
  7. mudança administrativas e gerenciais nas empresas de modo a apoiarem e estimularem os criadores de módulos padrões.

Vantagens da Orientação a Objetos

  • Vantagens Diretas – maior facilidade para reutilização de código e por conseqüência do projeto – possibilidade do desenvolvedor trabalhar em um nível mais elevado de abstração – utilização de um único padrão conceitual durante todo o processo de criação de software – maior adequação à arquitetura cliente/servidor – maior facilidade de comunicação com os usuários e com outros profissionais de informática.
  • Vantagens Reais – ciclo de vida mais longo para os sistemas – desenvolvimento acelerado de sistemas – possibilidade de se construir sistema muito mais complexos, pela incorporação de funções prontas – menor custo para desenvolvimento e manutenção de sistemas

Desvantagens

  • Complexidade no aprendizado para desenvolvedores de linguagens estruturadas
  • Maior uso de memória (heap), por exemplo para aplicações móveis em JavaME
  • Maior esforço na modelagem de um sistema OO do que estruturado (porém menor esforço de codificação, sendo uma vantagen)
  • Funcionalidades limitadas por interface, quando estas estão incompletas (problemas na modelagem)
  • Dependência de funcionalidades já implementadas em superclasses no caso da herança, implementações espalhadas em classes diferentes

2 Respostas to “Orientação por Objetos: Vantagens e Desvantagens”

  1. Luciene Pereira de Araújo said

    Acho o conceito de OO muito complexo porque tem 10 anos que estou programando de forma estruturada.
    Tem coisas que podiam ser simplificadas, acho que OO as vezes passa por caminhos tortuosos, mas pode ser que eu esteje equivocada, OO é fácil.
    O que acho ruim é a complexidade.

  2. Wagner Gomes said

    A vantagem de OO é a aproximação com a realidade. A programação fica mais proxima do que o pensa e solicita. Concordo que a complexidade é maior, pois como programadores temos que trazer algo mais “humano” para algo mais “maquina”. Com isso temos um esforço de estudo maior que o normal.
    Mas por outro lado, esse esforço é realizado apenas uma vez, pois podemos temos a reutilização mais efetiva.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

 
%d blogueiros gostam disto: