SlideShare a Scribd company logo
1 of 60
Calidad en el desarrollo del
software
Joan Sebastián Ramírez Pérez
2015
Agenda
 ¿Qué es calidad del software?
 ISO 8402
 ISO 9000/9001
 ISO / IEC TR 15504
 CMMI
 Bibliografía
Agenda
 ¿Qué es calidad del software?
 ISO 8402
 ISO 9000/9001
 ISO / IEC TR 15504
 CMMI
 Bibliografía
¿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.
¿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.
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.
¿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.
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.
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.
¿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.
Condiciones contractuales
 Lista de requisitos funcionales.
 Presupuesto del proyecto.
 Planificación temporal.
 Equipos predefinidos.
Relación cliente proveedor
 Cooperación continua.
 Propenso a cambios.
Trabajo en equipo
 Criterios.
 Objetivos.
 Motivación.
 Planteamientos profesionales.
 Meta común.
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
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.
Cambios de componentes del equipo
Mantenimiento de producto
 El software no se termina cuando se entrega al cliente, sino que nace.
¿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.
¿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.
¿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.
¿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.
Aporte de los marcos de referencia
Agenda
 ¿Qué es calidad del software?
 ISO 8402
 ISO 9000/9001
 ISO / IEC TR 15504
 CMMI
 Bibliografía
¿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.
Agenda
 ¿Qué es calidad del software?
 ISO 8402
 ISO 9000/9001
 ISO / IEC TR 15504
 CMMI
 Bibliografía
¿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.
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.
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.
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.
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.
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
¿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.
¿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.
Agenda
 ¿Qué es calidad del software?
 ISO 8402
 ISO 9000/9001
 ISO / IEC TR 15504
 CMMI
 Bibliografía
ISO / IEC TR 15504
 Proporciona el marco para evaluar la capacidad y madurez de los procesos de
desarrollo de software.
ISO / IEC TR 15504
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
•
Agenda
 ¿Qué es calidad del software?
 ISO 8402
 ISO 9000/9001
 ISO / IEC TR 15504
 CMMI
 Bibliografía
¿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”.
¿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
¿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.
¿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
¿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
Estructura CMM-CMMI
¿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.
Niveles CMMI
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.
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.
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.
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.
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.
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.
Áreas de proceso
¿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.
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.
¿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.
Agenda
 ¿Qué es calidad del software?
 ISO 8402
 ISO 9000/9001
 ISO / IEC TR 15504
 CMMI
 Bibliografía
Bibliografía
 http://www.sei.cmu.edu/partners/directory/organization/PartnerSearchResults.cfm
 http://www.acis.org.co/fileadmin/Conferencias/IntroduccionCMMI_CarlosMendez.pdf
 http://slprog.wikispaces.com/EmpresasCMMI
 http://it-institute.org/index.php?option=com_content&task=view&id=164&Itemid=64
 http://www.ingenierosoftware.com/calidad/cmm-cmmi.php
 http://www.navegapolis.net/files/articulos/sinopsis_cmm.pdf
 An Introduction to International Standard ISO/IEC 12207 Software Life Cycle Processes.
R. Singh, FAA, Washington DC, April 1999.
 A Comparison of IEEE/EIA 12207, ISO/IEC 12207, J-STD-016 and MIL-STD-498 for
acquirers and developers. L. Gray, Ph.D. Abelia Corporation.
Gracias

More Related Content

What's hot

Calidad Del Producto Software
Calidad Del Producto SoftwareCalidad Del Producto Software
Calidad Del Producto Softwarealbert317
 
Presentacion herramientas CASE
Presentacion herramientas CASEPresentacion herramientas CASE
Presentacion herramientas CASEdavidsande
 
Fundamentos de Ingenieria de Software - Unidad 1 modelo de negocios
Fundamentos de Ingenieria de Software - Unidad 1 modelo de negociosFundamentos de Ingenieria de Software - Unidad 1 modelo de negocios
Fundamentos de Ingenieria de Software - Unidad 1 modelo de negociosJosé Antonio Sandoval Acosta
 
Ventajas y desventajas de moprosoft
Ventajas y desventajas de moprosoftVentajas y desventajas de moprosoft
Ventajas y desventajas de moprosoftChuyito Alvarado
 
Mapa conceptual - Institutos Reguladores Calidad de Software
Mapa conceptual - Institutos Reguladores Calidad de SoftwareMapa conceptual - Institutos Reguladores Calidad de Software
Mapa conceptual - Institutos Reguladores Calidad de SoftwareKarloz Dz
 
