Control de Calidad de Software
Control de Calidad de Software
Control de Calidad de Software
1. Introduccin 2. Control y Garanta de la Calidad del Software 1. Controles estticos y dinmicos 2. Actividades constructivas de la calidad 3. El coste de la calidad 3. Medidas 1. Introduccin a las medidas 2. Qu, por qu y cmo miden los ingenieros 3. Medidas y mtricas 4. Medidas en Ingeniera del Software 5. Clasificacin de medidas 4. Calidad del Software 1. Introduccin a la calidad 2. Modelos de calidad del software 3. Mejora del proceso software 5. Conclusiones
Contenido
INTRODUCCIN
Software: Especifica el conjunto de programas informticos que se desarrollan en el entorno de una computadora Papel del software en la sociedad ha cambiado significativamente en los ltimos 50 aos
mejoras en rendimiento del hardware cambios en arquitecturas informticas aumentos de memoria y capacidad de almacenamiento variedad de dispositivos de entrada y salida ...
Sistemas cada vez ms sofisticados y complejos Se ha pasado de ser una herramienta para la resolucin de problemas a una industria Caractersticas del software El software se desarrolla, no se fabrica El software no se estropea Aunque la industria tiende a ensamblar componentes, la mayora del software se construye a medida
Un poco de historia...
Aos 40 Fundamentos de la computacin moderna Principios de los 60 Consolidacin del desarrollo de software de aplicaciones relativamente grandes Finales de los 60 Crisis del software
Imposibilidad de desarrollar proyectos de una dimensin acorde con los avances tecnolgicos de la poca
1968 El comit cientfico de la OTAN patrocina una conferencia en Alemania, para identificar, clasificar y discutir los problemas que se producan en el desarrollo de grandes proyectos
Resultado: el desarrollo del software es una tarea de ingeniera (se acua el trmino de Ingeniera del Software)
Ingeniera: Diccionario de la Real Academia Espaola: Conjunto de conocimientos y tcnicas que permiten aplicar el saber cientfico a la utilizacin de la materia y de las fuentes de energa Software: Diccionario de la Real Academia Espaola: Conjunto de programas, instrucciones y reglas informticas para ejecutar ciertas tareas en una computadora
El producto software: Es un sistema software desarrollado para un cliente con la documentacin que describe cmo instalar y usar el sistema Objetivo de la Ingeniera del Software Producir productos software
El proceso software: Es el conjunto de actividades y resultados que permite producir un producto software Actividades fundamentales del proceso software: Especificacin del software: se define la funcionalidad del software y el modo de operacin Desarrollo del software: se produce el software de acuerdo con las especificaciones Validacin del software: el software debe ser validado para asegurarse que hace lo que espera el cliente Evolucin del software: el software debe evolucionar para acomodarse a las nuevas necesidades del cliente Actividad compleja, muchas actividades distintas
El software no es perfecto
Actualmente se usa el software en gran diversidad de mbitos Los defectos del software pueden causar importantes problemas e, incluso, daos fsicos Los defectos en programas financieros o editores son poco importantes, poco costosos y nadie sale herido Cuando el software pilota aviones, conduce autos, controla el trfico areo o vigila centrales nucleares, los defectos pueden ser muy peligrosos
La solucin al problema es la calidad Cundo tiene buena calidad el software? Qu caractersticas influyen al determinar la calidad del software? Cmo medir la calidad del software? Cmo controlar y garantizar la calidad del software?
Control de la Calidad
Objetivos: Comprobar si un producto posee una determinada caracterstica de calidad en el grado requerido Si no es as, tiene un defecto Identificar defectos y corregirlos Actividades de control: Controles estticos Analizan el producto sin necesidad de ejecutarlo Controles dinmicos Analizan el producto durante su funcionamiento
Controles Estticos
Controles manuales
Informales
Por los autores del desarrollo o por personal equivalente
Comprobacin de escritorio (desk checking) Revisin por pares (peer review)
Disciplinados
Son tcnicas de grupo
Auditoras Revisiones
Controles automticos
Sistemas informticos o con un proceso algortmico
Anlisis esttico automtico Verificacin formal
Controles Dinmicos
Tipos de pruebas
Prueba modular
Se prueba cada mdulo aislado del resto del sistema
Prueba de integracin
Se prueba que las interfaces entre los mdulos son correctas
Prueba de sistema
Se prueba si el sistema satisface todos los requisitos del usuario
Prueba de aceptacin
Su objetivo es demostrar al usuario que el sistema satisface sus
Garanta de Calidad
Definicin
Conjunto de actividades de planificacin, estimacin y supervisin del proceso de desarrollo, que se realizan de forma independiente al equipo de desarrollo, de tal forma que los productos software resultantes cumplen los requisitos establecidos y satisfacen los niveles de calidad exigidos
Mtodos y formalismos
La sistematizacin de los procedimientos facilita la prueba de los resultados obtenidos Se producen incrementos en la productividad (50-150%)
Actividades Constructivas
Herramientas y entornos de desarrollo
Las herramientas CASE (Computer Aided Software Engineering) facilitan la produccin de software Los modernos entornos de desarrollo han simplificado el proceso de implementacin
Lenguajes de programacin
Su importancia (en trminos de calidad) se hace patente en el mantenimiento Caractersticas interesantes: mdulos, compilacin separada, ocultacin de informacin, flujo de control estructurado, fuerte tipado, orientacin a eventos...
Actividades Constructivas
Documentacin
Juega un papel esencial Caractersticas importantes: consistencia, claridad,
gestin de problemas...
El Coste de la Calidad
Intervienen dos factores:
Prevencin de errores Deteccin de defectos
El Coste de la Calidad
Intervienen dos factores:
Prevencin de errores Deteccin de defectos
Medidas
Definiciones Qu es la medicin? La medicin es la asociacin de valores numricos con un objeto o accin Se interpreta este valor como la cantidad de calidad o de cierto atributo posedo por dicho objeto o accin
Medir Diccionario de la Real Academia Espaola: Comparar una cantidad con su respectiva unidad, con el fin de averiguar cuntas veces la segunda est contenida en la primera Medida Diccionario de la Real Academia Espaola: Accin y efecto de medir Expresin del resultado de una medicin Cada una de las unidades que se emplean para medir longitudes, reas o volmenes de lquidos o ridos
La ingeniera puede definirse como el proceso que produce productos tiles Puede describirse lo que miden los ingenieros en dos categoras:
Medidas del producto Medidas del proceso
Medidas del proceso Se usan para cuantificar la actividad humana de la ingeniera Ejemplos:
Tamao de un equipo de desarrollo, esfuerzo, tiempo, coste, productividad...
Por qu miden los ingenieros? Para describir el estado actual del mundo Cada medida describe un aspecto concreto del estado del mundo hoy Si se mide el estado del mundo peridicamente, puede ser posible descubrir patrones y tendencias Permite dar explicaciones del comportamiento del mundo real Leyes o teoras cientficas Los ingenieros pretenden descubrir: el comportamiento de los sistemas que disean y construyen las tendencias en el propio proceso de ingeniera
Por qu miden los ingenieros? Para establecer los requisitos cuantitativamente y demostrar su cumplimiento No puede imaginarse un proyecto de ingeniera sin requisitos cuantitativos
Construccin de un puente (longitud, altura, carga mxima, caudal del ro...) Pequeos electrodomsticos (tamao, peso, coste...) Vehculos (peso, consumo, espacio interior, espacio para equipaje, resistencia a los impactos...) Software (tiempo de respuesta, memoria ocupada...)...
Por qu miden los ingenieros? Para realizar un seguimiento del progreso y predecir los resultados Las mediciones peridicas de lo que se va obteniendo permite realizar un seguimiento cuantitativo del proyecto
Pueden ponerse de manifiesto tendencias inusuales que, al detectarlas, pueden corregirse
Los ingenieros del software cuentan el nmero de defectos encontrados durante las pruebas para calibrar los modelos de fiabilidad
Pueden predecir cundo se completarn las pruebas y cundo se alcanzar el nivel de fiabilidad
requerido
Por qu miden los ingenieros? Para analizar costes y beneficios El corazn de la ingeniera: el compromiso
Hay muchas formas de disear productos y muchas formas de disear sus componentes Cada diseo tiene ventajas y desventajas El ingeniero debe valorarlas todas y establecer un
Cmo miden los ingenieros? Tradicionalmente, los ingenieros usan instrumentos Los instrumentos pueden proporcionar medidas errneas
La exactitud de un instrumento es una indicacin de la diferencia entre la lectura del instrumento y
Cmo miden los ingenieros? Muestreo Seleccin y medida de una parte representativa de la poblacin para deducir parmetros o caractersticas de toda la poblacin.
Se usa cuando es imposible o poco prctico medir a toda la poblacin
Ejemplo
Control de calidad en un proceso de fabricacin
Se elige uno de cada 1000 productos y se realizan medidas Utilizando varias tcnicas estadsticas, se extraen conclusiones acerca de todos los productos a partir de las medidas realizadas en los productos seleccionados
Medidas en Ingeniera del Sw. Es bueno un programa? Cmo de fiable ser el sistema una vez instalado? Cuntos errores se esperan encontrar? Cuntas pruebas tengo que hacer? Cul ser el coste de las pruebas? Ser difcil mantener el sistema? Cunto costar construir un sistema similar al que constru hace 5 aos? Cunto tardar en desarrollar el sistema? ...
Medidas en Ingeniera del Sw. Ejemplo de medida de tamao del software Lneas de cdigo fuente (LOC)
Medidas en Ingeniera del Sw. Necesidad de las medidas del software Solucionar los problemas del software
Estimaciones de tiempo y costes ms precisas Mayor productividad Productos de mejor calidad
Clasificacin de Medidas del Software Clasificacin basada en los elementos que se miden [Henry]: Medidas Lxicas
Se basan en contar tokens
Medidas Semnticas
Se basan en la aplicacin de los conceptos de la teora de la informacin a la formulacin de medidas
Medidas de Conectividad
Miden el grado de interconectividad entre los componentes del sistema observando el flujo de informacin entre ellos
Clasificacin de Medidas del Software Clasificacin de las medidas del producto [Kafura]: Medidas de la Estructura
Se basa en el anlisis de la estructura del diseo
Medidas Hbridas
Se basan tanto en detalles de implementacin como en la estructura del diseo
Clasificacin de Medidas del Software Principios de las medidas del software: Las medidas deben asociarse con interpretaciones, pero estas interpretaciones deben corresponder con un determinado contexto Se necesitan mltiples mecanismos para la recopilacin y validacin de datos Para evaluar y comparar proyectos y para llevar a cabo modelos se necesita una base histrica de experiencias
Clasificacin de Medidas del Software Aplicacin del principio de incertidumbre de Heisenberg al clculo de las medidas
Es imposible determinar simultneamente la posicin y velocidad exactas de un electrn
Efecto Hawthorne
La medida de cualquier parmetro de un proyecto y su asociacin con una evidencia significativa influir en la utilidad de dicha medida
Grado con el cual el cliente o usuario percibe que el software satisface sus expectativas
Modelos de calidad
Modelos de calidad del software Intentan cuantificar la calidad del software Se descompone la calidad en niveles estructurados Los distintos modelos se diferencian por:
la relacin entre los niveles la cantidad de niveles los conceptos de cada nivel
Modelos de calidad
ISO/IEC TR 9126-2:2003
External Metrics (1-7-2003)
ISO/IEC TR 9126-3:2003
InternalMetrics (1-7-2003)
ISO/IEC TR 9126-4:2004
Quality in use Metrics (1-4-2004)
El proceso software Secuencia de pasos necesarios para desarrollar software Establece el marco de trabajo tcnico y de gestin para aplicar los mtodos, herramientas y el personal a la tarea de la construccin de programas
MEJORA DEL PROCESO SOFTWARE PSP El PSP es un proceso de perfeccionamiento diseado para ayudar a controlar, gestionar y mejorar la forma de trabajar Marco de trabajo estructurado con formularios, guas y procedimientos para desarrollar software PSP proporciona los datos histricos necesarios para mejorar el proceso Principal objetivo: conseguir mejores ingenieros del software
Permite comprender por qu se han cometido errores y cul es la mejor forma de encontrarlos Se puede determinar la calidad de las revisiones, los tipos de errores no detectados y los mtodos ms efectivos para cada ingeniero
CONCLUSIONES
La calidad del software puede verse como un problema econmico Aunque es fundamental obtener un software de calidad, cada medida, cada test, cada revisinconsume tiempo y dinero Si se desea un software de alta calidad, hay que asegurarse de que cada una de sus partes tenga alta calidad
Razones para la lentitud en la adopcin del uso de medidas para evaluar la calidad del software: No existen medidas de la calidad del software universales Existen algunas medidas tiles para ciertos entornos Existirn medidas de calidad ampliamente aceptadas, cuando madure la investigacin en medidas de calidad del software Incluso sabiendo qu medidas usar, no es fcil obtener los datos Incluso con los datos, no es obvio cmo interpretar y usar los nmeros La gente se resiste a que se mida la calidad de su trabajo
ISO/IEC 9126-1: Modelo de Calidad del Software Los estndares, por s solos, no son suficientes Se necesita una disciplina para aplicarlos Si no se comprende el proceso del negocio, no resultar til aplicar ningn mtodo de evaluacin de la calidad ni de mejora del proceso La medida de los atributos del software puede usarse para predecir o medir indirectamente la calidad del software