Está en la página 1de 17

Capítulo 1

Verificación y Validación

Asegurando que un sofware satisface las


necesidades del usuario

(continuación)
Facultad de Ciencias y Tecnología – Departamento de Informatica
Material Elaborado por el Prof. Lic. Julio César Alsina Arevalos
Calidad del Software – Presentación de la Segunda Clase 1
Análisis Estático Automatizado
_________________________________________________________

 Los analizadores estáticos son herramientas


de software para el procesamiento
de texto fuente
 Analizan el texto del programa e intentan
descubrir condiciones potenciales de error y
las ponen a disposición del equipo de V&V
 Es muy efectivo como soporte para las
inspecciones. Es un suplemento pero no
puede reemplazar el proceso de inspección

Facultad de Ciencias y Tecnología – Departamento de Informatica


Material Elaborado por el Prof. Lic. Julio César Alsina Arevalos
Calidad del Software – Presentación de la Segunda Clase 2
Chequeos de Análisis Estático
_________________________________________________________
Clase de falta Chequeo de Análisis estático
Fallas de datos - Variables utilizadas antes de su inicialización
- Variables declaradas pero nunca utilizadas
- Variables asignadas dos veces pero nunca utilizadas entre
asignaciones
- Posibles violaciones de límites de arrays
- Variables no declaradas
Fallas de control - Código no encontrado
- Segmentos incondicionales dentro de bucles
Fallas de entrada/salida - Variables de salida dobles
Fallas de interfase - No coinciden los tipos de parámetros
- No coinciden los números de parámetros
- Resultados de función sin utilizarse
- Funciones y procedimientos que no son llamados
Fallas de administración de - Punteros no asignados
almacenamiento - Punteros aritméticos

Facultad de Ciencias y Tecnología – Departamento de Informatica


Material Elaborado por el Prof. Lic. Julio César Alsina Arevalos
Calidad del Software – Presentación de la Segunda Clase 3
Etapas del Análisis Estático
_________________________________________________________

 Análisis de Control de Flujo. Chequea los bucles


con salidas o entradas múltiples, encuentra
código perdido, etc.
 Análisis de uso de datos. Detecta variables no
inicializadas, variables escritas dos veces sin una
intervención asignada, variables que fueron
declaradas pero nunca fueron usadas, etc.
 Análisis de Interfase. Chequea la consistencia de
declaraciones de rutinas y procedimientos y sus
usos.

Facultad de Ciencias y Tecnología – Departamento de Informatica


Material Elaborado por el Prof. Lic. Julio César Alsina Arevalos
Calidad del Software – Presentación de la Segunda Clase 4
Etapas del Análisis Estático
_________________________________________________________

 Análisis del flujo de información. Identifica las


dependencias de variables de entrada y salida. No
detecta anomalías, pero resalta información para la
inspección o revisión de código.
 Análisis de rutas. Identifica las rutas utilizadas en el
programa y analiza las declaraciones ejecutadas en
esas rutas. Potencialmente útil en el proceso de
revisión.
 Estas etapas generan gran cantidad de información,
que debe ser usada con cuidado

Facultad de Ciencias y Tecnología – Departamento de Informatica


Material Elaborado por el Prof. Lic. Julio César Alsina Arevalos
Calidad del Software – Presentación de la Segunda Clase 5
Análisis Estático LINT
_________________________________________________________
138% more lint_ex.c  Listar programa
#include <stdio.h>
printarray (Anarray)
 Define función con 1 parametro
int Anarray;
{
printf(“%d”,Anarray);
}
main ()
{
int Anarray[5]; int i; char c;
 Se llama función c/3 parametros
printarray (Anarray, i, c); Variables i y c declaradas
printarray (Anarray) ;
}
no reciben valor y result.no se usa

139% cc lint_ex.c
 Compilación sin errores
140% lint lint_ex.c  Lint SI DETECTA ERRORES
lint_ex.c(10): warning: c may be used before set  Variables usadas sin inicializar
lint_ex.c(10): warning: i may be used before set
printarray: variable # of args. lint_ex.c(4) :: lint_ex.c(10)  #Argum. dif.a los declarados
printarray, arg. 1 used inconsistently lint_ex.c(4) :: lint_ex.c(10)
printarray, arg. 1 used inconsistently lint_ex.c(4) :: lint_ex.c(11)
printf returns value which is always ignored

Facultad de Ciencias y Tecnología – Departamento de Informatica


Material Elaborado por el Prof. Lic. Julio César Alsina Arevalos
Calidad del Software – Presentación de la Segunda Clase 6
Utilización del Análisis Estático
_________________________________________________________

 Particularmente valioso cuando un lenguaje


como por ej. C es utilizado, el cual tiene un
tipeo débil y por lo tanto varios errores pueden
no ser detectados por el compilador
 Menos efectivo en términos de costos para
lenguajes como Java, que tienen fuertes
controles de tipeo y pueden por lo tanto,
detectar varios errores durante la compilación

Facultad de Ciencias y Tecnología – Departamento de Informatica


Material Elaborado por el Prof. Lic. Julio César Alsina Arevalos
Calidad del Software – Presentación de la Segunda Clase 7
Desarrollo de Software de ‘Sala Limpia’
_________________________________________________________

 El nombre se deriva del proceso de „Sala Limpia‟


en la fabricación de semiconductores. La filosofía
es evitar los defectos antes que corregirlos.
 Reemplaza a pruebas de unidades de
componentes por inspeccion para comprobacion
de consistencia con especificaciones
 El proceso de desarrollo está basado en:
 Especificación formal
 Desarrollo incremental
 Verif. estática utilizando argumentos de corrección
 Pruebas estadísticas para det. fiabilidad de los prog.

