O paradigma orientado a objetos surgiu (dcada de 1980) como um modelo
promissor para o desenvolvimento de software mais confivel devido s caractersticas inerentes ao modelo de objetos. Vejamos:
O conceito de encapsulamento permite a construo de classes
independentes uma das outras, facilitando o desenvolvimento e a manuteno do software (alteraes e melhorias na classe). A herana e o polimorfismo permitem e facilitam a reutilizao de cdigo, til nas fases de implementao e manuteno.
O uso de tcnicas orientadas a objetos facilita o controle da complexidade uma vez
que promove uma melhor estruturao de seus componentes e tambm permite que componentes j usados e validados possam ser reaproveitados.
Cabe ressaltar que uma das principais razes para a baixa produtividade, no desenvolvimento de software, a dificuldade de reutilizao de cdigo usando o paradigma funcional.
As hierarquias de classes (herana) so componentes portveis entre aplicaes,
que, se bem projetados, podem ser reutilizados em vrios sistemas sem modificao e, alm disso, podem ser estendidos (polimorfismo) sem corromper o que j existe.
Assim sendo, podemos dizer que o modelo de objetos proporciona modularidade
trazendo os seguintes benefcios:
Reusabilidade: softwares podem ser escritos com base em componentes j
existentes; Extensibilidade: novos componentes de software podem ser desenvolvidos a partir de outros, j existentes, sem afetar o comportamento do componente de origem.
Sabe-se que software so intrinsicamente complicados devido aos novos requisitos
das aplicaes modernas: alta confiabilidade, alto desempenho, desenvolvimento de software rpido e barato, alta complexidade e tamanhos grandes.
O modelo OO veio para combater os problemas derivados da crise do software,
termo cunhado em 1968, na Europa, e caracterizado pelos seguintes problemas do software: baixa confiabilidade, baixa qualidade, alto custo de manuteno e duplicao de esforos na sua construo (tempo e dinheiro).
Um sistema desenvolvido com as caractersticas do modelo OO tende a ser bem
estruturado posto que os objetos so unidades coesas com interfaces simples que escondem as suas implementaes
Um sistema desenvolvido sob o paradigma da orientao a objetos representa os
objetos que encontramos no mundo real, no problema que estamos tratando, no negcio para o qual o estamos desenvolvendo o sistema. O foco da equipe de desenvolvimento passa a ser a identificao e a modelagem dos objetos do mundo real que afetam o sistema.
A orientao a objetos tem como alicerce trs princpios fundamentais: o
encapsulamento que protege o acesso aos atributos e mtodos, a herana e o polimorfismo, que juntos, permitem que classes sejam reaproveitadas, otimizando tempo e custo de desenvolvimento, alm da segurana no reuso de classes testadas e utilizadas.