Upload
tensor
View
517
Download
0
Embed Size (px)
Citation preview
Fundamentos del SQA• La calidad de los productos software puede ser
mejorada mediante un proceso iterativo de mejora continua que requiere control de dirección, coordinación, y retroalimentación de muchos procesos simultáneos:– Los procesos de ciclo de vida de software, – El proceso de detección de error/defecto,
retirada de los mismos y prevención, y– El proceso de mejora de calidad
Fundamentos del SQA• La teoría y conceptos presentes detrás de mejora de
calidad, tales como la construcción en calidad, mediante la prevención y detección temprana de errores, mejora continua y enfoque en el cliente, son adecuados para la ingeniería de software
Fundamentos del SQA• Estos conceptos están basados en el
trabajo de expertos en calidad los cuales ha afirmado que la calidad de un producto está directamente conectada con la calidad del proceso empleado para crearlo
Fundamentos del SQA• El apoyo a la gestión sustenta el proceso y la
evaluación del producto así como las conclusiones resultantes
• Entonces se desarrolla un programa de mejora identificando acciones detalladas y proyectos de mejora para ser gestionados en un plazo de tiempo factible
Fundamentos del SQA• La gestión de calidad de software (SQM) resulta de la
aplicación a todas las perspectivas de procesos de software, productos, y recursos
• Esto define procesos, propietarios de proceso, y requerimientos para estos procesos, medidas del proceso y sus correspondientes salidas, y canales de retroalimentación (Art93)
Fundamentos del SQA• La planificación para la calidad de software
implica:
1. Definición del producto requerido en términos de sus características calidad
2. Planificación de los procesos para alcanzar el producto requerido
Fundamentos del SQA• Algunos de los procesos específicos SQM están definidos en el
estándar IEEE 12207.0-96:
– Procesos de Aseguramiento de Calidad (SQA)
– Procesos de Verificación
– Procesos de Validación
– Procesos de Revisión
– Procesos de Auditoría
Fundamentos del SQA• El SQM puede ser utilizado para evaluar
productos intermedios así como el producto final
• Los procesos SQM están estrechamente relacionados; inclusive pueden traslaparse y hasta en ocasiones, estar combinados
El Proceso de SQA• El Aseguramiento de la Calidad del
Software (SQA, Software Quality
Assurance, o Garantía de Calidad del Software) es un diseño de acciones planificado y sistemático que se requiere para asegurar la calidad del software desarrollado
El Proceso de SQA• El aseguramiento de la calidad del software comprende una
gran variedad de tareas asociadas con dos integrantes diferentes: los ingenieros de software que realizan un trabajo técnico y un grupo de SQA que tiene la responsabilidad de la planificación del aseguramiento de calidad, supervisión, mantenimiento de registros, análisis e informes
El Proceso de SQA• Los procesos de SQA proporcionan la garantía de que los
productos software y los procesos en el ciclo de vida de proyecto son conformes a los requerimientos especificados por medio de la planificación, emitiendo, y realizando un conjunto de actividades para generar la confianza adecuada en que se está construyendo calidad dentro del software
El Proceso de SQA• Esto significa asegurar que el
problema está clara y suficientemente identificado y que los requerimientos de la solución están correctamente definidos y expresados
El Proceso de SQA• El SQA procura mantener la calidad a lo largo de
todo el desarrollo y mantenimiento del producto mediante la ejecución de una variedad de actividades en cada etapa que puede resultar en la identificación temprana de problemas, un rasgo casi inevitable de cualquier actividad compleja
El Proceso de SQA• El papel del SQA en lo que concierne al proceso
es asegurar que los procesos planificados son apropiados y posteriormente implementados de acuerdo a lo planeado, y se proveen los procesos de medición relevantes para una adecuada organización
El Proceso de SQA• El plan de SQA define el medio que será usado
para asegurar que el software desarrollado para un producto específico satisface las exigencias del usuario y es de la máxima calidad posible dentro de las restricciones del proyecto
El Proceso de SQA• Con el objetivo de llevar esto acabo, primero
debe asegurarse que el objetivo de calidad es claramente definido y entendido
• En ello deben considerarse los planes de gestión, desarrollo, y mantenimiento para el software
El Proceso de SQA• Las actividades y tareas específicas de calidad se
elaboran, con sus costos y requerimientos de recursos, sus objetivos generales de administración, y su calendario en relación con aquellos objetivos de administración en la ingeniería de software, y planes de desarrollo, o de mantenimiento
• El plan SQA debería ser compatible con el plan de Administración de la Configuración del Software (SCM, Software Configuration Management)
El Proceso de SQA – El Plan de SQA• El Plan de SQA identifica documentos, normas,
prácticas, y convenciones que guían el proyecto y de qué manera serán comprobados y supervisados para asegurar adecuación y conformidad
El Proceso de SQA – El Plan de SQA• El Plan de SQA también identifica medidas,
técnicas estadísticas, procedimientos para el reporte de problemas así como la correspondiente acción correctiva, recursos tales como herramientas, técnicas, y metodologías, seguridad para el medio físico, formación, además de reportes y documentación de SQA
El Proceso de SQA – El Plan de SQA• Por otro lado, el plan SQA considera las
actividades de garantía de calidad de software como cualquier otro tipo de actividad descrita en los proyectos de software, tales como la consecución de proveedor de software para el proyecto o el software de instalación comercial disponible, así como el servicio tras la entrega del software
El Proceso de SQA – El Plan de SQA• También puede incluir criterios de
aceptación así como reportes y actividades de gestión críticas para la calidad de software
Administración del Riesgo• La administración del riesgo también puede jugar
un papel importante en la generación de software de calidad
• La incorporación de un análisis de riesgo disciplinado y técnicas de gestión en los procesos de ciclo de vida de software puede incrementar el potencial para producir un producto de calidad
Administración del Riesgo• Según Peter Drucker, “Mientras que es inútil
intentar eliminar el riesgo y cuestionable el poder minimizarlo, es esencial que los riesgos que se tomen sean los riesgos adecuados”
• Por lo anterior se genera un conjunto de procesos que se dedican a la Administración del Riesgo
Administración del Riesgo• Una estrategia proactiva para administrar el riesgo es lo más
razonable
• La estrategia proactiva empieza mucho antes de que comiencen los trabajos técnicos
• Se identifican los riesgos potenciales, se valoran su probabilidad y su impacto, y se establece una prioridad según su importancia
• Después el equipo de software establece un plan para controlar el riesgo
Administración del Riesgo• El primer objetivo es evitar el riesgo, pero como no se
pueden evitar todos los riesgos, el equipo trabaja para desarrollar un plan de contingencia que le permita responder de una manera eficaz y controlada
• La administración del riesgo se sugiere se asocie con la administración de la calidad del software, pero se trata de un todo un tema aparte, que se ha de estudiar por separado
Administración del Riesgo• Cabe destacar que metodologías de desarrollo como RUP
(Rational Unified Process) hacen hincapié en asociar en cada fase del proceso de desarrollo de software, el énfasis en la calidad y en la administración del riesgo
• Las metodologías de desarrollo, en lo general, destacan tanto la administración del riesgo como el uso de las actividades de verificación y validación
Verificación y Validación• Aunque los conceptos de “verificación” y
“validación” a primera vista son muy similares en los modelos como el CMMI, una revisión detallada a estos muestra que se enfocan a aspectos diferentes
Verificación y Validación• La Verificación confirma que los productos de trabajo
reflejan adecuadamente los requerimientos especificados para ellos. En otras palabras, la verificación se asegura de que “se construyó correcto”
• La Validación, por su parte, confirma que el producto, como fue entregado, cumplirá con el uso pretendido. En otras palabras, la validación se asegura de que “se construyó lo correcto”
Verificación y Validación• Hay enfoques como el del SWEBoK (Software
Engineering Body Of Knowledge) que con el propósito de ser breve, Verificación y Validación (V&V) son tratadas como un único tema, más que como dos asuntos separados tal y como se hace en el estándar IEEE12207.0-96
• El SWEBoK indica que la V&V del software es un acercamiento disciplinado a la evaluación de productos de software a lo largo de todo el ciclo de vida de producto
Verificación y Validación• El desafío de un esfuerzo en V&V es asegurar que la calidad
es construida dentro del software y que el software satisface exigencias de usuario, como lo indica la norma IEEE 1059-93
• La V&V trata directamente la calidad de producto software y emplea técnicas de prueba que pueden localizar defectos de tal manera que estos puedan ser tratados
Verificación y Validación• También evalúa los productos intermedios, de
cualquier forma, y, en esta capacidad, los pasos intermedios de los procesos de ciclo de vida de software
• El proceso de V&V determina si los productos de una actividad dada de desarrollo o mantenimiento se adecuan o no al correspondiente requisito de esa actividad, y si el producto final de software cumple o no cumple con su propósito fijado y converge o no con los requisitos del usuario
Verificación y Validación• La Verificación es un intento para asegurar
que el producto sea construido correctamente, en el sentido que los productos resultantes de una actividad cumplan con las especificaciones fijadas para los mismos en actividades previas
Verificación y Validación • Otra definición de Verificación indica que es la
“confirmación por análisis y suministro de evidencia objetiva que los requerimientos específicos han sido cumplidos a cabalidad” (ISO 8402:1994)
• “Actividad para confirmar que el producto refleja propiamente los requerimientos especificados para él” (MoProSoft:2005)
Verificación y Validación• La Validación es un intento por
asegurar que se construye el producto correcto, es decir, que el producto satisface su propósito específico determinado
Verificación y Validación • De igual manera, otras definiciones de
Validación indican que es la “confirmación por análisis y suministro de evidencia objetiva que los requerimientos particulares para un uso futuro específico son cumplidos a cabalidad” (ISO 8402:1994)
Verificación y Validación • “Actividad para confirmar que el
producto resultante es capaz de satisfacer los requerimientos para su aplicación especificada o uso previsto” (MoProSoft:2005)
Verificación y Validación• Tanto el proceso de verificación como el proceso
de validación empiezan temprano en la fase de desarrollo o mantenimiento
• Proporcionan una revisión de características clave del producto en relación con predecesor inmediato del producto y con las especificaciones que debe cumplir
Verificación y Validación• El propósito de la planificación de las V&V es
asegurar que cada recurso, papel y responsabilidad están claramente asignados
• El resultado de la planeación de V&V documenta y describe los diferentes recursos, sus roles y actividades, así como técnicas y herramientas a ser utilizados
Verificación y Validación• El entendimiento de los diferentes objetivos de
cada actividad de V&V ayudará en la cuidadosa planificación de las técnicas y los recursos necesarios para alcanzar sus respectivos propósitos
• Los estándares IEEE 1012-98:s7 y el IEEE1059-93: Apéndice A, especifican lo que generalmente un plan de V&V