Orientação a Objetos (Parte 1)Postada em: 13/09/2004
Por: Preceptor Nº de Visualizações: 4205.
Lista de páginas desta publicação:
A questão da prototipação é fundamental no desenvolvimento comercial pela possibilidade de interação com o cliente, permitindo a determinação das suas reais necessidades e preferências. Além disso, em muitos casos, contratos são firmados apenas depois da demonstração de protótipos satisfatórios por parte dos desenvolvedores. Note que o esforço de desenvolvimento de protótipos em linguagens como Java é minimizado pela existência de ferramentas visuais que permitem o rápido desenvolvimento de interfaces gráficas.
O projeto de sistemas orientados a objetos possui como principal ponto a necessidade de definir as classes envolvidas no sistema e de caracterizar a sua hierarquia, bem como a interação durante a execução entre as mesmas. Sem dúvida uma boa modelagem facilita a fase de implementação, mas o fundamental é que durante a implementação seja possível rever a organização das classes. Um ponto importante a ser lembrado, é a quase inexistência de projetos no desenvolvimento de sistemas comerciais de pequeno porte, o que pode levar ao desenvolvimento de sistemas de difícil depuração e manutenção.
O desenvolvimento de software é uma atividade humana complexa, semelhante a tantas outras atividades que envolvem domínio da técnica, criatividade e raciocínio e, principalmente, perseverança. Desta maneira, as técnicas usadas na programação são também aplicadas e identificadas em outros ramos do empreendimento humano. Por exemplo, as seguintes técnicas utilizadas na “solução criativa de problemas” são amplamente adaptáveis no desenvolvimento de software orientado a objetos:
busca de outras experiências e soluções para problemas semelhantes soluções já existentes devem ser consultadas antes de se tentar propor uma nova solução. Através do refinamento, composição e instanciação de objetos de classes já existentes, e através da aplicação de padrões, a orientação a objetos facilita o reuso e a procura de outras soluções e experiências semelhantes;
Divisão e conquista ao se deparar com um problema complexo, tenta-se reduzi-lo a problemas menores e mais fáceis de serem tratados; refinamentos sucessivos deve-se resolver versões mais simples do problema em um seqüência contínua de dificuldade.
diversidade não é aconselhável comprometer-se imediatamente com uma única solução. Durante a solução do problema podem ser obtidas novas informações que permitirão a existência de novas alternativas. As técnicas apresentadas foram adotadas por programadores de todo mundo, assim como por físicos, matemáticos e outros cientistas. Cada ramo do conhecimento possui sua própria versão dessas técnicas.
No desenvolvimento de software, um boa linguagem de programação oferece mecanismos que incentivam a aplicação dessas técnicas de desenvolvimento. Nesse contexto, as linguagens de programação são, em última análise, instrumentos para auxiliar na solução de problemas. Nosso instrumento nesse tutorial é a linguagem Java.
A LINGUAGEM DE PROGRAMAÇÃO JAVA
Em 1990 a Sun Microsystems desenvolveu uma linguagem orientada a objetos denominada Oak cujo propósito era o desenvolvimento de pequenos aplicativos e programas para controle de eletrodomésticos. Com essa linguagem poderíamos programar novas funções para os aparelhos domésticos, tornando-os mais flexíveis. Por exemplo, um forno de microondas poderia ser programado para preparar diversos tipos de alimentos. Os fabricantes de um aparelho poderiam oferecer vários aplicativos para tarefas e usuários diferentes.
Além disso, a proposta da Sun previa o desenvolvimento de um sistema operacional que controlasse uma rede de eletrodomésticos. Com isso seria possível utilizar um microcomputador para automatizar uma residência e seus eletrodomésticos.
Com a popularização da rede mundial de computadores (Internet), através da World Wide Web, a Sun decidiu postergar a idéia dessa rede doméstica e direcionou a linguagem Oak para o desenvolvimento de aplicações na Web, dando origem à linguagem Java.
2.5.1 JDK 1.0
Em 1995 a linguagem Java foi disponibilizada pela primeira vez para o grande público através da primeira versão do Java Development Kit (JDK 1.0). Essa versão da linguagem utilizava vários conceitos da linguagem C++ [MEY 97], que era a linguagem comercial orientada a objetos mais popular da época. A linguagem C++ não possuía bibliotecas padronizadas e a implementação era muito dependente de uma dada plataforma. Java corrigiu uma série de problemas de C++ com a simplificação da linguagem e com a utilização de uma máquina virtual independente de plataforma.
A principal razão para a adoção de Java na Web foi a questão da segurança. Todo o programa Java tem um acesso limitado aos recursos disponíveis. Existem dois tipos de programas Java: aplicação e applet. Uma aplicação é um programa independente enquanto um applet executa em um ambiente controlado a partir de um navegador (browser), estando sob um controle mais severo de acesso aos recursos computacionais.
Também, a existência do interpretador Java e a sua biblioteca padronizada foram outros pontos a favor da linguagem. Nessa primeira versão do JDK, foram introduzidas várias bibliotecas (pacotes). Java.lang e java.applet disponibilizam as classes que formam a base da linguagem.
O pacote java.awt é o que define as ferramentas para desenvolvimento de interfaces gráficas, com o tratamento de eventos através de um sistema de callbacks e implementação nativa de componentes de interface. Note que o uso de callbacks já era amplamente utilizado no sistema operacional UNIX e em ambientes como o ET++ [WEI 94].O pacote Java.net fornece facilidades para acesso aos recursos da rede bem como para programação concorrente e distribuída. Foram disponibilizados ainda os pacotes java.io e java.util. Java também permite a definição e controle de processos leves (threads) [OAK 99] através de elementos da própria linguagem desde essa versão inicial.