Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Anlisis Esttico
Es aquella actividad que consiste en el anlisis de un objeto de prueba, por ejemplo el
cdigo fuente, requisito llevado a cabo sin ejecutar el producto software (si esto fuera
posible)
Posibles aspectos a ser comprobados con anlisis estticos :
Reglas de estndares de programacin.
Diseo de un programa (anlisis del flujo de control)
Uso de datos (anlisis del flujo de datos)
Complejidad de la estructura de un programa.
23
Aspectos generales
Todos los objetos de prueba deben tener una estructura formal.
Esto es especialmente importante cuando se utilizan herramientas de pruebas.
Con mucha frecuencia no se generan documentos formalmente.
En la prctica, lenguajes de modelado, programacin y de guin (scripting )
cumplen con la regla, de la misma forma que algunos diagramas.
El anlisis esttico de un programa mediante el uso de herramientas se desarrolla con
un esfuerzo menor que el necesario en una inspeccin.
24
Aspectos generales
Herramientas a utilizar: Compiladores y herramientas de anlisis (analizadores)
Compilador .
Detecta errores sintcticos en el cdigo fuente de un programa.
Crea datos de referencia del programa (por ejemplo lista de referencia cruzada,
llamada jerrquica, tabla de smbolos)
Comprueba la consistencia entre los tipos de variables.
Detecta variables no declaradas y cdigo inaccesible (cdigo muerto)
Analizador: trata de aspectos adicionales tales como:
Convenciones y estndares.
Mtricas de complejidad.
Etc.
25
Propsito
Detectar defectos causados por un desarrollo anmalo del cdigo (ramas muertas,
cdigo muerto, etc.)
Mtodo
Resultados
Visin de conjunto del cdigo del programa.
Las anomalas pueden ser fcilmente detectadas, los defectos se hacen evidentes.
Bucles abandonados por saltos.
Ramas muertas.
Retornos mltiples.
26
Propsito
Deteccin de anomalas en el flujo de datos con la asistencia de los diagramas de flujo de control
respecto a las secuencias del flujo de datos.
Beneficios
Deteccin de anomalas en el flujo de datos.
Se puede detectar fcilmente la localizacin exacta de defectos.
Es un buen complemento para otros mtodos de pruebas.
Desventajas
Limitado a un rango reducido de tipos de defectos.
Mtodo
Una variable X puede tener los siguientes estados a lo largo de la ejecucin de un programa.
X se encuentra definida (d): un valor ha sido asignado a la variable X, por ejemplo X=1
X se encuentra indefinida (u): no ha sido asignado valor alguno a la variable X
X est referenciada (r): ha sido tomada una referencia, el valor de X no cambia (Ej. x>0))
X no ha sido utilizada (e): X no ha sido referenciada ni en lectura ni en escritura.
El flujo de datos de una variable puede ser expresado como una secuencia de estados : d, u, r y e
Si una de estas secuencias contiene una sub-secuencia que no tiene sentido, entonces ha tenido
lugar una anomala en el flujo de datos.
27
x=y+z
x se define, y, z se utilizan
28
n := 0
read (x)
n := 1
while x > y do
begin
read (y)
write( n*y)
x := x - n
end
29
fcilmente corregido
Anomala u-r
{
Int Help:
if (Min > Max)
{
Max = Help
Max = Min
Help = Min;
}
Int Help:
if (Min > Max)
{
Help = Max
Anomala d-d.
Max = Min
Min = Help;
}
End MinMax;
Anomala d-u
End MinMax;
30
Definicin de macros
Buffsize: 1000
Mailboxmax: 1000
IF Buffsize < Mailboxmax THEN
Error-Exit
ENDIF
31
32
V(G) = e n + 2p
33
V(G) = e n + 2p
Aristas (e)= 8
Nodos (n) = 7
P=1
V(G) = 3
34
35
PMD
CPD
Checkstyle
FindBugs
RATS
YASCA
Sonar
36
Resumen
Anlisis esttico
Con el uso de las herramientas para la realizacin de anlisis esttico (compiladores,
analizadores) el cdigo del programa puede ser objeto de inspeccin sin ser ejecutado.
Con el uso de las herramientas se puede realizar el anlisis esttico de un programa
con un esfuerzo menor que el necesario para una inspeccin.
37