Calidad de software

41
Calidad de Software

Transcript of Calidad de software

Page 1: Calidad de software

Calidad de Software

Page 2: Calidad de software

• INDICE– La Calidad del software– ISO 9126– CMMI

Calidad de software

Page 3: Calidad de software

LA CALIDAD DEL SOFTWARE

Page 4: Calidad de software

Gestión de la Calidad• Principios de la gestión de la calidad según ISO 9000:

2000– Los ocho principios de la gestión de la calidad identificados para

lograr los objetivos de la calidad, según "ISO 9000:2000 Sistemas de Gestión de la Calidad.

1. Enfoque al cliente. Las organizaciones dependen de sus clientes y por la tanto deberían comprender las necesidades actuales y futuras de los clientes, satisfacer los requisitos de los clientes y esforzarse en exceder las expectativas de los clientes.

2. Liderazgo. Los líderes establecen la unidad de propósito y la orientación de la organización. Ellos deberían crear y mantener un ambiente interno, en el cual el personal pueda llegar a involucrarse totalmente en el logro de los objetivos de la organización.

3. Participación del personal. El personal, a todos los niveles, es la esencia de una organización y su total compromiso posibilita que sus habilidades sean usadas para el beneficio de la organización.

Page 5: Calidad de software

Gestión de la calidad4. Enfoque basado en procesos. Un resultado deseado se alcanza más

eficientemente cuando las actividades y los recursos relacionados se gestionan como un proceso.

5. Enfoque de sistema hacia la gestión. Identificar, entender y gestionar los procesos interrelacionados como un sistema, contribuye a la eficacia y eficiencia de una organización en el logro de sus objetivos.

6. Mejora continua. La mejora continua del desempeño global de la organización debería ser un objetivo permanente de ésta.

7. Enfoque basado en hechos para la toma de decisiones. Las decisiones eficaces se basan en el análisis de los datos y la información.

8. Relación mutuamente beneficiosa con el proveedor. Una organización y sus proveedores son interdependientes, y una relación mutuamente beneficiosa aumenta la capacidad de ambos para crear valor.

– Estos ocho principios de gestión de la calidad constituyen la base de las normas de sistemas de gestión de la calidad de la familia de Normas ISO 9000.

Page 6: Calidad de software

Gestión de la calidad• Conceptos ISO 9000:2000

– Sistema de gestión: Sistema para establecer la política y los objetivos, y para la consecución de dichos objetivos.

– Gestión de la calidad: Conjunto completo de procesos utilizados en un sistema de gestión de la calidad.

– Política de la calidad: Intenciones y dirección global de una organización relativas a la calidad tal como se expresan formalmente por la alta dirección.

– Planificación de la calidad: Parte de la gestión de la calidad enfocada al establecimiento e interpretación de la política de la calidad y los requisitos de la calidad y específica cómo se va a alcanzar.

– Mejora de la calidad: Parte de la gestión de la calidad orientada a mejorar su eficacia y eficiencia.

– Proceso: Sistema de actividades, que utilizan recursos para transformar entradas en salidas.

Page 7: Calidad de software

La calidad del software• Existen varios modelos de calidad de software

– El CMM - CMMI (Capability Maturity Model) es un modelo de calidad del software que clasifica las empresas en niveles de madurez. Estos niveles sirven para conocer la madurez de los procesos que se realizan para producir software.

– ISO 12207 – Modelos de Ciclos de Vida del Software. – SPICE (Software Process Improvement and Capability

Determination) – ISO 15504. – ISO 9126 es un estándar internacional para la evaluación

del Software. Está supervisado por el proyecto SQuaRE, ISO 25000:2005, el cuál sigue los mismos conceptos.

Page 8: Calidad de software

La calidad del software• La obtención de un software con calidad implica la

