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 "Tefi- Ferreterí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 las herramientas 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.
Fase Actividad Descripción Herramientas/Métodos
Utilizados
Planificación
Definición Requisitos
d e
Recolección y análisis de las necesidades y expectativas de los usuarios.
Documentación de
requisitos funcionales y no funcionales.
Entrevistas, encuestas, reuniones
Análisis de Viabilidad
Evaluación de la viabilidad técnica y económica del proyecto.
Análisis de costo-beneficio
Planificación del Proyecto
Elaboración del plan de proyecto, incluyendo cronograma, recursos y riesgos.
MS Project
Diseño
Diseño de Arquitectura
Definición de la
estructura del sistema, incluyendo
componentes, módulos e interacciones.
UML, Diagramas de arquitectura
Diseño de Interfaz Usuario
Creación de prototipos de la interfaz de usuario para asegurar una experiencia de usuario intuitiva y eficiente.
Wireframes, Prototipos, Sketch
Desarrollo
Implementación Iterativa
Desarrollo del Software en iteraciones cortas, permitiendo la
retroalimentación y ajustes continuos.
Scrum
Revisión Código d e
Evaluación del código fuente por otros desarrolladores para identificar y corregir errores y mejorar la calidad del código.
Revisión por pares, herramientas de revisión de código
Integración Continua
Uso de integración Continua para detectar problemas
lo antes posible Mediante la Integración Frecuente de
Cambios en el código
GitLab
Mantenimiento
Gestión De Incidentes
Identificación, Registro y Resolución de
problemas detectados en el sistema después de su implementación.
Jira
Actualizaciones y Mejoras
Implementación de Mejoras y
actualizaciones Continuas para Mantener el Sistema Actualizado y Mejorar su funcionalidad y rendimiento.
Gestión de versiones como Github
Monitoreo y Análisis de Desempeño
Monitoreo continuo del rendimiento del sistema para identificar posibles problemas y áreas de mejora.
Apache JMeter
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
Fase Actividad Descripción
Herramientas/Métodos Utilizados
Validación Pruebas de Aceptación
Validación del sistema por parte de los usuarios finales para asegurar que cumple con sus
necesidades y
expectativas.
UAT (User Acceptance Testing), Beta testing
Revisión del Diseño
Evaluación y validación del diseño mediante revisiones y sesiones de revisión por pares.
Revisión por pares, inspecciones
Verificación Pruebas Unitarias
Pruebas de
componentes
individuales para asegurar que cada uno funcione correctamente.
PHPUnit
Pruebas de Integración
Verificación de que los componentes del sistema funcionan juntos correctamente.
Selenium
Pruebas de Sistema
Evaluación del sistema completo para asegurar
Apache JMeter
que cumple con los requisitos especificados.
Revisión de Código
Evaluación del código fuente por otros desarrolladores para identificar y corregir errores y mejorar la calidad del código.
Revisión por pares, herramientas de revisión de código
Integración Continua
Uso de integración continua para detectar problemas lo antes posible mediante la integración frecuente de cambios en el código.
GitLab
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, eficiente y 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=
11= 3.66 𝑚𝑖𝑛𝑢𝑡𝑜𝑠
3 3
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=
16= 5.333 𝑚𝑖𝑛𝑢𝑡𝑜𝑠
3 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 Ferretería.
PRACTICA/
DESCRIPCION
EVIDENCIA 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.
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: La implementación de estrategias de calidad y modelos reconocidos ha sido un factor decisivo para el éxito del proyecto de desarrollo del sistema web para la Ferretería. Gracias a la aplicación del modelo CMMI, se logró una gestión eficiente de los riesgos y la optimización de los procesos, garantizando la confiabilidad del producto.
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 cliente y los usuarios.