1. Calidad en el desarrollo del
software
Joan Sebastián Ramírez Pérez
2015
2. Agenda
¿Qué es calidad del software?
ISO 8402
ISO 9000/9001
ISO / IEC TR 15504
CMMI
Bibliografía
3. Agenda
¿Qué es calidad del software?
ISO 8402
ISO 9000/9001
ISO / IEC TR 15504
CMMI
Bibliografía
4. ¿Qué es calidad?
Según ISO 8492:1986: Totalidad de aspectos o características de un producto o
servicio que le hace satisfacer necesidades explícitas o implícitas.
Según ISO 8402 (1994): Calidad de un producto o servicio es la capacidad de dicho
producto o servicio para satisfacer las exigencias para las que fue creado, estando
su valor medido por el grado de satisfacción del consumidor que lo ha adquirido o
lo utiliza
IEEE Std 610.12-1990: El grado en que un sistema, un componente o un proceso
satisface las necesidades o expectativas de un cliente o usuario.
5. ¿Qué es software de calidad?
Calidad es cumplir con los requisitos (Crosby, Quality is free, 1979).
Calidad es cumplir con los requisitos de una persona determinada (Weinberg,
Software quality management, vol1, 1991).
Conjunto de características que confieren al software la aptitud para satisfacer las
necesidades establecidas y las implícitas.
6. Software de calidad vs calidad del
software.
Software de calidad es la percepción que tiene un cliente.
Calidad del software es algo objetivo y cuantificado.
7. ¿Qué es un error software?
Error:
Inconsistencia gramatical en alguna o algunas líneas de código.
Incoherencia con respecto a algún requisito.
Fault: defecto.
Es un error software que no es mitigado por otras líneas.
Failure: fallo.
Es un defecto que ocurre.
8. Causas de errores del software
1. Mala definición de requisitos.
2. Mala comunicación con el cliente.
3. Desviaciones deliberadas:
Mala reutilización
Presupuesto/ tiempo
4. Errores lógicos de diseño:
Algoritmos erróneos.
Error en secuencia planteada.
Condiciones frontera erróneas.
Omisión de estados.
Omisión de tratamiento de excepciones.
9. Causas de errores del software
5. Errores de codificación.
6. Incumplimiento de estándares de codificación y documentación.
7. Pruebas incompletas.
8. Errores de procedimiento.
9. Errores de documentación.
10. ¿Qué nos obliga a tener calidad en el
software?
1. Condiciones contractuales.
2. Relación cliente-proveedor.
3. Trabajo en equipo.
4. Cooperación y coordinación.
5. Interfaces con otros sistemas software.
6. Cambios de componentes del equipo.
7. Mantenimiento de producto.
11. Condiciones contractuales
Lista de requisitos funcionales.
Presupuesto del proyecto.
Planificación temporal.
Equipos predefinidos.
13. Trabajo en equipo
Criterios.
Objetivos.
Motivación.
Planteamientos profesionales.
Meta común.
14. Cooperación y coordinación
Otro equipo
subcontratado
Equipo de
Desarrollo del
Cliente
Equipo de
Desarrollo SW
Equipo de
Desarrollo HW
Nuestro
Equipo
Equipo de
Desarrollo SW
Otro equipo
subcontratado
Otro equipo
subcontratadoOtro equipo
subcontratado
15. Interfaces con otros sistemas de software
Interfaces de entrada de otros sistemas software.
Interfaces de salida a otros sistemas software.
Interfaces de entrada y salida al panel de control.
18. ¿Qué es un Sistema de Gestión de Calidad?
Según ISO 9000:2000: Conjunto de elementos mutuamente relacionados que
interactúan para establecer la política y los objetivos de calidad de una
organización, y para dirigir y controlar dicha organización para lograr dichos
objetivos.
Generalmente incluye el establecimiento de:
Política de la calidad.
Objetivos de calidad.
Planificación de la calidad.
Control de la calidad.
Mejora de la calidad.
Aseguramiento de la calidad.
19. ¿Qué es planificación de la calidad?
Según ISO 9000:2000: Parte de la gestión de la calidad enfocada al establecimiento
de los objetivos de la calidad y a la especificación de los procesos operativos
necesarios y de los recursos relacionados para cumplir los objetivos de la calidad.
20. ¿Qué es aseguramiento de la calidad?
El aseguramiento de la calidad del software es el sistema de métodos y
procedimientos empleados para asegurar que el producto software satisface sus
requisitos. Este sistema implica la planificación, medida y seguimiento de las
actividades de desarrollo llevadas a cabo.
21. ¿Qué es ISO?
ISO es la Organización Internacional para la Normalización. Es una federación de
los Organismos Nacionales de Normalización de unos 130 países.
Es una Organización no gubernamental establecida en 1947. El resultado de los
trabajos de ISO son acuerdos internacionales que se publican en forma de Normas.
23. Agenda
¿Qué es calidad del software?
ISO 8402
ISO 9000/9001
ISO / IEC TR 15504
CMMI
Bibliografía
24. ¿Qué es ISO 8402?
Define los términos básicos y fundamentales relacionados con los conceptos dela
calidad, aplicables a todos los campos.
La norma ISO 8402 fue dada a conocer en 1986. Esta define calidad como "el
conjunto de características de una entidad le confieren la aptitud para satisfacer las
necesidades establecidas e implícitas". También podría decirse que es la
"conformidad con los requisitos" y el "grado de excelencia", entendiéndose calidad
como la satisfacción del cliente.
La norma ISO 8402 fue sustituida en el año 2000 por la norma ISO 9000.
25. Agenda
¿Qué es calidad del software?
ISO 8402
ISO 9000/9001
ISO / IEC TR 15504
CMMI
Bibliografía
26. ¿Qué es ISO 9000 o ISO 9001?
ISO 9001 define requisitos para un sistema de gestión de calidad de cualquier
organización. Es un estándar.
ISO es general y no incluye prácticas.
27. Certificación
La certificación respecto a la norma está pensada para que los clientes tengan la
seguridad de que la organización es capaz de desarrollar software con una calidad
consistente.
También asegura que la organización está siguiendo las normas y procedimientos
que tiene definidos. Para mantener la certificación es necesario llevar a cabo
auditorías externas periódicas.
La norma no especifica de que manera se debe desarrollar el software, sino los
elementos del sistema de calidad y el contenido del manual de calidad.
28. ISO 9000
Su misión es normalizar en el campo de gestión de la calidad, incluyendo los
sistemas de calidad, el aseguramiento de la calidad y guías para su selección y
aplicación.
La serie ISO 9000 evolucionó desde el BS5750 y se publicó por primera vez en
1987.
La versión más utilizada es la versión de 1994.
En 2000 se ha publicado una nueva versión de la serie 9000, que sustituye a la de
1994.
29. Series vigentes ISO 9000
ISO 9001:1994. Sistemas de la Calidad, modelo para aseguramiento de la calidad
en diseño, desarrollo, producción, instalación y servicio.
ISO 9002:1994. Sistemas de la Calidad, modelo para aseguramiento de la calidad
en producción, instalación y servicio.
ISO 9003:1994. Sistemas de la Calidad, modelo para aseguramiento de la calidad
en inspecciones finales y pruebas.
ISO 9004:1994. Guía de los componentes de la gestión de la calidad y de los
sistemas de la calidad.
30. Características ISO 9001
Comprensión y cumplimiento de requisitos.
Consideración de los procesos en términos que aporten valor.
Obtención de resultados del desempeño y eficacia del proceso.
Mejora continua de los procesos mediante mediciones objetivas.
31. SQA basado en procesos
Clientes Clientes
Mejora continua del
sistema de gestión de calidad
Requisitos
Satisfacción
Realización del producto
Medición, análisis
y mejora
Responsabilidad de la
dirección
Gestión de los recursos
Producto
Salidas
Entradas
32. ¿Cuándo usar ISO 9001?
Necesita demostrar su capacidad de ofrecimiento de productos de manera
coherente, satisfaciendo los requisitos del cliente y los reglamentos aplicables.
Aspira a aumentar la satisfacción del cliente.
33. ¿Qué contiene la norma?
Papel de la Documentación.
Responsabilidad de la Dirección.
Gestión de los recursos.
Realización de los productos.
Mediciones, análisis y mejoras.
34. Agenda
¿Qué es calidad del software?
ISO 8402
ISO 9000/9001
ISO / IEC TR 15504
CMMI
Bibliografía
35. ISO / IEC TR 15504
Proporciona el marco para evaluar la capacidad y madurez de los procesos de
desarrollo de software.
37. Modelo ISO / IEC TR 15504
1.
Examine
organisation’s
needs
8.
Monitor
performance
7.
Sustain
improvement
gains
6.
Confirm
improvements
5.
Implement
improvements4.
Analyze results
and derive
action plan
2.
Initiate process
improvement
3.
Prepare and
conduct process
assessment
• Industrial benchmarks
Practice descriptions from the assessment
model in Part 5 or another assessment
model compatible (Part 2)
• Process improvement programme plan for
For capability determination.
• Target capability profiles from capability determination
(Part 8)
Assessment
results
Approved
action plan
Analyzed
re-assessment
results
Implemented
improvements
Validated
improvement
results
Re-assessment
request
Identified
scope and
priorities
Improvement
initiation
Software process
improvement request
Organisation’s needs
Institutionalised
improvements
Improvements in
organisational unit’s
software process
Assessment
request (Parts 3 and 4)
current assessed
capability
Preliminary process
improvement
programme
plan
model compatible with Part 2
•
38. Agenda
¿Qué es calidad del software?
ISO 8402
ISO 9000/9001
ISO / IEC TR 15504
CMMI
Bibliografía
39. ¿Qué es madurez?
Atributo de las organizaciones que desarrollan o mantienen los sistemas de
software. En la medida que éstas llevan a cabo su trabajo siguiendo procesos, y en
la que éstos se encuentran homogéneamente implantados, definidos con mayor o
menor rigor; conocidos y ejecutados por todos los equipos de la empresa; y
medidos y mejorados de forma constante, las organizaciones serán más o menos
“maduras”.
40. ¿Qué es capacidad?
Atributo de los procesos. El nivel de capacidad de un proceso indica si sólo se
ejecuta, o si también se planifica se encuentra organizativa y formalmente definido,
se mide y se mejora de forma sistemática
41. ¿Qué es CMMI?
Capability Maturity Model o Integration.
La calidad de un producto o de un sistema es, en su mayor parte, consecuencia de
la calidad de los procesos empleados en su desarrollo y mantenimiento.
Es un modelo basado en la búsqueda de la optimización permanente (aplicación
de TQM(Total Quality Management)) en procesos ingenieriles y afines, esto a través
de estados de evaluación conocidos en el modelo como “Niveles de madurez”.
En CMMI no se usa el termino “Certificación”, se habla de valoración.
Si una empresa aplica los procesos descritos en el PMBOK ya ha institucionalizado
gran parte de las prácticas de Gerencia de Proyectos que define CMMI.
42. ¿Qué es CMMI?
Es un modelo de evaluación de los procesos de una organización y se ha
convertido en un estándar para promocionar la capacidad de desarrollar software
de alta criticidad, una ventaja para las empresas que participan de proyectos
complejos, riesgosos y de alto costo.
Es un conjunto de metas de mejoramiento en 4 categorías de procesos:
• Ingeniería
• Gestión de Proyectos
• Gestión de Procesos
• Apoyo a Proyectos
43. ¿Quién lo creo?
CMMI es parte del movimiento TQM que tomo fuerza en los años 80 en Estados Unidos y Europa.
Historia CMM y CMMI:
El departamento de defensa de los Estados Unidos tenía muchos problemas con el software que
encargaba desarrollar a otras empresas, los presupuestos se disparaban, las fechas se prolongaban.
Como esta situación les parecía intolerable se convocó un comité de expertos para buscar
soluciones, en el año 1983 dicho comité concluyó “crear un instituto de la ingeniería del software,
dedicado exclusivamente a los problemas del software, y a ayudar al Departamento de Defensa".
Convocaron un concurso público en el que dijeron: "Cualquiera que quiera enviar una solicitud
tiene que explicar como van a resolver estos 4 problemas", se presentaron diversos estamentos y la
Universidad Carnegie Mellon ganó el concurso en 1985, creando el SEI.
El SEI (Software Engineering Institute) es el instituto que creó y mantiene el modelo de calidad
CMM - CMMI
45. ¿Qué es necesario para implementar
CMMI?
1. Conocimientos de Ingeniería De Software.
2. Conocimientos de Gestión de Calidad.
3. Conocimientos de Gerencia de Proyectos.
4. Habilidades de Gestión del Cambio y “Venta” de Ideas.
5. Consultoría para interpretación de las prácticas y sus interrelaciones.
47. 1. Inicial: El proceso de alguna manera llega a su objetivo.
2. Repetible: el proceso es gestionado y controlado durante el desarrollo, lo cual
permite repetir la obtención de los objetivos.
3. Definido: la forma de desarrollar proyectos (gestión e ingeniería) esta definida y
es evaluado respecto a la consecución de los objetivos. La mayoría de las
empresas que llegan al nivel 3 paran aquí, ya que es un nivel que proporciona
muchos beneficios y no ven la necesidad de ir más allá porque tienen cubiertas
la mayoría de sus necesidades.
4. Cuantitativamente Gestionado: Se usan métricas para satisfacer las necesidades
de los clientes y la compañía.
5. Optimizado: Los procesos de los proyectos y de la organización están orientados
a la mejora de las actividades. Mejoras incrementales e innovadoras de los
procesos que mediante métricas son identificadas, evaluadas y puestas en
práctica. Generalmente las empresas realizan simultáneamente los niveles 4 y 5.
48. CMMI 1
Nivel donde están todas las empresas que no tienen procesos.
Los presupuestos se disparan, no es posible entregar el proyecto en fechas, sobre
esfuerzos del personal para terminar un proyecto.
No hay control sobre el estado del proyecto.
Si no sabes el tamaño del proyecto y no sabes cuanto llevas hecho, nunca sabrás
cuando vas a terminar.
49. CMMI 2
El éxito de los resultados obtenidos se pueden repetir. La principal diferencia entre
este nivel y el anterior es que el proyecto es gestionado y controlado durante el
desarrollo del mismo.
Los procesos que hay que implantar para alcanzar este nivel son:
Gestión de requisitos.
Planificación de proyectos.
Seguimiento y control de proyectos.
Gestión de proveedores.
Aseguramiento de la calidad.
Gestión de la configuración.
50. CMMI 3
Significa que la forma de desarrollar proyectos (gestión e ingeniería) esta definida, es
decir, esta establecida, documentada y tiene métricas para la consecución de objetivos
concretos.
Los procesos que hay que implantar para alcanzar este nivel son:
Desarrollo de requisitos.
Solución Técnica.
Integración del producto.
Verificación.
Validación.
Desarrollo y mejora de los procesos de la organización.
Definición de los procesos de la organización.
Planificación de la formación.
Gestión de riesgos.
Análisis y resolución de toma de decisiones.
51. CMMI 4
Los proyectos usan objetivos medibles para alcanzar las necesidades de los clientes
y la organización. Se usan métricas para gestionar la organización.
Los procesos que hay que implantar para alcanzar este nivel son:
Gestión cuantitativa de proyectos.
Mejora de los procesos de la organización.
52. CMMI 5
Los procesos de los proyectos y de la organización están orientados a la mejora de
las actividades. Mejoras incrementales e innovadoras de los procesos que mediante
métricas son identificadas, evaluadas y puestas en práctica.
Los procesos que hay que implantar para alcanzar este nivel son:
Innovación organizacional.
Análisis y resolución de las causas.
Normalmente las empresas que intentan alcanzar los niveles 4 y 5 lo realizan
simultáneamente ya que están muy relacionados.
54. ¿En que ayuda?
¿Para que necesito CMMI si no es certificable? escrito por Tecuser, Diciembre 05, 2008:
1) El propio beneficio económico que implica. Evitar redundancia en la generación de
código, capturar los requerimientos en tiempo y forma, clasificarlos, no quedar
pagando con los clientes, etc.
2) Es posible que tengas un cliente que te exija un determinado nivel de madurez para
habilitarte como proveedor. Será el cliente el que te certifique para si mismo. En este
caso, para evitar malas experiencias conviene comenzar a implementar buenas
prácticas y hacerlas evaluar. Si logras un buen resultado es posible que tu cliente te
acepte luego cuando haga las auditorías respectivas.
Muchos clientes AAA hacen este tipo de verificaciones antes de aceptarte.
55. Estadísticas de éxito
Reducir Costos en un 20% en promedio.
Reducir Tiempos en un 37% en promedio.
Aumentar productividad en un 62% en promedio.
Calidad en un 50% en promedio.
Satisfacción del Cliente en un 14% en promedio.
56. ¿Quiénes Valoran en Colombia?
Partners SEI en Colombia:
European Software Institute
Instituto Tecnologico Metropolitano
It Era S.A. de C.V.
MS SPI Solutions
Procesix Colombia Ltda.
Procesix Inc.
SEONTI S.A. de C.V.
57. Agenda
¿Qué es calidad del software?
ISO 8402
ISO 9000/9001
ISO / IEC TR 15504
CMMI
Bibliografía