Post on 14-Apr-2015
INGENIERÍA DE SOFTWARE II Garantía de Calidad
Objetivos
Conocer el concepto de Calidad del Software, el proceso de Garantía de Calidad y de verificación y validación
Contenido
Garantía de Calidad del Software
Métricas de Calidad
GQM: Goals Questions Metrics
Identificar diferentes métricas del software que aportan al proceso de Garantía de Calidad
Conocer un método de definición de métricas de calidad
Si los ingenieros civiles construyeran Si los ingenieros civiles construyeran edificios de la misma forma en que edificios de la misma forma en que
los “ingenieros de software” los “ingenieros de software” construyen aplicaciones construyen aplicaciones
computacionales, correríamos el computacionales, correríamos el riesgo de que un simple pájaro riesgo de que un simple pájaro
carpintero destruyera la civilizacióncarpintero destruyera la civilización..
Weinberg.Weinberg.
Garantía de Calidad del Software
Qué es calidad del software ?
“Concordancia con los requisitos funcionales y de rendimiento explícitamente establecidos, con los estándares de desarrollo explícitamente documentados, y con las características implícitas que se espera de todo software desarrollado profesionalmente” [PRE98]“Concordancia con los requisitos funcionales y de rendimiento explícitamente establecidos, ...”
Se refiere a la concordancia con los Requerimientos, requisitos y diseño del Software“...con los estándares de desarrollo explícitamente documentados, ...”
Se refiere a la concordancia con estándares universales de calidad: ISO 9000 - ESA
“...y con las características implícitas que se espera de todo software desarrollado profesionalmente ...”
Se refiere a las características propias del software como Correctitud – Robustez – etc.
Garantía de Calidad del Software “El conjunto de características de una entidad que le confieren
su aptitud para satisfacer las necesidades expresadas y las implícitas”
ISO 8402Conclusiones
Los requisitos del software son la base de las medidas de calidad. La falta de concordancia con los requisitos es una falta de calidad
Los estándares o metodologías definen un conjunto de criterios de desarrollo que guían la forma en que se aplica la ingeniería del software. Si no se sigue ninguna metodología siempre habrá falta de calidad
Existen algunos requisitos implícitos o expectativas que a menudo no se mencionan, o se mencionan de forma incompleta (por ejemplo el deseo de un buen mantenimiento) que también pueden implicar una falta de calidad.
Garantía de Calidad del Software
La calidad de un producto de software está fuertemente determinada por la calidad de los procesos de desarrollo
Definir la calidad como la sola entrega de un producto con mínima cantidad de defectos, es una idea anticuada y conformista.
Garantía de Calidad del Software (SQA) es un planificado y sistemático diseño de acciones que se requieren para asegurar la calidad del software
Garantía de Calidad del Software
Existen diferentes “Visiones” respecto de la Calidad de un Producto de Software
Visión del Usuario: Grado de adecuación al propósito
Visión del Productor: Conformidad con la especificación
Visión del Producto: Ligada a características propias de todo software
Garantía de Calidad del Software
Los factores que influyen en la Calidad del Software son:Mecanismos utilizados para la determinación de requisitosMecanismos para minimizar las correcciones e iteraciones
Mecanismos para la detección de fallas
Mecanismos para el uso eficiente de los recursos
Factores que determinan la calidad del software
Operaciones del producto: características operativas
Corrección (¿Hace lo que se le pide?) El grado en que una aplicación satisface sus especificaciones y
consigue los objetivos encomendados por el cliente Fiabilidad (¿Lo hace de forma fiable todo el tiempo?)
El grado que se puede esperar de una aplicación lleve a cabo las operaciones especificadas y con la precisión requerida
Eficiencia (¿Qué recursos hardware y software necesito?) La cantidad de recursos hardware y software que necesita una
aplicación para realizar las operaciones con los tiempos de respuesta adecuados
Integridad (¿Puedo controlar su uso?) El grado con que puede controlarse el acceso al software o a los datos
a personal no autorizado Facilidad de uso (¿Es fácil y cómodo de manejar?)
El esfuerzo requerido para aprender el manejo de una aplicación, trabajar con ella, introducir datos y conseguir resultado
Factores que determinan la calidad del software
Revisión del producto: capacidad para soportar cambios
Facilidad de mantenimiento (¿Puedo localizar los fallos?) El esfuerzo requerido para localizar y reparar errores
Flexibilidad (¿Puedo añadir nuevas opciones?) El esfuerzo requerido para modificar una aplicación
en funcionamiento Facilidad de prueba (¿Puedo probar todas las
opciones?) El esfuerzo requerido para probar una aplicación de
forma que cumpla con lo especificado en los requisitos
Factores que determinan la calidad del software
Transición del producto: adaptabilidad a nuevos entornos
Portabilidad (¿Podré usarlo en otra máquina?) El esfuerzo requerido para transferir la aplicación a
otro hardware o sistema operativo Reusabilidad (¿Podré utilizar alguna parte del software
en otra aplicación?) Grado en que partes de una aplicación pueden
utilizarse en otras aplicaciones Interoperabilidad (¿Podrá comunicarse con otras
aplicaciones o sistemas informáticos? El esfuerzo necesario para comunicar la aplicación
con otras aplicaciones o sistemas informáticos.
Factores que determinan la calidad del software
A udit or ía
S egur idad
V is ión Global
I nt egr idad
Complet it ud
Consist encia
T r aceabilidad
E x act it ud
M odular idad
Conf or midad
I nt er oper abilidad
N o defi ciencia
T oler ancia a f allos
D isponib ilidad
A migable
O per abilidad
Ver acidad
S implicidad
M odular idad
L egib ilidad
T r aceabilidad
T est eabilidad
Ver ifi cabilidad
Compor t amient o en el t iempo
Compor t amient o con r ecur sos
E fi ciencia
O per at ivos
U t ilidad
F acilidad de uso
F acilidad de apr endizaj e
A migable
O per abilidad
U sabilidad
Consist encia
L egib ilidad
Concis ión
E st abilidad
M ant enimient o
M adur ez
Gener alidad
Reusabilidad A mpliab ilidad
L egib ilidad
Gr ado de ascendencia
Concis ión
E x pansib ilidad
A dapt abilidad
Conf or midad
I nst anciab ilidad
Remplazo
Por t abilidad
A dapt abilidad
F act or es
Aseguramiento de la Calidad del Software
El aseguramiento de calidad del software es el conjunto de actividades planificadas y sistemáticas necesarias para aportar la confianza en que el producto (software) satisfará los requisitos dados de calidad.
El aseguramiento de calidad del software se diseña para cada aplicación antes de comenzar a desarrollarla y no después.
Algunos autores prefieren decir garantía de calidad en vez de aseguramiento. Garantía, puede confundir con garantía de productos Aseguramiento pretende dar confianza en que el
producto tiene calidad
Aseguramiento de la Calidad del Software
El aseguramiento de calidad del software está presente en:
Métodos y herramientas de análisis, diseño, programación y prueba
Inspecciones técnicas formales en todos los pasos del proceso de desarrollo del software
Control de la documentación del software y de los cambios realizados
Procedimientos para ajustarse a los estándares (y dejar claro cuando se está fuera de ellos)
Mecanismos de medida (métricas) Registro de auditorias y realización de informes
Aseguramiento de la Calidad del Software
Las actividades de SQA comprenden
Aplicación de métodos técnicos
• Para obtener productos de alta calidad en las diferentes etapas del desarrollo del software, se deben usar herramientas y métodos técnicos probados que aseguran especificaciones de alta calidad
Revisiones Técnicas Formales (RTF)
• Inspecciones formales cuyo objetivo es encontrar errores en la función, la lógica o la implementación de cualquier representación del software
• Verificación de los requisitos
• Garantizar la correcta aplicación de estándares
Garantía de Calidad del Software
Las actividades de SQA comprenden
Pruebas del Software
• Aplicación de estrategias de prueba
• Planes de prueba
Ajuste a los estándares
• Garantía de seguimiento de estándares
• Auditorías a los procesos, entregables y documentos partes del Software
Control de cambios
• Gestión de configuración del software
• Formalización de peticiones de modificación, evaluación y control del impacto durante y después de la liberación del producto de software
Garantía de Calidad del Software
Las actividades de SQA comprenden
Definición de métricas y medición
• Mejoramiento continuo requiere seguimiento y medición
• Se deben recolectar métricas del software, las que engloban un amplio conjunto de medidas técnicas orientadas a la gestión
Registro y difusión
• Reportes e informes de cada RTF
• Documentación y análisis de métricas
• Permite el aprendizaje y la evolución de la organización
Garantía de Calidad del Software
Las actividades de SQA son medidas de protección que se aplica a cada paso del proceso de desarrollo de software
La garantía de calidad del Software es un conjunto de actividades de Verificación y Validación
Verificación
Estamos construyendo el producto correctamente ?
Validación
Estamos construyendo el producto correcto ?
Metricas de Calidad
Negligencias de medición
• No se establecen objetivos medibles para los productos (“Nuestro producto es amistoso, confiable y mantenible”
• No se comprenden y cuantifican los costos del proyecto
• No se cuantifica o predice la calidad de los productos
• Nos auto convencemos basándonos en evidencia anecdótica: “nuestra técnica garantiza 100% de confiabilidad”
Metricas de Calidad
Qué es una medición de software ?
Asignación de números o símbolos a atributos de entidades del mundo real en una forma significativa
• Persona: Talla, edad, peso, color de pelo, color de ojos, número de zapato, sexo, etc.• Salud: Presión arterial, temperatura, pulso, nivel de colesterol, etc.
• Estudiante: Notas, cursos tomados, especialidad, etc.
• Computador: Marca, procesador, RAM, Disco, velocidad procesador, etc.
• Software:
• Líneas de código, errores, número de módulos, velocidad
Metricas de Calidad
Porqué hacer mediciones de software?
Porque queremos aplicar métodos de ingeniería al desarrollo y mantención del softwarePorque permite
• Determinar costo de los procesos
• Productividad del personal
• Calidad del código
• Satisfacción del usuario• Identificar caminos de mejoramiento
PERMITE ESTIMAR.....................Futuro
PERMITE EVALUAR LOGRO DE OBJETIVOS..................Post Mortum
Metricas de Calidad
Existen mediciones del producto y del proceso
• Producto: defectos, LOC, número de módulos, complejidad, etc.
• Proceso: defectos/KLOC, horas ingeniero/KLOC, Defectos encontrados en el testing, etc.
Qué mediciones debemos considerar ?.
Pueden recolectarse ?
Manual o automáticamente ?
Cuál es el esfuerzo de recolección ?
Metricas de Calidad
Ámbito de las métricas
Procesos: Colecciones de actividades relacionadas con la construcción de SW
• Duración, costo, efectividad o eficiencia
Producto: Entregables que resultan de una actividad del proceso
• Tamaño, calidad
Recurso: Entidades requeridas por una entidad del proceso
• Magnitud, costo, calidad, productividad
Metricas de Calidad
Modelo de Calidad de McCall
Propone una clasificación de los factores que afectan a la calidad del software centrados en tres aspectos
• Características operativas, capacidad de soportar el cambio, adaptabilidad a nuevos entornos
Corrección – Fiabilidad – Eficiencia – Integridad – Facilidad de uso – Facilidad de mantenimiento – Portabilidad – Reusabilidad – Facilidad de interoperción
Métricas usadas para desarrollar expresiones para cada uno de los factores:
• Facilidad de auditoría, exactitud, Normalización de las comunicaciones, completitud, concisión, consistencia, etc.
Sistemas de Calidad
Estructura organizativa, procedimientos, procesos y recursos necesarios para implantar la gestión de calidad
El sistema de calidad se debe adecuar a los objetivos de calidad de la empresa
La dirección de la empresa es la responsable de fijar la política de calidad y las decisiones relativas a iniciar, desarrollar, implantar y actualizar el sistema de calidad.
Sistemas de Calidad
Un sistema de calidad consta de varias partes Documentación
Manual de calidad. Es el documento principal para establecer e implantar un sistema de calidad. Puede haber manuales a nivel de empresa, departamento, producto, específicos (compras, proyectos,…)
Parte física: herramientas, computadores, etc. Aspectos humanos:
Formación de personal Creación y coordinación de equipos de
trabajo
Sistemas de Calidad
Normativas ISO (La Organización Internacional para la Estandarización)
ISO 9000: Gestión y aseguramiento de calidad (conceptos y directrices generales)
Recomendaciones externas para aseguramiento de la calidad (ISO 9001, ISO 9002, ISO 9003)
Recomendaciones internas para aseguramiento de la calidad (ISO 9004)
Software Engineering Institute (SEI) Capability Maturity Model (CMM-CMMI) for software. http://www.sei.cmu.edu/
GQM: Goal – Question - Metric
Enfoque para seleccionar e implementar métricas, que involucra tres pasos:
1. Listar los objetivos principales
2. Derivar de cada objetivo las preguntas que deben responderse para determinar si los objetivos se satisfacen
3. Decidir qué medir para ser capaz de responder las preguntas de manera adecuada
GQM: Goal – Question - Metric
Ejemplo:
Goal: Mejorar el proceso de revisiones de diseño
Questions:
• Cómo se hacen las revisiones de diseño actualmente ?
• Cuánto tiempo toman las revisiones de diseño ?
• Cuánto cuestan las revisiones de diseño ?
• Qué métodos de revisiones de diseño se usan ?
• Qué tan efectivo es el proceso de revisión de diseño ?
Metrics:
• Número de revisiones de diseño por módulo
• Tiempo utilizado en revisiones por módulo
• Costo de las revisiones
• Costo por error encontrado
• % de errores de especificación y de diseño encontrados