Gestión de calidad en el software. Calidad en el Desarrollo de Software. Spoilage. Spoilage



Documentos relacionados
Estándares para planes de calidad de software. Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Agosto Diciembre 2008

Instituto Nacional de Tecnología Industrial TESTING DE SOFTWARE

Administración y Gestión de Proyectos de Software

Fábrica de Software. Documento de Proceso de la Gerencia de SQA

+ Cómo ahorrar dinero con Software Quality

1.1 Aseguramiento de la calidad del software

PRU. Fundamento Institucional. Objetivos. Alcance

Aseguramiento de la Calidad, QA. Materia: Desarrollo Industrial de Software Alumno: David Alejandro González Díaz y Froylan Ruiz Cirilo.

Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología

Planeación del Proyecto de Software:

-OPS/CEPIS/01.61(AIRE) Original: español Página Estructura del programa de evaluación con personal externo

PROCEDIMIENTO DE AUDITORIAS INTERNAS. CALIDAD INSTITUCIONAL Versión: 02

Gestión de la Configuración

Sistemas de Gestión de Calidad. Control documental

Sistemas de Información Administrativo - Universidad Diego Portales. Cátedra : Sistemas de Información Administrativa S.I.A.

MANUAL DE CALIDAD ISO 9001:2008

LISTA DE CHEQUEO NORMA NTC ISO 9001:2000 No. REQUISITOS EXISTE ESTADO OBSERVACIONES D: Documentado I: Implementado M: Mejorar SI NO D I M

Tecnología de la Información. Administración de Recursos Informáticos

TEMA 2. FILOSOFÍA DE LOS GRÁFICOS DE CONTROL. Principios básicos de los gráficos de control. Análisis de patrones.

Curso TURGALICIA SISTEMA DE GESTIÓN DE SEGURIDAD Y SALUD EN EL TRABAJO OHSAS 18001:2.007

CMM - Capability Maturity Model. Estructura de CMM... Componentes de CMM. Estructura de CMM

Calidad de Software - CMM

GESTION OPERATIVA. Niveles de gestión

GUIA SOBRE LOS REQUISITOS DE LA DOCUMENTACION DE ISO 9000:2000

Cómo mejorar la calidad del software a través de una gestión adecuada de la productividad de las pruebas

Mantenimiento de Sistemas de Información

TIPO DE PROCESO EVALUACION VERSIÓN 1 PROCEDIMIENTO AUDITORIAS INTERNAS PÁGINA: 1 de 7

global trust Razones por las cuales debería emplearse un Laboratorio Acreditado? International Laboratory Accreditation Cooperation

Procedimientos ISO que conforman el Sistema Integral de Gestión Institucional

ANÁLISIS Y GESTIÓN DEL DESARROLLO DE SOFTWARE TEMA 5: LA PLANIFICACIÓN DEL PRODUCTO

GUIAS PARA EL MANUAL DE ASEGURAMIENTO DE LA CALIDAD MANUAL DE ASEGURAMIENTO DE CALIDAD

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE

CALIDAD DEL SOFTWARE TESTS DE EXAMEN ACTUALIZADO SEP TEMA 3 NORMALIZACIÓN Y CERTIFICACIÓN: NORMA ISO 9001:2000

Ingeniería de Software Dr. Marcello Visconti Z. Ingeniería de Software

CAPITULO V. Conclusiones y recomendaciones. Este capítulo tiene como objetivo mostrar las conclusiones más significativas que se

Salud de Activos Reflejo de la Estrategia de Mantenimiento

Procedimiento para Auditorías Internas

Acciones Correctivas y Preventivas. Universidad Autónoma del Estado de México

Plan de estudios ISTQB: Nivel Fundamentos

ARQUITECTURA TÉCNICA ASIGNATURA: MATERIALES DE CONSTRUCCIÓN II CURSO: APUNTES TEMA 1: CONTROL DE CALIDAD

PROCEDIMIENTO AUDITORÍA INTERNA

Lista de la Verificación de la Gestión de la Seguridad y Salud Ocupacional 1

Sin cambios significativos.

LA GESTIÓN DE LOS PROGRAMAS DE HIGIENE Y SEGURIDAD

GUIA PARA LA IMPLEMENTACION Y SEGUIMIENTO DE PLANES DE MEJORAMIENTO

TALLER 2. MEJORA CONTINUA

