Calidad en el Software
SWEBOK Cap. 10 e ISO9000-3
Integrantes
Juan Guillermo Restrepo Pineda
Camilo Antonio Guerra González
Jonathan Damián Munera Muñoz
Esteban Salazar Zapata
Medellín - 2014
Objetivo General
Poner a disposición de los alumnos del curso de Calidad del Software (2014-2), los elementos compatibles entre la norma ISO 9000-3 y los componentes referentes a la calidad del software del SWEBOK
Objetivos Específicos
-
Conocer los referente a la calidad de software del SWEBOK y la ISO 9000-3
-
Alinear la ISO9000-3 y el referente de calidad de software
-
Exponer un caso practico de la industria donde se observe la aplicabilidad del referente de calidad.
-
Realizar una exposición teórica-práctica.
Agenda
- Recordando la contextualización
- ¿En qué consiste la ISO 9000-3?
- ¿Qué dice el SWEBOK con respecto a la calidad del software?
- Objetivos comunes de la ISO 9000-3 y SWEBOK
- Preguntas y respuestas
- Caso práctico
- Conclusiones
ISO 9000-3
[ ]
Gestión de Calidad y Normas de Aseguramiento de la Calidad
La norma ISO 9000-3 es parte de la familia de estandares
ISO 9000, un conjunto de normas internacionales y guías de calidad que ha obtenido una reputación mundial como base para establecer sistemas de gestión de la calidad.
ISO 9000-3
- ISO 9000-3: 1997 (OBSOLETA)
- ISO 9000-3: 2000 (OBSOLETA)
- ISO 90003: 2004 (OBSOLETA)
- ISO 90003: 2008 (ACTUAL)
- ISO 90003: 2015 (PRÓXIMA)
El estándar ISO9000-3
La Familia ISO 9000
Calidad genérica
Asegurar
Todo tipo de producto
Administrar
Certificación de la calidad
Eliminación de costos
Reducción de auditorías
Inspección final
Garantías
Reprocesos
hace parte de
se encarga de
de la
de
sobre
mediante
[ ]
[ ]
[ ]
[ ]
[ ]
[ ]
[ ]
[ ]
[ ]
[ ]
[ ]
[ ]
ISO 9000-3:
"Guía para la aplicación de la ISO 9001 para el desarrollo, la aplicación y el mantenimiento de software."
Sistema de Gestión
Responsabilidad de la dirección
Gestión de los recursos
Realización del producto
Medición, análisis y mejora
Sistema de gestión
Systemic Requirements and Guidelines
-
Gestión de la documentación
- Creación
- Revisión
- Aprobación
- Distribución de manual de calidad
- Procedimientos
- Instrucciones
- Formatos
- Definición de procesos
- Fichas de procesos
- Mapa de procesos
- Control de registros
- Control de documentación externa
- Otros documentos
Responsabilidad de la dirección
Management Requirements and Guidelines
- Definición de objetivos
- Planificación de objetivos
- Control de objetivos
- Planificación de la calidad
- Organigrama
-
Comunicación interna
- Calendarios
- Asistente para la realización de reuniones
- Informe de Revisión por la Dirección
Gestión de los recursos
Resource Requirements and Guidelines
-
Gestión de recursos humanos
- Ficha de personal
- Plan de formación
- Evaluación y valoración de las acciones formativas
- Definición de puestos de trabajo y departamentos
-
Gestión de la infraestructura
- Fichas de maquina
- Plan de mantenimiento
- Repuestos
- Registro de mantenimiento y averias
- Datos de fabricante y distribuidor
Realización del producto
Realization Requirements and Guidelines
Están contenidos los requisitos puramente productivos, desde la atención al cliente, hasta la entrega del producto o el servicio.
- Planeación de la realización del producto y/o servicio.
- Procesos relacionados con el cliente.
- Diseño y desarrollo.
- Compras.
- Operaciones de producción y servicio
- Control de dispositivos de medición, inspección y monitoreo.
Medición, análisis y mejoras
En este apartado quedan establecidos los requisitos para aquellos procesos que agrupa información, la analizan y llevan a cabo medidas que permiten la mejora continua en los procesos de la organización que hacen posible el suministro de productos y servicios de calidad.
- Requisitos generales.
- Monitoreo y medición.
- Control de producto no conforme.
- Análisis de los datos para mejorar el desempeño.
- Mejora.
PLAN
DO
ACT
CHECK
Ajuste PDCA
- Plan: Establezca objetivos y procesos necesarios para cumplir con los objetivos.
- Do: Implemente los procesos.
- Check: Monitoree los procesos y productos y evalué si el progreso esta de acuerdo al plan.
- Act: Tome acciones continuas para mejorar el rendimiento de los procesos.
El estándar ISO9000-3
[Desarrollo]
[Suministro]
[Mantenimiento]
Software
Detección de problemas
Corrección de problemas
Asegurar recursos de calidad
[Ambiente]
[Personal]
[Infraestructura]
se utiliza para
del
mediante
tales como
[ ]
[ ]
[ ]
[ ]
[ ]
En resumen
Software Quality
[ ]
SWEBOK Capítulo 10
¿Qué es Calidad de Software?
"Es la capacidad de un producto de software para satisfacer las necesidades planteadas por un stakeholder así como las necesidades implícitas bajo condiciones especificas."
"Es el grado en que un producto de software cumple con los requerimientos establecidos y depende de cómo estos requerimientos llenan las expectativas, necesidades y deseos de un stakeholder."
Fundamentos
Gestión
Consideraciones prácticas
Herramientas
Calidad del software
Cultura y ética de Ingeniería de Software
Valor y costo de calidad
Modelos y caract. de calidad
Mejora de calidad del Software
Seguridad del Software
Aseguramiento de la calidad del software
Verificación y Validación
Revisión y auditorias
Req. de calidad de Software
Caracterización de defectos
Técnicas de gestión de la calidad del software
Medición de la calidad del Software
Fundamentos de la Calidad en el Software
Un ingeniero de software debería entender los significados subyacentes en los conceptos y características de calidad y su relevancia en el desarrollo o mantenimiento de software.
Los ingenieros de software esperan compartir un
compromiso sobre calidad de software como una parte
de su cultura.
Cultura y Ética
La ética ayuda a los ingenieros de software a reforzar actitudes relacionadas con la calidad y con la independencia de su trabajo
La motivación latente tras un proyecto de software es el
deseo de crear un software que tiene valor, y este valor
puede o no puede ser cuantificado como un coste.
Valor y costo
Útiles para la negociación, planeación y tasación de la calidad de productos software. Contempla:
- Calidad del Proceso: Afecta a las características de calidad de los productos software, que a su vez repercuten en la calidad en el uso tal y como es percibido por el cliente.
- Calidad del Producto: Esta determinado por el verdadero objetivo del software y se encuentra influenciado tanto por los requerimientos como por las expectativas del cliente.
Modelos y Características
La calidad de los productos de software se puede mejorar a través de procesos de prevención o de un proceso iterativo de mejora continua, que requiere control de la gestión, la coordinación y comentarios de muchos procesos simultáneos:
- Los procesos del ciclo de vida del software.
- El proceso de detección de defectos, remoción y prevención.
- El proceso de mejora de la calidad.
Mejoras
Evitar fallos del sistema equivale a evitar dañar la vida humana, los demás seres vivos, las estructuras físicas, o el medio ambiente.
Los estándares de seguridad buscan reducir el riesgo de defectos de inyección en el software y mejorar así la fiabilidad del software.
Seguridad
Fundamentos
Gestión
Consideraciones prácticas
Herramientas
Calidad del software
Cultura y ética de Ingeniería de Software
Valor y costo de calidad
Modelos y caract. de calidad
Mejora de calidad del Software
Seguridad del Software
Aseguramiento de la calidad del software
Verificación y Validación
Revisión y auditorias
Req. de calidad de Software
Caracterización de defectos
Técnicas de gestión de la calidad del software
Medición de la calidad del Software
Es el conjunto de todos los procesos que garanticen que los productos de software, servicios, y las implementaciones de procesos, en el ciclo de vida cumplan con los objetivos de calidad del software y lograr la satisfacción de las partes interesadas.
Procesos de Gestión de la Calidad o SQM
Es un conjunto de actividades que definen y evalúan la adecuación de los procesos de software para proporcionar evidencia que establece la confianza de que los procesos de software son apropiados y producen productos de software adecuados para los fines previstos.
Aseguramiento o SQA
- Ayuda a la calidad de construcción organización de desarrollo en el sistema durante el ciclo de vida.
- Proporcionan una evaluación objetiva de productos y procesos en todo el ciclo vital. Esta evaluación demuestra si los requisitos son correctos, completos, exactos, coherentes y comprobable.
- determinan si los productos de desarrollo de una determinada actividad se ajustan a los requisitos de ese actividad y si el producto cumple su uso y necesidades de los usuarios previstos.
V & V
Son ampliamente definidos en el sentido estático, de que no hay modelos o programas de software que puedan ser ejecutados , para examinar los artefactos de la ingeniería del software con respecto a las normas que han sido establecidas por la organización o para el proyecto para dichos artefactos.
Revisión y auditoría
Revisiones de la Gestión:
- Monitorear el progreso
- Determinar el estado de planes y programas
- Evaluar la eficacia de los procesos de gestión, herramientas y técnicas.
- Se comparan los resultados reales del proyecto contra los planes , lo que lleva determinar el estado de los proyectos o esfuerzos de mantenimiento.
- Los principales parámetros de revisiones por la dirección son proyecto costo, horario,alcance y calidad.
Revisiones Técnicas:
Evalua un producto de software por un equipo de personal cualificado para determinar su idoneidad para el uso deseado y se identifican discrepancias de las especificaciones y normas.
Se proporciona a la administración pruebas para confirmar el estado técnico de los el proyecto.
Inspecciones:
Detectan y identifican anomalías de productos de software; algunos diferenciadores importantes de las inspecciones en comparación con otros tipos de revisiones técnicas son:
- Reglas
- Muestreo
- Peer
- Led
- Reuniones
Recorridos:
El propósito de un recorrido sistemático es evaluar un producto de software.
Un caminar a través de puede llevarse a cabo con el propósito de educar a una audiencia con respecto a un producto de software.
Auditorías de Aseguramiento de los procesos y aseguramiento de los productos:
El objetivo de una auditoría de software es proporcionar una evaluación independiente de la conformidad de productos de software y procesos a regulaciones aplicables ,directrices, planes y procedimientos.
Fundamentos
Gestión
Consideraciones prácticas
Herramientas
Calidad del software
Cultura y ética de Ingeniería de Software
Valor y costo de calidad
Modelos y caract. de calidad
Mejora de calidad del Software
Seguridad del Software
Aseguramiento de la calidad del software
Verificación y Validación
Revisión y auditorias
Req. de calidad de Software
Caracterización de defectos
Técnicas de gestión de la calidad del software
Medición de la calidad del Software
Consideraciones prácticas
Requisitos
Factores de Influencia
Confianza
Niveles de Integridad
Son técnicas para encontrar defectos, fallos y fracasos. Conduce a una comprensión del producto, facilita la correcciones en el proceso o el producto, e informa a la gestión y otras partes interesadas de la situación del proceso o producto.
Caracterización de defectos
Se pueden clasificar de muchas maneras, pero un enfoque directo utiliza sólo dos categorías: estático y dinámico. Técnicas dinámicas implican la ejecución del software; técnicas estáticas implican que analiza documentos y código fuente, pero no ejecutar el software.
Técnicas de gestión
Se utilizan para la toma de decisiones de apoyo. Con la creciente sofisticación del software, una de las cuestiones de calidad es ir más allá de si o no el software logra los objetivos de calidad medibles.
Medición
Fundamentos
Gestión
Consideraciones prácticas
Herramientas
Calidad del software
Cultura y ética de Ingeniería de Software
Valor y costo de calidad
Modelos y caract. de calidad
Mejora de calidad del Software
Seguridad del Software
Aseguramiento de la calidad del software
Verificación y Validación
Revisión y auditorias
Req. de calidad de Software
Caracterización de defectos
Técnicas de gestión de la calidad del software
Medición de la calidad del Software
Herramientas
Resultados
Código
Análisis dinámico y estático
- Análisis sintáctico y semántico
- Análisis modal de fallos y efectos
- Análisis del árbol de fallos
- Tasas de inyección de defectos y de eliminación
[ Resumen ]
ISO9000-3
y
SWEBOK Cap. 10
La Calidad en el Software involucra
Objetivos
Requisitos
Riesgos
Ciclo de vida
Fuentes de req.
Elicitación
Comunicación
Continua con
El cliente
Definir
Entradas y salidas
De los procesos
V & V
Revisiones y pruebas
De unidad y sistema
Adm. de la configuración
Seguimiento de cambios
Mediciones
Control de
Adquisición de
Componentes
Monitorizar y preservar
Activos tales como
Componentes
Gestión de
proyectos
SQA
Requisitos
de software
Gestión de la configuración
}
Respuestas
a posibles preguntas
!
P: ¿Alguna plantilla para aplicar la ISO 9000-3?
R: Próximamente en sus bandejas de correo electrónico.
P: ¿Donde encontrar métricas?
R: En el capitulo 7 del libro Measuring Test Effectiveness, de Rick Craig y Stefan Jaskiel.
P: ¿Su enfoque estaba en la calidad en los procesos?
R: El enfoque es general esta en el software. La calidad en procesos es difícil de separar de la del producto pero puede entenderse inicialmente como:
La calidad en los procesos repercute en la calidad del producto.
P: ¿Alguna herramienta para análisis?
R: Coverty (Dinamico - Java) Valgrid (Fugas de memoria)
BugScout (Estatico- Multi) Lint (Estatico - C/C++)
¿Preguntas?
?
[Caso práctico]
Veamos un
Se ha detectado una comunicación no deseada entre cárceles
Jails son ambientes virtualizados propios del sistema operativo FreeBSD que permiten particionar el sistema en subsistemas independientes llamados Jails.
En un proceso de auditoría se detecto que los procesos que se ejecutaban en una jail podían ser vistos por otra jail (mediante el comando "ps"), lo que representa un problema de seguridad.
PLAN
DO
ACT
CHECK
Aplicando PDCA
Evitar la fuga de información mediante "ps" limitando su campo de acción a una sola jail.
- Ver el funcionamiento del comando.
- Modificando su código.
- Estableciendo permisos.
Realizar pruebas del proceso en varias jails.
Recopilar información de los procesos relacionados a "ps"
Lleve a cabo las acciones correctivas.
Estandarice.
PLAN
DO
ACT
CHECK
PS
¿Existe otro proceso que permita la fuga de información?
Estandarización
Conclusiones
- La calidad en el software involucra expectativas, necesidades y requisitos que provienen del cliente.
- Involucra procesos de direccionamiento del proyecto, conocimiento del dominio (contexto, organización, etc), documentación, evaluaciones (revisiones, auditorías, etc), costos entre otros factores.
- La calidad en el software es parte integran del ingeniero de software.
- La calidad en el software no solo se fundamenta en los requisitos.
Referencias Bibliográficas
- SWBOK V3.0 2004, IEEE. Cápitulo 10: Quality Software.
- Kehoe R., Jarvis A. ISO 9000-3: A Tool for Software Product and Process Improvement, p. 45. SpringerVerlag, 1996.
-
Measuring Test Effectiveness, del Capítulo 7: Test Execution. Del Libro Systematic Software Testing by Rick D. Craig and Stefan P. Jaskiel, Artech House © 2002.
Muchas
Gracias
[ ]
Calidad en el Software
By Juangui Restrepo
Calidad en el Software
Poner a disposición los elementos compatibles entre la norma ISO 9000-3 y los componentes referentes a la calidad del software del SWEBOK.
- 360