Tema 36.docx
Document Details
Uploaded by Oganesson93
Universidad de Valladolid
Tags
Related
- Unit 1 Introduction and SDLC Models PDF
- CS605 Solved MCQs - Software Engineering II AQA 2011 PDF
- Libyan International University Lecture 2 On Formal Models and Methods PDF
- Lecture 3 - Agile Software Development (CSE241/CMM341) PDF
- CAGL -Conception Architecturale en Génie Logiciel Cours 1 - PDF
- Chapter One_Quality assurance and testing PDF
Full Transcript
Tema 36. Gestión de la calidad del software: Definición. Factores de calidad. Fiabilidad del software. Modelos McCall, FURPS, GILB y GQM. El modelo de capacidad de madurez CMMI. Técnicas de calidad: revisiones, inspecciones, auditorias. La gestión de la calidad del software es imprescindible para a...
Tema 36. Gestión de la calidad del software: Definición. Factores de calidad. Fiabilidad del software. Modelos McCall, FURPS, GILB y GQM. El modelo de capacidad de madurez CMMI. Técnicas de calidad: revisiones, inspecciones, auditorias. La gestión de la calidad del software es imprescindible para asegurarnos que el software cumple con los estándares y requisitos de calidad especificados. La gestión de la calidad del software implica la adopción de buenas prácticas en toda la vida útil del software para contribuir al éxito de un proyecto de software y para garantizar la satisfacción del cliente. Un software de calidad es menos propenso a errores y fallos, lo que se traduce en una mayor confianza por parte del usuario y una mejor reputación para la empresa desarrolladora. La gestión de la calidad del software implica considerar diversos **factores de calidad**. Estos factores pueden ser agrupados en diferentes categorías, como se muestra a continuación: - [Corrección]: El grado en que una aplicación satisface sus especificaciones y consigue los objetivos encomendados por el cliente. - [Fiabilidad]: El grado que se puede esperar de una aplicación lleve a cabo las operaciones especificadas y con la precisión requerida. - [Eficiencia]: La cantidad de recursos hardware y software que necesita una aplicación para realizar las operaciones con los tiempos de respuesta adecuados. - [Integridad]: El grado con que puede controlarse el acceso al software o a los datos a personal no autorizado. - [Robustez]: El sistema funciona correctamente en situaciones especiales. - [Facilidad de uso]: El esfuerzo requerido para aprender el manejo de una aplicación, trabajar con ella, introducir datos y conseguir resultados. - [Facilidad de mantenimiento]: El esfuerzo requerido para localizar y reparar errores. - [Facilidad de prueba]: El esfuerzo requerido para probar una aplicación de forma que cumpla con lo especificado en los requisitos. - [Portabilidad]: El esfuerzo requerido para transferir la aplicación a otro hardware o sistema operativo. - [Reusabilidad]: En que partes de una aplicación pueden utilizarse en otras aplicaciones. - [Interoperabilidad]: El esfuerzo necesario para comunicar la aplicación con otras aplicaciones o sistemas informáticos. - [Escalabilidad]: Capacidad del software para crecer, lo puede hacer en diferentes dimensiones, en funcionalidad, en capacidad de respuesta, en número de elementos,... La **fiabilidad del software** es un factor crítico de calidad que se refiere a la capacidad del software para funcionar correctamente y sin fallos bajo condiciones específicas durante un período de tiempo determinado. La fiabilidad del software se puede definir en términos estadísticos como la probabilidad de operación libre de fallos en un entorno determinado y durante un tiempo específico. Existen diferentes medidas de fiabilidad de software que se utilizan para evaluar la calidad del software. Algunas de ellas son: - Tasa de fallas: Esta medida se refiere a la cantidad de veces que el software presenta un error o una falla. Se puede medir en términos de tiempo, por ejemplo, la cantidad de fallas por hora, o en términos de eventos, como la cantidad de veces que el software se bloquea. - Tiempo medio entre fallas (TMEF): Esta medida indica el tiempo promedio que transcurre entre dos fallas consecutivas del software. Si el TMEF es alto, significa que el software es más confiable y tiene menos probabilidades de fallar. Se puede calcular: TMEF= (Tiempo total de funcionamiento) / (número de fallas) - Tasa de errores encontrados: Esta medida se refiere a la cantidad de errores o defectos que se encuentran durante el proceso de pruebas del software. Una tasa alta de errores encontrados indica que el software tiene problemas importantes y que se debe trabajar en su mejora. - Porcentaje de pruebas aprobadas: Esta medida indica la cantidad de pruebas que se han aprobado con éxito. Si el porcentaje es alto, significa que el software ha pasado la mayoría de las pruebas y es más confiable. - Disponibilidad: Esta medida indica la cantidad de tiempo que el software está disponible para su uso. Si el software tiene una alta disponibilidad, significa que los usuarios pueden acceder a él con mayor frecuencia y confianza. Se podría medir: Es importante tener en cuenta que estas medidas son complementarias y deben utilizarse de manera conjunta para evaluar la fiabilidad del software. Para la gestión de la calidad de software existen diferentes modelos donde cada uno tiene el objetivo de proporcionar un enfoque sistemático para definir y evaluar los requisitos de calidad del software. Para ello cada uno pone el foco en diferentes capacidades o características o atributos u objetivos...que debe cumplir un software de calidad. Los modelos nos sirven de apoyo a la gestión de proyectos y proporcionan una guía para resolver problemas y para la detección de riesgos. El **modelo de McCall** La idea de este modelo es la descomposición del concepto genérico de calidad en tres [capacidades] importantes para un producto software y a su vez cada capacidad se descompone en un conjunto de [factores] y finalmente se definen criterios para evaluar el factor a través de [métricas] que indican en qué medida el sistema posee una característica dada. El modelo de Calidad McCall está planteado desde la perspectiva del usuario presentándose cuestionamientos en cada uno de sus capacidades, así: - OPERACIÓN: - Corrección: ¿El software hace lo que necesito? - Fiabilidad: ¿Lo Hace de forma exacta siempre? - Eficiencia: ¿Aprovecha el hardware lo mejor posible? - Integridad: ¿Es seguro? - Robustez: ¿funciona en situaciones excepcionales? - Facilidad de Uso: ¿Lo puedo usar con facilidad? - REVISIÓN: - Facilidad de prueba: ¿Se puede probar? - Facilidad de mantenimiento: ¿Que tan difícil es arreglarlo o modificarlo? - TRANSICIÓN: - Portabilidad: ¿Se puede usar en otra máquina? - Reusabilidad: ¿Se puede reutilizar parte del Software? - Interoperabilidad: ¿Se puede comunicar con otros sistemas? El **modelo FURPS** fue definido por Hewlett- Packard (HP) en 1987 y es un enfoque de la gestión de la calidad del software que se centra en cinco [características] principales de calidad del software: Functionality (funcionalidad), Usability (usabilidad), Reliability (confiabilidad), Perfomance (rendimiento) y Supportability (soporte). Las cinco características del modelo FURPS son las siguientes: - [Funcionalidad] (Corrección): Se refiere a la capacidad del software para realizar las tareas y funciones para las que fue diseñado. - [Usabilidad] (Facilidad de Uso): Se refiere a la facilidad de uso y comprensión del software por parte de los usuarios. Esto incluye: - La facilidad de aprendizaje, - La facilidad de navegación - La claridad de las instrucciones - La consistencia en la presentación de la información. - [Confiabilidad] (Fiabilidad, Robustez, Portabilidad): Se refiere a la capacidad del software para funcionar sin fallos y producir resultados precisos en diferentes situaciones y entornos. Esto incluye: - La capacidad para recuperarse de errores - La tolerancia a fallos - La capacidad de manejar situaciones imprevistas. - [Rendimiento] (Eficiencia): Se refiere a la velocidad y capacidad de respuesta del software. Esto incluye: - La velocidad de procesamiento - El tiempo de respuesta - La capacidad de manejar grandes cantidades de datos. - [Soporte] (Facilidad de mantenimiento): Se refiere a la capacidad del software para ser instalado, configurado y mantenido fácilmente. Esto incluye: - La facilidad de instalación - La documentación del software - La disponibilidad de soporte técnico. El **modelo GILB** (GQM Improvement Paradigm) Es un modelo de calidad del software que orienta la evaluación a partir de atributos, los cuales se dividen en subatributos. Gilb llamaba atributo a una medida de la calidad de un sistema. Dicha medida podía variar entre ciertos límites, siendo aún el sistema aceptable para el usuario. La estructura del modelo Gilb se compone de 4 atributos de calidad: - [Capacidad de trabajo]: mide la capacidad natural del sistema para realizar su trabajo. Se compone de tres sub-atributos: - Capacidad de almacenamiento: mide la facultad del sistema para almacenar unidades de información de un determinado elemento predefinido. - Capacidad de proceso: mide la facultad de procesar cierta cantidad de datos por unidad de tiempo. - Capacidad de respuesta: mide la habilidad para reaccionar ante un evento - [Disponibilidad]: mide la capacidad del sistema para llevar a cabo de forma útil el trabajo para el cual fue diseñado. Se compone de tres sub-atributos: - Fiabilidad: mide el grado en el que el sistema hace lo que debería hacer. - Mantenibilidad: mide el tiempo que costaría convertir un sistema no fiable en uno que lo sea. - Integridad: medida de la capacidad para sobrevivir a ataques al sistema. - [Adaptabilidad]: es la medida de la capacidad de un sistema para ser cambiado adecuadamente. Se divide en los siguientes sub-atributos: - Improbabilidad: mide la eficiencia al hacer pequeñas adaptaciones, cambios y mejoras al sistema. - Extensibilidad: mide la facilidad para añadir nuevas características a un sistema existente. - Transportabilidad: mide la facilidad para trasladar un sistema de un entorno a otro - [Usabilidad]: es la medida de la facilidad con que la gente será capaz y estará motivada para usar el sistema en la práctica. Se divide en los siguientes subatributos: - Requisitos de entrada: mide los requisitos humanos para alcanzar éxito en el aprendizaje y manejo del sistema. - Requisitos de aprendizaje: mide los recursos necesarios (principalmente el tiempo) para alcanzar cierto nivel de habilidad con el sistema. - Habilidad de manejo: mide la productividad neta en el tiempo con el nuevo sistema. - Complacencia: mide el grado en el que los usuarios están contentos con el sistema. El **modelo GQM** (Goal-Question-Metric): El enfoque GQM es un método orientado a obtener una [métrica] que mida cierto [objetivo] a través de la utilización de [preguntas]. Primero se identifica uno o más objetivos de calidad y elaborando preguntas que nos sirvan para detallar a los mismos de la manera más completa posible. Posteriormente, se definen las métricas que tendrán un único resultado en base a las respuestas a dichas preguntas con el fin de identificar el nivel de aceptación con respecto al objetivo definido. Finalmente, se desarrollan mecanismos de validación y análisis de resultados. En este modelo no solo está orientado a medir la calidad del producto, sino que incorpora medidas de calidad del proceso. El modelo de medición GQM tiene tres niveles: - [Nivel Conceptual (Goal/Objetivo):] se identifica a lo que se aspira respecto a los productos, procesos o recursos. - [Nivel Operativo (Question/Pregunta):] se refina un conjunto de preguntas a partir del objetivo con el propósito de verificar su cumplimiento. Las preguntas buscan caracterizar el objeto de medición (producto, proceso o recurso) con respecto a una cuestión de calidad seleccionada y determinar su calidad desde el punto de vista seleccionado. - [Nivel Cuantitativo (Metric/Métrica):] se identifican métricas, con el fin de proporcionar una respuesta de manera cuantitativa. El **modelo CMMI** (Capability Maturity Model Integration). El Modelo de Madurez de Capacidades o CMM, es un modelo para la evaluación de los procesos de una organización y ofrece orientación para mejorarlos. Fue desarrollado inicialmente para los procesos relativos al desarrollo e implementación de software. Pero en la actualidad se utiliza para cualquier tipo de procesos, por ejemplo, en el ENS se utiliza para caracterizar la implementación de los procesos relacionados con la seguridad. El modelo de madurez de capacidad (Capability Maturity Model, CMM) permite la valoración de la implantación de las medidas de seguridad, estás se analizarán como procesos y se estimará su nivel de madurez usando el modelo de madurez de capacidad (CMM). Entre los objetivos que se persiguen lograr con la utilización de CMMI y que son buenos para el negocio se encuentran: - Producir servicios y Productos de alta calidad. - Crear valor para los accionistas. - Mejorar la satisfacción del cliente. - Incrementar la participación en el Mercado. - Ganar reconocimiento en la industria. CMMI establece cinco niveles de 'madurez' de las organizaciones en función de si tienen o no una serie de características específicas. Las organizaciones pueden ser evaluadas y en función de dicha evaluación, se les puede otorgar un nivel de madurez; ésta se califica en una escala del 1 al 5, es decir, a través de CMMI podemos saber el grado de 'madurez' de los procesos que tiene una organización, de acuerdo a un modelo de buenas prácticas. Ofrece a las organizaciones la facilidad de mejorar sus procesos de dos formas diferentes, una asociada a los niveles de madurez continuo y otra asociada a los niveles de madurez por etapas. La representación continua significa que se realiza la evaluación sobre un proceso en específico y la representación por etapas establece que la evaluación de procesos se realiza de manera global sobre un grupo de procesos. Modelo de madurez por etapas: - Nivel 1 (Inicial): El proceso es impredecible, es reactivo y pobremente controlado. - Nivel 2 (Administrado): En este nivel, el proceso es reactivo y se caracteriza por su aplicación a proyectos. - Nivel 3 (Definido): En este nivel, el proceso se vuelve proactivo y se ve a nivel de organización. La organización ya cuenta con un proceso estandarizado para el desarrollo y mantenimiento del software. - Nivel 4 (Administrado Cuantitativamente): Este proceso es medido y controlado. - Nivel 5 (Optimizado): El Proceso se enfoca a una mejora continua. Escala de tiempo Descripción generada automáticamente **Las revisiones, inspecciones y auditorías** son técnicas de calidad utilizadas en la gestión de proyectos de software para evaluar y mejorar la calidad del software. A continuación, se describen cada una de estas técnicas: - [Revisiones]: Las revisiones son una técnica de calidad en la que se realiza una revisión detallada del código, la documentación o los requisitos del software por parte de un equipo de revisión, que puede estar compuesto por desarrolladores, analistas, usuarios y otros expertos en el dominio. El objetivo de las revisiones es identificar errores, defectos y oportunidades de mejora en el software, la documentación y los procesos. Las revisiones pueden realizarse de forma formal o informal, y pueden incluir revisiones de pares, en las que dos personas revisan el trabajo de cada uno. - [Inspecciones]: Las inspecciones son una técnica de calidad más formal que las revisiones y se utilizan para identificar errores y defectos en el software, la documentación y los procesos. Las inspecciones se realizan por un equipo de inspección que sigue un procedimiento de inspección estructurado y formal. El equipo de inspección revisa cada artefacto de software individualmente y verifica su cumplimiento con los estándares y las especificaciones. Las inspecciones son más rigurosas que las revisiones y tienen un enfoque más formal. - [Auditorías]: Las auditorías son una técnica de calidad utilizada para evaluar la conformidad del software con los requisitos, los estándares y los procedimientos de la organización. Las auditorías se realizan por un equipo de auditores, que revisan los procesos, la documentación y el software para asegurarse de que cumplen con los requisitos y estándares de la organización. Las auditorías pueden ser internas o externas y pueden ser utilizadas para mejorar la calidad del software y asegurarse de que se cumplan las normas y regulaciones aplicables. Principio del formulario