COMITÉ TECNICO DE NORMALIZACION DE GESTION Y ASEGURAMIENTO DE LA CALIDAD

Unidad VI: Supervisión y Revisión del proyecto

GUIA GENERAL PARA LA EVALUACION DE PROGRAMAS

6. Gestión de proyectos

Plan de Gestión de Configuración. Universidad Nacional de la Patagonia Austral

Empresa Financiera Herramientas de SW Servicios

Directrices para la auto- evaluación A.l Introducción

Master en Gestion de la Calidad

EL PORTAL DE LOS EXPERTOS EN PREVENCIÓN DE RIESGOS DE CHILE. División Difusión y Comunicaciones CALIDAD APQP

DE VIDA PARA EL DESARROLLO DE SISTEMAS

CAPÍTULO 2 DEFINICIÓN DEL PROBLEMA

Gestión de la Prevención de Riesgos Laborales. 1

GATEWAYS COMO FIREWALLS

ISO Anexo A OBJETIVOS DE CONTROL Y CONTROLES DE REFERENCIA DANIELA RAMIREZ PEÑARANDA WENDY CARRASCAL VILLAMIZAR

Costos de Distribución: son los que se generan por llevar el producto o servicio hasta el consumidor final

Capitulo V Administración de memoria

CMMI (Capability Maturity Model Integrated)

LinqToAmazon. Informe Final de Verificación. Versión 1.0. Historia de revisiones

Ciclo de vida del software

RECOMENDACIONES. HALLAZGOS Objetivos especifico Justificación/Norma ANEXO

Exceso del importe en libros del activo apto sobre el importe recuperable

Soporte. Misión y Visión

CICLO DE VIDA DEL SOFTWARE

Copyright bizagi. Gestión de Cambios Documento de Construcción Bizagi Process Modeler

Inter American Accreditation Cooperation ACREDITACIÓN DE LABORATORIOS O CERTIFICACIÓN ISO 9001?

SST en la construcción. Perspectivas de los trabajadores. Enfoque de los sindicatos. Programa de SST en la construcción de la OIT

MODELOS DE GESTIÓN DE LA CALIDAD ORIENTADOS A LA CERTIFICACIÓN

6 Anexos: 6.1 Definición de Rup:

LA MEDIDA Y SUS ERRORES

Actualización de la Norma ISO 9001:2008

Jornada informativa Nueva ISO 9001:2008

SISTEMAS DE INFORMACIÓN III TEORÍA

Taller de Sistemas de Gestión de la Seguridad Operacional (SMS) en los aeródromos.

PROCEDIMIENTO DE AUDITORIAS INTERNAS

SUBCOMITÉ DE AMBIENTE LABORAL - LISTA DE VERIFICACIÓN DE MEDICIONES FÍSICAS NOM-022-STPS-2008 Pruebas Físicas

GUIA DE TRABAJO APLICATIVO

Seis Sigma. Nueva filosofía Administrativa.

Planificación, Gestión y Desarrollo de Proyectos

A partir de este capítulo se introducen términos, probablemente nuevos para el

Sesión Nº 2. Técnicas de gestión del mantenimiento industrial

Norma ISO Francisco D Angelo Douglas García Claudia Herrera Luis Laviosa

Informe SQA de la semana 5

3. GESTIÓN DE CONFIGURACIÓN DE SOFTWARE

Inter American Accreditation Cooperation. Grupo de prácticas de auditoría de acreditación Directriz sobre:

Aplicaciones de Ingeniería de Software

REPORTE REGIONAL ARGENTINA Tendencias en Argentina Tercerización del Project Management Por: Ana María Rodríguez, Corresponsal Internacional PMWT

5 GESTION DE LOS PROVEEDORES. Módulo

Ventajas del Outsourcing en el Sector Asegurador

CAPITULO 2 - POR QUÉ NECESITAN LAS EMPRESAS UN CUADRO DE MANDO INTEGRAL?

PROCEDIMIENTO DE AUDITORÍA INTERNA DE CALIDAD

Controles en la. Dra. Elsa Estévez Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur. 2do.

Gestión de Configuración del Software

Curso. Introducción a la Administracion de Proyectos

Elementos requeridos para crearlos (ejemplo: el compilador)

Transcripción:

