PMD y la calidad estática del código

RECU-0374 (Recurso Herramienta)

Descripción

PMD es una herramienta de calidad de código encargada de validar los estándares de construcción de un desarrollo. Es decir, chequea la sintaxis del código fuente que ha sido desarrollado, encontrando las ocurrencias de un determinado problema que haya sido previamente configurado para ser detectado.

PMD y CPD (Copy and Paste Detection)

Una de las pruebas que se pueden automatizar con esta herramienta es la detección de trozos de código que hayan sido copiados de un método a otro o en distintas clases. El "copy and paste", es decir, el programar copiando y modificando código existente en lugar de crear soluciones genéricas, es lo que se llama un antipatrón, y su práctica es fuente de numerosos errores.

Para realizar estas pruebas tenemos el plugin de PMD, existente en Maven2 y eclipse, en el que se incluye la utilidad de CPD (Copy and Paste Detection). Para conocer detalles sobre el reporting de PMD consultar el siguiente enlace, donde también se puede encontrar los detalles de como invocar al plugin PMD desde cualquier proyecto.

Uso en MADEJA

PMD es una herramienta muy útil para verificar la calidad del código fuente entregado. Existen varias alternativas para su uso:

  • Desde Maven: se debe utilizar el plugin de PMD para Maven, para lo que se debe incluir el siguiente fragmento en el fichero pom.xml:

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-pmd-plugin</artifactId>
        <configuration>
           <linkXref>true</linkXref>
           <sourceEncoding>UTF-8</sourceEncoding>
           <minimumTokens>100</minimumTokens>
           <targetJdk>1.5</targetJdk>
        </configuration>
    </plugin>

    Por defecto se aplican todas las reglas PMD, pero se pueden excluir o cambiar la severidad de las que se considere. Para ello se deben modificar los ficheros xml de definición y excluir o cambiar el nivel de cada prueba. En ese caso al fichero pom.xml se debe hacer referencia expresa al conjunto de ruleset que debe aplicar. Se puede consultar mas datos sobre el reporting obtenido aquí.

  • Desde Sonar: Sonar aporta métricas de calidad, basadas en un conjunto de reglas configurables en formado PMD. Para consultar más datos pulsar aquí.

Contenidos relacionados

Recursos
Área: Verificación » Verificación de Entrega Software
Código Título Tipo Carácter
RECU-0370 Reporting de Maven2 Herramienta Recomendado
RECU-0372 Sonar Herramienta Recomendado
RECU-0375 Plugin de PMD para Eclipse Herramienta Recomendado
RECU-0376 Generación de Reglas para PMD con XPath Herramienta Recomendado