Blog do TreinaWeb
Dicas, notícias e informações sobre cursos, programação, webstandards e desenvolvimento web.Posts com a Tag ‘Java’
-
O que custa mais: corrigir falhas em apliçações Java ou Cobol?
27 de fevereiro de 2012
Aumenta a quantidade de software mal projetado no mercado mundial, criando uma série de riscos para as organizações, revela relatório global que analisou 745 aplicações. Esses produtos apresentam problemas de programação que violam as boas práticas de arquitetura e de codificação, contribuindo para elevar o chamado débito técnico, que vem ganhando ampla atenção no mundo corporativo.
O termo débito técnico está sendo utilizado pelo mercado para definir a dívida que as equipes de desenvolvimento assumem quando escolhem uma metodologia mais fácil e rápida para criação de aplicativos. Esse tipo de abordagem pode comprometer a qualidade do software e trazer impacto para as companhias no longo prazo.
Os especialistas dizem que assim como o saldo negativo em banco exige pagamento com cobrança de juros, a dívida técnica também pode ter custo alto para as corporações. Uma hora ela precisa ser quitada com a correção das linhas dos códigos escritos errados.
A pesquisa das 745 aplicações foi realizada pela Cast Software, desenvolvedora de ferramentas que avalia a solidez de engenharia da arquitetura e codificação de um aplicativo. A empresa analisou programas de 160 companhias de aproximadamente 12 segmentos da economia.
Uma das conclusões do estudo é que o desenvolvimento de programas com códigos de má qualidade é muitas vezes resutado das decisões de negócios de cortar custos. Para reduzir os investimentos dos projetos, as companhias acabam contratando programadores sem muita habilidade.
Outro fator é a pressão em cima da equipe para que as aplicações sejam desenvolvidas rapidamente para cumprir o cronograma dos projetos. O reflexo são programas que causam falhas de sistemas, diminuem o desempenho dos computadores e abrem brecha de segurança para ataques, entre outros problemas.
Reparar as linhas de código depois que o software está pronto, além de custar muito causa problemas técnicos. Um exemplo histórico de débito técnico foi o “Bug de 2000”, quando muitas aplicações estavam prontas para interpretar os dígitos “00” na virada daquele ano como 1900.
Organizações em todo o mundo gastaram somas incalculáveis de dinheiro para corrigir os dois dígitos. Muitas das aplicações foram destruídas porque desenvolvedores sabiam que o erro surgiria eventualmente.
Custo da correção
A análise da Cast encontrou 1,8 mil tipos de falhas de desenvolvimento em aplicações escritas em Java EE, Cobol, .Net, C, C + + e outras linguagens de programação. A companhia estima que o custo médio para eliminar os bugs por linha de código é de 3,61 dólares. Esse cálculo se baseia no preço hora de 75 dólares cobrado nos Estados Unidos para correção de erros de software.
Outra constatação da pesquisa da Cast é que corrigir falhas de aplicativos desenvolvidos em Java custa mais. O preço para eliminar bugs desta tecnologia é de 5,42 doláres por linha de código, enquanto o mesmo trabalho na plataforma Cobol sai por 1,26 dólares.
Bill Curtis, cientista-chefe da Cast, explica que corrigir linhas de código de Cobol custa menos porque a linguagem é mais antiga e os programadores são mais experientes. Por estarem atuando há mais de 30 anos com nessa tecnologia, eles conseguem corrigir falhas críticas mais rapidamente.
Sobre Java, Curtis constata que há muitos profissionais iniciando agora o desenvolvimento nesta linguagem sem formação científica em computação. “Tem uma enorme quantidade de pessoas escrevendo código sem ser guru em engenharia de software”, percebe o executivo.
Implicações do débito técnico
O estudo da Cast reforça a necessidade de as companhia entenderem as implicações do débito técnico, informa Carolyn Seaman, professora adjunta de sistemas de informação da Universidade de Maryland, em Baltimore (EUA), e coordenadora de um programa da National Science Foundation sobre esse tema. De acordo com ela, o tema gera preocupação devido ao risco que pode trazer para os negócios.
O instituto de pesquisas Gartner estima que o débito técnico no mercado mundial subirá de 500 bilhões de dólares em 2010 para um trilhão de dólares em poucos anos. Para Carolyn diminuir essa dívida não é tarefa fácil. Ela considera que o maior obstáculo é a incerteza sobre adoção de técnicas de desenvolvimento e abordagens que realmente resultam em maior qualidade de software.
O crescimento do débito técnico está estimulando a criação de um guia de riscos para os negócio informa John Heintz, consultor técnico da Cutter Consortium. Ele diz que esse problema já está sendo tratado como uma questão de due diligence em fusões e aquisições, aumentando a consciência de que o tema está influenciando as práticas de desenvolvimento de software.
Na opinião de Heintz colocar mais atenção sobre o débito técnico não significa que os desenvolvedores não tenham de diminuir gastos para acelerar o desenvolvimento. “Às vezes é apropriado e necessário cortar custos, mas esse fato não pode ser ignorado”, disse ele.
O Software Engineering Institute (SEI) da Universidade Carnegie Mellon, centro de pesquisa financiados pelo pelo Departamento de Defesa dos EUA, está trabalhando a questão do débito técnicos há cerca de dois anos. A instituiçao vem organizando workshops sobre o tema, de acordo com Ipek Ozkaya, membro sênior da equipe técnica.
“Existe interesse crescente neste assunto porque empresas e desenvolvedores querem entender seus fundamentos”, afirma Ozkaya. Ele observa a falta de orientação sobre como fazer o levantamento dessa dívida e como quitá-la para evitar implicações futuras.
Fonte: Computer World
-
Previsões para o desenvolvimento de software em 2011
19 de janeiro de 2011