Gestión de calidad en el software Calidad de software Depto. Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Segundo Cuatrimestre 2007 primer problema: los errores se aceptan. Esto no es productivo en el tratamiento del problema defecto: desviación entre el resultado esperado y el resultado logrado bug: algo que se arrastra por propia voluntad en el código y produce problemas. No atribuible a una persona, involuntario los bugs se pueden aceptar, los defectos NO el primer paso para lograr calidad es identificar los defectos como lo que son, fallas individuales Spoilage Spoilage spoilage: esfuerzo dedicado al diagnóstico y eliminación de fallas que fueron introducidas durante el proceso de desarrollo. Representa el 55 % del costo total del sistema muchos incluyen todo el testing como spoilage por qué incluir tanto de la etapa de mantenimiento como spoilage? Muchas de las mejoras de mantenimiento son requerimientos que siempre estuvieron las mejoras se agregan a un ratio de productividad que es una o dos veces menor, en magnitud, que el ratio de desarrollo. En la mayoría de los casos corresponde a errores de diseño spoilage: es el costo de errores humanos durante el proceso de desarrollo. Errores de codificación, análisis, diseño o testeo

Calidad de software de software la calidad del software está dada por la ausencia de spoilage diferentes defectos tienen diferentes costos calidad = Scosto_diagnostico_y_correcion_defectos/volumen los defectos no son un problema tecnológico, son un problema sociológico las medidas y las acciones para mejorar pueden afectar la organización de proyectos, objetivos, etc muchas veces los defectos no se corrigen en el lugar adecuado valores pequeños implican alta calidad se evita la recolección de datos sobre errores de software se corrigen defectos en el código, pero no se eliminan del proceso de construcción de sistemas la clave de la prevención de calidad es remover los defectos del proceso en lugar de removerlos del producto la alternativa de remover defectos es abstenerse de los mismos desarrollo con cero defectos el costo de los defectos constituye de un 35 % a un 55 % del costo de desarrollo en la mayoría de los proyectos hay personas que introducen más spoilage que el valor de su producción tener una persona con producción pobre en el equipo, es a veces mejor que tener uno más productivo

Ejemplo control de calidad las personas que comenten muchos defectos no aparentan ser malos desarrolladores. Son muy buenos expertos en remover los errores las personas que luego de medir, resultan que introducen muchos errores, deben reasignarse a otro tipo de tareas. la respuesta racional a encontrar amplia variación de aptitudes es especializar Ejemplo control de calidad las personas somos diferentes ignorar las diferencias y asignarles tarea de manera homogénea es una de las faltas más importantes del gerenciamiento la medición de defectos es la parte más productiva para la toma de conciencia del trabajo basado en cero-defecto cuestiones relativas: Quién colecciona los datos? Qué datos se deben recolectar y cómo? Cómo se determina la responsabilidad del defecto?

Quién recolecta los datos? personas sin intereses en los resultados. Independientes, competentes y confiables responsabilidad del Grupo de Métricas Qué protocolo debe gobernar el uso de los datos de defectos? debe ser público. Garantizar el correcto uso de los mismos los datos recolectados en bases individuales, sólo pueden ser usados para beneficios del individuo. Motivar la propia auto-estima los únicos datos que se pueden compartir, son datos globales Qué datos deben ser recolectados? comienzan con la detección del defecto. Se registra y se le asigna un número Defecto-Nro + Detección-Fecha + Defecto-Síntoma + Detector-Nombre + (Horas + Fecha + Empleado-Nro + Tarea-Tipo) + Eliminación-Fecha + Costo-Total + Defecto-Causa + Costo-Responsabilidad + Responsable Cómo asignar la responsabilidad? no debe ser ubicada, debe aceptarse defecto de diseño: Diseñador + programador Cómo deben recolectarse los datos? tarea independiente. Un defecto es considerado como tal si es detectado por una persona fuera del equipo de desarrollo el testing debe realizarlo un grupo fuera del equipo de desarrollo considerar el factor humano: se solicitan controles de calidad. No se objeta la medición, se está en contra de las malas mediciones. un producto de baja calidad es signo de un testing pobre resultado: se invierte más en testing pero las estadísticas muestran proyectos por encima de la media: inversión de 20.6 % en testing proyectos por debajo de la media: inversión de 28.4 % en testing los principales determinantes de la calidad están principalmente en el software antes de que comience el testeo

