um diagrama UML e o codigo Java e permite, inclusive, a geracao de codigos a partir do modelo UML. Sei que muitos programadores estao acostumados a trabalhar com programas de 20.000 linhas de codigo. Ha linguagens que nao permitem a modularizacao. So e muito complicado desenvolver em equipes quando temos apenas um codigo-fonte de 20.000 linhas. A orientacao a objetos comeca a ser justificada quando temos equipes de desenvolvimento. A integracao com ferramentas UML permitem tambem manter a documentacao do sistema atualizada em relacao a implementacao.O mesmo em relacao a propria organizacao do codigo. Os pacotes Java sao diretorios e uma classe estara escrita em um arquivo com o mesmo nome. Isto facilita trabalhar em equipes e desenvolver sistemas maiores. Alem de obrigar a trabalhar com Orientacao a Objetos, Java possui padroes de codigo que sao como convencoes: Classes em maiusculo, metodos e atributos em minusculo e uma letra maiuscula substitui um espaco em branco. Assim, se uma classe tem um atributo nome o acesso a este atributo normalmente e feito pelo metodo getNome().3 - Java e interoperavelA empresa utiliza Windows mas pretende migrar para Linux. O Sistema era desktop mas sera migrado para a web. A equipe de vendas ira utilizar Palmtops. O que fazer? Java. Java e interoperavel, ou seja, funcionar em varias arquiteturas distintas, sistemas operacionais distintos e trabalha com paradigmas de programacao distintos como desktop e web. Na web Java pode ser utilizado no servidor (JSP e Servlets) ou no cliente (Applets). Apesar de haver diferencas para a implementacao (J2EE, J2SE e J2ME), a linguagem e a mesma e o conceito e o mesmo.Indo alem, Java permite tambem uma facilidade para internacionalizacao com a utilizacao nativa de arquivos Properties e definicao automatica de valores financeiros, numericos, de data e texto. Alem disto, a utilizacao de Unicode pode garantir a visualizacao de textos em varios alfabetos distintos.4 - Java possui uma API satisfatoriaA API Java traz implementada varias coisas como socket, criptografia, listas, filas, acesso a arquivos e compactadores. Tambem ha uma API para Imagem 2D, Imagem 3D, musica (MP3, Wav e Midi). E muito provavel que um programador antigo em Java nao conheca toda a API e nem e esta a questao. Como a API e padronizada basta ler a documentacao e utilizar as classes que a linguagem ja traz prontas. De toda a API Java, acho que minha paixao e a classe String. Sim, eu era programador C...Nao bastando isto, a API do Java e facilmente extensivel por varios outros componentes e frameworks que complementam a API tornando o trabalho do analista muito mais simples.5 - Java possui frameworks, padroes de projeto e ComponentesA engenharia de software vem propondo solucoes para minimizar o trabalho do analista ja ha um tempo. Padroes de projetos, frameworks e componentes sao exemplos destas propostas. Ha varios exemplos de como implementar padroes de projetos em Java e varios padroes de projeto que foram propostos pensando nesta linguagem. Frameworks Java facilitam a implementacao de sistemas complexos e componentes fazem com que o programador Java possa compartilhar seu conhecimento com toda a comunidade Java.