Introdução

O processo de Verificação e Validação da Engenharia de Software se preocupa com que o software cumpra as suas especificações e que atenda às necessidades dos usuários e clientes. A Verificação de Software é responsável por averiguar se o software está de acordo com a sua especificação, ou seja, ela verifica se o que foi especificado é o que está implementado. Basicamente o processo de verificação responde a pergunta: "Estamos construindo certo o produto?". O processo de Validação por sua vez visa assegurar que o software atende às necessidades dos usuários. Assim, o processo de Validação responde a pergunta: "Estamos construindo o produto certo?".

O processo de Verificação e Validação pode ser feito através de inspeções de código (estática) ou testes de software (dinâmica). A inspeção de software consiste na análise da documentação e código fonte, porém também pode ser auxiliada por ferramentas de depuração.

Atualmente as equipes não fazem mais análise de código manualmente e sim utilizando ferramentas automatizadas. Neste artigo veremos como pode-se fazer a análise de código fonte através do auxilio de uma ferramenta chamada Checkstyle originalmente criada por Oliver Burn em 2001 e que hoje é mantida por um time de vários desenvolvedores ao redor do mundo. A ferramenta será melhor descrita nas seções a seguir.

Checkstyle

Checkstyle é um analisador estático de código para checar se o código fonte está de acordo com as regras de codificação. Esta ferramenta de código fonte aberto ajuda nas boas práticas de programação na qual melhora-se a qualidade do código, re-usabilidade, clareza, entre outros fatores. O Checkstyle se preocupa com a apresentação do código, portanto não analisa se a lógica do seu código está correta.

É possível verificar, por exemplo:

  • Comentários Javadoc;
  • Cabeçalhos obrigatórios;
  • Convenções nos nomes dos atributos e métodos;
  • Limite no número de parâmetros;
  • A utilização dos pacotes importados nas classes;
  • Os espaços entre caracteres;
  • Boas práticas no desenvolvimento de classes;
  • Código duplicado;
  • E muitos mais.

Portanto, pode-se verificar que o Checkstyle garante que o seu código atende a padrões e garante que há um bom nível de codificação.

Utilização

O Checkstyle pode ser usado em projetos nos quais se quer garantir um certo padrão de codificação. Sabe-se que cada desenvolvedor tem um jeito de programar, alguns utilizam mais espaços, outros menos, alguns preferem identar de um jeito, outros tem a sua maneira. Assim, o Checkstyle mantém um padrão para todos seguirem, sem preferir o padrão de um ou de outro desenvolvedor que poderia gerar atritos na equipe.

Outra utilização bastante vista do Checktyle no mercado de trabalho são nos projetos que terceirizam o desenvolvimento de uma parte do software. Assim, utiliza-se como um requisito a utilização da ferramenta Checkstyle em uma determinada versão. Isso garante que o software tenha um certo padrão de codificação como um todo. Um exemplo real dessa utilização foi uma empresa que dividiu seu software em seis módulos e terceirizou todos eles em diferentes empresas. Assim, cada empresa tinha o seu próprio módulo para desenvolver. Após a primeira versão na entrega dos seis módulos a empresa que terceirizou o serviço constatou que havia um sério problema no padrão de codificação. Cada empresa fez a codificação da sua maneira, sem um padrão. Para segunda versão a empresa requisitou que todas as empresas terceirizadas passassem a usar o Checkstyle para atingir um certo padrão no código. Após isso a empresa reconheceu os benefícios que a utilização do Checktyle representou.

O Checkstyle vem com algumas regras previamente definidas para estabelecimento de padrões de codificação. No entanto, ainda pode-se customizar algumas regras para atender as suas necessidades. Quanto mais você refinar as regras, mais verdadeiramente automatizada será a inspeção do seu código.

Instalação

Checkstyle é um arquivo JAR que pode rodar na Java VM ou ainda como uma task do ANT.

Segue abaixo a instalação passo a passo do plugin Checkstyle no seu ambiente de desenvolvimento Eclipse.

Primeiramente vá no menu Help e em seguida selecione a opção “Install New Software...”.

Primeiro passo na instalação do Checkstyle

Figura 1: Primeiro passo na instalação do Checkstyle

Na janela que foi aberta digite o endereço do site do Checkstyle (http://eclipse-cs.sf.net/update/). Após isso aparecerá uma opção para marcar o Checkstyle.

Inserindo o site para a instalação do Checkstyle

Figura 2: Inserindo o site para a instalação do Checkstyle

Marque a opção Checkstyle e clique em Next. Após isso a instalação será iniciada. O usuário deve aguardar alguns minutos até a operação ser completada como pode ser visto na tela abaixo:

Finalizando a instalação do Checkstyle

Figura 3: Finalizando a instalação do Checkstyle

Por fim dê um Next e marque a opção “I accept the terms of license agreement”. Clique em Finish para completar a instalação.

Utilização

Para utilizar o Checkstyle é muito simples, basta ir no projeto em que deseja-se fazer a análise estática e clicar com o botão direito do mouse e ir no menu Checkstyle e selecionar a opção desejada.

Executando o Checkstyle

Figura 4: Executando o Checkstyle

A opção “Check Code With Checkstyle” apresenta um relatório completo de todas as anomalias existentes no projeto selecionado. Na figura abaixo tem-se a existência de algumas anomalias para o projeto selecionado.

Checkstyle acusa a falta de comentários javadoc

Figura 5: Checkstyle acusa a falta de comentários javadoc

Checkstyle acusa a falta de espaços em branco antes e após o !=

Figura 6: Checkstyle acusa a falta de espaços em branco antes e após o !=

Checkstyle acusa a falta de chaves no if

Figura 7: Checkstyle acusa a falta de chaves no if

Como foi visto anteriormente o Checkstyle faz muito mais do que apenas avaliar coisas básicas no seu código como espaçamento, quebras de linha, falta de chaves e javadoc. Checkstyle também consegue capturar códigos duplicados e outras anomalias que você podem passar despercebidas. O único jeito de realmente tirar o máximo proveito da ferramenta é utilizando bastante ela, fazendo parte do seus projetos e aplicando sempre que possível. Estabeleça padrões com uma ferramenta automatizada e veja os benefícios que você pode ter no seu projeto.

Conclusão

Neste artigo demonstrou-se os conceitos, funcionamento, instalação e utilização da ferramenta de análise estática de código Checkstyle. Essa ferramenta ajuda os desenvolvedores e aos projetos a estabelecerem um padrão de qualidade nos seus códigos. Fazendo isso de forma automatizada podemos colher os benefícios de não nos preocuparmos com isso e se atermos mais em coisas que exigem mais do programador como o próprio negócio do cliente. Além disso, o Checkstyle é utilizado por diversas empresas que terceirizam seus serviços para manter um padrão de qualidade no seu código.

Bibliografia

  • Engenharia de Software - 9ª Edição 2011 - Ian Sommerville
  • Emanuel Texeira, João Antunes, Nuno Neves. Avaliação de Ferramentas de Análise Estática de Código para Detecção de Vulnerabilidades.
  • SourceForge. http://sourceforge.net/projects/checkstyle