Gestión de Proyectos de Software - Unidad 1 Introducción a la Gestión de Proy...
Gestión de Proyectos de Software - Unidad 1 Introducción a la Gestión de Proy...Gestión de Proyectos de Software - Unidad 1 Introducción a la Gestión de Proy...
Gestión de Proyectos de Software - Unidad 1 Introducción a la Gestión de Proy...José Antonio Sandoval Acosta
 
Modelado Orientado a Objetos
Modelado Orientado a ObjetosModelado Orientado a Objetos
Modelado Orientado a ObjetosRafael Miranda
 
Plan de Pruebas
Plan de PruebasPlan de Pruebas
Plan de Pruebaschoselin
 
modelos del proceso del software
 modelos del proceso del software  modelos del proceso del software
modelos del proceso del software Brihany Rossell
 
Gestion de la configuracion del software
Gestion de la configuracion del softwareGestion de la configuracion del software
Gestion de la configuracion del softwareJohan Prevot R
 

What's hot (20)

Calidad de software
Calidad de softwareCalidad de software
Calidad de software
 
Gestión de la Calidad en Proyectos de Software
Gestión de la Calidad en Proyectos de SoftwareGestión de la Calidad en Proyectos de Software
Gestión de la Calidad en Proyectos de Software
 
Calidad Del Producto Software
Calidad Del Producto SoftwareCalidad Del Producto Software
Calidad Del Producto Software
 
2. El proceso del software
2. El proceso del software2. El proceso del software
2. El proceso del software
 
SEGUNDA PARTE - Gestion de la calidad del software
SEGUNDA PARTE - Gestion de la calidad del softwareSEGUNDA PARTE - Gestion de la calidad del software
SEGUNDA PARTE - Gestion de la calidad del software
 
Proceso del Software
Proceso del Software Proceso del Software
Proceso del Software
 
Estimación de Proyectos de Software
Estimación de Proyectos de SoftwareEstimación de Proyectos de Software
Estimación de Proyectos de Software
 
Presentacion herramientas CASE
Presentacion herramientas CASEPresentacion herramientas CASE
Presentacion herramientas CASE
 
Fundamentos de Ingenieria de Software - Unidad 1 modelo de negocios
Fundamentos de Ingenieria de Software - Unidad 1 modelo de negociosFundamentos de Ingenieria de Software - Unidad 1 modelo de negocios
Fundamentos de Ingenieria de Software - Unidad 1 modelo de negocios
 
Ventajas y desventajas de moprosoft
Ventajas y desventajas de moprosoftVentajas y desventajas de moprosoft
Ventajas y desventajas de moprosoft
 
Mapa conceptual - Institutos Reguladores Calidad de Software
Mapa conceptual - Institutos Reguladores Calidad de SoftwareMapa conceptual - Institutos Reguladores Calidad de Software
Mapa conceptual - Institutos Reguladores Calidad de Software
 
Gestión de Proyectos de Software - Unidad 1 Introducción a la Gestión de Proy...
Gestión de Proyectos de Software - Unidad 1 Introducción a la Gestión de Proy...Gestión de Proyectos de Software - Unidad 1 Introducción a la Gestión de Proy...
Gestión de Proyectos de Software - Unidad 1 Introducción a la Gestión de Proy...
 
Modelado Orientado a Objetos
Modelado Orientado a ObjetosModelado Orientado a Objetos
Modelado Orientado a Objetos
 
Roles desarrollo del software
Roles desarrollo del softwareRoles desarrollo del software
Roles desarrollo del software
 
Ieee 830
Ieee 830Ieee 830
Ieee 830
 
Plan de Pruebas
Plan de PruebasPlan de Pruebas
Plan de Pruebas
 
Conceptos basicos calidad software
Conceptos basicos calidad softwareConceptos basicos calidad software
Conceptos basicos calidad software
 
modelos del proceso del software
 modelos del proceso del software  modelos del proceso del software
modelos del proceso del software
 
Gestion de la configuracion del software
Gestion de la configuracion del softwareGestion de la configuracion del software
Gestion de la configuracion del software
 
Gestión de proyecto de software
Gestión de proyecto de softwareGestión de proyecto de software
Gestión de proyecto de software
 

Similar to Calidad en el desarrollo del software

Similar to Calidad en el desarrollo del software (20)

Calidad de software
Calidad de softwareCalidad de software
Calidad de software
 
S7-CDSQA.pptx
S7-CDSQA.pptxS7-CDSQA.pptx
S7-CDSQA.pptx
 
Estándares de calidad, ISO/IEC por Edinson Barrera
Estándares de calidad, ISO/IEC por Edinson BarreraEstándares de calidad, ISO/IEC por Edinson Barrera
Estándares de calidad, ISO/IEC por Edinson Barrera
 
Actividad de aprendizaje 2
Actividad  de aprendizaje 2Actividad  de aprendizaje 2
Actividad de aprendizaje 2
 
