INSTITUTO TECNOLÓGICO DE SALTILLO TecNM Sistemas y Computación Simulación de mecanismos aplicados en robótica Fundamentos de Ingeniería de Software Integrantes del equipo Raúl Iván Ramírez Aguilar 19052069 Abril Mejía Rangel 19052155 Marzo 2022 Índice INTRODUCCIÓN………………………………………………………………………..pág. 1 ANTECEDENTES……………………………………………………………………….pág. 2 DESARROLLO ………………………………………………………………………….pág. 3 Modelo del sistema existente………………………………………………..pag.3 Modelo del sistema nuevo…………………………………………………...pag.3 Representación del sistema mediante modelos desde diferentes perspectivas…………………………………………………………………….pag.4 Objetivos…………………………………………………………………………pag.4 Definición conceptual y operacional del modelo de negocio………….pag.5 Componentes de negocio del software de simulación de mecanismos aplicados a la robótica y su modelo de negocio correspondiente…...pag.10 Requerimientos del software ………………………………………...……..pag.11 Descripción de Proceso de Ingeniería de requerimientos de software del proyecto………………………………………………………………………...pag. 11 Definición de la necesidad o carencia que presenta el sistema……...pag. 13 Determinación de necesidades y restricciones………………………....pag. 13 Especificación de requerimientos en una plantilla……………………..pag. 14 Representación de requerimientos………………………………………..pag. 17 La calidad, estándares y métricas de calidad del software…………...pag. 17 Elaboración del prototipo……………………………………………………pag. 19 CONCLUSIONES……………………………………………………………………….pag. 71 REFERENCIAS………………………………………………………………………….pag. 72 Figuras Figura 1. Modelo del sistema existente Figura 2. Modelo del sistema nuevo Figura 3. Representación del sistema Figura 4. Definición conceptual del modelo del negocio Figura 5. diagrama de componentes del software Figura 6. Diagrama del modelo del negocio del software Figura 7. Diagrama del Proceso de Ingeniería de requerimientos de software del proyecto. Figura 8. Requisitos funcionales del proyecto Figura 9. Requisitos no funcionales del proyecto Figura 10. Requisitos de dominio del proyecto. Figura 11. Representación de requerimientos en diagrama UML. Figura 12. Prototipo del software. Figura 13. Prototipo del software. Figura 14. Ejecución del código en Python Figura 15. Ejecución del código para introducir datos por el usuario en Python Figura 16. Ejecución del código con resultados en Python INTRODUCCIÓN El campo de la Robótica se ha desarrollado enormemente en la industria, en la actualidad, como resultado demanda de profesionistas capacitados para desempeñar diversas tareas especializadas. Las competencias de egreso de los estudiantes en el área de ingeniería requieren del uso de tecnología acorde a las necesidades que demanda la industria. Este proyecto es sobre el desarrollo de un software de simulación de mecanismos de robótica, para ayudar a las ingenierías en ámbito educativo como una opción de simulación de mecanismos de robótica. Como parte del proyecto se va a presentar información que nos permite desarrollar el proyecto de Simulación de Mecanismos aplicados en robótica. En este proyecto se abordarán temas de los principales mecanismos que se emplean en robótica. En base a estos, se definirán las definiciones conceptuales y operacionales del desarrollo del software, así como también estableciendo los objetivos, requerimientos y estándares mediante una breve descripción. Dentro este modelo de negocio, se presenta un estudio de mercado con empresas que se dedican al desarrollo de softwares que son para simulaciones en Mecánica aplicados en robótica. Este estudio incluye un análisis de las posibilidades de acuerdo con los equipos disponibles. El objetivo del modelo de negocio es definir y conocer la metafísica empresarial. La clave está en que contenga suficiente información como para dar vida a la empresa, pero no demasiada como para dificultar una sencilla comprensión. En el enfoque impulsado por datos, el uso de la simulación, es muy importante para la toma de decisiones estratégicas a partir de los datos que se generan del paradigma de Programación Impulsado por los Datos o dirigido por los datos del idioma inglés "Datadriven programming", que describe los datos a comparar y el procesamiento requerido de los mismos. El usuario que es el estudiante del ITS solicita una aplicación informática para el campo de la Mecánica que contenga modelos de los mecanismos que se aplican en la Robótica, con las características de un simulador que resuelva problemas específicos que se presentan. Pag. 1 ANTECEDENTES En el Instituto Tecnológico de Saltillo se imparten diferentes estudios universitarios de Ingeniería, donde muchas de ellas o todas se relacionan entre sí. La Mecánica es un elemento importante en la robótica, los mecanismos permiten diversos movimientos para transmitir fuerza y potencia para poder ejercer alguna tarea o trabajo. La Mecánica se representa mediante modelos que permiten la simulación de diversas funciones o aspectos de un robot, para conocer su efecto y el comportamiento a través de la manipulación de las variables. Como centro educativo nacional, cuenta con un marco educativo de alto nivel, donde se impulsa el desarrollo de los alumnos por medio no solo de clases teóricas, sino también de clases prácticas, las cuales varían según la especialidad que el alumno esté estudiando. Sin embargo, eso no significa que no haya prácticas que se relacionen entre sí o tengan una fuerte complementación entre sí. El ejemplo abordado como tema de estudio en esta investigación es el uso de software de simulación que permiten a los alumnos realizar prácticas teóricas con valores reales, ofreciendo así resultados reales sin tener el recurso físico. Además, permite la experimentación sin riesgo de dichas prácticas y dependiendo del software pueden realizarse procesos de diferentes índoles, como cuestiones mecánicas, robóticas o electrónicas. La simulación es una herramienta completamente utilizada en la industria, donde un egresado de Ingeniería Mecánica puede generar el comportamiento de un mecanismo con ciertos valores o un Ingeniero Mecatrónico puede llevar a cabo simulaciones de control de un robot entre otros tipos de aplicaciones. En el Instituto Tecnológico de Saltillo, los alumnos Raúl Iván Ramírez Aguilar y Abril Mejía Rangel de la carrera de Ingeniería en Sistemas Computacionales, en coordinación con el Ingeniero Eduardo Contreras, plantean el uso de simuladores para realización de prácticas, como introducción a este tipo de software que podría utilizar el alumno en el ámbito laboral, donde se enfocan en la manipulación de eventos con valores reales. Pag. 2 DESARROLLO Modelo del sistema existente Para nuestro proyecto, se implementará y se describirá el modelo del sistema existente para distinguir los puntos fuertes y débiles de nuestro proyecto de software. Actualmente hay muchos modelos de sistema existentes sobre simulación en robótica. Nuestro proyecto tiene ciertos puntos fuertes y débiles que logramos distinguir durante el desarrollo del proyecto. A continuación, se muestra en la Figura 1. Sobre nuestro modelo del sistema existente mediante un diagrama Figura 1. Modelo del sistema existente. Fuente: (elaboración propia) Modelo del sistema nuevo Se usará un modelo del sistema nuevo para nuestro tema de estudio que es la manipulación de mecanismos en robótica. Esto es para poder definir, analizar y discutir los requerimientos del sistema como equipo. Figura 2. Modelo del sistema nuevo. Fuente: (elaboración propia) Pag. 3 Representación del sistema mediante modelos desde diferentes perspectivas Figura 3. Representación del sistema. Fuente: (elaboración propia) Objetivos Objetivo General. Diseñar un software intuitivo para la simulación de mecanismos aplicados en robótica. Objetivos específicos. Ofrecer a la comunidad estudiantil de Ingeniería Sistemas Computacionales un software que permita calcular variables y ejecutar resultados, así como también mostrar la simulación empleados en mecanismos en robótica. Pag. 4 Definición conceptual y operacional del modelo de negocio En nuestro proyecto, el software realiza cálculos simulación de mecanismos aplicados a la robótica para el estudiante que no cuenta con programas simuladores, donde el operador hace uso de del código para realizar dicha función. Esto puede aplicarse en un amplio rango de tareas, para cálculo de variables y crear simulaciones de mecánica. Este simulador de mecanismos aplicados a la robótica es una iniciativa en el ámbito profesional y educativo para ofrecer procesos simulados de mecanismos que se aplican en la robótica, mostrando el accionamiento simple por rueda dentada, el accionamiento múltiple de rueda dentada, accionamiento por cremallera sin fin y tornillo sin fin, cálculos de ruedas de cambio y engranajes como convertidores par. La manera en que se realiza dicha operación es a través de un software diseñado en lenguaje Python, donde se calcule por medio de fórmulas los datos genera una simulación de las partes de mecanismos ya sean engranajes, rueda dentada, etc. Estas instrucciones dadas por software se ejecutan por el operador. Por medio del código, las instrucciones que el operador realizo mandan los resultados correspondientes y el software los muestra. Figura 4. Definición conceptual del modelo del negocio. Fuente: (elaboración propia) Para explicar mas sobre nuestro proyecto a continuación se describirán los mecanismos mas importantes en la robótica con sus fórmulas. Pag. 5 Accionamiento simple por rueda dentada [1] Un accionamiento simple por rueda dentada consta de un par de ruedas. Sus fórmulas son: z = número de dientes a = distancia entre ejes n = número de revoluciones d = diámetro de circulo perímetro i = transmisión Las ruedas dentadas “endientan”, por lo que tienen la misma velocidad periférica: 𝟏. interdependencia de d y n 𝒗𝟏 = 𝒗𝟐 𝒅𝟏 ⋅ 𝝅 ⋅ 𝒏𝟏 = 𝒅𝟐 ⋅ 𝝅 ⋅ 𝒏𝟐 𝒅𝟏 ⋅ 𝒏𝟏 = 𝒅𝟐 ⋅ 𝒏𝟐 Nota 𝒅 ⋅ 𝒏 motriz = 𝒅 ⋅ 𝒏 accionado En la expresión obtenida d x n = d x n se sustituye d 1 1 2 2 según d = z x m: 𝟐. interdependencia de z y n 𝒛𝟏 ⋅ 𝒎 ⋅ 𝒏 𝟏 = 𝒛𝟐 ⋅ 𝝅 ⋅ 𝒏 𝟐 𝒛𝟏 ⋅ 𝒏 𝟏 = 𝒛𝟐 ⋅ 𝒏 𝟐 Nota 𝒛 ⋅ 𝒏 motriz = 𝒛 ⋅ 𝒏 accionado Estando dada la relación del número de revoluciones por la fuerza motriz, se obtiene: 𝟑. Transmisión 𝒏𝒖𝒎. 𝒅𝒆 𝒓𝒆𝒗. 𝒎𝒐𝒕𝒓𝒊𝒛 𝒏𝟏 𝒅𝟐 𝒛𝟐 = = = 𝒏𝒖𝒎. 𝒅𝒆 𝒓𝒆𝒗. 𝒂𝒄𝒄𝒊𝒐𝒏𝒂𝒅𝒐 𝒏𝟐 𝒅𝟏 𝒛𝟏 𝒛𝟏 ⋅ 𝒏 𝟏 = 𝒛𝟐 ⋅ 𝒏 𝟐 𝒊= La distancia entre ejes está determinada por los diámetros d1 y d2: 𝟒. Distancia entre ejes 𝒂= Pag. 6 𝒅𝟏 + 𝒅𝟐 𝒛𝟏 + 𝒎 + 𝒛𝟐 ⋅ 𝒎 𝒎 = = (𝒛 + 𝒛𝟐 ) 𝟐 𝟐 𝟐 𝟏 Accionamiento múltiple por rueda dentada [1] 𝑛𝐴 = número de dientes 𝑛𝐸 = número de revoluciones 𝑖1 = primera transmisión parcial 𝑖2 = segunda transmisión parcial i = transmisión total Se descompone toda propulsión compuesta en fuerzas motrices individuales según los conocimientos básicos: 𝟏. Transmisiones parciales Transmisión parcial II 𝒅 ⋅ 𝒏 motriz = 𝒅 ⋅ 𝒏 accionado 𝒛 ⋅ 𝒏 motriz = 𝒛 ⋅ 𝒏 accionado Transmisión parcial I 𝒅𝟑 ⋅ 𝒏𝟑 𝒛𝟑 ⋅ 𝒏 𝟑 𝒅𝟏 ⋅ 𝒏𝟏 𝒛𝟏 ⋅ 𝒏 𝟏 𝑖1 = 𝒏𝟏 𝒏𝟐 = 𝒅𝟐 ⋅ 𝒏𝟐 = 𝒛𝟐 ⋅ 𝒏 𝟐 = 𝒅𝟐 𝒅𝟏 = = 𝒅𝟒 ⋅ 𝒏𝟒 = 𝒛𝟒 ⋅ 𝒏 𝟒 𝑖1 = 𝒏𝟑 𝒏𝟒 = 𝒅𝟒 𝒅𝟑 = 𝒛𝟒 𝒛𝟑 𝒛𝟐 𝒛𝟏 La transmisión total es el producto de sus transmisiones individuales. 𝟐. Transmisión total 𝒊 = 𝒊𝟏 ⋅ 𝒊𝟐 = 𝒊= 𝑛𝐴 𝑛𝐸 𝒏𝟏 ⋅ 𝒏𝟑 𝒅𝟐 ⋅ 𝒅𝟒 𝒛𝟐 ⋅ 𝒛𝟒 = = 𝒏𝟐 ⋅ 𝒏𝟒 𝒅𝟏 ⋅ 𝒅𝟑 𝒛𝟏 ⋅ 𝒛𝟑 Accionamiento por cremallera y tornillo sin fin [1] Accionamiento por cremallera [1] 𝑠 = carrera de cremallera 𝛼 = ángulo de giro parcial La cremallera se puede definir como una rueda dentada de radio infinito. Los dientes de la cremallera desempeñan la misma función que los filetes de una tuerca. Es un par usado en la transmisión de grandes potencias porque el empuje total se reparte entre los numerosos dientes. La cremallera puede considerarse como parte de una corona dentada con diámetro primitivo infinitamente grande. [1] 𝟏. Carrera de cremallera 𝑐𝑎𝑟𝑟𝑒𝑟𝑎 𝑑𝑒 𝑐𝑟𝑒𝑚𝑎𝑙𝑙𝑒𝑟𝑎 = 𝑝𝑒𝑟𝑖𝑚𝑒𝑡𝑟𝑜 𝑐𝑖𝑟𝑐𝑢𝑐𝑢𝑙𝑜 𝑝𝑟𝑒𝑚𝑖𝑡𝑖𝑣𝑜 𝒔 = 𝒅 ∗ 𝟑. 𝟏𝟒 𝒔=𝒛∗𝒑 𝒂 𝒔=𝒛∗𝒑∗ 𝟑𝟔𝟎° Pag. 7 Accionamiento por Tornillo Sinfín [1] G = numero de hilos del tornillo sinfín (𝑧1 ) 𝑧2 = numero de dientes de la rueda helicoidal Efectuando un tornillo sinfín de 1 hilo un giro, avanza la rueda helicoidal 1 diente. 𝟏. Hilo hilo ≜ numero de dientes Las relaciones son las mismas que para el accionamiento simple por rueda dentada: 𝟐. Interdependencies z ∗ n motriz = z ∗ n accionado z1 ∗ n1 motriz = z2 ∗ n2 accionado n1 z1 i= = n2 z2 nota: paso = division x numero de hilos Cálculo de ruedas de cambio interdependencia ruedas de cambio juegos de ruedas [1] 𝟏. Ruedas 𝑖 = relación de transmisión 𝑛1 = velocidad del eje de entrada 𝑛2 = velocidad del eje de salida 𝑍1 = número de dientes de todos los engranajes de entrada 𝑍2 = número de dientes de todos los engranajes de salida 𝑛2 𝑛1 𝑍1 𝒛𝟏 ⋅ 𝒛𝟑 𝑖= = 𝑍2 𝒛𝟐 ⋅ 𝒛𝟒 𝒊= Pag. 8 Engranajes como convertidores de par [1] El convertidor de par no puede utilizarse de forma directa sobre un vehículo al ofrecer un rendimiento muy bajo a bajo régimen, además de no poder aumentar el par más allá del triple. A consecuencia de ello, se introducen los engranajes planetarios que permiten un cambio de par muy progresivo. [2] i = transmisión 𝑀1 = momento de giro de impulsión (aportado) η= rendimiento 𝑀2 = par de salida (cedido) 𝟏. Transmisión de engranajes 𝑖 = relación de transmisión 𝑀1 = 𝐹 ⋅ 𝒓𝟏 → Momento de la rueda I 𝑀2 = 𝐹 ⋅ 𝒓𝟐 → Momento de la rueda II De donde se obtiene la fuerza del diente 𝑀1 𝑀2 𝒓𝟐 𝑀2 𝐹= = → 𝒊= = 𝒓𝟏 𝒓𝟐 𝒓𝟏 𝑀1 El número de revoluciones es inversamente proporcional a los diámetros y números de dientes 𝒊= 𝒏𝟏 𝒏𝟐 = 𝒅𝟐 𝒅𝟏 = 𝒁𝟐 𝒁𝟏 De la relación de transmisión de los movimientos se obtiene la relación de transmisión de los momentos de torsión: [1] 𝟐. Conversión de par 𝒊= 𝐦𝐨𝐦𝐞𝐧𝐭𝐨 𝐝𝐞 𝐠𝐢𝐫𝐨 𝐝𝐞 𝐢𝐦𝐩𝐮𝐥𝐬𝐢𝐨𝐧 𝐩𝐚𝐫 𝐝𝐞 𝐬𝐚𝐥𝐢𝐝𝐚 = 𝑴𝟐 𝑴𝟏 Resultando 𝑀2 = 𝑀1 ⋅ 𝑖 Nota: Una transmisión a marcha lenta aumenta el par de salida, lo que es especialmente deseable en la puesta en marcha. Pag. 9 Ya que en todo engranaje se tienen pérdidas, por ejemplo, por fricción, tiene que multiplicarse el momento cedido con el rendimiento. 𝑀2 = 𝑀1 ⋅ 𝑖 ⋅ 𝜼 Componentes de negocio del software de simulación de mecanismos aplicados a la robótica y su modelo de negocio correspondiente El diagrama de componentes es uno de los principales diagramas UML. Está clasificado como diagrama de estructura y representa de forma estática el sistema de información. Se utiliza después de haber creado el diagrama de clases, pues necesita información de este diagrama como pueden ser las propias clases. A continuación, se va a mostrar en la figura 5 el diagrama de componentes para el software simulador y en la figura 6. El modelo de negocio Figura. 5 diagrama de componentes del software Figura. 6 Diagrama del modelo del negocio del software Pag. 10 Requerimientos del software Descripción de Proceso de Ingeniería de requerimientos de software del proyecto Nuestro proyecto va a permitir a cualquier estudiante o practicante pueda poder simular mediante el software manipulando variables y valores. Es muy importante tener bien definido los requerimientos del simulador software para así poder realizar bien nuestro proyecto. El cliente y el analista juegan un papel muy importante en desarrollo del proyecto. El proceso está dividido en 4 fases. La primera fase es la elicitación y desarrollo de requerimientos, en esta fase determinaremos los requisitos del usuario que es el estudiante o practicante, los requisitos de información, normas del software, y también para describir la funcionalidad de este proyecto. La segunda fase es la documentación de requerimientos, que es donde se recolectara datos y requisitos mediante un documento o archivo formal. Aquí se va a describir los requerimientos en desarrollo y el producto enviado que vamos a ofrecer al usuario. La tercera fase es la validación y verificación de requerimientos, que aquí es donde nosotros debemos de asegurarnos que nuestro producto se valide, teniendo los requerimientos validados y verificados en un documento. La última fase es la administración y planificación de requerimientos, es cuando nosotros que estamos desarrollando nuestro proyecto planificamos la cuestión de cómo administrar los requerimientos del proyecto y tenemos el control de los cambios de los requerimientos. Nuestro propósito es identificar a que usuarios les benefician este proyecto, y esto benefician a los estudiantes del Tecnológico de Saltillo y a cualquier practicante. Análisis de requerimientos. A continuación, en la figura 7. Se mostrará el diagrama del proceso de requerimientos del software Figura 7. Diagrama del Proceso de Ingeniería de requerimientos de software del proyecto. Pag. 11 Requisitos funcionales Aquí es donde los requisitos del proyecto son encargados de describir las necesidades de los requisitos de usuario y de negocio, para que nos permita acceder a los destalles de cada función para que podamos implementar bien el sistema. Las necesidades de los requisitos de usuario y de negocio del proyecto deben permitir al usuario acceder al software para que le permita manipular variables de mecanismos, así como también ejecutarlo. También debe permitir al usuario usar sus conocimientos de graficación para el resultado del código de la simulación de mecanismos. A continuación, se muestra en la figura 8 los requisitos funcionales del proyecto mediante un diagrama. Figura 8. Elaboración propia, Requisitos funcionales del proyecto. Requisitos no funcionales Aquí es donde se deben de reconocer que requisitos fallan y que no fallan para realizar el producto, aquí se debe de cumplir los requisitos del sistema para ofrecer el servicio al usuario. El simulador debe ser sencillo de aprender, accesible y ejecutable, para que así el usuario pueda manipular variables y cambiar de coordenadas para los diferentes tipos de modelado, también debe permitir al usuario introducir datos. El software debe ser accesible, eficaz y debe servir como aprendizaje. A continuación, se muestra en la figura 9 los requisitos no funcionales del proyecto mediante un diagrama. Figura 9. Elaboración propia, Requisitos funcionales del proyecto. Pag. 12 Requisitos de dominio Estos requisitos son una combinación de los requisitos funcionales y no funcionales. Deben formar parte del proyecto ya que derivan del dominio de la aplicación del sistema, si los requisitos del dominio no se satisfacen, puede resultar imposible hacer que nuestro proyecto funcione de manera correcta. Nuestro proyecto debe de tener en cuenta las características del software para poder ofrecer el producto. Las características del software se muestran en la siguiente figura 10: Figura 10. Elaboración propia, Requisitos de dominio del proyecto. Definición de la necesidad o carencia que presenta el sistema La necesidad que presenta un software son ciertos requerimientos que debe de tener para que pueda funcionar de manera correcta, primero es determinar cómo va a funcionar y para que funcione, su diseño y desarrollo, etc. Es importante que este software sea validado, también debe permitir al usuario ingresar, manipular e introducir datos para la simulación. Un simulador ha sido una gran ventaja ya que ofrece elaborar prototipos y modelaciones en 3D de forma más sencilla para futuros proyectos de simulación. Determinación de las necesidades y restricciones que presenta el sistema Entre las principales necesidades se tiene la falta de claridad en los requerimientos del usuario, demostrando ambigüedad y dificultad. Las principales restricciones que no se puede cambiar el código. Pag. 13 Las necesidades del software son: • Ser eficaz y sencillo de entender. • Tener una estructura bien realizada. • Mantenimiento por parte de los que crean el software. • Mostrar resultados correctos y reales. • Que permita al usuario introducir datos. • Cumplir con los requerimientos definidos para el software. • Costo accesible para los usuarios. • Que cumpla con las especificaciones del cliente. • Funcionar correctamente para la modelación. • Los valores en las simulaciones deben ser exactos, para que el resultado sea efectivo y se pueda crear físicamente. Especificación de requerimientos en una plantilla Referencia Función Descripción Entradas Salidas Requerimiento Referencia Función Descripción Entradas Salidas Requerimiento Referencia Función Descripción Entradas Salidas Requerimiento Pag. 14 Software de simulación de mecanismos aplicados a robótica Establecer tipos de caracteres y variables que admite el software para calcular los mecanismos de robótica El software deberá admitir números decimales y enteros Números decimales y enteros Resultados en ejecución de excepción si la sintaxis marca error Funcional Software de simulación de mecanismos aplicados a robótica Mostrar el resultado del calculo mediante el software de simulación El software deberá mostrar los resultados por pantalla y guardados como imagen tipo png Selección de opción mediante menú los ejercicios para calcular Resultado del ejercicio Funcional Interacción grafica del software simulador Mostrar mediante un menú, opciones donde vengan las formulas y los ejercicios a seleccionar para realizar El software debe tener un menú con submenús que contengan las fórmulas mediante imágenes y lo ejercicios a seleccionar con botones para poder ejecutarlos, Accionamiento simple por Rueda Dentada Accionamiento múltiple por Rueda Dentada Accionamiento por cremallera y sin fin y por tornillo sin fin Cálculo de ruedas Engranajes como convertidores de par Muestra en la pantalla ventanas para ingresar los datos de las variables de acuerdo con la opción seleccionada. Funcional Referencia Función Descripción Entradas Salidas Requerimiento Referencia Función Descripción Entradas Salidas Requerimiento Referencia Función Descripción Entradas Salidas Requerimiento Referencia Función Descripción Entradas Salidas Requerimiento Referencia Función Descripción Entradas Salidas Requerimiento Pag .15 Accionamiento simple por Rueda Dentada Calcular el número de revoluciones por Accionamiento simple de Rueda Dentada El software deberá solicitar los datos de entrada del ejercicio opción f) Se muestra en pantalla una ventana del ejercicio para introducir datos con el botón de ejecutar Resultado del ejercicio opción f) Funcional Accionamiento múltiple por Rueda Dentada Calcular la transmisión total de Accionamiento múltiple por Rueda dentada El software deberá solicitar los datos de entrada del ejercicio opción g) Se muestra en pantalla una ventana del ejercicio para introducir datos con el botón de ejecutar Resultado del ejercicio opción g) Funcional Accionamiento por cremallera y sin fin y por tornillo sin fin Calcular el accionamiento de la cremallera El software deberá solicitar los datos de entrada del ejercicio opción h) Se muestra en pantalla una ventana del ejercicio para introducir datos con el botón de ejecutar Resultado del ejercicio opción h) Funcional Cálculo de ruedas Calcular las ruedas de cambio interdependencia ruedas de cambio juegos de ruedas El software deberá solicitar los datos de entrada del ejercicio opción i) Se muestra en pantalla una ventana del ejercicio para introducir datos con el botón de ejecutar Resultado del ejercicio opción i) Funcional Engranajes como convertidores de par Calcular la conversión par del engranaje El software deberá solicitar los datos de entrada del ejercicio opción j) Se muestra en pantalla una ventana del ejercicio para introducir datos con el botón de ejecutar Resultado del ejercicio opción j) Funcional Referencia Producto Función Descripción Entradas Salidas Proporcionar una herramienta para usos educativos en ingeniería de manera sencilla Debe ser un software intuitivo para el usuario Variables Producto final Requerimiento No funcional Referencia Producto Función Facilitar el uso del software con uso de lenguajes de programación y herramientas computacionales mas usuales. Descripción Adecuado para laptops, PC’s y computadoras Entradas PC Laptop Salidas Requerimiento Aplicación de simulación de mecanismos aplicados en robótica No funcional Referencia Producto Función Debe ser mantenible el software Descripción Mantenimiento adecuado Entradas Corrección y detección de errores Salidas Producto final Requerimiento No funcional Referencia Producto Función Descripción Debe permitir ejecutar correctamente el programa al momento de introducir datos Funcionar correctamente para ejecución del software Entradas Salidas Introducir datos Ejecución del programa Requerimiento No funcional Pag. 16 Representación de requerimientos En la Figura. 11 se muestra el Diagrama UML de Clases, Objetos y Métodos del Proyecto de Simulación de Mecanismos aplicados a Robótica. Figura. 11 Representación de requerimientos en diagrama UML. Fuente (elaboración propia) La calidad, estándares y métricas de calidad del software Factores de calidad del software Dentro del análisis de desarrollo del software, se divide en las siguientes secciones: Factores Operativos del Software: • Se realizo un análisis de uso del software y se corrigió la disposición de los objetos y sus características en la interfaz. • Se realizaron pruebas de uso del software, verificando la eficiencia con la que se ejecuta. • Se verifica la fiabilidad de los resultados de las operaciones del software. • La interfaz fue rediseñada para su fácil con prendimiento y se crearon imágenes de las fórmulas y mecanismos en cada práctica. Factores de mantenimiento: • El software nos permite saber al momento de fallar cual fue el error al momento de ejecutarlo y visualizar el código fuente. • Se puede reutilizar el código para extender el número de prácticas disponibles. • El lenguaje de programación Python permite flexibilidad de compatibilidad con otros lenguajes de programación. Pag .17 Factores Evolutivos • El software nos permite ejecutarlo sin problemas en diferentes versiones de Windows. • El software no requiere grandes capacidades de hardware. • Es capaz de ejecutarse al momento que se use otro software. Estándares Unified Modeling Language – UML Este estándar fue elegido ya que posee programación orientada a objetos y que la información que utilizaremos para el análisis de la información de nuestra clientela. El uso del lenguaje UML nos permitirá utilizar y mostrar información sobre nuestro proyecto, en si sobre los programas, servicios y el sistema usado. Este modelo será utilizado como base de especificar lo más importante de nuestro proyecto. Es de importancia para nosotros utilizar este tipo de lenguaje para si mostrar nuestras ideas innovadoras. Esto va a ser muy útil ya que así podremos utilizar información reduciendo la carga en programas usados, para que clientes y desarrolladores puedan usar de manera fácil nuestro sistema. Este tipo de estándar nos permitirá mostrar la estructura de un proyecto innovador y experimentar de un nuevo concepto de negocio. Métricas de calidad En el software se utilizaron diversas métricas de calidad para definir el nivel de calidad de cada parte de nuestro software. Dentro de la fase de análisis utilizamos métricas como: • Métrica de funcionalidad: En esta métrica analizamos si el software es capaz de desarrollar las prácticas y manipulaciones con los datos ingresados por el usuario de manera eficiente. • Métrica de diseño: En esta métrica se analizó el diseño del software, donde la interfaz de uso sea de fácil comprensión y el usuario pueda identificar los componentes de esta. • Métrica de especificación: Verificamos que el software cumpla con los requisitos necesarios para obtener el resultado deseado y cumpla con su objetivo de desarrollo. • Métrica de documentación: Desarrollamos una estructuración en el código fuente del programa, para identificar, definir y particionar el código fuente de manera que se puedan identificar los componentes de este fácilmente. Pag. 18 Elaboración del prototipo Código en Python Prototipo Primera Fase En este documento se va a explicar el prototipo primera fase de nuestro proyecto simulador de mecanismos aplicados a la robótica. Utilizamos el programa Python para las fórmulas de los puntos del documento “Simulación de mecanismos aplicados en robótica”. El software fue desarrollado en el lenguaje de programación Python en la versión 3.9, donde se establecieron los requerimientos necesarios que debía poseer el software. Primero se diseñó el título de la aplicación y se definió la base en la que se encontrarían los textos y campos de datos de cada práctica. Se realizó tomando en cuenta que todas las practicas fueran legibles y fuese de fácil comprensión para el usuario. El software se basó principalmente en la librería Tkinter, la cual ofrece diversas herramientas para el diseño y construcción de software y visualización de objetos. Una vez se diseñó la GUI de nuestro software, se procedió a la construcción de este. Se implementaron fórmulas de mecanismos en el código. En los campos de datos (Entry) le permite al usuario capturar los datos con los que se va a trabajar. Una vez capturados el sistema identifica el dato que escribió el usuario y procede a guardarlo en una variable única. Cabe mencionar que los datos son almacenados y procesados hasta que el usuario presiona el botón ejecutar y solicita al sistema proceda a realizar los cálculos. Una vez definida la variable el software manda los datos a una función y dicha función los procesa para al final regresar como dato el resultado de dicha función. Una vez realizado dicho proceso, el software envía el resultado a un label, permitiéndole al usuario visualizar el resultado de los datos definidos y finalizar la práctica. Esto cumpliendo con el objetivo del software, donde el usuario sea capaz de ingresar valores a diversas prácticas definidas, donde podrá cambiar dichos valores para seguir realizando prácticas y obteniendo diferentes resultados. Se realizo un modelo es espiral del prototipo primera fase de nuestro proyecto, se puede ver en la figura 12. Pag. 19 Figura 12. Prototipo del software. Elaboración propia en PowerPoint Figura 13. Prototipo del software. Elaboración propia en programa Justinmind Prototyper para el Pag. 20 Figura 14. Ejecución del código en Python Prototipo Segunda Fase Interacción del usuario El usuario utiliza la interfaz y los campos correspondientes, introduciendo los datos que solicita el sistema para realizar las operaciones matemáticas necesarias para ofrecer el resultado. En base a la práctica donde introduzca los datos y los datos en sí, ofrecerá diversos resultados. Figura 15. Ejecución del código para introducir datos por el usuario en Python Pag .21 Una vez introducidos los datos, el usuario dará clic en el botón correspondiente a la práctica a realizar para que el sistema realice las funciones correspondientes y muestre el resultado. En cada practica se identifica con una imagen las fórmulas utilizadas como también una visualización de la practica en sí. El usuario ingresara los datos en los campos disponibles. El usuario verá el resultado debajo de los campos donde ingreso los datos, después de utilizar le botón Ejecutar. Figura 16. Ejecución del código con resultados en Python Lógica de programación En Python, la manera en que el programa lee el código es en orden de arriba hacia abajo, por ende, se estructura de manera que vayamos definiendo los objetos en base a la posición que queramos establecer. Se construye de la siguiente manera: 1.- Se definen las librerías necesarias para su programación. 2.- Se crea la raíz base visual del software, además de agregar un marco tipo Frame para colocar los objetos. Pag. 22 3.- Se definen los objetos de la primera práctica. 4.-Se definen las funciones de operaciones matemáticas que realizara dicha practica con los valores dados por el usuario. Además, se creara el objeto llamado “Botón” que permitirá al usuario indicarle al sistema que realice las operaciones matemáticas al hacer uso del botón, de la misma manera, imprimirá el resultado. Por último, se agregarán imágenes referentes a la práctica a realizar, como lo son un ejemplo visual y las fórmulas matemáticas involucradas. Y este proceso se repetira por cada uno de las practicas del software, donde variaran los nombres y las funciones utilizadas. Al final del programa se mantiene el codigo que permite que la interfaz se mantenga funcionando hasta que el usuario cierre el programa. Pag .23 Uso de la función matemática. Primero se definen los objetos de campos de entrada de los valores que introducirá el usuario. Después estos valores serán obtenidos y guardados por la función ejecutar operación. Hay que tener en cuenta que esta función solo se realiza cuando el usuario brindo los datos correspondientes y utilizo el botón ejecutar, ya que es donde se define el comando que inicializa dichas funciones. Donde la función define los dos valores requeridos para la operación, obteniéndolos, utilizando el método. get de los campos definidos. Una vez definidos, la función solicita al sistema ejecutar otra función llamada operación, la cual es la que realiza la operación matemática correspondiente, con los valores obtenidos por la función ejecutar operación. Una vez que realiza la función operación, la misma función ejecutar_operación imprime el resultado utilizando el método .config y mostrándolo como texto en el label de resultado. Pag. 24 Tercera fase del prototipo Interacción de Usuario El usuario utiliza la interfaz y los campos correspondientes, introduciendo los datos que solicita el sistema para realizar las operaciones matemáticas necesarias para ofrecer el resultado. El usuario va encontrase con una pantalla que se le da una bienvenida al código. El usuario verá un menú donde venga formulas y ejercicios. Al mismo de seleccionar en el menú Ejercicios, el usuario podrá ver que hay submenús donde vienen los ejercicios para que pueda introducir los datos para que pueda calcular y manipular las variables. Pag. 25 En el menú de fórmulas están los submenús con las fórmulas de los puntos del tema de simulación de mecanismos aplicados a la robótica. Por ejemplo, si se va al submenú de “f) Accionamiento múltiple por rueda dentada transiciones parciales transmisión total”, el usuario podrá ver otros 2 submenús donde ahí vienen las imágenes de las fórmulas. Los submenús se llaman: Si el usuario le da click en “Formula 1 para calcular transmisión parcial”, le abrirá una ventana con un mensaje que dice: El usuario al dar click en ok, le aparece la imagen de la formula 1 de Accionamiento múltiple por rueda dentada transiciones parciales transmisión total Pag. 26 Cuando le aparezca la ventana, podrá cerrarla y abrir otra para que pueda ver las formulas En el menu de Ejercicios, vera los submenus siguientes: El usuario puede seleccionar cualquier ejercicio del Menú Ejercicios para que aprenda. Al seleccionar cualquier submenú, aparecerá una ventana donde pida introducir los datos a calcular. Por ejemplo, si selecciona el submenú “Ejercicio opción h)“, aparecerá así: Pag .27 Una vez introducidos los datos, el usuario dará clic en el botón correspondiente a la práctica a realizar para que el sistema realice las funciones correspondientes y muestre el resultado. El usuario ingresara los datos en los campos disponibles. El usuario verá el resultado debajo de los campos donde ingreso los datos, después de utilizar le botón Ejecutar. Después, el usuario puede cerrar la ventana y escoger otro ejercicio. Después, el usuario podrá seleccionar el submenú “Ajustes” que es donde vienen las opciones de sobre que trata de nuestro software y también agradecimientos por parte de los creadores de este software Pag. 28 Lógica de programación En Python, la manera en que el programa lee el código es en orden de arriba hacia abajo, por ende, se estructura de manera que vayamos definiendo los objetos en base a la posición que queramos establecer. Se construye de la siguiente manera: 1.- Se definen las librerías necesarias para su programación. 2.- Se crea la raíz base visual del software, además de agregar un marco tipo Frame para colocar los objetos. Esto es para poder crear nuestro menú 3.- Se crea el menu de Formulas 4.- Se crean los submenús del menú de Formulas. Pag .33 5.- Aquí se puso un separador en los submenús, ya que esta esta línea de código permite poner una línea que separa de un submenú de otro. Se crea un comando con root.destroy para que después el usuario pueda cerra el programa en la opción “Salir”, que está en el menú de fórmulas. 6.- Se define la función de abrir imagen de las fórmulas de la opción f) para que el usuario al seleccionar cualquier submenú, le aparezca la imagen de la formula como botón. Es importante tener almacenadas las imágenes dentro del folder donde está el código en formato .py 7.- Se crea el menú Ejercicios con sus submenús, que el usuario puede escoger cual ejercicio a resolver introduciendo datos. 8.- Se crea el submenú ajustes dentro del menú de Ejercicios. Se definen los objetos que tendrán en la opción ajustes. Pag. 32 9.- Se definen los objetos del primer ejercicio. 10.- Se definen las fórmulas con sus valores y variables del ejercicio 1 11.-Se definen las funciones de operaciones matemáticas que realizara dicha práctica con los valores dados por el usuario. Además, se creará el objeto llamado “Botón” que permitirá al usuario indicarle al sistema que realice las operaciones matemáticas al hacer uso del botón, de la misma manera, imprimirá el resultado. 12. Al final del programa se mantiene el codigo que permite que la interfaz se mantenga funcionando hasta que el usuario cierre el programa. Pag .33 Uso de la función matemática. Primero se definen los objetos de campos de entrada de los valores que introducirá el usuario. Después estos valores serán obtenidos y guardados por la función ejecutar operación. Hay que tener en cuenta que esta función solo se realiza cuando el usuario brindo los datos correspondientes y utilizo el botón ejecutar, ya que es donde se define el comando que inicializa dichas funciones. Donde la función define los dos valores requeridos para la operación, obteniéndolos, utilizando el método. get de los campos definidos. Una vez definidos, la función solicita al sistema ejecutar otra función llamada operación, la cual es la que realiza la operación matemática correspondiente, con los valores obtenidos por la función ejecutar operación. Una vez que realiza la función operación, la misma función ejecutar_operación imprime el resultado utilizando el método .config y mostrándolo como texto en el label de resultado. Pag. 32 Prototipo Final En esta sección, se muestra el software final completo para su ejecución, a continuación, se mostrarán imágenes del código y su ejecución. Pag .33 Se define el ejercicio 2 opción g) Pag. 34 Se define el ejercicio 3 de opción h) Pag. 35 Se define el ejercicio 4 de opción i) Pag. 36 Se define el ejercicio 5 de opción j) Pag. 37 Se define para abrir la primera imagen de la opción f) Accionamiento simple por Rueda dentada interdependencia y transmisión Pag. 38 Se define para abrir la segunda imagen de la opción f) Accionamiento simple por Rueda dentada interdependencia y transmisión Pag. 39 Se define para abrir la tercera imagen de la opción f) Accionamiento simple por Rueda dentada interdependencia y transmisión Pag. 40 Se define para abrir la primera imagen de la opción g) Accionamiento múltiple por Rueda dentada transmisiones parciales transmisión total Pag. 41 Se define para abrir la segunda imagen de la opción g) Accionamiento múltiple por Rueda dentada transmisiones parciales transmisión total Pag. 42 Se define para abrir la primera imagen de la opción h) Accionamiento por cremallera y por tornillo sin fin, carrera de cremallera accionamiento por tornillo sin fin, interdependencias Pag. 43 Se define para abrir la segunda imagen de la opción h) Accionamiento por cremallera y por tornillo sin fin, carrera de cremallera accionamiento por tornillo sin fin, interdependencias Pag. 44 Se define para abrir la primera imagen de la opción i) Cálculo de ruedas de cambio interdependencia ruedas de cambio juegos de ruedas Pag. 45 Se define para abrir la primera imagen de la opción j) Engranajes como convertidores de par, transmisión de engranajes y conversión de par Pag. 46 Se define para abrir la segunda imagen de la opción j) Engranajes como convertidores de par, transmisión de engranajes y conversión de par Pag. 47 Se crea el menú principal como frame Se crea el submenú formulas con sus opciones Se crea el submenú Ejercicios con sus opciones Pag. 48 Se crea el submenú Ajustes de Ejercicios con sus opciones Se define Help para crear la opción de agradecimientos Se define About para crear la opción de Que es nuestro software Finalmente, aquí es donde termina el código Menú Pag. 49 Muestra de los submenús Submenú Formulas Pag. 50 Opción formula 1 para calcular la interdependencia de submenú f) Accionamiento simple por Rueda dentada interdependencia y transmisión Pag. 51 Al presionar en el botón de la imagen de fórmula 1 para calcular la interdependencia, se abre una ventana que permite tomar screenshot, entrar al file explorer de tu computadora en al dar click en botón navegar Al dar click en botón navegar, podrás escoger el directorio que quieras para descargar la imagen Pag. 52 Después, aparecerá el directorio donde lo vas a guardar con el nombre que quieras guardar la imagen Después, al dar click en “Guardar”, aparecerá una pequeña ventana con un mensaje que dice que la captura ha sido guardada. Finalmente se guardó el screenshot Pag. 53 Esta es la imagen resultante, puedues escoger que ventanas aparezcan en la pantalla cuando al momento que haga la captura de pantallla, aparezca ahí. En todas las opciones que vienen en el submenú Formulas, tiene la misma función, aunque el botón viene con diferente imagen de acuerdo con la opción que escojas. Por ejemplo, a continuación, se va a mostrar imágenes de las opciones del submenú Fórmulas con sus imágenes tipo botón. La que se va a mostrar es la segunda opción de submenú f) Accionamiento simple por Rueda dentada interdependencia y transmisión Pag. 54 Pag. 55 Esta es la tercera opción de submenú f) Accionamiento simple por Rueda dentada interdependencia y transmisión Pag. 56 Esta es la primera opción de submenú g) Accionamiento múltiple por Rueda dentada transmisiones parciales y totales Pag. 57 Esta es la segunda opción de submenú g) Accionamiento múltiple por Rueda dentada transmisiones parciales y totales Pag. 58 Esta es la primera opción de submenú h) Accionamiento por cremallera y por tornillo sin fin, carrera de cremallera accionamiento por tornillo sin fin, interdependencias Pag. 59 Esta es la segunda opción de submenú h) Accionamiento por cremallera y por tornillo sin fin, carrera de cremallera accionamiento por tornillo sin fin, interdependencias Pag. 60 Esta es la segunda opción de submenú i) Cálculo de ruedas de cambio interdependencia ruedas de cambio juegos de ruedas Pag. 61 Esta es la primera opción de submenú j) Engranajes como convertidores de par, transmisión de engranajes y conversión de par Pag. 62 Esta es la segunda opción de submenú j) Engranajes como convertidores de par, transmisión de engranajes y conversión de par Pag. 63 Submenú Ejercicios A continuación, se mostrará las opciones del Menú ejercicios. Cada opción viene un ejercicio que pedirá que el usuario ingrese datos para calcular y con el botón Ejecutar se ejecuta y se muestra el resultado, luego viene el botón “Generar grafica”, que esto permite generar una foto del modelo del ejercicio en una gráfica. Se escogió la opción Ejercicio opción f), al momento de dar click, se abre una ventana del ejercicio pidiendo ingresar datos para calcular Pag. 64 Se ingresaron datos, y el resultado se muestra en la imagen. Ahora se puede generar la gráfica en el botón “Generar grafica”. Esta es la imagen de la grafica generada. En esta imagen, viene una opción para guardarla como imagen Ahora, en la siguiente imagen se muestra de como se va a guardar la imagen en un directorio. Pag. 65 Se muestra aquí que si se guardo la gráfica generada correctamente. A continuación, se mostrará las otras opciones de ejercicios para poder calcular los datos y generar su gráfica. Pag. 66 Pag. 67 Pag. 68 Pag. 69 Finalmente, en la opción de ajustes tiene 2 opciones las cuales son: Cuando el usuario le da click en Agradecimientos, le aparecerá una ventana pequeña donde se da nuestros agradecimientos. Cuando el usuario le da click en Que es nuestro software, le aparecerá una ventana pequeña donde se explica de que trata nuestro software. Para poder termina de usar del software en el menú de Formulas hay una opcion de “Salir”, que al momenyo de dar click se cierra el programa. Pag. 70 CONCLUSIÓN La elaboración de este proyecto permitió adquirir más aprendizaje de los principales mecanismos aplicados a robótica, sus variables y el funcionamiento de estos, realizando gráficas, de forma autodidacta. Para poder lograr este proyecto, se estudió conceptos básicos y temas de Ingeniería de Software, desde que es un requisito hasta conceptos más importantes como calidad de software, tipos requerimientos, procesos de requerimientos y el proceso por el cual atraviesa un proyecto en el trayecto y la importancia de una buena estrategia para la obtención de los requerimientos del usuario. Aunque también se utilizo conocimientos del lenguaje Python sobre como crear interfaz de usuario, botones por tkinter, gráficas con myplotlib, numpy, math y cv2, insertar, mostrar y guardar imágenes para poder realizar este software mediante un código. Los conocimientos de Python se adquirieron mediante también la materia de Graficación y de programación mediante materias relacionadas a ello. El software puede seguir desarrollando hasta realizarse como una manera de enseñanza y aprendizaje para la comunidad estudiantil del Instituto Tecnológico de Saltillo o incluso más allá. Pag. 71 REFERENCIAS [1] J. S Gamón, “FRESADORA II PARTE III”, manual de aprendizaje, SENATI, 2005. [En línea]. Disponible en: https://es.scribd.com/document/486879576/Fresadora-II-Parte-3 [Accedido: 29Marzo-2022] [2] D. Plaza, “¿Qué es el convertidor de par?”, motor.es, 2022. [En línea]. Disponible en: https://www.motor.es/que-es/convertidor-de-par [Accedido: 29-Marzo-2022] [3] Python Software Foundation License Version 2, “tkinter — Python interface to Tcl/Tk”, docs.python.org, 2022. [Online]. Available: https://docs.python.org/3/library/tkinter.html [Accessed: March 29, 2022] [4] J. D. Arias Hernández, A. F. Jiménez López y H. O. Porras Castro, “DESARROLLO DE APLICACIONES EN PYTHON PARA EL APRENDIZAJE DE FÍSICA COMPUTACIONAL”, Ingeniería Investigación y Desarrollo, vol. 16, núm. 1, pp.72-82, 2016. [En línea]. Disponible en: https://revistas.uptc.edu.co/index.php/ingenieria_sogamoso/article/view/5122/4154 [Accedido: 29-Marzo-2022] [5] Hanss-Erik E. y Magnus Penker, “Business Modeling and UML Primer”, in Business Modeling with UML: Business Patterns at Work, USA, 2000, pp. 13-22. [Online]. Available: https://fliphtml5.com/lnym/dxqo/basic/251-281 [Accessed: Feb 20, 2022] [6] ARIS Community, “Overview Event-driven Process Chain Notation”, ARIS Community, 2022. [Online]. Available: https://www.ariscommunity.com/event-driven-process-chain [Accessed: Feb 20, 2022] [7] Haim Mendelson, “Modelos de negocio, tecnologías de información y la empresa del futuro”, BBVA OpenMind, pp. 1-21, California, USA: Standford University, ,2015. [En línea]. Disponible en: https://www.bbvaopenmind.com/wp-content/uploads/2015/02/BBVA-OpenMind-modelos-denegocio-tecnologias-de-la-informacion-y-la-empresa-del-futuro-Haim-Mendelson.pdf.pdf [Accedido: 18-Feb-2022] [8] “¿Qué es un modelo de negocio?”, cámara valencia, 2019. [En línea]. Disponible en: https://www.master-valencia.com/empresas/que-es-un-modelo-de-negocio/ [Accedido: 18-Feb2022] [9] “Componentes de software”, IBM, 2015. [En línea]. Disponible en: https://www.ibm.com/docs/es/wsr-and-r/8.5.6?topic=artifacts-software-components [Accedido: 18-Feb-2022 Pag. 72 [10] “APRENDE QUÉ ES EL SOFTWARE Y SUS COMPONENTES BÁSICOS”, EUROINNOVA, 2021. [En línea]. Disponible en: https://www.euroinnova.edu.es/blog/que-es-el-software-y-suscomponentes-basicos [Accedido: 18-Feb-2022] [11] EALDE, “8 componentes del Plan de Negocio”, EALDE, 2021. [En línea]. Disponible en: https://www.ealde.es/8-componentes-del-plan-de-negocio/ [Accedido: 20-Feb-2022] [12] “La Fácil Guía de los Diagramas de los Componentes”, creately, 2021. [En línea]. Disponible en: https://creately.com/blog/es/diagramas/tutorial-de-diagrama-de-componentes/ [Accedido: 20Feb-2022] [13] “Diagrama de componentes”, manuel.cillero.es, 2022. [En línea]. Disponible en: https://manuel.cillero.es/doc/metodologia/metrica-3/tecnicas/diagrama-de-componentes/ [Accedido: 20-Feb-2022] [14] “Diagrama de componentes”, DiagramasUML, 2022. [En línea]. Disponible en: https://diagramasuml.com/componentes/ [Accedido: 20-Feb-2022] [15] D. Pandey, U. Suman and A. K. Ramani, "An Effective Requirement Engineering Process Model for Software Development and Requirements Management," 2010 International Conference on Advances in Recent Technologies in Communication and Computing, Kottayam, India, 2010, pp. 287-291, doi: 10.1109/ARTCom.2010.24. [En línea]. Disponible en: https://www.tamps.cinvestav.mx/~ertello/civis/s01-ReqEngManage.pdf [Accedido: 26-Feb-2022] [16] V. C. Loaiza Carvajal, L. C. Zorro Jiménez, M. E. Torres Moreno y M. P. Amórtegui Vargas, “Introducción y Justificación”, en Ingeniería de requerimientos, primera edición, Pontificia Universidad Javeriana, Bogotá, Colombia: Editorial Pontificia Universidad Javeriana, 2018, pp. 20-29. [En línea]. Disponible en: https://repository.javeriana.edu.co/handle/10554/44699 [Accedido: 26-Feb-2022] Link de carpeta del programa en archivo zip Google Drive https://drive.google.com/drive/folders/1P_KE3wD3z3H73SQOw697bBosPbkHfxia?usp=sharing Pag. 73