utilización de metodologías o procedimientos estándares para el análisis, diseño, programación y prueba del software que permitan uniformar la filosofía de trabajo, en aras de lograr una mayor confiabilidad, mantenibilidad y facilidad de prueba, a la vez que eleven la productividad, tanto para la labor de desarrollo como para el control de la calidad del software. Los requisitos del software son la base de las medidas de calidad. La falta de concordancia con los requisitos es una falta de calidad.

Page 9: Calidad de software

La calidad del software• Los estándares o metodologías definen un

conjunto de criterios de desarrollo que guían la forma en que se aplica la ingeniería del software. Si no se sigue ninguna metodología siempre habrá falta de calidad.

• Existen algunos requisitos implícitos o expectativas que a menudo no se mencionan, o se mencionan de forma incompleta que también pueden implicar una falta de calidad.

Page 10: Calidad de software

La calidad del software• La política establecida debe estar sustentada sobre tres

principios básicos: tecnológico, administrativo y ergonómico. – El principio tecnológico define las técnicas a utilizar en el proceso

de desarrollo del software. – El principio administrativo contempla las funciones de

planificación y control del desarrollo del software, así como la organización del ambiente o centro de ingeniería de software.

– El principio ergonómico define la interfaz entre el usuario y el ambiente automatizado.

• La adopción de una buena política contribuye en gran medida a lograr la calidad del software, pero no la asegura.

• Para asegurarse un nivel de calidad es necesario su control o evaluación.

Page 11: Calidad de software

La calidad del software• La gestión de la calidad

– Gestión de la calidad: "Aspectos de la función de gestión que determinan y aplican la política de la calidad, los objetivos y las responsabilidades y que lo realiza con medios tales como la planificación de la calidad, el control de la calidad, la garantía de calidad y la mejora de la calidad". Dentro de la gestión de la calidad se observa:

– Gestión de la calidad de software (ISO 9000): Conjunto de actividades de la función general de la dirección que determina la calidad, los objetivos y las responsabilidades y se implanta por medios tales como la planificación de la calidad, el control de la calidad, el aseguramiento (garantía) de la calidad y la mejora de la calidad, en el marco del sistema de calidad

– Política de calidad (ISO 9000): Directrices y objetivos generales de una organización, relativos a la calidad, tal como se expresan formalmente por la alta dirección.

– La gestión de la calidad se aplica normalmente a nivel de empresa. También puede haber una gestión de calidad dentro de la gestión de cada proyecto.

Page 12: Calidad de software

La calidad del software• El aseguramiento (assurance) de la calidad

– Aseguramiento de la calidad: "Conjunto de acciones planificadas y sistemáticas necesarias para proporcionar la confianza adecuada de que un producto o servicio satisfará los requerimientos dados sobre calidad".

– Aseguramiento de la calidad de software: Conjunto de actividades planificadas y sistemáticas necesarias para aportar la confianza en que el producto (software) satisfará los requisitos dados de calidad.

– El aseguramiento de calidad del software se diseña para cada aplicación antes de comenzar a desarrollarla.

Page 13: Calidad de software

La calidad del software• El aseguramiento de calidad del software está

presente en:– Métodos y herramientas de análisis, diseño,

programación y prueba.– Inspecciones técnicas formales en todos los pasos del

proceso de desarrollo del software.– Estrategias de prueba multiescala.– Control de la documentación del software y de los

cambios realizados.– Procedimientos para ajustarse a los estándares (y dejar

claro cuando se está fuera de ellos).– Mecanismos de medida (métricas).– Registro de auditorias y realización de informes.

Page 14: Calidad de software

La calidad del software• Las actividades para el aseguramiento de calidad

del software se detallan en:– Métricas de software para el control del proyecto.– Verificación y validación del software a lo largo del ciclo

de vida (Incluye las pruebas y los procesos de revisión e inspección).

– La gestión de la configuración del software.

Page 15: Calidad de software

La calidad del software• Algunos métodos del aseguramiento:

– Revisiones técnicas y de gestión (su objetivo es la evaluación).

– Inspección (su objetivo es la verificación). • ¿Estamos construyendo el producto correcto?.