Antever o futuro num mercado tão volátil como o de TI pode ser complicado. Mais complicado ainda é fazer previsões para a área de software, diante de tantas fusões e aquisições. Por exemplo: é natural que muitos programadores estejam preocupados sobre “o que fazer com a Oracle?”. Desde que o gigante concluiu a aquisição da Sun Microsystems, em Janeiro, movimentou-se agressivamente para consolidar o seu controle sobre o portfólio da Sun. Os programadores Java ficaram de baixo de fogo cruzado.
A decisão da Apache Software Foundation em sair do Java Community Process (JCP), foi uma condenação muito forte ao processo de especificação Java, sob a direção da Oracle, e lançou sérias dúvidas sobre o futuro da Java livre e aberta. Esperam-se mais deserções da JCP, em 2011, embora estes sejam gestos mais simbólicos do que qualquer outra coisa.
Agora, a questão principal para a Apache Software Foundation (ASF) é saber como proceder. A Java tornou-se muito central nos esforços da organização para ela abandonar a tecnologia. No passado, a ASF contava com o apoio de empresas como a IBM, mas a decisão da IBM de reduzir o seu desenvolvimento sobre Apache Harmony, em favor do OpenJDK, da Oracle, deixa à ASF poucos aliados capazes de ajudar a fazer frente à Oracle.
A Google deve movimentar-se para preencher esse vazio. A Google usa Java de forma ampla nos seus centros de dados, mas sua batalha legal com a Oracle sobre o uso da tecnologia Java no Android pode deixar um gosto amargo na boca. A Google deve tornar-se mais ativa no seu apoio ao desenvolvimento de código aberto da Apache, e no alojamento de recursos e documentação para dar aos programadores maior confiança na escolha de uma aplicação Java que não esteja sob o calcanhar da Oracle.
A longo prazo, no entanto, a Google não pode se dar ao luxo de colocar todos os seus ovos na cesta da Java. Haveremos de ouvir falar outra vez da Go, a linguagem Java que a Google lançou em 2009, e que tenta tornar mais fácil aos programadores o desenvolvimento de aplicações de processamento paralelo. Embora a Go seja muito imatura para ser um verdadeiro concorrente para a Java, deve-se esperar uma versão beta no final de 2011 capaz de estimular a dinâmica por trás da linguagem.
Abalo nas plataformas móveis
Ironicamente, uma tecnologia que não será muito afetada pela disputa entre a Google e Oracle será a Android. A iniciativa da Google é muito importante para o gigante das buscas para ela desistir sem lutar – não falando já nos investimentos realizados pelas operadoras de telefonia móvel e fabricantes de aparelhos como a HTC, Motorola e Samsung. Por enquanto, os bolsos profundos da Google devem ser suficientes para isolar o ecossistema Android de qualquer efeito colateral.
O posicionamento na pesquisa em mobilidade da RIM é mais precário. Embora, ao contrário da Google, a RIM dê licenças Java para os seus BlackBerry, ela não pode se dar ao luxo ser abandonada pela Oracle, enquanto o Android e a Apple corroem a sua quota de mercado. A RIM deve finalmente perder o domínio em 2011 e anunciar planos para alargar a próxima geração do sistema operativo QNX, que adquiriu para o seu tablet PlayBook, para todos os seus aparelhos no futuro, deixando para trás as raízes da plataforma BlackBerry Java ME.
Uma plataforma móvel que deve obter muitas atenções em 2011 é a Palm WebOS. O motivo? Em uma palavra: a Microsoft. Como as vendas do Windows 7 Phone continuam a desapontar, Redmond deverá entrar em pânico. Prevê-se que a Microsoft lance um novo “surto” de publicidade em torno da plataforma, no final do primeiro semestre, afastando os seus parceiros fabricantes de celulares – a HP entre eles. Por isso haverá novos dispositivos da marca HP Windows Phone 7 aparelhos nas prateleiras enquanto os WebOS acumulam poeira – mais um erro no mercado móvel tanto para a Microsoft e HP.
Novas regras, novas dores de cabeça
As questões jurídicas terão um impacto muito importante, tanto quanto a tecnologia em 2011. Entre estas terá especial visibilidade o tema da neutralidade da rede, tanto para redes fixas como sem fio. Os programadores de aplicações para smartphones serão os mais afetados, tal como as operadoras de comunicações móveis que devem continuar a rever os seus planos de dados, restringindo largura de banda e aumentando as taxas sobre o uso de mais dados do que o pacote pré-estabelecido, pelo menos em países como Estados Unidos e Brasil.
A questão que os programadores enfrentam hoje – depois de terem presenciado o surgimento da Web 2.0 e AJAX, depois o SaaS e o cloud computing – será como inovar no mercado de software, quando os prestadores de serviço de rede poderão limitar o acesso à largura de banda.
Outra área em que se espera alguma ação é na aplicação da privacidade online. O debate em torno do WikiLeaks colocou na cabeça do Congresso dos Estados Unidos e de outras nações no mundo que é uma má idéia para deixar a informação fluir livremente na Internet. Isso, combinado com ocorrências periódicas de fuga de dados e violação da privacidade, poderá estimular os legisladores a elaborar novas leis para regular como as informações podem ser partilhadas online. Infelizmente. Muitos esperam que este seja um pequeno desastre, resultando em procedimentos de conformidade vagos e onerosos não só para os programadores de software, como para todos os usuários da grande rede.
Fonte: Computer World
-
Oracle processa Google por violação de patentes com Android
23 de agosto de 2010
A Oracle encaminhou, na quinta-feira (12) a um tribunal da Califórnia, processo contra o Google por infração de patente e de direitos autorais no desenvolvimento do Android, utilizado em celulares e em dispositivos móveis.
Segundo o processo, a Oracle questiona o Google por “conscientemente, diretamente e repetidamente infringiu a propriedade intelectual da tecnologia Java, da Oracle” ao desenvolver o Android. Karen Tillman, porta-voz da empresa, diz que a ação “busca soluções apropriadas.”
Ao adquirir a Sun Microsystems no início deste ano, a Oracle passou a ser dona da tecnologia Java. De acordo com analistas, a ação contra o Google é um sinal de que a Oracle será mais agressiva na busca por licenciamento do Java, ferramenta utilizada em diversos produtos disponíveis na web.
Larry Ellison, presidente-executivo da companhia, informa que considera o Java um recurso fundamental, uma vez que é utilizado em diversos equipamentos eletrônicos, de computadores a aparelhos de DVD.
Já para o Google, o processo da Oracle causa desapontamento e consiste num ataque “sem fundamento” não apenas ao Google mas também contra a comunidade Java de código aberto, disse o porta-voz da empresa Aaron Zamost, na sexta-feira (13/8).
“A comunidade Java de código aberto vai além de qualquer empresa e trabalha todo dia para fazer da web um lugar melhor. Nós defendemos com vigor os padrões de código aberto e continuaremos a trabalhar com a indústria para desenvolver a plataforma Android”, afirmou.
Agora é ver aonde isto vai dar.
Fonte: IDG Now
-
JavaFx com JSP
31 de março de 2010