Facultad de Ciencias y Tecnología – Departamento de Informatica


Material Elaborado por el Prof. Lic. Julio César Alsina Arevalos
Calidad del Software – Presentación de la Segunda Clase 8
El proceso de ‘Sala Limpia’
_________________________________________________________

Formally Reparación del Error


Error rework
Formalizar
specify
system
Especificación

Define
Definir Construct
Construir Formally
Verificar Integrate
Integrar
software
incrementos structured
programa verify
código increment
incremento
Deincrements
software program
estructurado code
formalmente
Develop
Desarrollar
operational
perfil Design
Diseñar Test
Pruebas
profile
operacional statistical integrated
pruebas sistema
tests system
estadísticas integrado

Facultad de Ciencias y Tecnología – Departamento de Informatica


Material Elaborado por el Prof. Lic. Julio César Alsina Arevalos
Calidad del Software – Presentación de la Segunda Clase 9
Caract. Del Proceso de Sala Limpia
_________________________________________________________

 Especificación formal utilizando un modelo de


transición de estados
 Desarrollo incremental
 Programación estructurada – se utilizan
técnicas de control limitado y abstracción
 Verificación estática utilizando inspecciones
rigurosas
 Pruebas estadísticas del sistema (se basa en
el perfil operacional)

Facultad de Ciencias y Tecnología – Departamento de Informatica


Material Elaborado por el Prof. Lic. Julio César Alsina Arevalos
Calidad del Software – Presentación de la Segunda Clase 10
Desarrollo Incremental
_________________________________________________________

Especificación
Frozen
congelada
specification

Establish
Establecer Formal
Especificación Developde
Desarrollo s/w Deliver
Entrega del
rerquirements
requerimientos specification
Formal increment
Incremento de sw software
Software

Requir
Solicitud ements change
de cambio request
de requerimientos

Facultad de Ciencias y Tecnología – Departamento de Informatica


Material Elaborado por el Prof. Lic. Julio César Alsina Arevalos
Calidad del Software – Presentación de la Segunda Clase 11
Especificación Formal e Inspecciones
_________________________________________________________

 El modelo basado en estados es una


especificación del sistema y el proceso de
inspección chequea el programa
contra este modelo
 El enfoque de programación es definido de
manera a que la correspondencia entre el
modelo y el sistema sea clara
 Argumentos matemáticos (no pruebas) son
utilizados para elevar la confianza en el
proceso de inspección

Facultad de Ciencias y Tecnología – Departamento de Informatica


Material Elaborado por el Prof. Lic. Julio César Alsina Arevalos
Calidad del Software – Presentación de la Segunda Clase 12
Equipos del Proceso de ‘Sala Limpia’
_________________________________________________________

 Equipo de Especificación. Responsable del


desarrollo y mantenimiento de la especificación del
sistema.
 Equipo de Desarrollo. Responsable por desarrollar y
verificar el software. El software NO es ejecutado o
compilado durante este proceso.
 Equipo de Certificación. Responsable por el
desarrollo de una serie de pruebas estadísticas para
ejercitar el software luego del desarrollo. Modelos
de crecimiento de la fiabilidad son utilizados para
determinar cuando la fiabilidad es aceptable.
Facultad de Ciencias y Tecnología – Departamento de Informatica
Material Elaborado por el Prof. Lic. Julio César Alsina Arevalos
Calidad del Software – Presentación de la Segunda Clase 13
Evaluación Proceso de ‘Sala Limpia’
_________________________________________________________

 Los resultados en IBM han sido impresionantes


con algunas fallas descubiertas en sistemas
entregados
 Evaluación independente muestra que el proceso
no es mas costoso que otros enfoques
 Menos errores que en un proceso
de desarrollo „tradicional‟
 No está claro como este enfoque puede ser
transferido a un ambiente con ingenieros menos
capacitados o menos motivados

Facultad de Ciencias y Tecnología – Departamento de Informatica


Material Elaborado por el Prof. Lic. Julio César Alsina Arevalos
Calidad del Software – Presentación de la Segunda Clase 14
Puntos claves
_________________________________________________________

 La verificación y validación no son lo mismo. La


verficación muestra conformidad con la
especificación; la validación muestra que el
programa satisface las necesidades del cliente
 Los planes de prueba deberían ser elaborados
para guiar el proceso de pruebas
 Las técnicas de verificación estática consideran la
examinación y el análisis del programa para la
detección de errores
 Las inspecciones de programa
son muy efectivas para descubrir errores

Facultad de Ciencias y Tecnología – Departamento de Informatica


Material Elaborado por el Prof. Lic. Julio César Alsina Arevalos
Calidad del Software – Presentación de la Segunda Clase 15
Puntos claves
_________________________________________________________

 Las inspecciones de código de programa son


realizadas por un equipo pequeño para localizar
fallas
 Las herramientas de análisis estático pueden
descubrir anomalías en los programas las cuales
pueden ser indicadores de fallas en el código
 El proceso de desarrollo de „Sala Limpia‟ depende
del desarrollo incremental, verificación estática y
pruebas estadísticas

Facultad de Ciencias y Tecnología – Departamento de Informatica


Material Elaborado por el Prof. Lic. Julio César Alsina Arevalos
Calidad del Software – Presentación de la Segunda Clase 16
Bibliografía

SOMERVILLE, Ian. Ingeniería del Software. Septima Edición


ADDISON WESLEY. 2006. Capitulo 22.

Facultad de Ciencias y Tecnología – Departamento de Informatica


Material Elaborado por el Prof. Lic. Julio César Alsina Arevalos
Calidad del Software – Presentación de la Segunda Clase 17

También podría gustarte