aseguramiento de la calidad en software iii

41
Fundamentos de la Calidad del Software Aseguramiento de la Calidad del Software (SQA)

Upload: tensor

Post on 11-Apr-2017

512 views

Category:

Education


0 download

TRANSCRIPT

Fundamentos de la Calidad del Software

Aseguramiento de la Calidad del Software (SQA)

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

Verificación y Validación• El plan de V&V también considera la

administración, la comunicación, las políticas y los procedimientos de las actividades de V&V y su interacción, así como el reporte de defectos y los requerimientos de documentación