Blog do TreinaWeb
Dicas, notícias e informações sobre cursos, programação, webstandards e desenvolvimento web.Arquivo da Categoria ‘Desenv. Desktop’
-
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
-
Microsoft + Yahoo, o que muda pra você?
6 de agosto de 2009
Este post já é um pouco antigo(dias), pensamos tê-lo publicado, mas estava nos RASCUNHOS o_O. De qualquer forma , aí vai =)
Caso você não tenha sido abduzido e ter ficado os últimos 2 anos fora da Terra, sabe que a Microsoft e Yahoo, estão namorando a um bom tempo uma aquisição, fusão ou parceria. E depois deste tempo todo, a parceria finalmente saiu.
Na última quarta-feira a Microsoft anunciou que fechou um acordo com o Yahoo, onde o Bing se tornaria o buscador padrão de todas as páginas do Yahoo e filiados. Mais precisamente o acordo inclui os seguintes termos:
- Duração de 10 anos, podendo ser prorrogado por mais 10.
- A Microsfot terá acesso a tecnologia do Yahoo Search enquanto o acordo for vigente, e poderá usar quaisquer tecnologias no Bing.
- O Bing será o único algoritmo de search e anúncios dos sites do Yahoo.
- Os Links patrocinados serão gerenciados pelo Microsoft AdCenter.
- Cada empresa manterá usa marca e equipes atuando separadamente.
- A Microsft destinará parte da receita dos anúncios patrocinados ao Yahoo, sendo que nos primeiros 5 anos este percentual será de 88%.
- O acordo protege a privacidade do consumidor, limitando os dados compartilhados entre as empresas ao mínimo necessário para operar e melhorar a plataforma.
Com este acordo muito se discute, sobre o que irá acontecer com mercado de busca. Como pode demorar até 24 meses para que a integração seja concluída, não veremos seus resultados de imediato, mas alguns analistas apresentaram suas ideias:
- Vale investir em SEO no Bing, pois suas buscas são mais ricas e organizadas, o que deve atrair os usuários.
- Apesar do pequeno market share (atualmente em 8% nos EUA, pode chegar a 28% com a parceira), o Bing gera mais conversões e cliques nos anúncios.
- Com a parceria e o aumento de market share, o Bing pode atrair mais spam, o que pode afetar usa relevância.
- Espera-se que muitos anunciantes comecem a utilizar o Bing.
- Agora todos começam a explorar as ferramentas de análise SEO do Bing (Bing Webmaster Tools)
- O registro de negócios locais no diretório Bing se torna importante já que o buscador destaca as listas locais em suas buscas.
- O Bing passa a contar com a valiosa base de dados do Yahoo para customizar seu serviço por segmento-alvo e tipo de usuário.
- Muitos usuários e clientes do Yahoo! nos EUA temem que a empresa desative recursos de busca como diretório, Delicious, maps, etc.
- Como o Yahoo! manterá certa independência, especula-se que a sua busca siga critérios um pouco diferentes das buscas feitas via Bing.
Se isto realmente irá acontecer não sabemos, mas a dica do momento é preste mais atenção ao Bing e veja no que ele pode ser útil para você.
Até a próxima!
-
Como acompanhar as métricas de mídia social, e qual a importância disso?
6 de julho de 2009
Atualmente é muito importante saber como uma/sua marca está sendo tratada nas mídias sociais. Pesquisas recentes mostraram que os brasileiros utilizam as redes sociais para pesquisar sobre os produtos que irão comprar.
Acompanhar este “buzz”, sem a ajuda de nenhuma ferramenta é muito complicado. Mas existe uma forma de “desenvolver” sua próxima ferramenta, com uma ajuda de diversos feeds RSS, o Google Docs e muita imaginação.
Para começar, você precisará de uma conta do Google e precisará saber o que você quer acompanhar. Quer acompanhar seu Twiiter? Pegue um feed que segue seus retweets ou qualquer hash tag que você utiliza. Deseja monitorar um produto mencionado em vídeos? Crie um feed na pesquisa avançada do Youtube.
Depois de definir o que quer monitorar e criar os feeds, vá no Google Docs, crie uma planilha para a marca/empresa/produto que vocês está pretendendo acompanhar.
Depois, adicione uma aba para cada mídia que está monitorando. Por exemplo retweets Twitter, YouTube, blog, etc; Agora é necessário se familiarizar com as funções e filtros do Google Doc, mas não se desespere, por que a função mais utilizada será a ImporteFeed, que utilizaremos assim:
= ImportFeed ( “colocar a url do feed aqui”, “titulo”, true, 15)
Nela, você está definindo o feed, o título dos itens, se quer exibir os cabeçalhos dos feeds e quantas entradas devem ser incluídas na planilha. Outros itens comuns inclusos são:
- items url
- items create
- items summary.
- Há outros itens, mas estes já cobrem o que pretendemos.Para você entender como funciona, copie e cole a função abaixo na sua planilha:
=ImportFeed (“http://search.twitter.com/search.atom?q=freshbooks+followfriday”, “items title”, true, 15)
Voltando nos itens acima mencionados, além de “items title”, que mostra apenas o título, houve também “items url”, “items create,” e “items summary”. Eles são muito simples, “items url” puxa o URL de cada entrada do feed. Isto significa que você verá a URL de cada post, twit, vídeo, etc. O “items create”, mostra a data de publicação de cada item. E o “itens summary” mostra um resumo, sinopse ou descrição de cada item, bem como o conteúdo do feed.
Agora que você sabe o que pode exibir, configure cada feed e determine o que você deseja ver.
Você pode manter a sua planilha simples ou configurar ao seu gosto, use a imaginação e veja as funções do Google Docs.
-
Métodos Asc e Chr no C#
20 de maio de 2009
Hoje faremos um artigo pequeno, porque estamos pensando em mudar algumas coisas, então aguardem novidades =)
Para aqueles que desenvolviam no VB6, Delphi ou qualquer linguagem desktop que utilizava os métodos Asc e Chr, e sentiram falta destas funções no C#. Seus problemas acabaram !!!
Mostraremos como criar estes métodos no C#.
public char Chr(int codigo) { return (char)codigo; } public int Asc(string letra) { return (int)(Convert.ToChar(letra)); }
Os métodos acima fazem a mesma coisa que os métodos originais.
Até a próxima!
-
Código obsoleto em .NET
7 de maio de 2009
Quem trabalha ou já trabalhou em projetos de grande porte ou mesmo em projetos que duram longos períodos, certamente já encontrou algum trecho de código ou função antiga, que não tem mais utilidade para as novas funcionalidades do sistema. No entanto aquele estagiário que chegou agora não sabe disto e insiste em usar a função antiga (sempre o estagiário). Você já deve ter pensando em algumas formas de evitar isto! Mas você sabia que este é um recurso da própria plataforma .NET? Não? Então acompanhe abaixo:
No .NET existe o atributo Obsolete, que adiciona uma marcação na classe para tornar um código obsoleto, e informa ao programador estagiário, qual novo código deverá ser usado.
Veja o exemplo:
[Obsolete ("Utilize pesquisaUsuarios()")] public DataSet listaUsuarios() { //Código antigo return new DataSet(); } public DataSet pesquisaUsuarios() { //Código novo return new DataSet(); }
Quando o programador for utilizar o método listaUsuarios(), ele será avisado que o método é obsoleto e que pode usar o método pesquisaUsuarios() como alternativa.
Mas caso o programador seja um noob e continuar utilizando o método antigo, você pode forçá-lo a usar o novo método.
[Obsolete ("Utilize pesquisaUsuarios()", true)] public DataSet listaUsuarios() { //Código antigo return new DataSet(); } public DataSet pesquisaUsuarios() { //Código novo return new DataSet(); }
Note que agora, passamos como parâmetro o boleano true, neste caso, quando o noob programador for utilizar o método antigo aparecerá uma mensagem de erro, com isto ele será obrigado a usar o novo método.
Isto pode ser um pouco radical, mas facilita a manutenção do código e mantém tudo sempre atualizado.
Até a próxima.
-
Quer ser programador Cobol?
27 de abril de 2009

Continuando a nossa série de artigos para quem quer se tornar um programador, hoje falaremos de uma linguagem antiga (existe desde o início dos anos sessenta), mas que ainda não morreu. Para quem ainda não percebeu (você não leu o título do post?) hoje falaremos do Cobol.
Mas então, o que é Cobol?
Cobol é a sigla de Common Business Oriented Language (Linguagem Orientada aos Negócios) que foi criada em 1959, durante o CODASYL (Conference on Data Systems Languagem), um comitê que foi criado para recomendar as diretrizes de uma linguagem para negócios. Este comitê era composto de seis fabricantes de computadores e três órgãos governamentais dos EUA.
O Cobol foi baseado nas linguagens FLOW-MATIC e COMTRAN e a versão final da linguagem saiu em janeiro de 1960 com o nome de Cobol 60.
O Cobol foi desenvolvido num período de seis meses e continua ainda em uso depois de mais de 40 anos, vai completar 5 décadas no próximo ano. Quase na hora de se aposentar, ou não!
Mas por que Cobol?
O Cobol é uma linguagem que nasceu para ser utilizada por empresas, isto é notado até no significado do nome, além disso foi criado para ser estável, onde é principalmente aplicado em aplicações críticas, ou seja, que necessitam funcionar 99,9999…% do tempo. Agora pense, se você tem uma aplicação que funciona perfeitamente, quase sem pausa, por que você vai mudar? E este é o principal motivo que o Cobol ainda existe até hoje.
Vamos a outro pensamento: Se você tem uma linguagem de quase 50 anos, qual é a idade dos programadores desta linguagem? Quem pensou em pessoas de idade, acertou. Atualmente um bom programador de Cobol está em falta, porque todos estão se aposentando, ou já se aposentaram. Já ouvimos dizer que o programador Cobol é o único que começa e se aposenta trabalhando com a mesma linguagem. Inclusive, algumas empresas buscaram profissionais aposentados, nos últimos anos, para suprir a falta de mão de obra.
Se você ainda está em duvida se quer ou não ser um programador Cobol, então está faltando, mais uma dica: Pelo simples fato de que os profissionais Mainframe estão ou em breve estarão em falta, as empresas dificilmente deixam um bom funcionário sair da empresa. Por este motivo, os bons programadores/analistas Cobol são muito bem remunerados e disputadíssimos entre as empresas.
Agora vamos a parte chata, é muito difícil aprender Cobol, para ficar com mesmo é necessário aprender todo o ambiente de um Mainframe, como sistema operacional, CICS, JCL, etc, pois a maioria das aplicações rodam nestes sistemas. Além disso, é necessário conhecer o banco de dados DB2 que é o banco de dados mais utilizado nos MainFrames (ou os arquivos seqüenciais, como o VSAM, por exemplo).
Mas o sacrifício compensa no final.
Por onde começar?
Curso de Cobol do TreinaWeb.
Outra dica para aprender e se familiarizar com a linguagem, é pegando dicas com colegas de trabalho.
Além disso, a técnica de desenvolvimento em Cobol é um pouco diferente da que um programador de C#, Delphi, PHP, etc está acostumado. De qualquer forma, é interessante que saiba uma destas linguagens antes do Cobol, e depois disto, estude algum bando de dados, pode ser qualquer um, mas de preferência ao DB2. Por ultimo e mais importante, estude o ambiente Mainframe (CICS, VSAM, SO, etc). Só então, depois de aprender tudo isto, vem a parte fácil: Aprender a linguagem Cobol.
Links úteis:
- http://ibmmainframes.com/index.php
- http://www.cobug.com/cobug/docs/manuals0010.html
- http://www.cobug.com/cobug/docs/tutorials0032.html
- http://www.cobolstandards.com/
- http://www.infogoal.com/cbd/cobol.htm
- http://www.csis.ul.ie/cobol/default.htm -
Diretrizes de programação
22 de abril de 2009
Hoje falaremos de um item muito importante para quem é programador ou para quem quer ser um programador, que é Guidelines ou simplesmente diretrizes de programação.
As diretrizes de programação são regras que você deve seguir quando está desenvolvendo para deixar seu código mais legível e facilitar a vida de quem futuramente for dar manutenção no seu código.
PascalCasing
Propriedades e métodos devem seguir a convenção PascalCasing, onde a primeira letra de cada palavra é maiúscula.Exemplo:

CamelCasing
Já os parâmetros e variáveis deve seguir a convenção CamelCasing, onde a primeira letra da primeira palavra deve ser minúscula e das demais palavras devem ser maiúsculas.Exemplo:

Veja que tanto as variáveis e o parâmetro da função estão seguindo as regras do CamelCasing.
Verbos
Segundo as diretrizes de programação todos os métodos devem iniciar com verbos, por exemplo: use Add, se o método for adicionar algo; Set, se for atribuir; e Get, se for pegar algo.Exemplo:

Também é indicado que propriedades booleanas devem ser iniciadas com Has, Can ou Is.
Exemplo:

Uma coisa que vocês devem ter reparado é outra indicação, ou seja, sempre renomeie os métodos, propriedades, variáveis, enfim todos os nomes devem estar em inglês, por que se um nerd chinês outro funcionário ver o seu código, conseguirá dar manutenção nele.
Estas são apenas algumas diretrizes de nomenclatura que devem ser aplicadas para qualquer linguagem. E estas regrinhas simples deixam um código mais legível e fácil de entender.
Sempre utilizem estas regras, quem for dar manutenção no seu código agradece. Até a próxima!
-
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!
-
Dependências de uma Tabela no Microsoft SQL Server 2005
31 de março de 2009
Neste primeiro artigo técnico, vamos falar sobre as dependências da tabela.
Mas no que isto pode lhe ajudar? Vou usar de exemplo o que aconteceu comigo.
Em alguns momentos no desenvolvimento é necessário alterar a estrutura uma tabela que já está criada, procedimento normal que sempre acontece comigo. Mas após esta alteração, vem a pergunta: o que vai acontecer com todos os procedimentos (procedures), visões (views), gatilhos (triggers) e outras tabelas (tables) relacionadas.
Normalmente, o que você faria? Poderia ir de item em item, alterando-os para adaptá-los para a alteração feita na tabela. Porém, por ser um procedimento braçal, quase sempre você vai acabar esquecendo-se de algum item e então terá que voltar nele para fazer a alteração.
Há pouco tempo descobrimos uma forma mais fácil de saber quais são os itens que possuem dependência com a tabela.
Existe uma função no Microsoft SQL Server 2005 que exibe todas as dependências de uma tabela. Basta clicar na tabela com o botão direito do mouse e selecionar a opção “View Dependencies”.

View Depencencieas
Com isto ele irá listar todas as dependências da tabela.

Dependências da Tabela
É algo simples, mas que nos ajuda muito, esperamos que ajude a vocês também. Até a próxima!