Ontem falamos sobre o JavaFx no NetBeans, e para mantermos o tema, falaremos sobre o JavFx, mas agora em conjunto com o JSP.
Há vários pedidos de quem desenvolve Java WEB, para utilizar a rica interface oferecida pelo JavaFX em conjunto com as tecnologias JSP ou JSF.
Isto é possível, como relata Rakesh Menon, do time do JavaFx da Oracle, no seu blog, contando suas experiências com o JavaFx + JSP.
Uma opção para quem utiliza o Adobe Flex, na camada de interface.
A solução proposta não é algo fora do comum do que vemos em sistemas WEB Java, na verdade consiste na utilização de Tag que se encarregariam de colocar o applet JavaFx na página. Esse applet que se comunicará com um WEB Service ou enviará formulários para os servlets.
No post, ele disponibilizou um código fonte de exemplo, para ajudar-nos.
Fonte: Java, JavaFX and beyond…
-
Exportando dados para Excel em Java
11 de maio de 2009
Hoje vamos parar um pouco de falar sobre o C# e trazer um código que será muito útil em alguns momentos do desenvolvimento em JAVA.
Basicamente o que o código abaixo faz é adicionar o conteúdo do ResultSet em um arquivo Excel, mas se você mudar o final do código é possível exportar os dados para outros tipos de arquivos, como pdf e doc.
try { StringBuffer contenu; //// acho que seria melhor usar o StringBuilder contenu = new StringBuffer(""); ResultSet rs; rs= /// aqui você coloca o sql ResultSetMetaData rsMeta = rs.getMetaData(); for(int i = 1; i<=rsMeta.getColumnCount(); i++){ contenu.append(rsMeta.getColumnLabel(i)+"\t"); /// nesta linha imprime somente os nome dos campos da tabela } contenu.append("\n"); // e temos que colocar todos os dados no StringBuffer rs.beforeFirst(); while(rs.next()){ for(int i = 1; i<=rsMeta.getColumnCount(); i++){ contenu.append(rs.getString(i)+"\t"); /// aqui mostra todos os dados } contenu.append("\n"); } //fim do while //agora, salvando o StringBuffer no arquivo FileWriter excelFile = new FileWriter("myResultSet.xls"); // nome do arquivo excelFile.write(new String(contenu)); //aqui ele passa a String para salvar excelFile.close(); } catch (Exception ex) { ex.printStackTrace(); }
Boa sorte e até a próxima!
-
Google Java App Engine
16 de abril de 2009
Aproveitando o tema do post anterior. Se você estiver interessado em aprender Java, esta notícia vai lhe interessar. Esta semana o Google ouviu os desenvolvedores java e lançou o Google App Engine com suporte a Java.
Para quem não conhecia (ou não sabia) o AppEngine tinha somente suporte ao Python, mas agora qualquer javeiro pode fazer deploy de servlets nos servidores do Google. Falando rapidamente sobre o que o Google disponibilizou:
* Plugin de desenvolvimento para eclipse: o Google disponibilizou um plugin com suporte a criação de projetos do GWT e já com todas as bibliotecas (e interfaces dos serviços) que pode-se utilizar no AppEngine. Também existe um botão no estilo “one-click-deploy” que permite a publicação da app direto nos servidores do Google.
* Bibliotecas de serviços: como o ambiente do app engine tem uma série de limitações (como várias restrições na lib IO) para garantir o uso partilhado dos servidores, o google disponibilizou algumas bibliotecas para fazer coisas bem comuns em app web, como mandar email, editar imagens, pegar conteúdo de urls, uso servidores de cache, etc.
* Suporte a agendamento de tarefas: para aquelas tarefas básicas como atualizar a base de dados, limpar o cache, mandar emails diários, etc. Funciona assim: você cria e cadastra um servlet que deverá fazer a tarefa desejada; depois você edita um arquivo que vai ficar no diretório da sua app com as configurações de tempo, intervalos, prazo, etc…
* JDO e JPA como interface do BigTable: parece que ficou fácil guardar e mapear os dados do BigTable (sistema de arquivos e base de dados do Google). Agora basta colocar uma anotação no seu POJO que ele pode ser persistido na base do Google, com direito a sharding automático e sem se preocupar com questão de espaço.Então faça seu cadastro e começe a desenvolver suas aplicações. Até a próxima!
Fonte: Google App Engine Blog
-
Quer ser programador Java ?
16 de abril de 2009
Hoje não vamos postar noticias (Aleluia!!!!), vamos falar de uma coisa que sempre nos perguntam, e como somos formados em informática, mais precisamente ciências da computação, os nossos amigos ou conhecidos que querem se aventurar neste mundo, sempre perguntam: Qual é a melhor linguagem para aprender a programar? Com qual linguagem eu devo começar?
Na faculdade, alguns anos atrás todos começavamos aprendendo C/C++, antigamente iniciavam com o Pascal, atualmente ensinam Java e algumas linguagens .NET, mas qual é a melhor? Infelizmente esta pergunta não possui uma resposta. Não é possível falar que uma linguagem é melhor que a outra, ou que ela é a pior. No entanto, é possível mostrar as características, grau de dificuldade e como se aventurar no mundo do desenvolvimento de softwares.
A primeira linguagem que falaremos, como o título sugere, será o Java.
Começaremos pelo Java, pois é uma das linguagens mais utilizadas atualmente, possui muito material disponível na internet e os profissionais tem ótimos salários (o que conta muito hoje em dia).
Mas antes de aprender Java ou qualquer outra linguagem, lembre-se é fundamental ter uma boa lógica de programação, conhecemos casos de várias pessoas que tentaram aprender a programar e não conseguiram porque não tinham um raciocínio lógico. Uma vez, um colega nos disse que “lógica de programação não se aprende, você já nasce sabendo”… Discordamos totalmente, pois sempre é possível aprender tudo, desde que se tenha um pouco de dedicação. Em outras palavras, você não vai desenvolver um sistema com apenas um dia de estudo. Portanto, não espere um milagre… Estude!
Finalmente, vamos falar, resumidamente da linguagem:
O que é Java?
Java é uma tecnologia, que abrange uma linguagem de programação e um programa de execução chamado de virtual machine (máquina virtual). Quando se programa em Java, usa-se a linguagem Java em um ambiente de desenvolvimento Java para gerar um software que será executado em um ambiente de distribuição Java. Isso mesmo, tudo Java. Ah, e vale lembrar que Java é multi-plataforma, funciona em diversos sistemas operacionais.
Mas por que Java?
Antes que alguém nos crucifique, não é para seguir a risca o que dizemos aqui, você pode começar por qualquer outra linguagem.
Particularmente achamos que Java é uma das melhores linguagens para se começar (atualmente, pois o pascal esteve neste posto durante muitos anos), desde que você tenha raciocínio lógico, ou conheça um pouco de C++ (falaremos dele nos próximos tópicos). O Java é bastante intuitivo, e como já falamos, possui diversos materiais disponíveis, e não exige muito conhecimento para começar a desenvolver pequenos sistemas.
Se você possuir ao menos um conhecimento básico de inglês, terá ainda mais facilidade, uma vez que a maioria dos comandos vem do inglês.
E tem mais, quase todos os softwares necessários para utilizar Java, são gratuitos.
Por onde começar?
Para começar a aprender, é necessário definir principal: você estudará sozinho ou fará um curso? Se você for autodidata, o melhor é estudar sozinho com base nos tutoriais da internet, mas se você for uma pessoal normal, sugiro fazer um curso, por que poderá tirar suas duvidas e os professores o ajudarão em suas dificuldades. Aqui mesmo no TreinaWeb temos um curso básico para iniciantes, e mais dois cursos em desenvolvimento que vão até o avançado.
Além disso, existem vários sites / comunidades Java, onde é possível tirar dúvidas e baixar exemplos e dicas. Alguns deles são:
* www.portaljava.com.br
* www.javamagazine.com.br
* www.javafree.org
* www.guj.com.brMas lembre-se se você aprender sozinho vai demorar um pouco para se tornar um especialista, então não se desespere, de tempo ao tempo.
Por hoje é só, não se esqueça de comentar e até a próxima!