– Pruebas (su objetivo es la validación). • ¿Estamos construyendo el producto correctamente?.

– Auditorias (su objetivo es la confirmación del cumplimiento).

Page 16: Calidad de software

La Calidad del Software• El control de la calidad

– Control de calidad: "Conjunto de técnicas y actividades de carácter operativo, utilizadas para verificar los requerimientos relativos a la calidad del producto o servicio".

– Control de la calidad del software: Técnicas y actividades de carácter operativo, utilizadas para verificar los requisitos relativos a la calidad, centradas en mantener bajo control el proceso de desarrollo y eliminar las causas de los defectos en las diferentes fases del ciclo de vida.

– El control de la calidad del software está centrado en dos objetivos fundamentales:

• Mantener bajo control un proceso.• Eliminar las causas de los defectos en las diferentes fases del ciclo de

vida.

Page 17: Calidad de software

ISO 9126

Page 18: Calidad de software

ISO 9126• ISO 9126 es un estándar internacional para la evaluación

del Software. Está supervisado por el proyecto SQuaRE, ISO 25000:2005, y sigue los mismos conceptos.

• El estándar está dividido en cuatro partes– modelo de calidad– métricas externas– métricas internas– calidad en las métricas de uso.

• El modelo de calidad establecido en la primera parte del estándar, ISO 9126-1, clasifica la calidad del software en un conjunto estructurado de características y subcaracterísticas

Page 19: Calidad de software

ISO 9126

• Características– Funcionalidad

• Un conjunto de atributos que se relacionan con la existencia de un conjunto de funciones y sus propiedades específicas. Las funciones son aquellas que satisfacen lo indicado o implica necesidades.

• Subcaracterísticas – Idoneidad– Exactitud– Interoperabilidad– Seguridad– Cumplimiento de normas.– Conformidad

Page 20: Calidad de software

ISO 9126

• ...Características– Fiabilidad

• Un conjunto de atributos relacionados con la capacidad del software de mantener su nivel de prestación bajo condiciones establecidas durante un período de tiempo establecido.

• Subcaracterísticas – Madurez– Recuperabilidad– Tolerancia a fallos– Conformidad

Page 21: Calidad de software

ISO 9126

• ...Características– Usabilidad

• Un conjuntos de atributos relacionados con el esfuerzo necesitado para el uso, y en la valoración individual de tal uso, por un establecido o implicado conjunto de usuarios.

• Subcaracterísticas– Aprendizaje– Comprensión– Operatividad– Conformidad

Page 22: Calidad de software

ISO 9126

• ...Características– Eficiencia

• Conjunto de atributos relacionados con la relación entre el nivel de desempeño del software y la cantidad de recursos necesitados bajo condiciones establecidas.

• Subcaracterísticas– Comportamiento en el tiempo– Comportamiento de recursos– Conformidad

Page 23: Calidad de software

ISO 9126

• ...Características– Mantenibilidad

• Conjunto de atributos relacionados con la facilidad de extender, modificar o corregir errores en un sistema software.

• Subcaracterísticas– Estabilidad– Facilidad de análisis– Facilidad de cambio– Facilidad de pruebas– Conformidad

Page 24: Calidad de software

ISO 9126

• ...Características– Portabilidad

• Conjunto de atributos relacionados con la capacidad de un sistema software para ser transferido desde una plataforma a otra.

• Subcaracterísticas– Capacidad de instalación– Capacidad de reemplazamiento– Adaptabilidad– Conformidad

Page 25: Calidad de software

ISO 9126

• Cada subcaracterística (como adaptabilidad) está dividida en atributos. – Un atributo es una entidad la cual puede ser verificada o

medida en el producto software. – Los atributos no están definidos en el estándar, ya que

varían entre diferentes productos software.• Un producto software está definido en un sentido

amplio como: los ejecutables, código fuente, descripciones de arquitectura, etc. – La noción de usuario se amplía tanto a operadores como

