PMD es una herramienta de análisis estático muy completa gracias al potente conjunto de reglas que posee y la posibilidad de configuración de las mismas. Pertenece al conjunto de proyectos de software libre de SourceForge.net. PMD escanea el código fuente Java y busca problemas potenciales como:
- Posibles defectos: sentencias try/catch/finally/switch vacías.
- Código muerto: variables, parámetros y métodos no utilizados.
- Código no óptimo: uso ineficiente del StringBuffer, etc.
- Expresiones innecesarias: sentencias “if” innecesarias, bucles “for” que pueden ser de tipo “while”.
- Código duplicado: el código copiado y pegado significa copiar y pegar defectos.

Figura 1. Reporte de PMD
La distribución binaria de PMD incluye dentro del archivo .jar los archivos de conjuntos de reglas (rulesets). Cada uno de estos conjuntos de reglas está compuesto por una serie de métodos, cada uno de los cuáles corresponde con una comprobación dentro del código.
PMD permite a los usuarios crear sus propias reglas con las que analizar el código fuente. De manera que si la comprobación que se quiere realizar no corresponde a ninguna de las reglas existentes en los “Ruleset”, PMD facilita dos maneras para definir nuevas reglas:
Actualmente PMD realiza el análisis de archivos fuente uno a uno. Sin embargo, como trabajo futuro, los desarrolladores de esta herramienta tienen planificado poder ejecutar PMD contra todos los archivos fuente a la vez, lo cual permitirá escribir un mayor número de reglas que detecten problemas de relaciones entre clases. En la Tabla 1 se observa un resumen de las características de PMD.
PMD permite a los usuarios crear sus propias reglas con las que analizar el código fuente. De manera que si la comprobación que se quiere realizar no corresponde a ninguna de las reglas existentes en los “Ruleset”, PMD facilita dos maneras para definir nuevas reglas:
- Mediante métodos Java.
- Mediante expresiones en XPath.
- Número de líneas y tokens repetidos.
- Archivos que contienen el fragmento repetido y línea en la que comienza el código repetido dentro de cada uno de los archivos.
- Fragmento de código repetido.
Actualmente PMD realiza el análisis de archivos fuente uno a uno. Sin embargo, como trabajo futuro, los desarrolladores de esta herramienta tienen planificado poder ejecutar PMD contra todos los archivos fuente a la vez, lo cual permitirá escribir un mayor número de reglas que detecten problemas de relaciones entre clases. En la Tabla 1 se observa un resumen de las características de PMD.
Resumen de la herramienta PMD
URL: http://pmd.sourceforge.net/
DESCRIPCIÓN: PMD realiza diversos análisis acerca de la calidad del código, mientras que CPD analiza la cantidad de código duplicado existente.
MODO DE USO:VERSIÓN: Pmd 4.0
- Descomprimir el archivo zip.
- Añadir localización del bin en el path.
- La instrucción para lanzar pmd es:
- pmd [filename|jar or zip file containing source code|directory] [report format] [ruleset file]
LICENCIA: SOFTWARE LIBRE









