Documente Academic
Documente Profesional
Documente Cultură
"El anlisis esttico del cdigo es el proceso de evaluar el software sin ejecutarlo"
Es una tcnica que se aplica directamente sobre el cdigo fuente tal cual, sin transformaciones previas ni cambios de ningn tipo. La idea es que, en base a ese cdigo fuente, podamos obtener informacin que nos permita mejorar la base de cdigo manteniendo la semntica original.
1.-DEFINICIN
Checkstyle es una herramienta de anlisis esttico de cdigo que es altamente configurable y puede soportar casi cualquier estndar de codificacin Pertenece al conjunto de proyectos de software libre de SourceForge.net. Esta herramienta se puede integrar entornos IDE como plugin o bien trabajar como programa aparte.
3
2.-FUNCIONALIDAD
Checkstyle se utiliza para comprobar que el cdigo analizado cumple con una serie de reglas de estilo conforme a las convenciones de codigo de java elaboradas por sun microsystems(Sun Code Conventions).http://www.oracle.com/technetwork/j ava/codeconv-138413.html. Los chequeos estndar de CheckStyle se aplican al estilo general de codificacin Java y no necesitan de libreras externas. CheckStyle define un conjunto de mdulos con estructura jerrquica dentro de cada uno de los cuales se agrupan los chequeos relacionados 4 entre si (convenciones de nombrado, violaciones de tamao, modificadores, etc.).
2.-FUNCIONALIDAD
Si las reglas de validacin proporcionadas por CheckStyle no cubren nuestras necesidades, podemos crear nuestras propias reglas de validacin. Para ello CheckStyle proporciona una herramienta que nos muestra la estructura en rbol de una clase Java (Figura 1) permitindonos identificar cada uno de sus nodos y utilizarlos para describir la nueva regla.
2.-FUNCIONALIDAD
CheckStyle no analiza el cdigo fuente del programa de manera directa, sino que transforma el cdigo fuente en una representacin en rbol que refleja la estructura del fichero. Para realizar esta funcin CheckStyle utiliza un parseador / generador llamado ANTLR que generar el rbol AST (Abstract SyntaxTree). Finalmente, CheckStyle necesita de un archivo de configuracin donde se especifiquen las reglas de validacin que deben comprobarse as como los parmetros especficos de estas.
8
Programas a instalar.
Instalar programa CheckStyle 5.3. Descargar checkstyle-5.3-bin.zip pgina oficial: http://sourceforge.net/projects/checkstyle/files/ Cdigo abierto de SourceForge.net Instalar Plugin para eclipse CheckStyle 5.3 Menu Eclipse: Help ->Install New Software
10
11
12
15
16
Configuracin Inicial.
1. Configuracin Inicial. Reglas implementan estndares cdigo Sun code Conventions.En configuracin no pueden modificarse. Menu Eclipse : ->Checkstyle Window -> Preferencies
17
18
Seleccionar Configure.
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
Este ejemplo avisa de una clase con un mtodo 'main' que no tiene definido un constructor (por tanto tan solo tiene el constructor por defecto).
41
42
5.- LIMITACIONES
1. Metricas 2. Comprobaciones de seguridad 3. Generacion de test unitarios 4. Analisis de dependencias entre paquetes 5. Codigo similar 6. Codigo con pinta de ser erroneo 7. Errores potenciales (dodgy) 8. Malas prcticas
5.- LIMITACIONES
1.Metricas Engloba tcnicas para realizar comparativas o para la planificacin de proyectos de desarrollo. Proporciona una medicin cuantitativa de la complejidad lgica de un programa. 2.Comprobaciones de seguridad 3.Generacion de test unitarios 4.Analisis de dependencias entre paquetes Marca las dependencias cclicas.
5.- LIMITACIONES
5.Codigo similar Detecta cdigo duplicado. En el caso de que en un fragmento de cdigo tan solo cambie el nombre de una variable. 6.Codigo con pinta de ser errneo Ejemplos: Hacer un cast imposible, que siempre va a lanzar una classcastexception Aparentes bucles infinitos
5.- LIMITACIONES
6.Errores potenciales (dodgy) Ejemplos: Un mtodo que utiliza el mismo cdigo para dos ramas distintas de un if. Puede ser un copy/paste mal hecho. 7.Malas prcticas Ejemplos: Comparar Strings utilizando == o != en vez de .equals() Comprobaciones en clases que definen alguno de los mtodos equals() o hashCode()
6.- CONCLUSIN
El 80% del tiempo dedicado al cdigo se hace en el mantenimiento. El mantenimiento casi nunca lo realiza el autor original. Las convenciones ayudan a entender el cdigo ms rpido.