a programadores, que son usuarios de componentes software.

Page 26: Calidad de software

ISO 9126• El estándar provee un entorno para que las organizaciones

definan un modelo de calidad para el producto software.– Cada organización tiene que especificar precisamente su propio

modelo. – Esto podría ser hecho, por ejemplo, especificando los objetivos para

las métricas de calidad las cuales evalúan el grado de presencia de los atributos de calidad.

• Métricas internas son aquellas que no dependen de la ejecución del software (medidas estáticas).

• Métricas externas son aquellas aplicables al software en ejecución.

• La calidad en las métricas de uso están sólo disponibles cuando el producto final es usado en condiciones reales.

• Idealmente, la calidad interna determina la calidad externa y esta a su vez la calidad en el uso.

Page 27: Calidad de software

ISO 9126

• ISO 9126 distingue entre fallos y no conformidad – fallo

• El no cumplimiento de los requisitos previos– No conformidad

• Afecta a los requisitos especificados.

• Una distinción similar es hecha entre la validación y la verificación.

Page 28: Calidad de software

CMMI

Page 29: Calidad de software

CMMI v1.2• Capability Maturity Model Integration (CMMI) es un

modelo para la mejora de procesos.• Proporciona los elementos esenciales para

procesos eficaces.• Las mejores prácticas CMMI se publican en

documentos llamados modelos.• Hay dos áreas

– Desarrollo – Adquisición

Page 30: Calidad de software

CMMI v1.2• CMMI tiene tres constelaciones:

– CMMI para el desarrollo (Ago-2006)• Desarrollo de productos y servicios• Tiene dos modelos:

– CMMI-DEV– CMMI-DEV + IPPD (Integrated Product and Process Development)

– CMMI para la adquisición (Nov-2007)• Gestión de la cadena de suministro, adquisición y contratación

externa.– CMMI para los servicios (borrador)

• Diseñado para cubrir todas las actividades que requieren gestionar, establecer y entregar servicios.

Page 31: Calidad de software

CMMI v1.2• Independientemente de la constelación\modelo que

opta una organización, las prácticas CMMI deben adaptarse a cada organización en función de sus objetivos de negocio.

• Las organizaciones no pueden ser certificadas CMMI. Por el contrario, una organización puede ser evaluada (por ejemplo, usando un método de evaluación como SCAMPI) y recibir una calificación de nivel 1-5 si sigue los niveles de Madurez.

Page 32: Calidad de software

CMMI v1.2• El modelo CMMI v1.2(CMMI-DEV) contiene las siguientes

22 áreas de proceso:– Análisis de Causas y Resolución (CAR)– Gestión de la configuración (CM)– Análisis de Decisiones y Resolución (DAR)– Gestión Integrada de Proyectos (IPM)– Medición y Análisis (MA)– Innovación y Despliegue Organizacionales(OID)– Definición de procesos organizacionales (OPD)– Enfoque Organizacional en Procesos (OPF)– Rendimiento de Procesos Organizacionales (OPP)– Formación Organizacional (OT)– Monitorización y Control de Proyecto (PMC)

Page 33: Calidad de software

CMMI v1.2– Planificación de proyecto (PP)– Aseguramiento de calidad de Procesos y Productos (PPQA)– Integración de Producto (PI)– Gestión Cuantitativa de Proyectos (QPM)– Gestión de Requerimientos (REQM)– Desarrollo de Requerimientos (RD)– Gestión de Riesgos (RSKM)– Gestión de Acuerdos con Proveedores (SAM)– Solución Técnica (TS)– Validación (VAL)– Verificación (VER)

Page 34: Calidad de software

CMMI v1.2• CMM-SW

– El modelo para software (CMM-SW) establece 5 Niveles de Madurez (Maturity Level) para clasificar a las organizaciones, en función de qué áreas de procesos consiguen sus objetivos y se gestionan con principios de ingeniería.

– Es lo que se denomina un modelo escalonado, o centrado en la madurez de la organización.

