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...”.
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.
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:
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.
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.
Figura 5: Checkstyle acusa a falta de comentários javadoc
Figura 6: Checkstyle acusa a falta de espaços em branco antes e após o !=
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