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
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. 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.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. 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)
La planificación para la calidad de software implica:
–
Definición
del producto requerido en términos de sus características calidad
–
Planificación
de los procesos para alcanzar el producto requerido
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
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 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.
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. 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 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 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 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. 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
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 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.
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. 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.
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. 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. 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. 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.
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”.
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.
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.
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. 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. 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)
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. 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).
“Actividad para confirmar que el
producto resultante es capaz de satisfacer los requerimientos para su
aplicación especificada o uso previsto” (MoProSoft:2005).
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.
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. 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.
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.
0 comentarios:
Publicar un comentario