UNIVERSIDAD POLITÉCNICA DEL VALLE DE TOLUCA NOMBRE DEL PROGRAMA EDUCATIVO INGENIERÍA EN TECNOLOGIAS DE LA INFORMACIÓN NOMBRE DE ASIGNATURA Gestión de Desarrollo de Software FACILITADOR REYNA GONZALEZ JORGE ALEJANDRO NOMBRE DE LA UNIDAD DE APRENDIZAJE UNIDAD III: Gestionar de la calidad del proceso de desarrollo de software NOMBRE DE LA PRÁCTICA Proyecto Unidad 3 GRUPO: ITI8VA No Matrícula Nombre Firma 1 1320343132 Pérez Mejía Cristian ------------------ 2 1220333005 Adrián Salvador Valdés Martínez ------------------ 3 1121353021 Vane Velázquez García ------------------ 4 1320343141 Natalia Salazar Pérez ------------------ Septiembre - Diciembre 2024 Resumen Actividades para lograr la calidad en el proceso de desarrollo de software Para asegurar la calidad en el desarrollo del sistema "Tefi-Ferretería", se han implementado diversas actividades clave. Estas incluyen la planificación detallada de requisitos, el diseño arquitectónico robusto, el desarrollo iterativo con retroalimentación continua y pruebas exhaustivas en cada etapa del desarrollo. Se han llevado a cabo revisiones y auditorías regulares para identificar y corregir cualquier defecto, asegurando que el producto final sea robusto y confiable. Justificación del estándar y métricas de calidad de software elegidas Los estándares y métricas de calidad de software seleccionados para "TefiFerretería" se basan en las mejores prácticas de la industria y en la necesidad de ofrecer un servicio excepcional a los usuarios. Las métricas elegidas evalúan aspectos como la eficiencia, usabilidad, fiabilidad y mantenibilidad del software. La justificación de estos estándares radica en la necesidad de asegurar un rendimiento óptimo y una experiencia de usuario superior, manteniendo al mismo tiempo la facilidad de mantenimiento y evolución del sistema. Justificación del modelo de calidad de software seleccionado El modelo de calidad de software adoptado para "Tefi-Ferretería" es el modelo ISO/IEC 25010, que proporciona un marco completo para evaluar las características de calidad del software. Este modelo ha sido elegido por su enfoque integral que cubre aspectos críticos como la funcionalidad, el rendimiento, la compatibilidad, la seguridad y la mantenibilidad. La justificación de este modelo se basa en su capacidad para proporcionar una evaluación exhaustiva y equilibrada de la calidad del software, asegurando que el sistema cumpla con las expectativas de los usuarios y los estándares de la industria. Introducción El sistema "Tefi-Ferretería" es una innovadora plataforma web desarrollada para modernizar y optimizar la gestión de reservas y compras de productos en una Ferretería. Este sistema permite a los clientes realizar reservas para servicios de Ferretería y comprar productos que pueden ser recogidos en la tienda física. Además, proporciona información detallada sobre los cortes de cabello y sus precios, facilitando así la toma de decisiones de los clientes. "Tefi-Ferretería" se posiciona como una solución integral para mejorar la eficiencia operativa y la experiencia del cliente en el sector de la Ferretería. En este documento se describen las actividades realizadas para asegurar la calidad en el proceso de desarrollo del software, se justifican los estándares y métricas de calidad seleccionados, y se explica el modelo de calidad de software adoptado. Este enfoque garantiza que el sistema cumpla con los más altos estándares de calidad y satisfacción del usuario. Actividades Generales para lograr la calidad en el proceso de desarrollo de software En la siguiente tabla se presenta el listado de actividades desarrolladas de manera general para asegurar la calidad del software "Tefi-Ferretería". Cada actividad se describe brevemente, proporcionando una visión general de los procesos implementados. Posteriormente, se especificarán las actividades enfocadas en las etapas de validación y verificación para una comprensión más detallada. Herramientas/Métodos Fase Actividad Descripción Utilizados Recolección y análisis de las necesidades y expectativas de los Definición Requisitos de usuarios. Documentación de Entrevistas, encuestas, reuniones requisitos funcionales y no funcionales. Planificación Evaluación de la Análisis Viabilidad de viabilidad técnica y Análisis económica del beneficio proyecto. Elaboración Planificación del Proyecto del plan de proyecto, incluyendo cronograma, recursos y riesgos. MS Project de costo- Diseño de Definición Arquitectura de estructura la UML, Diagramas de del arquitectura sistema, incluyendo componentes, módulos y sus interacciones. Diseño Diseño de Creación Interfaz de prototipos de la Usuario de Wireframes, Prototipos, Sketch interfaz de usuario para asegurar una experiencia de usuario intuitiva y eficiente. Implementación Desarrollo del Iterativa software en Scrum iteraciones cortas, permitiendo la retroalimentación y ajustes continuos. Revisión Desarrollo Código de Evaluación del Revisión por pares, código fuente por herramientas otros revisión de código desarrolladores para identificar y corregir errores y mejorar la calidad del código. de Integración Uso de integración Continua continua GitLab para detectar problemas lo antes posible mediante la integración frecuente de cambios en el código. Gestión de Identificación, Incidentes registro y resolución de Jira problemas detectados en el sistema después de su implementación. Mantenimiento Actualizaciones Implementación de Gestión de y Mejoras mejoras y como Github actualizaciones continuas para mantener el sistema actualizado y mejorar su funcionalidad y rendimiento. versiones Monitoreo y Análisis de Desempeño Monitoreo Apache JMeter continuo del rendimiento del sistema para identificar posibles problemas y áreas de mejora. Actividades Generales Planificación: Definición de Requisitos: Se recolectan y analizan las necesidades y expectativas de los usuarios mediante entrevistas, encuestas y reuniones. Se documentan los requisitos funcionales y no funcionales. Análisis de Viabilidad: Se evalúa la viabilidad técnica y económica del proyecto, considerando factores como costo, tiempo y recursos necesarios. Planificación del Proyecto: Se elabora un plan de proyecto detallado, que incluye cronograma, asignación de recursos y gestión de riesgos. Diseño: Diseño de Arquitectura: Se define la estructura del sistema, detallando componentes, módulos y sus interacciones mediante diagramas UML y de arquitectura. Diseño de Interfaz de Usuario: Se crean prototipos de la interfaz de usuario para asegurar una experiencia intuitiva y eficiente. Desarrollo: Implementación Iterativa: Se desarrolla el software en iteraciones cortas, permitiendo retroalimentación continua y ajustes según sea necesario. Revisión de Código: Se evalúa el código fuente por otros desarrolladores para identificar y corregir errores, mejorando la calidad del código. Integración Continua: Se utiliza la integración continua para detectar problemas lo antes posible mediante la integración frecuente de cambios en el código. Mantenimiento: Gestión de Incidentes: Se identifican, registran y resuelven problemas detectados en el sistema después de su implementación. Actualizaciones y Mejoras: Se implementan mejoras y actualizaciones continuas para mantener el sistema actualizado y mejorar su funcionalidad y rendimiento. Monitoreo y Análisis de Desempeño: Se monitorea continuamente el rendimiento del sistema para identificar posibles problemas y áreas de mejora. A continuación, se detallan las actividades específicas llevadas a cabo durante las etapas de validación y verificación del software, las cuales son cruciales para garantizar que el sistema cumpla con los requisitos y expectativas de los usuarios. Actividades enfocadas en Validación y Verificación Herramientas/Métodos Fase Validación Descripción Actividad Utilizados Pruebas de Validación del sistema UAT Aceptación (User Acceptance por parte de los usuarios Testing), Beta testing finales para asegurar que cumple con sus necesidades y expectativas. Revisión Evaluación y validación Revisión del Diseño del diseño por mediante inspecciones revisiones y sesiones de revisión por pares. Verificación Pruebas Unitarias Pruebas de PHPUnit componentes individuales para asegurar que cada uno funcione correctamente. Pruebas de Verificación de que los Selenium Integración componentes sistema del funcionan juntos correctamente. Pruebas de Evaluación del sistema Sistema completo para asegurar Apache JMeter pares, que cumple con los requisitos especificados. Revisión de Evaluación del código Revisión Código fuente pares, otros herramientas de revisión por para de código desarrolladores identificar y errores mejorar y por corregir la calidad del código. Integración Uso integración GitLab Continua continua para detectar de problemas posible lo antes mediante la integración frecuente de cambios en el código. Actividades Enfocadas en Validación y Verificación Validación: Pruebas de Aceptación: Los usuarios finales validan el sistema para asegurar que cumple con sus necesidades y expectativas, utilizando pruebas de aceptación de usuarios (UAT) y beta testing. Revisión del Diseño: Se evalúa y valida el diseño mediante revisiones por pares y sesiones de revisión detalladas. Verificación: Pruebas Unitarias: Se realizan pruebas de componentes individuales para asegurar que cada uno funcione correctamente. Pruebas de Integración: Se verifica que los componentes del sistema funcionen bien juntos mediante pruebas de integración. Pruebas de Sistema: Se evalúa el sistema completo para asegurar que cumple con los requisitos especificados. Revisión de Código: Se evalúa el código fuente por otros desarrolladores para identificar y corregir errores. Integración Continua: Se utiliza la integración continua para detectar problemas lo antes posible mediante la integración frecuente de cambios en el código. Justificación del estándar y métricas de calidad de software elegidas Para asegurar la calidad del sistema web de la Ferretería, se han seleccionado y justificado los siguientes estándares y métricas de calidad de software: Estándares de Calidad de Software ISO/IEC 25010 (SQuaRE): Este estándar proporciona un marco para evaluar la calidad del software mediante la definición de características de calidad. Justificación El estándar ISO/IEC 25010 es ampliamente reconocido y proporciona una cobertura integral de las diversas dimensiones de la calidad del software, incluyendo aspectos funcionales y no funcionales. Esto asegura que el sistema web de la Ferretería no solo funcione correctamente, sino que también sea seguro, eficientey fácil de usar. Métricas de calidad dentro del sistema web “Tefi-Ferretería”Funcionalidad: Login: Muestra cómo el sistema permite la autenticación de usuarios. Servicios Muestra la lista de servicios ofrecidos. Usabilidad Interfaz de usuario del cliente: Muestra un diseño limpio y fácil de navegar, evidenciando que los usuarios pueden encontrar rápidamente lo que necesitan. Apartar de un producto: Muestra una interfaz intuitiva con campos claramente etiquetados. Eficiencia: Respuesta rápida del sistema: Después de iniciar sesión o al filtrar servicios, mostrando que el sistema responde rápidamente a las solicitudes de los usuarios. Inventario para administradores: Muestra cómo se puede agregar y gestionar el inventario de manera eficiente. Mantenibilidad: Actualización de productos: Muestra cómo los administradores pueden modificar fácilmente la información de los productos. Seguridad: Implementación de medidas de seguridad: Como el llenar los campos correctamente del formulario de login. Contraseñas encriptadas: El usuario solo debe de ser completado por letras: El campo de nombre no acepta números: El campo de teléfono no acepta números Métricas de calidad: El Tiempo Medio de Detección (MTTD) es una métrica que mide el tiempo promedio que transcurre desde que ocurre una falla en el sistema hasta que es detectada por los testers o el equipo de DevOps. Esta métrica es importante para evaluar la eficiencia del proceso de monitoreo y la capacidad de respuesta del equipo a problemas del sistema. Cálculo del MTTD Registro de Fallas: Documenta la hora exacta en la que cada falla ocurrió. Registra la hora exacta en la que cada falla fue detectada por el equipo. Cálculo del MTTD Suma todos los tiempos de detección individuales. Divide esta suma por el número total de fallas registradas. Cálculo del Tiempo de Detección para Cada Falla a la hora de registro de una cuenta: Falla 1: 2 minutos Falla 2: 4 minutos Falla 3: 5 minutos Cálculo del MTTD 𝑀𝑇𝑇𝐷 = 2+4+5 3 = 11 3 = 3.66 𝑚𝑖𝑛𝑢𝑡𝑜𝑠 Cálculo del Tiempo de Detección para Cada Falla a la hora de actualizar un producto: Falla 1: 3 minutos Falla 2: 5 minutos Falla 3: 8 minutos Cálculo del MTTD: 𝑀𝑇𝑇𝐷 = 3+5+8 3 = 16 = 5.333 𝑚𝑖𝑛𝑢𝑡𝑜𝑠 3 Justificación del modelo de calidad de software seleccionado. Mejora Continua de Procesos El modelo CMMI se organiza en niveles de madurez que promueven la mejora continua de los procesos de desarrollo de software. Esto es importante para asegurar que el sistema web de la Ferretería no solo cumple con los estándares de calidad actuales, sino que también mejora con el tiempo. Los niveles de madurez son: Nivel 1: Inicial El proceso es impredecible y reactivo. Este nivel es el punto de partida para el uso del CMMI. Nivel 2: Gestionado Los proyectos son planeados, ejecutados, medidos y controlados. Este nivel asegura que los proyectos se gestionen adecuadamente y se cumplan los plazos y presupuestos. Planificación del proyecto: Uso del sistema web “Tefi-Ferretería” Nivel 3: Definido Los procesos son bien definidos y comprendidos. Este nivel ayuda a establecer procesos estandarizados y consistentes a lo largo del proyecto. Procesos Definidos y Documentados: Nivel 4: Gestionado Cuantitativamente Los procesos son gestionados y controlados mediante datos cuantitativos. Este nivel asegura que se utilicen métricas para monitorizar y mejorar el rendimiento. Medición y análisis de las pruebas de caja negra y blanca que se realizaron, se presentan a continuación Pruebas de caja negra en selenium: Pruebas de caja blanca Prueba.bat: Nivel 5: Optimización Se centran en la mejora continua mediante la identificación de debilidades y el fortalecimiento de los procesos. Este nivel ayuda a implementar mejoras innovadoras y proactivas. Mejora Continua Mejoras en los botones: Botón de borrados lógicos: Reporte de inventario: Aumento de tamaño de imágenes: Buenas Prácticas de programación en el sistema La siguiente tabla muestra las buenas prácticas de programación aplicadas al sistema web de la Ferreteria. PRACTICA/ DESCRIPCION Documentación del código. En este parte se cuenta con una breve descripción de que es lo que hace este archivo en general. EVIDENCIA Comentar el código. Aquí aplicamos el para que de lo que se está realizando. Usar nombres descriptivos En este caso estamos aplicando nombres que correspondan al campo que estamos solicitando. Validación de Entradas La función asegura que los datos de entrada del usuario estén limpios y seguros para su uso en consultas SQL. Utiliza mysqli_real_escape_stri ng para escapar caracteres especiales en el string $dato, previniendo así problemas de inyección SQL al asegurar que los caracteres que podrían alterar consultas SQL sean tratados correctamente. Realiza Pruebas. Se realizaron pruebas de caja en negra en selenium para comprobar que el sistema tenga un correcto funcionamiento. Prioriza la Legibilidad. El código se estructuró de manera clara y organizada para mejorar su legibilidad y comprensión. Se utilizó un formato consistente y se emplearon nombres de variables descriptivos para facilitar la comprensión del flujo de datos y cálculos. Conclusiones Vane Velázquez García: Pérez Mejía Cristian: Durante el desarrollo del sistema web para la Ferretería, la implementación del modelo CMMI ha sido importante para asegurar la calidad y mejora continua del proyecto. Este modelo nos ha permitido gestionar los riesgos de manera efectiva y optimizar los procesos, lo que ha resultado en un proyecto confiable. Natalia Salazar Pérez: La elección del estándar ISO/IEC 25010 nos ha permitido evaluar de manera integral las diversas dimensiones de calidad del software a este enfoque, hemos asegurado que el sistema no solo funcione correctamente, sino que también sea seguro, eficiente y fácil de usar, proporcionando una excelente experiencia al usuario final. Adrián Salvador Valdés Martínez: Las actividades realizadas para lograr la calidad en el proceso de desarrollo, como la planificación adecuada, la gestión de requisitos y las pruebas exhaustivas, han sido fundamentales para el proyecto. Estas prácticas han permitido identificar y corregir errores, garantizando que el sistema cumpla con las expectativas del clientey los usuarios.