– La selección de los Áreas de Proceso está prefijado, habiendo 7 áreas de proceso para el nivel de madurez 2 (ML2), 11 para el ML3, 2 para el ML4 y 2 más para el ML5.

Page 35: Calidad de software

CMMI v1.2• SE-CMM

– El modelo para ingeniería de sistemas (SE-CMM) establece 6 Niveles de Capacidad posibles para cada una de las 22 áreas de proceso implicadas en la ingeniería de sistemas.

– La organización puede decidir cuales son las Áreas de Proceso (PA) que quiere mejorar determinando así su perfil de capacidad.

– Se le denomina modelo continuo.

Page 36: Calidad de software

CMMI v1.2• En el equipo de desarrollo de CMMI había defensores de

ambos tipos de representaciones. El resultado fue la publicación del modelo con dos representaciones: continua y escalonada.

• No son equivalentes, y cada organización puede optar por adoptar la que se adapte a sus características y prioridades de mejora.

• La visión continua de una organización mostrará la representación de nivel de capacidad de cada una de las áreas de proceso del modelo.

• La visión escalonada definirá a la organización dándole en su conjunto un nivel de madurez del 1 al 5.

Page 37: Calidad de software

CMMI v1.2• Niveles de capacidad de procesos (modelo

continuo)– Incompleto

• El proceso no se realiza, o no se consiguen sus objetivos.– Ejecutado

• El proceso se ejecuta y se logra su objetivo.– Gestionado

• Además de ejecutarse, el proceso se planifica, se revisa y se evalúa para comprobar que cumple los requisitos.

– Definido• Además de ser un proceso gestionado se ajusta a la política de

procesos que existe en la organización, alineada con las directivas de la empresa.

Page 38: Calidad de software

CMMI v1.2– Cuantitativamente gestionado

• Además de ser un proceso definido se controla utilizando técnicas cuantitativas.

– Optimizando• Además de ser un proceso cuantitativamente gestionado, de

forma sistemática se revisa y modifica o cambia para adaptarlo a los objetivos del negocio. Mejora continua.

Page 39: Calidad de software

¿por qué adoptar CMMI?• Muchas organizaciones valoran el medir su progreso

llevando a cabo una evaluación y ganando una clasificación del nivel de madurez o de un nivel de capacidad de logro.

• Este tipo de evaluaciones son realizadas normalmente por una o más de las siguientes razones:– Para determinar que también los procesos de la organización se

comparan con las mejores prácticas CMMI y determinar qué mejoras se pueden hacer.

– Para informar a los clientes externos y proveedores acerca de que también los procesos de la organización se comparan con las mejores prácticas CMMI.

– Para cumplir los requisitos contractuales de uno o más clientes.

Page 40: Calidad de software

Evaluar CMMI• Las valoraciones de las organizaciones utilizando

un modelo CMMI deben ajustarse a los requisitos definidos en el documento "Appraisal Requirements for CMMI" (ARC).

• La evaluación se enfoca en identificar oportunidades de mejora, y comparar los procesos de la organización con las mejores prácticas CMMI.

• Los equipos de evaluación usan el modelo CMMI y un método para guiar su evaluación y reporte de conclusiones.

• Los resultados de la evaluación son usados para planear mejoras en la organización.

Page 41: Calidad de software

Evaluación SCAMPI• El Standard CMMI Appraisal Method for Process

Improvement (SCAMPI) es el método oficial para proveer puntos de referencia de sistemas de calificación en relación con los modelos CMMI.

• SCAMPI se usa para identificar fortalezas y debilidades de los procesos, revelar riesgos de desarrollo/adquisición, y determinar niveles de capacidad y madurez.

• Se utilizan ya sea como parte de un proceso o programa de mejora, o para la calificación de posibles proveedores.

• El método define el proceso de evaluación– Preparación– actividades sobre el terreno– observaciones preliminares– conclusiones y valoraciones– presentación de informes– actividades de seguimiento.