MODELOS DE CALIDAD DEL SOFTWARE
MODELOS DE CALIDAD DEL SOFTWAREMODELOS DE CALIDAD DEL SOFTWARE
MODELOS DE CALIDAD DEL SOFTWARE
 
Calidad de software
Calidad de softwareCalidad de software
Calidad de software
 
Ensayo
EnsayoEnsayo
Ensayo
 
Ensayo
EnsayoEnsayo
Ensayo
 
Trabajo angeles
Trabajo angelesTrabajo angeles
Trabajo angeles
 
Calidad
CalidadCalidad
Calidad
 
Calidad
CalidadCalidad
Calidad
 
Normas y estandares
Normas y estandaresNormas y estandares
Normas y estandares
 
Calidad de software
Calidad de softwareCalidad de software
Calidad de software
 
Calidad de software ii
Calidad de software iiCalidad de software ii
Calidad de software ii
 
Calidad de software ii
Calidad de software iiCalidad de software ii
Calidad de software ii
 
Calidad de software
Calidad de softwareCalidad de software
Calidad de software
 
Estandares de calidad aplicadas al software
Estandares de calidad aplicadas al softwareEstandares de calidad aplicadas al software
Estandares de calidad aplicadas al software
 
Calidad de software alex
Calidad de software alexCalidad de software alex
Calidad de software alex
 
S2-CDSQA.pptx
S2-CDSQA.pptxS2-CDSQA.pptx
S2-CDSQA.pptx
 
Normas ISO en los procesos del Software
Normas ISO en los procesos del SoftwareNormas ISO en los procesos del Software
Normas ISO en los procesos del Software
 

More from Joan Sebastián Ramírez Pérez (20)

Clean architecture
Clean architectureClean architecture
Clean architecture
 
Practicas tecnicas
Practicas tecnicasPracticas tecnicas
Practicas tecnicas
 
Bddtddatdd
BddtddatddBddtddatdd
Bddtddatdd
 
Pruebas automaticas
Pruebas automaticasPruebas automaticas
Pruebas automaticas
 
Orm
OrmOrm
Orm
 
Servicios web
Servicios webServicios web
Servicios web
 
La nube. Cloud computting
La nube. Cloud computtingLa nube. Cloud computting
La nube. Cloud computting
 
Microservicios
MicroserviciosMicroservicios
Microservicios
 
Control de versiones
Control de versionesControl de versiones
Control de versiones
 
Código Limpio
Código LimpioCódigo Limpio
Código Limpio
 
Ciclo devida
Ciclo devidaCiclo devida
Ciclo devida
 
Practicas técnicas
Practicas técnicasPracticas técnicas
Practicas técnicas
 
Roles scrum
Roles scrumRoles scrum
Roles scrum
 
Lean startup
Lean startupLean startup
Lean startup
 
Principios SOLID
Principios SOLIDPrincipios SOLID
Principios SOLID
 
Código Limpio
Código LimpioCódigo Limpio
Código Limpio
 
Modelo diseño
Modelo diseñoModelo diseño
Modelo diseño
 
Refactor y deuda técnica
Refactor y deuda técnicaRefactor y deuda técnica
Refactor y deuda técnica
 
Diagramas comportamiento
Diagramas comportamientoDiagramas comportamiento
Diagramas comportamiento
 
Pruebas automaticas
Pruebas automaticasPruebas automaticas
Pruebas automaticas
 

Calidad en el desarrollo del software

  • 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.
  • 12. Relación cliente proveedor  Cooperación continua.  Propenso a cambios.
  • 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.
  • 17. Mantenimiento de producto  El software no se termina cuando se entrega al cliente, sino que nace.
  • 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.
  • 22. Aporte de los marcos de referencia
  • 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.
  • 36. ISO / IEC TR 15504
  • 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
  • 58. Bibliografía  http://www.sei.cmu.edu/partners/directory/organization/PartnerSearchResults.cfm  http://www.acis.org.co/fileadmin/Conferencias/IntroduccionCMMI_CarlosMendez.pdf  http://slprog.wikispaces.com/EmpresasCMMI  http://it-institute.org/index.php?option=com_content&task=view&id=164&Itemid=64  http://www.ingenierosoftware.com/calidad/cmm-cmmi.php  http://www.navegapolis.net/files/articulos/sinopsis_cmm.pdf  An Introduction to International Standard ISO/IEC 12207 Software Life Cycle Processes. R. Singh, FAA, Washington DC, April 1999.  A Comparison of IEEE/EIA 12207, ISO/IEC 12207, J-STD-016 and MIL-STD-498 for acquirers and developers. L. Gray, Ph.D. Abelia Corporation.
  • 59.