enfoque: no importa la cantidad de testing, sólo se podrá remover un % de los defectos presentes (alrededor del 50 %) lo que varía es la incidencia de los errores en el código no testeado mejorar la calidad del código testeado es reducir la inserción de defectos en el código antes de su testeo los diferentes métodos usados en entornos con pocos defectos no son más importantes que incentivos diferentes los incentivos están fuertemente dirigidos a mejorar la calidad antes del testing separar el testing: se trata de lograr un código con cero-defecto antes de testearlo. Última posibilidad de acomodar la auto-estima. Se tienden a dedicar más tiempo a lo que más les gusta. Probablemente sea el testing.el problema es que no se separa del todo. En muchos casos sólo pruebas de usuario o de integración. Por qué no se hace?: la calidad no es el interés de los proyectos de desarrollo actitud política relacionada con costos separar en parte el testing tiene efectos no deseados: no tiene incidencia en el ratio de inserción de defectos a la mayoría de los programadores les gusta el diagnóstico del defecto separar los tres grupos con distintos objetivos: desarrollo, testing, métrica. Grupos adversarios para lograr mejores resultados. desarrollar habilidades para la calidad: armar grupo de entrenamiento tomar código depurado e insertar defectos los programadores buscan defectos mediante inspección

el juego de la guerra de código, juego organizado por Yourdon Inc.: dos grupos a desarrollar se intercambian desarrollos y se testea lo del otro grupo se calcula spoilage y densidad de defectos se determina un vencedor no sólo aceptamos el error sino que nos anticipamos a él asumimos que las personas tenemos un factor de error interno, en lo laboral pero no en lo personal la mejor política es la prevención de defectos. Con la prevención no se necesita reparar, examinar, explicar,... el primer paso es tomar una actitud de prevención de defectos: cero defecto en la programación el objetivo es producir los módulos principales libres de defectos según IMS (IBM): 425 módulos con más de 300 módulos libre de defectos. 7.3 % de los módulos con el 57 % de los defectos OS/360: 47 % de una clase de defectos se encontraba en el 4 % de los módulos la política es la eliminación anticipada de los módulos con defecto la probabilidad de que existan más errores en la sección de un programa es proporcional al número de errores ya encontrados en esa sección (Myers)

se puede dibujar la curva en cualquier punto del proyecto. Ej: testing unitario, testing de integración, testing de aceptación. Siempre con la misma inclinación los defectos tempranos son un predictor fuerte de defectos posteriores no gastarse limpiando código que ha demostrado ser susceptible de defectos. Liberarse de él el costo de codificar es irrelevante comparado con el costo de limpiar los defectos de un módulo procedimiento: setear una cota de tolerancia de defectos. Cuando un módulo la supere, recodificarlo. Se debe asignar la re-codificación a otra persona se debe aplicar esto desde el proceso de compilación comenzar a medir los defectos: defectos durante proyecto.vs. defectos luego de instalación defectos tests unitarios.vs. defectos de tests de integración defectos primeros 6 meses de spoilage.vs. defectos spoilage posterior defectos de compilación.vs. el resto de defectos detectados Programa cero defectos Programa cero defectos los elementos son: enunciar el objetivo de 0 defecto para productos terminados y sub-productos separar organizativamente: desarrollo, testing, métricas el producto que se pasa de desarrollo a testing es no compilado los errores de compilación se consideran defectos. Cada compilación no satisfactoria es 1 defecto los defectos de compilación son un feedback para el proceso de inspección. repetidos fracasos en compilación es un indicador para rechazar el módulo motivar las inspecciones con feedback de defectos de compilación construir alta calidad en software es costoso, la baja calidad también el costo de construirlo correctamente por primera vez es menor que corregirlo aplicar programas de mejoramiento de calidad a sistemas en los cuales la calidad sea relevante se puede aplicar a parte del proyecto, no a la totalidad

Actividades de SQA software quality assurance es la actividad de proveer la evidencia necesaria para establecer confianza en que la función de calidad se está ejecutando correctamente es un patrón de acciones planificado y sistemático para asegurarse que el producto sea conforme con todos los estándares técnicos requeridos testing, verificación y validación no están incluidos en las actividades de SQA proveer una revisión independiente del proceso de desarrollo de software, sus productos y los recurso aplicados controlar la conformancia con los estándares seleccionados para los productos y la documentación, y para los procedimientos usados en el desarrollo reducir los costos de corregir defectos durante el testeo y la integración mediante la búsqueda durante los requerimientos, el diseño o la revisió de código