Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
de Software
Natalia Juristo
Rodrigo Fonseca
Construir software es ms difcil
de lo que parece
El objetivo de un
Ingeniero Software
debe ser
entregar un producto con el nivel de
Calidad
que las tcnicas de hoy permitan
Qu es la Calidad del Software?
n Eficiencia
n Usabilidad
n Mantenibilidad
n Portabilidad
n Seguridad
Descomposicin de la Calidad de
Software por la ISO 9126-1998
Criterios de Calidad del Software
n Fiabilidad Se mantiene operativo
CALIDAD FUNCIONAL
n Funcionalidad Realiza el trabajo deseado
n Funcionalidad
El sistema software realiza el trabajo deseado
por el usuario
Cmo se comprueban?
Evaluando la Fiabilidad
n Si la Fiabilidad es
El sistema software se mantiene operativo
n La Evaluacin se realizar
Buscando defectos que provoquen la mala
operacin del sistema (en cualquier contexto)
Evaluando la Funcionalidad
n Si la Funcionalidad es
El software realiza la tarea deseado por el usuario
n La Evaluacin se realizar
Comparando la tarea que realiza el sistema con la
esperada por el usuario (Especificacin de Requisitos)
NIC
desarrollo segn se generan
TCEn lugar de esperar a tener cdigo!
IC A S
IN M
IC A SD
Debe ejercitarse el cdigo adecuadamente
N
n
T C
Evaluacin
DURANTE la construccin
Necesidad del Usuario Sistema Aceptado
Cdigo
Actividades de desarrollo y
actividades de evaluacin
Necesidad del Usuario
Cdigo Aceptado
Requisitos de
Usuario Definicin de
Revisin de Requisitos de Pruebas de Aceptacin
Requisitos de Usuario
Usuario
Requisitos de Usuario Revisados Cdigo instalado en
Los sistemas del usuario probado
Revisin del
Cdigo
Cdigo Revisado
Evaluacin y Defectos
n La
evaluacin busca defectos en los
productos (Req. Ds. Cdg) del desarrollo
n Provocan mala operacin
n No se reflejan las tareas deseadas
DEFECTO
Resumiendo lo aprendido hasta
aqu
n Es imposible garantizar un software 100% libre de
defectos debido a la inmadurez de la IS
n Pero existen tcnicas para reducir al mnimo los
defectos remanentes
n Tcnicas Estticas ( o Revisiones)
n Buscan faltas
n Aplicables a cualquier producto
n Tcnicas Dinmicas (o T. de Pruebas)
n Generan casos de prueba
n Buscan fallos
n Aplicables slo a cdigo
n Ambas se centran en defectos de fiabilidad y funcionalidad
Tecnicas Estticas
Tcnicas de Evaluacin Esttica
n Las tcnicas de Evaluacin esttica de
artefactos del desarrollo -> Revisiones.
n Revisiones -> detectan manualmente
defectos -> productos del desarrollo.
n Manualmente -> producto (sea requisito,
diseo, cdigo, etc.) -> impreso -> revisores -
> analizando -> lectura -> sin ejecutarlo.
Beneficios de las
Tcnicas Estticas
n Los defectos en productos tempranos se
traducen en defectos en el sistema
n Beneficio 1: Pronta deteccin = Menor
coste
n Beneficio 2: Pronta deteccin =
Estimacin de la calidad
n La cantidad y coincidencia de defectos
encontrados permite una estimacin de
los defectos remanentes
Defectos en los Requisitos
n Dinmica n Esttica
n Generar casos de n -------
prueba
n Detectar el fallo n -------
n Buscar la falta n Buscar la falta
Pronta Deteccin =
Prevencin y Control
n La cantidad de faltas encontradas en un
producto dan una idea de la calidad del
trabajo de desarrollo de dicho producto
n Deteccin de faltas
n Correccin
Interna y con respecto al producto precedente
n Completitud
n Ambigedad / Claridad
n Trazabilidad
Ejemplo
Requisito Incompleto y Ambiguo
n Requisito para un sistema de diagnstico a
bordo en los autos
El sistema deber proporcionar al conductor
indicaciones para llegar al garaje mecnico ms
cercano
n Incompleto
Qu informacin deben contener las indicaciones?
n Ambiguo
Qu es el garaje ms cercano?
Tipos de Revisiones
n Revisiones informales o Revisiones
Realizadas por el mismo desarrollador o entre compaeros
como tcnica de depuracin durante la etapa de construccin
del producto
R A
E C TU
n
E
Revisiones formales o InspeccionesL
S D
Conjunto de participantes elegidos formalmente para determinar
CA
la calidad del producto en la etapa de validacin
C N I
n
Walkthrough
Tprogramaenquesimular
Consiste la ejecucin de casos de prueba para el
se est evaluando
n Auditorias
Contrastan los artefactos generados durante el desarrollo con
estndares, generales o de la organizacin
Qu son las Inspecciones?
2. Deteccin de defectos
3. Recoleccin de defectos
n Compilacin
n Inspeccin en grupo
4. Correccin y seguimiento
n Correccin
n Seguimiento
n Grfico
Estimacin de los Defectos
Remanentes
n El propsito principal de las Inspecciones es
detectar y reducir el nmero de defectos
n Sin embargo un efecto colateral pero importante
es que permiten realizar desde momentos muy
iniciales del desarrollo predicciones de la
calidad del producto.
n Las estimaciones de las faltas remanentes tras
una inspeccin deben utilizarse como control de
la calidad del proceso de desarrollo.
Estimacin de los Defectos
Remanentes
n Hay varios momentos de estimacin de
faltas remanentes en una inspeccin.
n Se puede tener una idea de las faltas
remanentes en base a:
n Encontrar muchas faltas es sospechoso
n Encontrar muy pocas faltas tambin resulta
sospechoso.
Tcnicas de Lectura - Introduccin
n Guas que ayudan a detectar los defectos en los
productos software.
n Mecanismos -> Inspector adquiere un conocimiento
profundo del producto que inspecciona.
n Tcnicas ms populares:
n Ad-hoc
n Lectura basada en listas de comprobacin
n Otras tcnicas:
n Lectura por Abstraccin
n Revisin Activa de Diseo
n Lectura Basada en Escenarios
n Lectura Basada en Defectos
n Lectura Basada en Perspectivas
Tipos de Tcnicas de Lectura
n Ad-hoc
n Con Listas de Comprobacin
n Abstraccin Sucesiva
Lista de Comprobacin
para Requisitos
n Estn especificadas todas las entradas al sistema,
incluyendo su origen, precisin, rango de valores y
frecuencia?
n Estn especificadas todas las salidas del sistema,
incluyendo su destino, precisin, rango de valores,
frecuencia y formato?
n Estn todos los formatos de los informes
especificados?
n Estn especificados los interfaces con otros sistemas
software y hardware externos?
n ...
Lista de Comprobacin
para Requisitos
n Existen contradicciones en la especificacin de los
requisitos?
n Resulta comprensible la especificacin?
n Est especificado el rendimiento?
n Puede ser eliminado algn requisito? Pueden juntarse
dos requisitos?
n Son redundantes o contradictorios?
n Se han especificado todos los recursos hardware
necesarios?
n Se han especificado las interfaces externas necesarias?
n Se han definido los criterios de aceptacin para cada una
de las funciones especificadas?
Lista de Comprobacin
para Diseo
Ejemplo de preguntas para diseo:
n Cubre el diseo todos los requisitos funcionales?
Sira Vegas
Rodrigo Fonseca
Conceptos Generales de
Evaluacin
Preventivas Correctivas
(Evaluacin de sw)
n Variantes:
n Particin en clases de equivalencia. Todos los elementos de
la clase son equi-probables.
n Anlisis de valores lmite. Se seleccionan casos del borde de
la clase
Tcnicas funcionales: Identificacin
de casos de prueba
n Para la tcnica de particin en clases de equivalencia:
n Asignar un nmero nico a cada clase de equivalencia.
n Escribir un caso que cubra tantas clases vlidas no
incorporadas como sea posible hasta que se cubran todas
las clases de equivalencia vlidas.
n Escribir un caso que cubra una sola clase no vlida no
incorporada hasta que se cubran todas las clases de
equivalencia no vlidas
n Para el anlisis de valores lmite:
n Condiciones lmite: Aquellas que se hallan en los
mrgenes de las clases de equivalencia tanto de entrada
como de salida.
n Se seleccionan uno o ms elementos tal que los mrgenes
de la clase se sometan a prueba.
n Se considerar tambin el dominio de salida
Tcnicas funcionales: Clases de
equivalencia
n Se examina cada condicin de entrada y se divide en
dos o ms grupos, identificando dos tipos de clases:
n Clases de equivalencia vlidas
n Clases de equivalencia no vlidas
n Se suelen representar mediante tablas.
n Proceso heurstico.
n Rango de valores: Una clase vlida y dos no vlidas.
n Nmero de valores: Una clase vlida y dos no vlidas
n Conjunto de valores de entrada: Tantas clases vlidas como
valores y una no vlida.
n Situacin que debe ocurrir: Una clase vlida y dos no
vlidas.
n Se cree que no todos los elementos de la case se tratan
igual: Dividir en subclases.