MODELOS DE CALIDAD DEL SOFTWARE Y ASEGURAMIENTO DE LA CALIDAD

Description

Los modelos de calidad del software y el aseguramiento de la calidad son herramientas fundamentales para garantizar que los productos de software sean confiables, eficientes y satisfagan las necesidades de los usuarios.
Rafael M
Mind Map by Rafael M, updated about 1 month ago
Rafael M
Created by Rafael M about 1 month ago
2
0

Resource summary

MODELOS DE CALIDAD DEL SOFTWARE Y ASEGURAMIENTO DE LA CALIDAD
  1. MODELOS DE CALIDAD DEL SOFTWARE
    1. Los marcos de referencia se utilizan para evaluar y mejorar la calidad del software. Los marcos de referencia son guías para el buen funcionamiento del software.
      1. ¿Qué son los marcos de referencia para evaluar software?
        1. Los marcos de referencia evalúan calidad y cumplimiento de requisitos en software.
          1. ¿Para qué sirven?
            1. Comparar opciones: Facilitan la comparación de softwares para elegir el más adecuado.
              1. Garantizar calidad: Aseguran que el software cumpla con estándares y funcione correctamente.
                1. Identificar áreas de mejora: Evaluando el software se pueden detectar puntos débiles y proponer mejoras.
                2. Características clave que suelen evaluarse
                  1. Funcionalidad: ¿Hace lo que se supone que debe hacer?
                    1. La funcionalidad se refiere a que cumpla los requisitos.
                    2. Confiabilidad: ¿Es estable y seguro?
                      1. La confiabilidad se refiere a su estabilidad.
                      2. Usabilidad: ¿Es fácil de usar?
                        1. La usabilidad se refiere a ser fácil de usar.
                        2. Eficiencia: ¿Es rápido y consume pocos recursos?
                          1. La eficiencia se relaciona con su rapidez y uso de recursos.
                          2. Mantenibilidad: ¿Es fácil de modificar y actualizar?
                            1. La mantenibilidad implica poder modificarlo fácilmente.
                            2. Portabilidad: ¿Funciona en diferentes plataformas?
                              1. La portabilidad se refiere a su capacidad de funcionar en diferentes plataformas.
                            3. ¿Por qué es importante?
                              1. Satisfacción del cliente: Calidad en software cumple expectativas, aumenta satisfacción y fidelidad.
                                1. Costos reducidos: Errores son costosos, especialmente en etapas avanzadas de desarrollo.
                                  1. Mejora reputación: Software de alta calidad refuerza reputación de empresa desarrolladora.
                                  2. ¿Cómo se logra?
                                    1. Planificación: Definir requisitos del software y establecer objetivos de calidad.
                                      1. Diseño: Crear arquitectura sólida y modular para facilitar desarrollo y mantenimiento.
                                        1. Desarrollo: Seguir buenas prácticas de codificación, usar herramientas adecuadas y hacer revisiones de código.
                                          1. Pruebas: Realizar pruebas exhaustivas para detectar y corregir errores.
                                            1. Mantenimiento: Actualizar y mejorar continuamente el software.
                                            2. Técnicas y herramientas
                                              1. Revisiones de código: Evaluar código manual o automáticamente.
                                                1. Pruebas unitarias: Verificar funcionamiento de componentes de software.
                                                  1. Pruebas de integración: Asegurar interacción correcta entre componentes.
                                                    1. Pruebas de sistema: Comprobar cumplimiento de requisitos.
                                                      1. Automatización de pruebas: Reducir tiempo y esfuerzo en pruebas.
                                                        1. Análisis estático: Detectar errores sin ejecutar código.
                                                          1. DevOps: Integración de desarrollo y operaciones para entrega rápida de software.
                                                            1. Herramientas para la Calidad del Software
                                                              1. Herramientas de gestión de configuración: Controlan los cambios en el código fuente.
                                                                1. Herramientas de seguimiento de errores: Ayudan a gestionar los defectos encontrados en el software.
                                                                  1. Herramientas de pruebas: Automatizan las pruebas del software.
                                                                    1. Herramientas de análisis estático: Detectan posibles errores en el código sin ejecutarlo.
                                                                      1. Herramientas de medición: Calculan métricas de calidad del software.
                                                                  2. Tipos de marcos de referencia
                                                                    1. Modelos genéricos
                                                                      1. El modelo de McCall, creado por James A. McCall, es un clásico para evaluar la calidad del software, enfocándose en atributos clave desde la perspectiva del usuario.
                                                                        1. ¿Por qué es importante?
                                                                          1. Enfoque en el usuario: El modelo se centra en los atributos que son más importantes para el usuario final.
                                                                            1. Base para otros modelos: Muchas de las ideas del modelo de McCall han sido incorporadas en modelos posteriores.
                                                                              1. Fomenta la comunicación: Proporciona un vocabulario común para hablar sobre la calidad del software.
                                                                                1. Limitaciones
                                                                                  1. Enfoque estático: No considera la evolución del software a lo largo del tiempo.
                                                                                    1. Falta de detalle: Algunos atributos pueden ser demasiado generales.
                                                                                  2. El modelo de McCall divide la calidad del software en tres ejes principales
                                                                                    1. Operación: Se refiere a cómo funciona el software en condiciones normales de uso. Incluye atributos como:
                                                                                      1. Corrección: ¿El software hace lo que se supone que debe hacer?
                                                                                        1. Fiabilidad: ¿Es el software estable y confiable?
                                                                                          1. Eficiencia: ¿El software utiliza los recursos de manera eficiente?
                                                                                            1. Usabilidad: ¿Es fácil de usar para el usuario final?
                                                                                            2. Revisión: Se refiere a la facilidad con la que se puede modificar y mejorar el software. Incluye atributos como:
                                                                                              1. Mantenibilidad: ¿Es fácil de modificar y actualizar?
                                                                                                1. Flexibilidad: ¿Se puede adaptar a nuevos requisitos?
                                                                                                  1. Testabilidad: ¿Es fácil de probar?
                                                                                                  2. Transición: Se refiere a la facilidad con la que el software se puede trasladar a un nuevo entorno. Incluye atributos como:
                                                                                                    1. Portabilidad: ¿Se puede ejecutar en diferentes plataformas?
                                                                                                      1. Reusabilidad: ¿Se pueden reutilizar componentes del software en otros proyectos?
                                                                                                        1. Intercambiabilidad: ¿Se puede reemplazar fácilmente por otro software?
                                                                                                    2. El estándar ISO/IEC 9126 evalúa la calidad del software mediante características y subcaracterísticas para cumplir requisitos de calidad.
                                                                                                      1. Características Principales del Modelo ISO/IEC 9126:
                                                                                                        1. Funcionalidad: ¿El software hace lo que se espera que haga? Evalúa la capacidad del software para cumplir con sus funciones especificadas.
                                                                                                          1. Fiabilidad: ¿Es el software confiable? Mide la capacidad del software de mantener su nivel de desempeño bajo condiciones especificadas durante un período de tiempo especificado.
                                                                                                            1. Usabilidad: ¿Es fácil de usar? Evalúa la facilidad con la que los usuarios pueden aprender, utilizar y ser eficientes con el software.
                                                                                                              1. Eficiencia: ¿El software es eficiente en el uso de recursos? Mide la relación entre el nivel de desempeño del software y la cantidad de recursos utilizados.
                                                                                                                1. Mantenibilidad: ¿Es fácil de modificar? Evalúa la facilidad con la que se puede modificar el software para corregir defectos, mejorar el desempeño o adaptarlo a un nuevo entorno.
                                                                                                                  1. Portabilidad: ¿Se puede adaptar a diferentes entornos? Mide la facilidad con la que el software se puede transferir de un entorno a otro.
                                                                                                                  2. ¿Por qué es importante?
                                                                                                                    1. Estándar internacional: Proporciona un lenguaje común para hablar sobre la calidad del software.
                                                                                                                      1. Evaluación sistemática: Permite realizar evaluaciones de calidad de manera estructurada y objetiva.
                                                                                                                        1. Mejora continua: Ayuda a identificar áreas de mejora en el desarrollo de software.
                                                                                                                          1. Satisfacción del cliente: Garantiza que el software cumpla con las expectativas de los usuarios.
                                                                                                                            1. Limitaciones del modelo
                                                                                                                              1. Complejidad: El modelo puede ser complejo de aplicar en proyectos pequeños o con requisitos simples.
                                                                                                                                1. Enfoque estático: No considera la evolución del software a lo largo del tiempo.
                                                                                                                          2. Modelos específicos
                                                                                                                            1. El CMMI es un modelo para evaluar y mejorar los procesos de desarrollo de software en una organización, enfocándose en los procesos en lugar del producto final.
                                                                                                                              1. ¿Cuáles son los beneficios de utilizar CMMI?
                                                                                                                                1. Mejora continua: El CMMI fomenta la mejora continua de los procesos.
                                                                                                                                  1. Mayor calidad: Ayuda a garantizar que los productos de software sean de alta calidad.
                                                                                                                                    1. Reducción de costos: Al mejorar los procesos, se reducen los costos asociados a errores y retrasos.
                                                                                                                                      1. Mayor predictibilidad: Permite predecir con mayor precisión los resultados de los proyectos.
                                                                                                                                        1. Satisfacción del cliente: Al entregar productos de mayor calidad, se aumenta la satisfacción del cliente.
                                                                                                                                        2. ¿Cómo funciona el CMMI?
                                                                                                                                          1. El CMMI define áreas de proceso clave (APC) para el desarrollo de software. Los niveles de madurez son:
                                                                                                                                            1. Inicial: Los procesos son ad hoc y caóticos.
                                                                                                                                              1. Gestionado: Los procesos están documentados y se siguen
                                                                                                                                                1. Definido: Los procesos están estandarizados y documentados.
                                                                                                                                                  1. Cuantitativamente gestionado: Se realizan mediciones y se establecen objetivos cuantitativos.
                                                                                                                                                    1. Optimizando: Se lleva a cabo una mejora continua basada en datos y estadísticas.
                                                                                                                                                      1. Cada nivel representa un nivel de madurez en los procesos.
                                                                                                                                                  2. El modelo SPICE es una norma internacional (ISO/IEC 15504) que ofrece un marco flexible para evaluar y mejorar los procesos de software. Difiere de otros modelos al permitir evaluaciones personalizadas.
                                                                                                                                                    1. ¿Qué hace especial a SPICE?
                                                                                                                                                      1. Flexibilidad: SPICE no impone un modelo único, sino que permite a las organizaciones adaptar la evaluación a sus procesos específicos y objetivos.
                                                                                                                                                        1. Amplio alcance: Cubre una amplia gama de procesos, desde el desarrollo inicial hasta el mantenimiento y soporte del software.
                                                                                                                                                          1. Enfoque en la mejora: SPICE no solo evalúa la situación actual, sino que también proporciona directrices para mejorar los procesos.
                                                                                                                                                            1. Personalizable: Las organizaciones pueden seleccionar los procesos a evaluar y el nivel de detalle requerido.
                                                                                                                                                            2. ¿Cómo funciona SPICE?
                                                                                                                                                              1. SPICE define un conjunto de procesos genéricos y atributos que pueden ser adaptados a cualquier organización. A través de una evaluación, se determina el nivel de capacidad de cada proceso, lo que permite identificar fortalezas y áreas de mejora.
                                                                                                                                                              2. Beneficios de utilizar SPICE:
                                                                                                                                                                1. Mejora de los procesos: Identifica las áreas donde se pueden optimizar los procesos.
                                                                                                                                                                  1. Mayor calidad del software: Al mejorar los procesos, se obtiene software de mayor calidad.
                                                                                                                                                                    1. Aumento de la eficiencia: Optimiza el uso de recursos y reduce costos.
                                                                                                                                                                      1. Mayor satisfacción del cliente: Entrega productos que cumplen con los requisitos del cliente.
                                                                                                                                                                        1. Mayor competitividad: Permite a las organizaciones diferenciarse de la competencia.
                                                                                                                                                                      2. El modelo GQM es flexible y personalizado para definir métricas de calidad del software según objetivos específicos, guiando en el diseño de mediciones para alcanzar metas.
                                                                                                                                                                        1. ¿Cómo funciona GQM?
                                                                                                                                                                          1. GQM se basa en una estructura jerárquica que consta de tres niveles:
                                                                                                                                                                            1. Objetivos: Se definen los objetivos generales que se desean alcanzar con el software. Por ejemplo, mejorar la satisfacción del usuario, reducir los costos de mantenimiento o aumentar la productividad de los desarrolladores.
                                                                                                                                                                              1. Preguntas: A partir de cada objetivo, se formulan preguntas específicas que ayudan a medir si se está avanzando hacia el objetivo. Por ejemplo, "¿Los usuarios están satisfechos con la facilidad de uso del software?“
                                                                                                                                                                                1. Métricas: Se definen las métricas concretas que permitirán responder a las preguntas. Por ejemplo, el porcentaje de usuarios que reportan problemas de usabilidad, el tiempo promedio de resolución de incidencias o el número de errores detectados por los usuarios.
                                                                                                                                                                                2. Ejemplo:
                                                                                                                                                                                  1. El objetivo principal de un proyecto es mejorar la satisfacción del usuario. Podríamos formular preguntas como "¿Los usuarios encuentran el software intuitivo? ", "¿Los usuarios pueden completar sus tareas eficientemente? " y "¿Los usuarios recomendarían el software? " Definir métricas es fundamental.
                                                                                                                                                                                3. Beneficios de utilizar GQM:
                                                                                                                                                                                  1. Flexibilidad: Se adapta a las necesidades específicas de cada proyecto.
                                                                                                                                                                                    1. Enfoque en objetivos: Permite alinear las mediciones con los objetivos estratégicos.
                                                                                                                                                                                      1. Personalización: Las métricas se definen de manera personalizada.
                                                                                                                                                                                        1. Mejora continua: Facilita la identificación de áreas de mejora.
                                                                                                                                                                                          1. Comunicación efectiva: Proporciona un lenguaje común para hablar sobre la calidad del software.
                                                                                                                                                                                  2. ¿Qué es la mejora de la calidad del software?
                                                                                                                                                                                    1. Prácticas y técnicas en el desarrollo de software para cumplir requisitos de usuario y ser confiable.
                                                                                                                                                                                      1. Objetivos
                                                                                                                                                                                        1. Identificar atributos de calidad, medirlos y mejorarlos
                                                                                                                                                                                          1. Los atributos de calidad son características deseables del software. Las métricas permiten evaluar en qué medida el software los posee. Por ejemplo, el número de errores es una métrica de fiabilidad.
                                                                                                                                                                                            1. Garantizar calidad del software desarrollado, satisfacer usuarios y requisitos del negocio.
                                                                                                                                                                                              1. Esto se consigue a través de los siguientes objetivos específicos:
                                                                                                                                                                                                1. Comprender las expectativas del usuario: Identificar los atributos de calidad más importantes para alinear el desarrollo del software con las necesidades reales.
                                                                                                                                                                                                  1. Evaluar el estado actual: Medir los atributos de calidad del software existente, identificando fortalezas y debilidades para futuras mejoras.
                                                                                                                                                                                                    1. Establecer metas claras: Definir objetivos cuantificables para mejorar los atributos de calidad, como reducir defectos o tiempos de respuesta.
                                                                                                                                                                                                      1. Priorizar las mejoras: Determinar qué atributos de calidad necesitan mayor atención y asignar recursos correspondientes para optimizar los esfuerzos.
                                                                                                                                                                                                        1. Implementar cambios: Realizar modificaciones en el diseño, codificación, pruebas o procesos de desarrollo.
                                                                                                                                                                                                          1. Verificar la efectividad: Evaluar el impacto de las mejoras implementadas para asegurar el logro de los objetivos propuestos.
                                                                                                                                                                                                            1. Prevenir problemas futuros: Implementar prácticas continuas que promuevan la calidad del software y prevengan la aparición de nuevos defectos a largo plazo.
                                                                                                                                                                                              2. ASEGURAMIENTO DE LA CALIDAD DEL SOFTWARE
                                                                                                                                                                                                1. Conjunto de actividades planificadas para garantizar la calidad del software. Garantiza que cumpla con requisitos y sea de alta calidad mediante actividades y procesos durante el desarrollo del software.
                                                                                                                                                                                                  1. OBJETIVOS
                                                                                                                                                                                                    1. Cumplimiento de requisitos: Garantizar que el software cumple con todas las especificaciones y funcionalidades requeridas por el cliente.
                                                                                                                                                                                                      1. Prevención de defectos: Identificar y corregir errores en el software de manera temprana para reducir problemas en producción.
                                                                                                                                                                                                        1. Satisfacción del cliente: Asegurar que el software cumple con las necesidades y expectativas de los usuarios.
                                                                                                                                                                                                          1. Reducción de errores: Minimizar la cantidad de errores para aumentar la estabilidad y confiabilidad del producto.
                                                                                                                                                                                                            1. Mejora continua: Implementar procesos para mejorar constantemente la calidad del software.
                                                                                                                                                                                                            2. ACTIVIDADES
                                                                                                                                                                                                              1. Planificación de la calidad: Define objetivos, métricas y actividades para garantizar la calidad del software.
                                                                                                                                                                                                                1. Revisión de requisitos: Analiza y evalúa requisitos para evitar errores en desarrollo.
                                                                                                                                                                                                                  1. Planificación de pruebas: Diseña pruebas para verificar el correcto funcionamiento del software.
                                                                                                                                                                                                                    1. Análisis de riesgos: Identifica posibles riesgos y medidas para mitigarlos.
                                                                                                                                                                                                                      1. Auditorías: Evalúan la calidad del software según planes establecidos.
                                                                                                                                                                                                                        1. Medición y análisis: Recopila datos para identificar áreas de mejora en base a métricas como defectos encontrados, cobertura de código y satisfacción del cliente.
                                                                                                                                                                                                                        2. BENEFICIOS:
                                                                                                                                                                                                                          1. Satisfacción del cliente: Al garantizar que el software cumple con los requisitos y expectativas del cliente, se aumenta significativamente su satisfacción. Un software de alta calidad funciona como se espera, es fácil de usar y cumple con las necesidades del usuario, generando lealtad y confianza en el producto.
                                                                                                                                                                                                                            1. Reducción de costos: Invertir en aseguramiento de calidad a largo plazo reduce costos al detectar y corregir errores en etapas tempranas, evitando correcciones costosas. Un software de alta calidad también reduce los costos de mantenimiento y soporte técnico.
                                                                                                                                                                                                                              1. Mejora de la reputación a través de la mejora continua: Identificar áreas de mejora y optimizar procesos demuestra un compromiso con la excelencia, mejorando la reputación de la empresa y sus productos.
                                                                                                                                                                                                                                1. Competitividad: Un software de alta calidad proporciona una ventaja competitiva al diferenciarse de la competencia con un producto confiable, eficiente y que cumple expectativas de los usuarios, atrayendo más clientes.
                                                                                                                                                                                                                              2. RELACIÓN ENTRE MODELOS Y ASEGURAMIENTO DE CALIDAD DEL SOFTWARE
                                                                                                                                                                                                                                1. Los modelos de calidad proporcionan los criterios para evaluar la calidad. Los modelos de calidad son guías para construir un software, y el aseguramiento de calidad sigue esas guías.
                                                                                                                                                                                                                                  1. ¿Cuál es la relación entre ambos?
                                                                                                                                                                                                                                    1. Los modelos de calidad establecen criterios para un software de calidad, mientras que el aseguramiento de la calidad se encarga de verificar que el software se construya según estos criterios, mediante actividades como pruebas y revisiones.
                                                                                                                                                                                                                                      1. Los modelos de calidad son teóricos: Definen los atributos deseables en un software.
                                                                                                                                                                                                                                        1. El aseguramiento de la calidad es práctico: Aplica las directrices de los modelos para garantizar que el software cumple con esos atributos.
                                                                                                                                                                                                                                        2. ¿Por qué es importante esta relación?
                                                                                                                                                                                                                                          1. Mejora la objetividad: Los modelos de calidad ofrecen un enfoque estructurado para evaluar la calidad del software, evitando evaluaciones subjetivas.
                                                                                                                                                                                                                                            1. Facilita la comunicación: Proporcionan un lenguaje común para hablar sobre la calidad del software entre diferentes equipos y partes interesadas.
                                                                                                                                                                                                                                              1. Identifica áreas de mejora: Al comparar el software con los criterios de los modelos, se pueden identificar los puntos débiles y tomar medidas correctivas.
                                                                                                                                                                                                                                                1. Asegura la conformidad: Garantiza que el software cumple con los estándares de calidad establecidos.
                                                                                                                                                                                                                                              2. Los modelos de calidad y el aseguramiento de la calidad trabajan juntos para garantizar que el software sea confiable, eficiente y cumpla con las expectativas de los usuarios. Los modelos proporcionan la guía y los criterios, mientras que el aseguramiento de la calidad se encarga de aplicarlos en la práctica.
                                                                                                                                                                                                                                              Show full summary Hide full summary

                                                                                                                                                                                                                                              Similar

                                                                                                                                                                                                                                              Diapositivas de Topología de Redes
                                                                                                                                                                                                                                              lisi_98
                                                                                                                                                                                                                                              Elementos que conforman a google chrome
                                                                                                                                                                                                                                              juan carlos hernandez morales
                                                                                                                                                                                                                                              Construcción de software
                                                                                                                                                                                                                                              CRHISTIAN SUAREZ
                                                                                                                                                                                                                                              Sistema de Gestor de Base de Datos MongoDB
                                                                                                                                                                                                                                              Edwin Herlop
                                                                                                                                                                                                                                              TRABAJO DE TOPOLOGÍA DE REDES
                                                                                                                                                                                                                                              lisi_98
                                                                                                                                                                                                                                              Arquitecturas de Sistemas Distribuidos
                                                                                                                                                                                                                                              Edisson Reinozo
                                                                                                                                                                                                                                              terminologia basica de informatica
                                                                                                                                                                                                                                              LESLY GUADALUPE MEJIA SOTO
                                                                                                                                                                                                                                              Cloud Data Integration Specialist Certification
                                                                                                                                                                                                                                              James McLean
                                                                                                                                                                                                                                              Mapas mentales con ExamTime
                                                                                                                                                                                                                                              Nazareth Olivo
                                                                                                                                                                                                                                              INFORMÁTICA - Periféricos de entrada y salida
                                                                                                                                                                                                                                              Serna Izaoly
                                                                                                                                                                                                                                              Esquemas
                                                                                                                                                                                                                                              Ximena Barrera