Universidad Tecnológica de La Habana “José Antonio Echeverría” Facultad de Ingeniería Informática. Filial de Ciencias Técnicas de 10 de Octubre. SISTEMA PARA EL CONTROL FÍSICO DE ACTIVOS FIJO TANGIBLES Trabajo de diploma para optar por el título de Ingeniería en Informática Autor: Amiley Quintana García amileyquintana98@gmail.com Tutor(es): Leosbel Castro Portuondo SITRANS leosbel@sitrans.transnet.cu Alain Zardoya Hernández SITRANS zardoya95@gmail.com La Habana, Cuba Mayo, 2024 Agradecimientos Primeramente, agradecer a mis padres, por siempre darme el sostén en todo momento para cumplir mis sueños y los ánimos para salir adelante antes las adversidades. A mi mamá por confiar en mi y presionarme para ser una mejor persona, más fuerte y capaz y a mi papá, que me tenía amenazada con una guataca y tierra para arar (jajaja). A mi familia en general, por estar conmigo en todo momento. A Alain Gonzáles y su familia, por siempre creer en mí. Muchas personas, me han tenido que soportar durante mi proceso en la universidad, a todos gracias por los momentos que pasamos juntos. Especialmente a: Alain Zardoya, es poco tiempo que nos conocemos, pero fue fundamental para mi conocerte, gracias por las horas tolerándome y ayudarme a cumplir esta ardua tarea. A Leosbel Castro, mi tutor, por el tiempo dedicado a la tesis. A mis amistades, Dayi, la cual la capte para que fuera mi “amiguita” y ha sido mi amiga y confidente desde ese momento siempre ayudándome y aconsejándome. Ariel Mondelo y Elio gracias por ayudarme en todo momento y siempre mostrar esa pasión por la programación que les sale por lo poros. Además, Laura, Tony y Sander, agradecida de conocerlos y compartir cada sábado con ustedes. Sin ustedes hubiera sido todo diferente. A los profesores de la Facultad y la filial. Agradecer a SITRANS y su equipo, principalmente a mi jefe Damián. Además, a CALISOFT, aprendí mucho de ustedes y me siento muy orgullosa y agradecida. A todas aquellas personas que pasaron por mi vida y me enseñaron algo, muchas gracias también. Pero principalmente a mi bebecita, mi Cami, sin ella si no hubiera sido posible de esta manera. Gracias a ella cada sacrificio ha valido realmente la pena. Te amo. Infinitas gracias a todos. Dedicada completamente a Camila González Quintana, mi niña linda. Resumen El Control Interno es el plan mediante el cual una organización establece principios, métodos y procedimientos que buscan proteger los recursos de la entidad, además de prevenir y detectar fraudes y errores dentro de los diferentes procesos desarrollados en la empresa, en torno al cumplimiento de los objetivos planteados para determinado tiempo. El Control Interno en Cuba tiene como objetivos: • Evitar y prevenir riesgos de pérdidas o consecuencias negativas. • Facilita el acceso a la disponibilidad de información para poder realizar una buena rendición de cuentas. • Busca cumplir con las normas, leyes y reglamentos ya que promueven el respeto de ellas. En las entidades estatales, se establece controles internos, siendo uno de estos el control contable y el control de Activos Fijos Tangibles (AFT). Estos comprenden bienes físicos como edificios, maquinaria y equipos, esenciales para las organizaciones. Actualmente, los sistemas contables solo garantizan el control de AFT en la contabilidad, no llegan a realizar un control físico o real de los mismos. Por tal motivo surge la idea de implementar un sistema para el control físico de Activos Fijos Tangibles. El control eficaz de activos fijos tangibles es esencial para el éxito empresarial, y el control adecuado de estos activos se vuelve crucial para la toma de decisiones informadas. La implementación de un sistema para el control, no solo simplifica este proceso, sino que también optimiza la gestión, contribuyendo así al rendimiento y la sostenibilidad a largo plazo de la organización. Palabras claves: Sistema de control de Activos Fijos Tangibles, Control de Activos Fijos Tangibles, Control interno. Summary Internal Control is the plan through which an organization establishes principles, methods, and procedures aimed at protecting the entity's resources, as well as preventing and detecting fraud and errors within the various processes carried out in the company, in line with achieving the objectives set for a specific period. In Cuba, Internal Control has the following objectives: • To avoid and prevent risks of losses or negative consequences. • To facilitate access to information availability for proper accountability. • To seek compliance with norms, laws, and regulations as they promote respect for them. In state entities, internal controls are established, one of which is accounting control and the control of Tangible Fixed Assets (TFA). These include physical assets such as buildings, machinery, and equipment, which are essential for organizations. Currently, accounting systems only ensure the control of TFA within accounting, but they do not perform a physical or actual control of them. For this reason, the idea arises to implement a system for the physical control of Tangible Fixed Assets. Effective control of tangible fixed assets is essential for business success, and proper control of these assets becomes crucial for making informed decisions. Implementing a system for control not only simplifies this process but also optimizes management, thus contributing to the organization's long-term performance and sustainability. Keywords: Tangible Fixed Assets Control System, Tangible Fixed Assets Control, Internal control. Índice INTRODUCCIÓN. ....................................................................................................................................... 1 CAPÍTULO 1 FUNDAMENTOS TEÓRICOS. ......................................................................................... 8 1.1 INTRODUCCIÓN. ................................................................................................................................ 8 1.2 OBJETIVOS ESTRATÉGICOS DE LA ORGANIZACIÓN............................................................................. 8 1.3 DESCRIPCIÓN DE LOS PROCESOS QUE SE EJECUTAN EN EL CAMPO DE ACCIÓN. .................................. 8 1.3.1 Control físico de AFT ................................................................................................................ 8 1.3.2 Control contable de AFT........................................................................................................... 9 1.3.3 Solicitud de Movimiento de AFT ............................................................................................... 9 1.4 ANÁLISIS CRÍTICO DE LA EJECUCIÓN ACTUAL DE LOS PROCESOS......................................................10 1.4.1 Control físico de AFT ...............................................................................................................10 1.4.2 Control contable de AFT..........................................................................................................11 1.4.3 Solicitud de Movimiento de AFT ..............................................................................................11 1.5 PROCESOS OBJETO DE INFORMATIZACIÓN. .......................................................................................11 1.6 SISTEMAS AUTOMATIZADOS EXISTENTES VINCULADOS AL CAMPO DE ACCIÓN. ...............................12 1.6.1 Sistemas Internacionales..........................................................................................................12 1.6.2 Sistemas nacionales. ................................................................................................................15 1.7 TENDENCIAS Y TECNOLOGÍAS ACTUALES.........................................................................................15 1.7.1 Metodología de Desarrollo de software...................................................................................15 1.7.2 Lenguajes de programación .....................................................................................................19 1.7.3 Framework ...............................................................................................................................21 1.7.4 Lenguaje de programación del lado del servidor ....................................................................26 1.7.5 Tipo de aplicación ....................................................................................................................30 1.7.6 Herramienta de planificación de proyectos ágiles ...................................................................32 1.7.1 Sistemas Gestores de Bases de Datos ......................................................................................33 1.7.2 Sistema para el control de versiones........................................................................................36 1.8 ANÁLISIS CRÍTICO DE LAS FUENTES Y BIBLIOGRAFÍAS UTILIZADAS (ESTADO DEL ARTE). ................38 1.9 CONCLUSIONES. ...............................................................................................................................39 CAPÍTULO 2 ESPECIFICACIONES DE FUNCIONALIDAD. ............................................................40 2.1 INTRODUCCIÓN. ...............................................................................................................................40 2.2 DEFINICIÓN DE INTERESADOS. .........................................................................................................40 2.3 DEFINICIÓN DE TEMAS. ....................................................................................................................41 2.4 PILA DE PRODUCTO. .........................................................................................................................42 2.4.1 Seguridad .................................................................................................................................42 2.4.2 Nomencladores. .......................................................................................................................44 2.4.3 Comunicación ..........................................................................................................................45 2.4.4 Notificaciones, reportes y alertas ............................................................................................46 2.4.5 Control de AFT ........................................................................................................................48 2.5 TIPOS DE PRUEBAS EJECUTADAS Y JUSTIFICACIÓN DE LA SELECCIÓN. ..............................................53 2.6 DISEÑO DE LOS CASOS DE PRUEBAS UNITARIAS (SELECCIÓN)...........................................................53 2.6.1 Validaciones .............................................................................................................................54 2.6.2 Modelos ....................................................................................................................................54 2.6.3 Widget ......................................................................................................................................55 2.6.4 Resultados de las pruebas ........................................................................................................56 2.7 REQUISITOS NO FUNCIONALES. ........................................................................................................57 2.8 CONCLUSIONES. ...............................................................................................................................58 CAPÍTULO 3 DESCRIPCIÓN DE LA SOLUCIÓN PROPUESTA. .....................................................60 3.1 INTRODUCCIÓN. ...............................................................................................................................60 3.2 DIAGRAMA DE CLASES DEL DISEÑO. ................................................................................................60 3.2.1 Seguridad .................................................................................................................................61 3.2.2 Nomencladores ........................................................................................................................61 3.2.3 Comunicación ..........................................................................................................................61 3.2.4 Notificaciones, reporte y alertas ..............................................................................................62 3.2.5 Control de AFT ........................................................................................................................62 3.3 DISEÑO DE LA BASE DE DATOS. ........................................................................................................63 3.3.1 Modelo lógico de datos. ...........................................................................................................64 3.3.2 Modelo físico de datos. ............................................................................................................65 3.4 PRINCIPIOS DE DISEÑO. ....................................................................................................................66 3.4.1 Patrón de diseño Bloc. .............................................................................................................66 3.4.2 Interface de usuario .................................................................................................................67 3.4.3 Logotipo del sistema ................................................................................................................68 3.4.4 Formato de salida de los reportes. ..........................................................................................68 3.4.5 Ayuda. ......................................................................................................................................68 3.5 TRATAMIENTO DE ERRORES. ............................................................................................................68 3.6 DIAGRAMA DE DESPLIEGUE. ............................................................................................................70 3.7 FACTIBILIDAD DE LA SOLUCIÓN PROPUESTA. ...................................................................................71 3.7.1 Beneficios tangibles e intangibles. ...........................................................................................71 3.7.2 Análisis de costos y beneficios. ................................................................................................72 3.8 CONCLUSIONES. ...............................................................................................................................72 CONCLUSIONES .......................................................................................................................................73 RECOMENDACIONES .............................................................................................................................74 REFERENCIAS BIBLIOGRÁFICAS .......................................................................................................75 GLOSARIO DE SIGLAS Y TÉRMINOS ................................................................................................79 Índice de tablas Tabla 1 Comparación entre metodologías ágiles .................................................................. 18 Tabla 2 Comparación entre Dart y JavaScript [15] ............................................................... 21 Tabla 3 Herramientas para la gestión de proyectos con metodologías ágiles ................ 33 Tabla 4 Comparativa entre SGBD. [31] .................................................................................. 36 Tabla 5 Definición de interesados ............................................................................................ 41 Tabla 6 Definición de temas...................................................................................................... 42 Tabla 7 Historia de usuario Tema Seguridad ......................................................................... 44 Tabla 8 Historia de usuario Tema Nomencladores ............................................................... 45 Tabla 9 Historia de usuario Tema Comunicación.................................................................. 46 Tabla 10 Historia de usuario Tema Notificaciones, reportes y alertas ............................... 48 Tabla 11 Historia de usuario Tema Control de AFT .............................................................. 53 Tabla 12 Análisis de costos y beneficios ................................................................................ 72 Índice de figuras Figura 1 Comparación entre Flutter, React Native y Ionic [18] ........................................... 24 Figura 2 Comparación entre React Native, Flutter y Xamarin. [19] .................................... 25 Figura 3 Esquema de arquitectura Node.js ............................................................................ 26 Figura 4 Comparación de Node.js y Python ........................................................................... 29 Figura 5 Comparación entre Node.js con PHP [22] .............................................................. 30 Figura 6 Comparación entre GitHub y GitLab. ....................................................................... 38 Figura 7 Pruebas de validación ................................................................................................ 54 Figura 8 Pruebas unitarias a Modelos ..................................................................................... 55 Figura 9 Prueba a Widget.......................................................................................................... 56 Figura 10 Resultados de las pruebas unitarias...................................................................... 57 Figura 11 Diagramas de diseño Tema Seguridad ................................................................. 61 Figura 12 Diagrama de clases de diseño Tema Nomencladores ....................................... 61 Figura 13 Diagrama de clase de diseño Tema Comunicación ............................................ 62 Figura 14 Diagrama de clase de diseño Tema Notificaciones, reportes y alertas ........... 62 Figura 15 Diagrama de clase de diseño Tema Control de AFT .......................................... 63 Figura 16 Patrón Bloc ................................................................................................................ 67 Figura 17 Logotipo SCAFT........................................................................................................ 68 Figura 18 Tratamiento de errores ............................................................................................ 69 Figura 19 Tratamiento de errores ............................................................................................ 70 Figura 20 Diagrama de despliegue .......................................................................................... 71 Introducción. El control interno es el proceso integrado a las operaciones con un enfoque de mejoramiento continuo, extendido a todas las actividades inherentes a la gestión, efectuado por la dirección y el resto del personal; se implementa mediante un sistema integrado de normas y procedimientos, que contribuyen a evaluar la eficiencia de la misma en cuanto a su organización. De ahí su gran importancia en la prevención de los riesgos internos y externos, en el cuidado de los activos y los intereses de la empresa; proporcionando una seguridad razonable al logro de los objetivos institucionales y una adecuada rendición de cuenta [1]. El sistema de control interno ha definido estos componentes como parte de su evaluación en una Entidad [2]. 1. Ambiente de control. 2. Evaluación de riesgos. 3. Actividades de control. 4. Información y comunicación. 5. Supervisión. El Sistema de Control Interno practicado en Cuba considera el Ambiente de Control como su componente base, pretendiendo lograr un compromiso de la alta dirección y la participación del resto de los trabajadores en la preservación de los recursos. En la Resolución 60/2011 de la Contraloría General de la de la República en su Capítulo IV, artículo 18, se define su carácter integrador, exigiendo a las organizaciones que tienen implementados sistemas de gestión que integren estos al Sistema de Control Interno. En este sentido, las organizaciones cubanas, se proyectan en implementar sistemas de gestión, fundamentalmente normalizados, que constituyen un marco propicio para la integración. Tal es el caso del Sistema de Gestión de la Calidad, a partir de los requisitos de la norma cubana NC ISO 9001:2015, que cumplen con las fases del ciclo Deming (Planificar, Hacer, Verificar y Actuar), de igual forma que otras normas del mismo período, como la de seguridad y salud y medio ambiente. En el año 2018, 1 además se publica la NC ISO 31000, sobre las directrices para la gestión de riesgos, que, aunque no es de obligatorio cumplimiento, constituye una guía para alinear aspectos que sustentan el desarrollo de los procesos organizacionales [3]. Actualmente, las entidades cubanas diseñan sus propios procedimientos de Control Interno, en correspondencia con lo que por la presente se dispone. Como parte de este, se realizan los controles en la contabilidad, entre ellos el control de activos fijos, para el cual se establece que se debe elaborar el Plan de Chequeo Físico anual de los activos fijos tangibles y se aprueba por el jefe de la entidad. Se debe hacer los chequeos físicos periódicos, según el plan de chequeo elaborado, bajo la supervisión de personas no responsabilizadas con el cuidado y control de estos medios [4]. Además, existe un procedimiento práctico que se aplica en todo el Sector Estatal, el cual indica que el proceso de control de los recursos materiales debe de realizarse al 100% una vez al año y al 10% mensual [5]. En Cuba, se hace de vital importancia el cuidado y preservación de los activos fijos tangibles. Estos medios requieren de un control a partir de un sistema de modelos que reflejan su destino y uso según lo establecido en la resolución 60/2011 (República, 1 de marzo de 2011) de la Contraloría General de la República, acerca del control interno de todos los recursos materiales y financieros. Por ello el examen de estos medios se debe realizar de forma minuciosa y detallada [6]. La situación problemática se basa en los márgenes de errores existentes en el actual proceso de aplicación de las normas de control interno y contables del Ministerio de Finanzas y Precios (MFP) establecidos, utilizando cualquier Sistemas de Gestión Contables Financieros (SGC) Certificado existente en el país. Para ello, el presente trabajo tomará como objeto de estudio a los procedimientos de control interno establecidos en la Empresa SITRANS, la cual a su vez es proveedora del Sistema Gestión Contable Suite Condor, certificado por el Ministerio de la Informática y las Comunicaciones, MINCOM. 2 El sistema les facilita a los usuarios imprimir el modelo SC-1-09 Hoja de Inventario Físico de Activos Fijos Tangibles establecido para los chequeos físicos. Los especialistas utilizan este reporte para actualizar las ubicaciones y/o determinar los faltantes o sobrantes, si es el caso. En el sistema el usuario utiliza la opción Reflejar el Chequeo Efectuado para reflejar todas las incidencias detectadas en este proceso de control, auxiliándose en el modelo SC-1-09 Hoja de Inventario Físico. Y luego realizan la impresión de las existencias de los AFT en el Modelo SC-1-07 Control de Activos Fijos. Las acciones de control internos tienen un carácter operativo y toman como referencia la correcta actualización del Modelo SC-1-07 para validar la ejecución del procedimiento de Control de Activos Fijos Tangibles. En este modelo se detalla la relación actualizada de los AFT de un área determinada, firmada por el Responsable de área, el Especialista de gestión económica, responsable del control de AFT y el Director Económico de la Entidad. El proceso de actualización evidencia un gasto de recursos cuando dicha área es afectada por algún tipo de movimiento de AFT. Se detalla la situación problemática a continuación: • Si bien existe un sistema para la gestión de los activos fijos, el trabajo en este sentido sigue siendo poco eficiente para su puesta en práctica según las normativas para el control vigentes en la institución. Esto está dado, principalmente, por la lectura de los números de inventario, los cuales son identificados y señalados con marcadores y/o pegatinas por lo que se dificulta la lectura en su contrastación con los listados impresos desde el sistema Condor. Esto puede ocasionar errores humanos, lo que conllevaría en muchos casos, a desencadenar errores contables e iniciar los procesos y expedientes de investigación a que den lugar. • Los especialistas utilizan el modelo de inventario de AFT para comprobar que la relación de los AFT existente en el listado entregado por economía, se encuentren realmente en el lugar de procedencia e ir marcando que ya fue revisado. El tiempo dedicado a este proceso de revisión de incidencias tiende a 3 ser elevado ya que está en dependencia de las condiciones del área, ubicación del AFT y las cantidades de activos a revisar. • En el SGC el usuario utiliza la opción Reflejar el Chequeo Efectuado para reflejar todas las incidencias detectadas en este proceso de control a un área determinada. Esta opción en el sistema solo permite registrar los faltantes existentes en el área. En caso de detectar algún sobrante, no tienen forma de saber si dicho AFT fue declarado como faltante en otro control que se ha realizado. Lo que provocaría que, a la hora de buscar este activo, resulta muy engorroso, ya que se tendría que buscar área por área del centro para encontrarlo. • Los chequeos son impresos y almacenados, debido a que el sistema, no se permite guardar un histórico de las acciones de control realizadas en la entidad. Esto provoca que los volúmenes de documentos sean elevados y se deterioren con el tiempo. De la situación problemática planteada anteriormente obtenemos como Problema a resolver el siguiente: ¿Cómo optimizar el proceso de control físico de los Activos Fijos Tangibles? En el objeto de estudio, en el escenario Cliente/Usuario el estudio de la Resolución 60/2011 de la Contraloría General de la República, acerca del control interno de todos los recursos materiales y financieros y aplicando lo establecido en la instrucción general 203/88 y Resolución 268/2018 del Ministerio de Finanzas y Precios, sobre el Procedimiento de Control Interno. En el escenario Informático, el estudio de la Ingeniería de software, lenguajes de programación y bases de datos. Como campo de acción, el estudio de Procedimientos para el control físico de los Activos Fijos Tangibles en las Entidades Estatales Cubanas y en el escenario informático, - Metodologías y tecnologías para el desarrollo de software. 4 Por lo tanto, se presenta como Objetivo General de la investigación: Desarrollar e Implementar una herramienta informática para el control físico de Activos Fijos Tangibles. Para dar cumplimiento al objetico general se describen los Objetivos Específicos y Tareas de Investigación, los cuales se detallan a continuación: Objetivos Específicos 1. Analizar el proceso de control interno en las entidades estatales. 2. Modelar el negocio. 3. Diseñar e implementar sistema informático para el control de AFT. 4. Diseñar e implementar la aplicación móvil para la lectura y registro de los controles de AFT. 5. Implementar pruebas al sistema. 1. Tareas de investigación 1. Estudio de los procesos y procedimientos que intervienen en el control que se realiza a los AFT. 2. Revisión de las bibliografías sobre estudios realizados sobre mejoras a los controles de AFT. 3. Entrevistas con los implicados en el negocio. 4. Estudio de las tecnologías de desarrollo actuales, teniendo en cuenta los requerimientos del cliente. 5. Definición de los interesados, las historias de usuarios y escenarios. 6. Identificar reglas de negocio. 7. Identificación de elementos de la base de datos. 8. Identificación e implementación de patrones de diseño y mecanismos de diseño para obtención de una mayor calidad en el desarrollo del sistema. 9. Implementación de las historias de usuario de uso del sistema. 10. Implementación de los requisitos no funcionales del sistema. 5 11. Revisar la literatura existente sobre aplicaciones móviles para lectura y registro de controles de AFT. 12. Diseñar la interfaz de usuario de la aplicación móvil. 13. Desarrollar la aplicación móvil según los requisitos establecidos. 14. Implementar medidas de seguridad para proteger la información registrada. 15. Diseño de casos de pruebas. 16. Realización de pruebas en el sistema. 17. Revisión de no conformidades que se detecten en el sistema. 18. Realizar ajustes y mejoras dada la detección de no conformidades, y la retroalimentación de los usuarios piloto. 19. Evaluar la usabilidad de la aplicación mediante pruebas piloto. • Actualidad y necesidad del trabajo. El desarrollo e implementación de una herramienta para el control de AFT aporta varios beneficios prácticos para la gestión empresarial. A continuación, se mencionan: • Acceso instantáneo y actualizado: Permite a los usuarios realizar un seguimiento en tiempo real de los activos fijos. Ya no es necesario depender de registros manuales; la información se actualiza directamente desde la base de datos contable, proporcionando datos precisos y actualizados en todo momento. • Mayor control y visibilidad: Los responsables pueden acceder a informes detallados, realizar auditorías eficientes y tomar decisiones informadas basadas en datos precisos, lo que resulta en una mayor visibilidad y transparencia en la gestión de activos. • Eficiencia operativa: Con la capacidad de realizar inventarios y seguimientos de activos de manera ágil y eficiente, las empresas experimentan una mejora notable en sus operaciones diarias. 6 En resumen, la implementación de un sistema para el control físico de activos fijos tangibles, no solo mejora la eficiencia operativa, sino que también optimiza la toma de decisiones estratégicas al proporcionar información precisa y actualizada en tiempo real. Esta solución integral marca el camino hacia un control de activos fijos más inteligente y proactiva, impulsando el éxito a largo plazo de cualquier empresa. El documento está estructurado en tres capítulos, incluyendo una breve introducción, las referencias bibliográficas utilizadas durante la investigación y conclusiones pertinentes. Capítulo 1. Fundamentos teóricos: Se centra en la descripción de los procesos que intervienen en el control de AFT, así como el análisis crítico de los mismos. Para esto, se toma como referencia a la empresa SITRANS. Además, se detallan las tecnologías a utilizar para el desarrollo de la solución propuesta. Capítulo 2. Especificaciones de funcionalidad: Aborda el proceso de definición de requisitos funcionales del sistema, siguiendo pautas de SCRUM. Se definieron los interesados y temas del sistema y con la ayuda de los mismos de detallaron las historias de usuarios, además se plantean los requisitos no funcionales. Como parte de las validaciones y funcionamiento de los métodos se plasman las pruebas unitarias realizadas en el sistema. Capítulo 3. Descripción de la solución propuesta: Presenta la solución técnica para el proyecto, comenzando con una introducción del capítulo. Luego, se presenta el diseño mediante un diagrama de clases y el diseño de la base de datos, mediante los modelos lógicos y físicos. Se discuten los principios de diseño, como la interfaz de usuario, el formato de salida de los reportes y la ayuda. Además, se aborda el tratamiento de errores, el diagrama de despliegue y las posibles medidas de calidad. También se examina la factibilidad de la solución propuesta, incluyendo beneficios tangibles e intangibles, análisis de costos y beneficios. Finalmente, se presentan conclusiones basadas en el contenido del capítulo. 7 Capítulo 1 Fundamentos teóricos. 1.1 Introducción. En el capítulo se abordarán aspectos fundamentales de la entidad que se toma como caso de estudio, SITRANS. Para esto se analizará los procesos del negocio relacionados con el control de los activos fijos tangibles. Además, se investigan los sistemas informáticos existentes, descripción de las tecnologías y marcos de trabajo empleados en el desarrollo de la solución propuesta. 1.2 Objetivos estratégicos de la organización. SITRANS, es una empresa que brinda servicios informativos e informáticos, encargada al desarrollo de software con calidad. Comercializa materiales, equipos y muebles de oficina, ofreciendo servicios de instalación y montaje de los mismos. Además, se encarga de la comercialización de accesorios y útiles para empresas. Misión: Brindar servicios de Tecnologías de Información y Comunicación (TIC), así como de Ofimática, que satisfagan las necesidades y expectativas de los clientes, con alta profesionalidad, personalizados y con eficiencia, distinguiéndolos por el valor agregado que brinda y la mejora continua. Visión: Líder en el campo de la comercialización y los servicios TIC, con una filosofía de calidad y una reconocida responsabilidad social, que se manifiesta en el comportamiento de los trabajadores acogidos a los valores empresariales: profesionalidad, trabajo. 1.3 Descripción de los procesos que se ejecutan en el campo de acción. 1.3.1 Control físico de AFT El Director Económico de la Empresa elabora el Plan de Chequeo Físico anual de los activos fijos tangibles, y se aprueba por el Director General. Los chequeos se deben efectuar de manera periódica y sistemática del 10 % de los bienes, de 8 manera que al finalizar el ejercicio económico se encuentren inventariados al 100%, dejando constancia en acta. Por tanto, cuando corresponde, se revisa control de AFT. El especialista económico, le notifica por vía telefónica o correo electrónico a los responsables de áreas, que se les realizará el control. Posteriormente, se dirige al Sistema Contable Financiero e imprime el modelo SC-1-09 Hoja de Inventario Físico de Activos Fijos Tangibles. El Especialista económico y el Responsable de área se dirigen al lugar del control y junto con la hoja de inventarios del área, revisan uno a uno la existencia de los AFT. Se comprueba la contrastación entre el número de inventarios del activo fijo con el que está en la hoja de inventario, además se comprueba que coincidan las descripciones. Se anota en el listado la existencia de los AFT y concluida la revisión se determinan faltantes o sobrantes. De igual forma, se realiza el conteo físico de estos medios cuando se sustituye al responsable de un área, o en situaciones excepcionales que lo requieran, dejando constancia de la comprobación realizada, con vistas a la fijación de la responsabilidad material. 1.3.2 Control contable de AFT El Especialista económico, se dirige al SGC y utiliza la opción Reflejar el Chequeo Efectuado para reflejar todas las incidencias detectadas en este proceso de control físico, auxiliándose para ello del Modelo SC-1-09 Hoja de inventario Físico. Con esta acción se actualiza el Modelo SC-1-07 Control de Activos Fijos, luego se imprime y lo firman el Responsable de área y el Especialista económico, y lo aprueba el Director económico. En caso de existir faltantes o sobrantes en el área que fue controlada, se debe elaborar los expedientes correspondientes, contabilizarse estos correctamente y aplicarse en el caso de faltantes la responsabilidad material, de acuerdo con lo regulado por el Decreto Ley 249 de la Responsabilidad Material. 1.3.3 Solicitud de Movimiento de AFT 9 El proceso inicia cuando el Responsable del área decide realizar un traslado de uno o varios AFT del área a la que pertenece “origen” para otra área “destino”. Para esto solicita en la Dirección de Economía el Modelo SC-01- Movimiento AFT y lo llena de forma manual con los datos necesarios de los activos (No. Inventario, Descripción), además el área de origen, el área de destino, nombres completos del que realiza la solicitud y del que lo recibe. Una vez completada la información en el modelo se procede a la firma de los mismos y es entregado a economía para que se procese el movimiento. 1.4 Análisis crítico de la ejecución actual de los procesos. 1.4.1 Control físico de AFT El control físico de los AFT de un área se realiza apoyándose de la hoja de inventarios de esa área y se comprueba la contrastación con los AFT que están en el área, este proceso resulta ineficiente debido a que se comprueba uno a uno los medios revisando el número de inventario del listado contra el número que tiene el medio como marca. Como esta comprobación es visual está propensa a errores humanos lo que conllevaría a errores en la contabilidad. El proceso demora en dependencia de la cantidad de AFT del área, en ocasiones horas, lo que implica que se pierda determinado tiempo que puede ser empleado en cuestiones de la productividad de la entidad. Los listados impresos son llevados a la contabilidad y se obtiene como resultado el Modelo SC-1-07 Control de Activos Fijos, este es firmado y almacenado, esto provoca que se guarden grandes volúmenes de información y el gasto de recursos, además que este gran volumen dificulta la trazabilidad de operaciones y por tanto no contempla un historial de los controles realizados. Cuando se detectan faltantes resulta engorroso conocer donde se encuentra el AFT o si fue detectado como sobrante en otra área. 10 1.4.2 Control contable de AFT En el control contable el usuario refleja este control en el sistema contable, y luego se obtiene el Modelo SC-1-07, este proceso se realiza de forma manual por lo que está sujeto a errores humanos, debido a que el usuario debe insertar los AFT que se encontraron en el área y para ello se guía de un documento que fue previamente marcado por una persona, él debe confiar plenamente en lo que se evidencia ahí, y si hay errores esto desencadena errores en la contabilidad y pueden iniciarse expedientes para iniciar las investigaciones. En el SGC una vez se introduzca el último control realizado a un área no es posible revisar los anteriores, por lo que no se tiene un historial de las operaciones y chequeos realizados a un área determinada. También, mensualmente es posible realizar hasta un 10 % del control de AFT, por tanto, si se revisan siempre los mismos, no hay forma de conocer si hay algún faltante hasta tanto no se hace el conteo del 100 % anual. 1.4.3 Solicitud de Movimiento de AFT El Modelo de Solicitud de Movimiento de AFT, es llenado manualmente, lo cual significaría gastos de recursos. Además, está propenso a errores en los movimientos contables, esto afectaría grandemente a la contabilidad de la entidad. 1.5 Procesos objeto de informatización. Después de analizar las principales deficiencias detectadas en el análisis crítico de la ejecución actual de los procesos, se pretende optimizar los mismos, haciéndolos más ágiles y eficientes, sin violar las leyes que rige el Control de Interno, dictada por el Ministerio de Finanzas y Precios del país. Como parte de este análisis se pretende informatizar: • Control físico de AFT. 11 • Solicitud de Movimiento de AFT 1.6 Sistemas automatizados existentes vinculados al campo de acción. Durante la investigación en la bibliografía consultada se realiza un estudio de los sistemas informáticos existes para el control físico de AFT, entre están los siguientes: 1.6.1 Sistemas Internacionales. Software de activos fijos de Giitic. Colombia. [7] Software para administrar los Activos Fijos. Cuenta con las siguientes opciones: Consolidar la información relevante de los AFT y controlar de manera eficiente la trazabilidad y ciclo de vida de los activos. Permite identificar el responsable del activo, visualizar historial de asignación y generar códigos de barras para q sean impresos en diferentes formatos. Genera informes de los componentes y depreciación, consultar el historial de movimientos de AFT y llevar una trazabilidad. Desde el dispositivo móvil, se pueden gestionar los AFT, escanear los códigos de barras y tomar fotografías del estado de los bienes. Programación de mantenimientos que se le deban hacer a los medios. Entre otras funciones. Precio entre los 51-88 USD (3 a 10 personas). Sistema de Control de Activos Fijos de la Empresa SMS CONSULTING S.A. SMSCON. [8] Escanea los códigos de barra de los productos con la cámara del móvil y detalla la cantidad que hay de cada uno. Genera actas de inventario, entrega y recepción para que todo tipo de movimiento sea documentado. 12 mejores softwares para el control de AFT e inventarios según empresa mexicana. [9] Software Beneficios 12 Optimización del ciclo de vida de los activos Mejora de la eficiencia operativa Gestión de inventario y repuestos Análisis y reportes avanzados IMB máximo Integración con otros sistemas empresariales Gestión de Riesgos y Confiabilidad de Activos Apoyo a Estrategias de Sostenibilidad y Responsabilidad Social Empresarial (RSE) SAP Asset Análisis y Reportes Avanzados Management Mejora de la Eficiencia Planificación de Mantenimiento Proactiva Rastreo Preciso de Activos Integración con Otros Sistemas Empresariales Gestión de Flotas y Activos Móviles Oracle Asset Tracking Mejora de la Productividad del Personal Depreciación financiera Cambios masivos mediante Qr Funcionamiento desde cualquier dispositivo con cámara Software de activo fijo Seguridad máxima SAAF Control de resguardos Cargas y actualizaciones masivas Rastreo de Activos Gestión de Reservas y Alquiler de Activos Automatización de Procesos Acceso Móvil y en Línea EZOfficeInventory Reportes Avanzados Gestión de Contratos y Garantías Automatización Gestión de Riesgos y Confiabilidad de Activos Acceso Móvil y en Línea Asset Panda Optimización del Uso de Activos 13 Programación y Seguimiento de Mantenimiento Rastreo de Activos Generación de Informes y Análisis UpKeep Automatización de algunos procesos Integración con Otros Sistemas Empresariales Acceso Móvil y en Línea Análisis Rastreo de cada uno de los activos Fiix Identificación y mitigación de riesgos Acceso desde un móvil o en línea Gestión de Proveedores y Contratos Cumplimiento Normativo y Seguridad Reportes específicos Accruent Rastreo de Activos Acceso en la Nube y Móvil Adaptabilidad y Personalización Gestión de Riesgos y Conformidad Gestión de Inventario y Almacén Microsoft Dynamics 365 Gestión de Cadenas de Suministro Planificación de Mantenimiento Proactiva Gestión de Inventarios Análisis de tus activos Integración con otros sistemas empresariales AssetWare Acceso doble Rastreo preciso de activos Seguimiento de Auditorías y Auditorías de Activos Acceso Móvil y en Línea Gestión de Inventarios Regulaciones y estándares de Wasp AssetCloud seguridad 14 Como resumen y consultando las páginas oficiales de estos sistemas, se evidenció que son de pago, algunos dan una licencia de prueba, pero posteriormente hay que pagar. Además, solo hacen una gestión de los mismos y controlan de forma contable, pero no realizan un control físico del AFT. Los sistemas internacionales no se ajustan a las normativas de control interno de Cuba. 1.6.2 Sistemas nacionales. En la bibliografía consultada no se encontraron sistemas nacionales con las características necesarias para dar solución a la problemática planteada. 1.7 Tendencias y tecnologías actuales. Actualmente y con el desarrollo cada vez más incrementado de las tecnologías para el desarrollo de sistemas informáticos se hace muy complejo encontrar la más adecuada y esto va relacionado además a que encontramos ventajas y desventajas. Por tal motivo se debe seleccionar las tecnologías adecuadas a las necesidades para una mejor solución. 1.7.1 Metodología de Desarrollo de software 1.7.1.1 Metodologías ágiles. Scrum Scrum es una metodología ágil de desarrollo de proyectos. Aunque surgió como modelo para el desarrollo de productos tecnológicos, también se emplea en entornos que trabajan con requisitos inestables y que requieren rapidez y flexibilidad; situaciones frecuentes en el desarrollo de determinados sistemas de software. Actualmente es el marco de trabajo ágil más popular en la comunidad de desarrolladores que han abrazado los principios del Manifiesto Ágil. Scrum emplea un enfoque iterativo e incremental para optimizar la predictibilidad y el control del riesgo [10]. Esta teoría se basa en la transparencia, inspección y adaptación. La transparencia, garantiza la visibilidad en el proceso de aquellos sucesos que pueden afectar el resultado; la inspección, que ayuda a detectar variaciones indeseables en el proceso; y la adaptación, que realiza los ajustes 15 pertinentes para minimizar el impacto de las mismas. Los equipos Scrum son autogestionados esto permite elegir la forma de trabajo mejor y no dependen de lineamientos de personas que no pertenecen al equipo o no conocen del contexto; son multifuncionales porque los integrantes del equipo tienen todos los conocimientos necesarios para llevar a cabo las tareas; y trabajan en iteraciones, lo que permite entregar en cada iteración parte del producto y se crea nuevas funcionalidades o modifica las que el dueño del producto requiera [11]. La selección de la metodología ágil se fundamenta en la obtención de respuestas rápidas y eficaces ante los cambios, de manera iterativa y breve. Este enfoque busca flexibilizar el desarrollo del proyecto para agregar valor desde el inicio, mediante una evolución continua del producto, con un fuerte énfasis en la satisfacción del usuario. Por esta razón, se llevó a cabo un análisis de metodologías ágiles que cumplen con este criterio, tales como Scrum, XP (eXtreme Programming), Dynamic Systems Development Method (DSDM) y Kanban. A continuación, se muestra una tabla comparativa de las principales metodologías agiles [12][13]: 16 Metodologías Descripción SCRUM Es un proceso marco de trabajo o Fases framework usado en equipos que trabajan en • Planeación del Sprint. • proyectos complejos Características • • En Scrum se trabaja con roles. • El equipo tiene la autoridad a que la entrega de valor es Se realizan Sprint regulares de muy frecuente. Refinamiento del • Retrospectiva Planificación. trabajo el • Diseño. aprendizaje continuo y el • Codificación. • Pruebas. • • duración limitada. • • buen clima de trabajo • requisitos. Se centra en potenciar el equipo, usar el producto rápidamente. Scrum. del Sprint. en El cliente puede comenzar a necesaria para cumplir con los Sprint. XP • Reunión del equipo Backlog Revisión del • Ventajas • • Los equipos suelen • Menos probabilidad de errores, porque se muestran ser pequeños de 5 a 9 personas al cada uno frecuentemente. cliente los avances El equipo de trabajo es el • Programación organizada. principal factor de éxito del • Errores mínimos proyecto. • Solución de errores lógicos Funciona por encima de la buena documentación. Lanzamiento Se agiliza el proceso, debido del equipo. • Forma de trabajo flexible. Comunicación entre el cliente y el equipo. Dynamic Modelo de procesos para Systems el desarrollo de sistemas Development de software provee un • Estudio de la viabilidad • Estudio de la • Panificación flexible y abierta. • Sujeta a cambios • Trabajo en equipo. • Calidad y rapidez • Poder tomar decisiones si algo • Disminución no está bien para su máxima del costo proyecto y/o producto. 17 de Method framework (DSDM) desarrollo. para el empresa. • optimización. Iteración del modelo • Optimización de ideas. • Desarrollo iterativo. • No se establece un periodo • Rendimiento. determinado. • Colaboración • Trabajo en equipo. • Flexibilidad. funcional. • Diseño e iteración de la estructura. KANBAN Nació para aplicarse a los • Implementación. • Definición del flujo de procesos de fabricación y con el tiempo se convirtió en territorio trabajo del proyecto. • reclamado Visualización de las • fases del ciclo de por los desarrolladores de producción. software. Priorización Reduce desarrollo • los tiempos de Calidad. del trabajo • Control de flujo. Tabla 1 Comparación entre metodologías ágiles 18 1.7.2 Lenguajes de programación 1.7.2.1 Dart Dart, es un lenguaje de programación que surgió en 2011, de código abierto y desarrollado por Google, con el objetivo de permitir a los desarrolladores utilizar un lenguaje orientado a objetos y con análisis estático de tipo. Desde la primera versión estable en 2011, Dart ha cambiado bastante, tanto en el lenguaje en sí como en sus objetivos principales. Con la versión 2.0, el sistema de tipo de Dart pasó de opcional a estático, y desde su llegada, Flutter se ha convertido en el principal objetivo del lenguaje. A diferencia de muchos lenguajes, Dart se diseñó con el objetivo de hacer el proceso de desarrollo lo más cómodo y rápido posible para los desarrolladores. Por eso, viene con un conjunto bastante extenso de herramientas integrado, como su propio gestor de paquetes, varios compiladores/transpiladores, un analizador y formateador. Además, la máquina virtual de Dart y la compilación Just-in-Time hacen que los cambios realizados en el código se puedan ejecutar inmediatamente. Una vez en producción, el código se puede compilar en lenguaje nativo, por lo que no es necesario un entorno especial para ejecutar. En caso de que se haga desarrollo web, Dart se transpila a JavaScript. En cuanto a la sintaxis, la de Dart es muy similar a lenguajes como JavaScript, Java y C ++. Además, Dart consta de un gran apoyo para la asincronía, y trabajar con generadores e iterables es extremadamente sencillo [14]. Funciones Dart Facilidad de uso Dart tiene una sintaxis y un JavaScript es fácil de usar, estilo JavaScript de codificación tiene varios marcos y similares a los de Java, por bibliotecas disponibles en lo que los desarrolladores línea permite los y a 19 con experiencia en OOPS desarrolladores reutilizar el pueden utilizarlo fácilmente código existente para crear aplicaciones más rápido. Productividad Dart y Flutter tienen una Es más fácil de aprender comunidad más pequeña, para así como los nuevos varias desarrolladores porque es comunidades en línea. A un lenguaje de programación pesar de la documentación, excelente dinámico, liviano muchos simple. desarrolladores y más Aumenta la productividad de los experimentados todavía no desarrolladores saben cómo entender Dart. al proporcionar varios marcos de JavaScript y miles de paquetes web fácilmente disponibles. Tipo de seguridad Es más seguro para los No es un tipos que JavaScript porque escritura permite la prototipos creación tanto lenguaje segura de porque de admite tanto la escritura pato flexibles como la dinámica. como sólidos. Curva aprendizaje de El lenguaje de programación Para Dart puede desafío resultar los principiantes, un JavaScript no es un lenguaje para los fácil de aprender, pero principiantes porque no es conocer los fundamentos de un lenguaje de la programación hace que programación muy utilizado. JavaScript sea sencillo. Hay muy pocos cursos o libros de programación de Dart disponibles en línea. Velocidad Dart puede compilarse tanto JavaScript es un lenguaje JIT como AOT, lo que interpretado, por lo que 20 permite crear aplicaciones puede parecer más ligero y de diferentes formas. Dart rápido que otros lenguajes es mucho más rápido que de programación. Es más JavaScript. rápido que Java y otros lenguajes compilados. Web y móvil Dart podría utilizarse para JavaScript se puede utilizar desarrollar aplicaciones web en y móviles. el desarrollo de aplicaciones web y móviles con varios marcos. Tabla 2 Comparación entre Dart y JavaScript [15] 1.7.3 Framework 1.7.3.1 Flutter Flutter es un marco de código abierto desarrollado y compatible con Google. Los desarrolladores de front-end y pila completa utilizan Flutter para crear una interfaz de usuario (IU) de aplicación para varias plataformas con un único código base. Cuando Flutter se lanzó, en 2018, era compatible principalmente con el desarrollo de aplicaciones móviles. Ahora, Flutter es compatible con el desarrollo de aplicaciones en seis plataformas: iOS, Android, web, Windows, MacOS y Linux. Las ventajas de Flutter. [16][17] Estas son algunas de las formas en las que Flutter destaca como marco de desarrollo multiplataforma: • Rendimiento casi nativo. Flutter utiliza el lenguaje de programación Dart y se compila en código máquina. Los dispositivos host entienden este código, lo que garantiza un rendimiento rápido y eficaz. 21 • Rendimiento rápido, consistente y personalizable. En lugar de depender de herramientas de renderización específicas de la plataforma, Flutter utiliza la biblioteca gráfica de código abierto Skia de Google para renderizar la interfaz de usuario. Esto proporciona a los usuarios visuales consistentes sin importar la plataforma que utilicen para acceder a una aplicación. • Herramientas para desarrolladores. El objetivo de Google es que Flutter sea fácil de usar. Con herramientas como la recarga en caliente, los desarrolladores pueden previsualizar el aspecto de los cambios de código sin perder el estado. Otras herramientas, como el inspector de widgets, facilitan la visualización y la resolución de problemas con los diseños de la interfaz de usuario. • Desarrollo multiplataforma: Con un único código base, los desarrolladores pueden crear aplicaciones que se ejecutan sin problemas en dispositivos Android y iOS. Permitiendo que no haya que desarrollar aplicaciones separadas desde cero. • Recarga en caliente: Los desarrolladores pueden realizar cambios en su código y ver instantáneamente los resultados en tiempo real sin reiniciar toda la aplicación. Esto no solo acelera el proceso de desarrollo, también promueve un flujo de trabajo de desarrollo más eficiente y ágil. • Diseños impresionantes de UI/UX: Flutter permite a los desarrolladores crear interfaces de usuario visualmente atractivas. Con una amplia colección de widgets personalizables, los desarrolladores tienen la flexibilidad de construir diseños hermosos y perfectos al píxel. Además, admite un conjunto completo de APIs de movimiento, lo que facilita la incorporación de animaciones fluidas y transiciones intrincadas en la aplicación. Desventajas de Flutter [17] 22 1. Bibliotecas y documentación limitada: Cuenta con una comunidad relativamente pequeña a pesar de su rápido crecimiento. Esto dificulta que a la hora de buscar funciones o soluciones específicas. 2. Tamaño de aplicación grande: Las aplicaciones de Flutter compiladas pueden tener un tamaño de archivo mayor en comparación con sus contrapartes nativas. Esto se debe principalmente a la inclusión del motor de Flutter, que se convierte en parte del paquete de la aplicación. 3. Curva de aprendizaje más pronunciada: La curva de aprendizaje puede ser más pronunciada para los desarrolladores que son nuevos en Dart, lo que resulta en un proceso de incorporación más largo. 4. APIs nativas limitadas: Flutter depende de su propio conjunto de widgets y APIs específicos de la plataforma, lo que significa que puede que no proporcione el mismo nivel de integración con todas las funcionalidades nativas. En algunos casos, los desarrolladores pueden enfrentar limitaciones al acceder a funcionalidades o APIs de dispositivos específicos que aún no son compatibles con Flutter. 23 Figura 1 Comparación entre Flutter, React Native y Ionic [18] 24 Figura 2 Comparación entre React Native, Flutter y Xamarin. [19] 25 1.7.4 Lenguaje de programación del lado del servidor 1.7.4.1 JavaScript JavaScript es un lenguaje de programación que los desarrolladores utilizan para hacer páginas web interactivas. Desde actualizar fuentes de redes sociales a mostrar animaciones y mapas interactivos, las funciones de JavaScript pueden mejorar la experiencia del usuario de un sitio web. Como lenguaje de scripting del lado del servidor, se trata de una de las principales tecnologías de la World Wide Web. Una función de JavaScript del lado del servidor puede acceder a la base de datos, realizar diferentes operaciones lógicas y responder a varios eventos desencadenados por el sistema operativo del servidor. La ventaja principal del scripting del lado del servidor es que admite un alto nivel de personalización de la respuesta del sitio web según sus requisitos, sus derechos de acceso y las solicitudes de información provenientes del sitio web [20] Figura 3 Esquema de arquitectura Node.js Ventajas de JavaScript [20]. 26 1. Velocidad: JavaScript tiende a ser muy rápido porque a menudo se ejecuta inmediatamente en el navegador. Entonces mientras no requiera recursos externos, JavaScript no tiene permitido retrasarse por llamados del servidor backend. 2. Simplicidad: La sintaxis de JavaScript está inspirada por Java y es relativamente sencillo de aprender comparado a otros lenguajes de programación populares como C++. 3. Popularidad: JavaScript esta por todas partes de la web, y con la llegada de Node.js, se ha incrementado su uso en backend. Hay incontables recursos para aprender JavaScript. Tanto StackOverflow como GitHub muestran un creciente número de proyectos que usan JavaScript, y la popularidad que ha alcanzado en los recientes años se espera que siga creciendo. 4. Compatibilidad: A diferencia de PHP u otros lenguajes scripting, JavaScript puede ser usado en cualquier página web. JavaScript puede ser usado en diferentes tipos de aplicaciones gracias al soporte en otros lenguajes como Pearl y PHP. 5. Server Load: JavaScript es client-side, entonces esto reduce la demanda de servidores en general, y las aplicaciones sencillas puede que no necesiten el servidor del todo. 6. Versatilidad: Hay muchos métodos para usar JavaScript mediante servidores Node.js. Si tú estas en bootstrap Node.js con Express, puedes usar un documento database como MongoDB, y usar JavaScript en el frontend para clientes. Es posible desarrollar una aplicación completa de JavaScript desde principio a fin solo usando JavaScript. 1.7.4.1.1 Node js Nodejs es un entorno de tiempo de ejecución de código abierto y multiplataforma que permite ejecutar código JavaScript fuera de un navegador web. Es decir, Nodejs permite ejecutar JavaScript en el servidor. 27 Además, es especialmente adecuado para aplicaciones web en tiempo real y de alto rendimiento, como servidores de aplicaciones, API REST, servicios de chat, juegos en línea, entre otros. Ventajas de Nodejs • Eficiencia y escalabilidad: Utiliza un modelo de operaciones de entrada/salida sin bloqueo y basado en eventos, lo que permite manejar una alta concurrencia y un gran número de solicitudes simultáneas de manera eficiente. Esto lo hace ideal para aplicaciones web en tiempo real y de alto rendimiento. • Amplio ecosistema de módulos: Cuenta con un gran repositorio de paquetes y módulos disponibles a través de npm. Esto facilita la reutilización de código y acelera el desarrollo de aplicaciones, ya que no es necesario crear todo desde cero. • Comunidad activa: Hay una gran cantidad de recursos, documentación y soporte disponibles en línea. Además, hay una amplia variedad de herramientas y frameworks construidos sobre Node.js que pueden facilitar el desarrollo de aplicaciones web. [21] 1.7.4.1.2 Comparación con Python 28 Figura 4 Comparación de Node.js y Python 1.7.4.1.3 Comparación con PHP 29 Figura 5 Comparación entre Node.js con PHP [22] 1.7.5 Tipo de aplicación 1.7.5.1 Aplicación móvil Una aplicación móvil, conocida también como app móvil, se define como un tipo de software diseñado para operar en dispositivos móviles, tales como teléfonos inteligentes o tabletas. Aunque generalmente cuentan con funcionalidades limitadas, estas aplicaciones ofrecen a los usuarios servicios y experiencias de alta calidad. A diferencia de las aplicaciones diseñadas para computadoras de escritorio, las aplicaciones móviles se distancian de los sistemas integrados. Cada aplicación móvil proporciona una funcionalidad específica y aislada. En sus inicios, debido a las limitaciones de hardware de los primeros dispositivos móviles, estas aplicaciones evitaban la multifuncionalidad. Sin embargo, con el avance tecnológico, los dispositivos móviles actuales son mucho más sofisticados y las aplicaciones móviles continúan siendo funcionales. En la actualidad, las empresas consideran incluir una aplicación móvil entre sus opciones de atención al cliente, ya que son accesibles para la mayoría de los 30 usuarios, quienes suelen poseer un teléfono inteligente capaz de instalar aplicaciones que les faciliten acceder a diversos servicios. Estas aplicaciones móviles se centran en funciones específicas, maximizando su utilidad. Además, su alto nivel de personalización permite a los usuarios adaptarse fácilmente e incorporarlas en sus rutinas diarias. Otra ventaja importante es su disponibilidad constante, ya que los usuarios pueden acceder a los servicios o consultar información a través de sus teléfonos en cualquier momento del día, incluso cuando la empresa no esté abierta al público. [23] 1.7.5.2 Sistema Web Las aplicaciones web son aplicaciones de software que se comportan de manera similar a las aplicaciones móviles nativas y funcionan en dispositivos móviles. Sin embargo, existen diferencias significativas entre las aplicaciones nativas y las aplicaciones web. Para empezar, las aplicaciones web utilizan navegadores para ejecutarse y, por lo general, están escritas en CSS, HTML5 o JavaScript. Dichas aplicaciones redirigen al usuario a la URL y luego les ofrecen la opción de instalar la aplicación. Simplemente crean un marcador en su página. Por eso requieren una memoria mínima del dispositivo. Dado que todas las bases de datos personales se guardarán en el servidor, los usuarios solo pueden usar la aplicación si tienen una conexión a Internet. Este es el principal inconveniente de las aplicaciones web: siempre requieren una buena conexión a Internet. De lo contrario, corre el riesgo de ofrecer una Experiencia de Usuario (Ux) insatisfactoria. Además, los desarrolladores no tienen tantas API que funcionen, a excepción de las funciones más populares, como la geolocalización. El rendimiento también estará vinculado al trabajo del navegador y la conexión de red.[24] 31 1.7.6 Herramienta de planificación de proyectos ágiles 1.7.6.1 Kanboard Kanboard es un software de gestión de proyectos gratuito y de código abierto. Es una aplicación web sencilla que no cuenta con una interfaz elegante, se centra en la simplicidad y minimalismo. Cuenta con una visión general y clara de sus tareas por lo que de manera fácil se puede conocer el estado actual de un proyecto, es fácil de entender y no se requiere capacitación. Admite la gestión de las listas de tareas e historias de usuario, crear y gestionar iteraciones y obtener gráficos de avance. Además, permite añadir miembros y administradores del proyecto con más privilegios. Tiene una búsqueda y filtrado de tareas y usuarios. [25] Herramientas IceScrum Características Basado en Scrum y Kanban. Propone opciones de operación, consulta y estimación de historias de usuario. Permite añadir historias de usuario a la pila de producto, dividir el tiempo en Sprints y mover estas historias de la pila de producto a cada uno de los Sprint. Posee la técnica de Planning Poker para la estimación y paneles virtuales.[26] ScrumDo Es capaz de respaldar cualquier proceso de gestión, desde las metodologías tradicionales de gestión de proyectos hasta los marcos ágiles modernos como Scrum, Kanban y otros. Se enfoca principalmente en ayudar a los equipos y organizaciones en la transición de estos enfoques a aquellos que enfatizan marcos más empíricos.[27] 32 Tabla 3 Herramientas para la gestión de proyectos con metodologías ágiles 1.7.1 Sistemas Gestores de Bases de Datos Un sistema de gestión de bases de datos se encarga de gestionar los datos, el motor que permite a los usuarios acceder a los datos dentro de la base de datos, y lo que se conoce como el esquema de la base de datos, la estructura organizacional de una base de datos. En su conjunto, un SGBD ofrece seguridad y garantiza la integridad de los datos, pero algunos sistemas incluso se utilizan para ofrecer reversiones automatizadas y actividades de reinicio, registro y auditoría dentro de una base de datos. [28] 1.7.1.1 MySQL MySQL es un sistema gestor de bases de datos (SGBD, DBMS por sus siglas en inglés) muy conocido y ampliamente usado por su simplicidad y notable rendimiento. Aunque carece de algunas características avanzadas disponibles en otros SGBD del mercado, es una opción atractiva tanto para aplicaciones comerciales, como de entretenimiento precisamente por su facilidad de uso y tiempo reducido de puesta en marcha. Esto y su libre distribución en internet bajo licencia GPL le otorgan como beneficios adicionales contar con un alto grado de estabilidad y un rápido desarrollo. MySQL es compatible con Windows, Mac OS X, Linux, BSD, UNIX, z / OS, Symbian, AmigaOS. Sin embargo, las diferencias con cualquier otra plataforma son prácticamente nulas. [29] MySQL es uno de los sistemas de gestión de bases de datos relacionales más populares y ampliamente utilizados en el mundo del desarrollo web. Desde su lanzamiento en 1995, ha demostrado ser una herramienta confiable y poderosa para almacenar y administrar datos. Sin embargo, como cualquier tecnología, MySQL tiene sus propias ventajas y desventajas. Ventajas de MySQL 33 • Facilidad de uso y aprendizaje: Conocido por su facilidad de uso y aprendizaje, su sintaxis simple y su amplia documentación. • Compatibilidad multiplataforma: Compatible con una amplia variedad de plataformas, incluyendo Windows, Linux y macOS. Esto permite a los desarrolladores utilizar MySQL en diferentes entornos de desarrollo según sus necesidades y preferencias. • Escalabilidad y rendimiento: Conocido por su capacidad de escalar y manejar grandes volúmenes de datos sin comprometer el rendimiento. Su arquitectura optimizada y su capacidad para utilizar múltiples hilos de ejecución permiten un procesamiento eficiente de consultas y transacciones, lo que lo hace adecuado para aplicaciones de alto tráfico. • Amplia comunidad y soporte: Cuenta con una gran comunidad de usuarios y desarrolladores en todo el mundo. • Costo y licencia: MySQL es una base de datos de código abierto, lo que significa que es de uso gratuito y está disponible bajo la Licencia Pública General de GNU (GPL). Desventajas de MySQL • Limitaciones de almacenamiento y tamaño de base de datos: Tiene algunas limitaciones en cuanto al tamaño máximo de base de datos y almacenamiento. Aunque estas limitaciones son lo suficientemente altas para la mayoría de las aplicaciones. • Funcionalidades avanzadas limitadas: A pesar de ser una opción popular, MySQL tiene algunas limitaciones en términos de funcionalidades avanzadas. Algunas características más sofisticadas y complejas presentes en otros sistemas de gestión de bases de datos pueden no estar disponibles o tener un soporte limitado en MySQL. • Replicación y alta disponibilidad: Aunque ofrece capacidades de replicación y alta disponibilidad, configurar y administrar estos sistemas puede ser complejo y requerir un conocimiento profundo de la tecnología. 34 Esto puede ser un desafío para los desarrolladores que no están familiarizados con estos conceptos. • Optimización de consultas: La optimización de consultas puede ser un desafío para los desarrolladores menos experimentados. Aunque MySQL ofrece herramientas y técnicas para mejorar el rendimiento de las consultas, es necesario comprender bien la estructura de la base de datos y tener conocimientos sólidos sobre el motor de almacenamiento utilizado.[30] A continuación, una tabla comparativa de los SGBD más populares: Características MySQL PostgreSQL SQL Server Licencia Fuente abierta. Tiene Código abierto La versiones comerciales tiene con gratuita funcionalidades ampliadas disponibles. Base de una Datos edición para desarrolladores pequeñas y empresas, pero solo soporta un procesador y 1 GB de memoria. Su precio es de $931 Lenguaje Cambios Escrito en C++ en datos los Una Escrito en C solución actualizar es Los los desarrolladores La base de datos tiene datos insertan una nueva tres motores que son automáticamente al columna y una fila en responsables para la almacenamiento de orden para actualizar actualización de reversión. Desfragmentación Escrito en C y C++ Ofrece enfoques la base de datos. varios Permite las filas. escanear Ofrece un eficiente para la todas las tablas de recolector de basura desfragmentación: una capa de datos que no genera mas de durante la copia de para encontrar seguridad, la creación vacías y filas 15-20 % de gastos eliminar generales. de índices y con un elementos comando OPTIMIZE innecesarios. Table. 35 Consultas a datos Brinda un grupo de Ambas bases de Usa un grupo de búfer búfer tienen una como escalable: los datos desarrollares no memoria separada y puede puede configurar el ejecuta tamaño del según la su caché proceso. carga de limitarse o propio incrementarse de acuerdo las a de procesamiento Ofrece Los funcionalidades dividen limitadas eso necesidades trabajo. Tablas temporales MySQL, para desarrolladores Los las desarrolladores tablas pueden crear tablas las temporales en locales temporales locales y tablas temporales (los o desarrolladores globales, no configuran pueden establecer flexibles. variables o las globales, así como variables supervisar y crear variables. crear plantillas globales) Tabla 4 Comparativa entre SGBD. [31] 1.7.2 Sistema para el control de versiones. Los sistemas de control de versiones son un tipo de software que ayuda a hacer un seguimiento de los cambios realizados en el código a lo largo del tiempo. A medida que un desarrollador edita el código, el sistema de control de versiones toma una instantánea de los archivos. Después, guarda esa instantánea de forma permanente para que se pueda recuperar más adelante si es necesario. Estos sistemas facilitan la administración de las distintas versiones de cada producto desarrollado, así como las posibles especializaciones realizadas. Ejemplos de este tipo de herramientas son entre otros: CVS, Subversion, SourceSafe, ClearCase, Darcs, Bazaar, Plastic SCM, Git, SCCS, Mercurial, Perforce, Fossil SCM, Team Foundation Server.[32] 1.7.2.1 GitHub. GitHub es una plataforma de alojamiento, propiedad de Microsoft, que ofrece a los desarrolladores la posibilidad de crear repositorios de código y guardarlos en 36 la nube de forma segura, usando un sistema de control de versiones llamado Git. Facilita la organización de proyectos y permite la colaboración de varios desarrolladores en tiempo real. Es decir, nos permite centralizar el contenido del repositorio para poder colaborar con los otros miembros de nuestra organización.[33] Ventajas de GitHub • Alojamiento de proyectos en repositorios de forma gratuita. • Personalización del perfil en la plataforma. • Los repositorios son públicos por defecto. Sin embargo, GitHub te permite también alojar tus proyectos de forma privada. • Puedes crear y compartir páginas web estáticas con GitHub Pages. • Facilita compartir tus proyectos de una forma mucho más fácil y crear un portafolio. • Te permite colaborar para mejorar los proyectos de otros y a otros mejorar o aportar a los tuyos. • Ayuda reducir significativamente los errores humanos y escribir tu código más rápido con GitHub Copilot. A continuación, se muestra una tabla comparativa de GitHub y GitLab. 37 Figura 6 Comparación entre GitHub y GitLab. 1.8 Análisis crítico de las fuentes y bibliografías utilizadas (Estado del arte). Para dar cumplimiento a los objetivos propuestos en el trabajo, fue necesario la consulta y búsqueda de información de diversas fuentes bibliográficas. Se consultaron principalmente sitios oficiales de empresas reconocidas en la industria de la informática y tecnologías, revistas y libros principalmente sobre las metodologías de desarrollo de software, además de tesis de grados. 38 1.9 Conclusiones. Para el cumplimiento del objetivo general de este capítulo, inicialmente se describieron los procesos involucrados en el negocio, así como el análisis crítico de la ejecución de los mismos, tomando como caso de estudio a la Empresa SITRANS, se realizó un análisis crítico de la ejecución de los procesos. Los sistemas internacionales afines con el campo de acción estudiados no ofrecen la solución a lo que se requiere, por lo que se manifestó la necesidad de proponer una solución. La cual consta de un sistema conformado por dos aplicaciones. La primera será una aplicación móvil para realizar el control físico de AFT y la segunda aplicación, es un sistema web, para la gestión de los mismos. Ambas son herramientas con el objetivo de informatizar el proceso del control físico a los activos existente. Con el estudio de las metodologías se pudo analizar las ventajas y desventajas de cada una, las metodologías tradicionales están basadas en el control de procesos, determinando con gran exigencia las actividades involucradas, los artefactos a desarrollar y las herramientas a emplear mientras que las metodologías ágiles se centran en la entrega rápida y frecuente de software, concentración en el código fuente y la comunicación continua con el cliente. Por lo que la elección fue el uso de una metodología ágil con el objetivo de obtener un software funcional de calidad en el menor tiempo posible. Por tanto, la selección fue SCRUM como metodología en el desarrollo del software debido a su interacción continua con el cliente y su agilidad en cuanto al desarrollo. Para el desarrollo de la solución propuesta se decide utilizar las siguientes tecnologías, Flutter como framework para el lado del cliente, dada la necesidad de hacer una aplicación móvil y un sistema web, con el propósito de aprovechar la ventaja de ser un lenguaje multiplataforma y fácil de comprender. Como lenguaje de parte del servidor y SGBD, se eligió a Node.js y MySQL respectivamente dado su alto rendimiento y compatibilidad. 39 Capítulo 2 Especificaciones de funcionalidad. 2.1 Introducción. En este capítulo, se aborda la obtención de los requisitos de implementación del sistema, los cuales se basan en las necesidades de los interesados. El objetivo principal es definir las funcionalidades a desarrollar a través de las historias de usuarios, las cuales describen las exigencias desde la perspectiva del cliente. Este enfoque se alinea con la metodología ágil seleccionada, Scrum, asegurando así un desarrollo centrado en las necesidades del usuario y una implementación eficaz del proyecto. 2.2 Definición de Interesados. Durante el proceso de desarrollo, fue esencial interactuar con todas las partes involucradas en el proceso, tal como se definieron en el capítulo anterior. Esta interacción fue crucial para recopilar la información necesaria y cumplir con los objetivos establecidos. A continuación, se describen los mismos con sus responsabilidades durante el proceso. INTERESADO DESCRIPCIÓN • Encargado realizar el control de AFT, según se planifique por la entidad o sea necesario. • Una vez concluido el control físico de AFT, debe firmar el Modelo. Responsable de área • Controlar la existencia y cuidados de los AFT que se encuentran en el área. • Firmar el modelo SC-1-07 Control de Activos Fijos. Responsable económico del control de AFT • Notifica al Responsable de área el día del control físico de AFT. 40 • Imprime el modelo SC-1-09 Hoja de Inventario Físico de Activos Fijos Tangibles. • Controlar la existencia y cuidado de los AFT de la Entidad. • En caso de faltantes o sobrantes, iniciar los expedientes de investigación pertinentes. • Realizar el conteo de los AFT, en caso de cambio del responsable de área. • Realizar y tener actualizados los documentos de Responsabilidad Material. • Plasmar en el Sistema Contable el control físico realizado en determinada área. • Imprimir y firmar el modelo SC-1-07 Control de Activos Fijos. • Elabora el Plan de Chequeo Físico anual de los activos fijos tangibles. • Director Económico Controlar que se hagan los controles físicos de la Entidad. • Firmar el modelo SC-1-07 Control de Activos Fijos. • Director General Encargado de dirigir y controlar los procesos de negocio en la entidad. Tabla 5 Definición de interesados 2.3 Definición de Temas. 41 TEMA DESCRIPCIÓN • Seguridad Relacionado con la gestión de usuarios y la trazabilidad. • Nomencladores Relacionado con la información necesaria gestión para de la facilitar el trabajo de los usuarios del sistema. • Funcionalidades de comunicación mediante las API. • Comunicación Relacionado a la conexión del sistema con el Sistema de Gestión Contable de la Entidad. Notificaciones, reportes • y alertas Relacionado a los reportes que generará el sistema para la toma de decisiones. • Control de AFT Relacionado con el control que se realiza a las áreas. Tabla 6 Definición de temas 2.4 Pila de producto. A continuación, se mostrará la pila de producto por temas, esta está conformada por las historias de usuarios definidas por el dueño del producto. La pila de producto sirve de guía para la planificación de los Sprints. 2.4.1 Seguridad Historia Como Necesito Para Estimació n Autenticación en el Director Autenticar sistema usuarios Controlar General en el sistema. acceso el 5 en el sistema. 42 Gestión de usuarios Director Gestionar general usuarios los Controlar en la 13 el creación, sistema. modificación y eliminado de usuarios. Asignar rol a un Director Otorgar roles a los Garantizar los 5 usuario el niveles de accesos al General usuarios en sistema. sistema Cambio de Director Actualizar contraseña a General contraseña usuario. la Poder acceder al 5 de un sistema usuario. Deshabilitar usuario Director Deshabilitar un Inhabilitar el 5 General usuario en el sistema. acceso al sistema de un usuario. Ver detalles de Director Obtener detalles del Mostrar usuario. detalles 8 General usuario en el sistema. del usuario de un cliente Exportar en un Director Exportar la Guardar la documento PDF la General información de información de información de los usuario en un usuario en un usuarios documento PDF documento PDF Registro de usuario. Director El usuario inserte sus Controlar General datos en el sistema. las tareas y roles del usuario Habilitar usuario Director Habilitar el usuario en Activar un usuario General el sistema. Filtrar usuario inhabilitado Director Filtrar usuarios en el Realizar una General sistema. más búsqueda 43 precisa de los usuarios. Listar salvas de la Director Obtener la relación de Listar salvas de Base de datos 13 General las salvas de la base la base de datos de datos Crear salva de la Director Realizar salva de la Obtener base de datos General base de datos una 13 salva externa de la información Restaurar salva de Director Restaurar salva de la Restaurar la 13 la base de datos del General base de datos información sistema Eliminar salva de la Director Eliminar salva de la Eliminar salva de 13 base de datos General base de datos la lista de la salvas base de datos disponibles Visualizar trazas del Director Obtener sistema trazas General sistema del Visualizar trazas 13 del sistema Tabla 7 Historia de usuario Tema Seguridad 2.4.2 Nomencladores. Historia Como Necesito Para Gestionar Entidad Director Gestionar las Para Económico entidades en Estimación controlar 13 el las entidades. sistema Filtrar entidad Director Filtrar entidades en Realizar una 8 económico el sistema. más búsqueda precisa de las entidades. Ver detalles de las Director Visualizar los Mostrar los 5 44 entidades económico detalles de la detalles de una información de las entidad entidades en el determinada. sistema Gestionar los Director sistemas contables general Gestionar los Controlar los 13 sistemas contables sistemas en el sistema contables que pueden pertenecer a una entidad. Filtrar sistemas Director contables general Filtrar los sistemas Realizar una 8 contables más en el búsqueda sistema. precisa de los sistemas contables. Ver detalles de los Director Visualizar sistemas contables general detalles los Mostrar de los 5 la detalles de una información de los entidad sistemas contables determinada. en el sistema. Tabla 8 Historia de usuario Tema Nomencladores 2.4.3 Comunicación Historia Como Necesito Para Estimación API Director Garantizar la Conectar el 21 Nomencladores General comunicación sistema entre el sistema y base la base de datos. de datos. Garantizar la Conectar el y reportes API Control de AFT Director a la 21 45 General comunicación sistema a la entre el sistema y base API Seguridad la base de datos. de datos. Director Garantizar la Conectar el General comunicación sistema 21 a la entre el sistema y base API Control la base de datos. de datos. de Director Garantizar la Conectar el General comunicación sistema Áreas 21 a la entre el sistema y base la base de datos. de datos. Tabla 9 Historia de usuario Tema Comunicación 2.4.4 Notificaciones, reportes y alertas Historia Como Necesito Reporte de AFT sin Director Generar chequearse por un General reporte que liste clara de los AFT período de tiempo. todos los AFT que que no Para Estimación un Tener una visión 21 hayan sido atención chequeados durante necesitan y seguimiento. un período de tiempo específico. Reporte de áreas Director Obtener un Poder tomar 21 sin chequearse en General informe que medidas para un identifique las asegurar que período tiempo. de áreas que no han todas las áreas sido chequeadas sean dentro intervalo de un debidamente de inspeccionadas. 46 tiempo determinado. Reportes de Director Acceder controles físicos General reportes que frecuencia y la muestren los calidad realizados en rangos de fechas. a Evaluar controles la 21 de los físicos controles físicos realizados dentro en períodos de ciertos rangos específicos de fechas. Reportes de Director controles físicos General Obtener reportes Tener una 21 que detallen los comprensión por una entidad o controles físicos detallada de la área determinada. llevados a cabo ejecución de por una entidad o controles físicos área específica. en áreas o entidades particulares. Reportes de áreas Director Generar informes Identificar áreas 21 con que destaquen las que porcentaje mayor General de éxitos en el control. áreas con mayores están los cumpliendo de manera efectiva porcentajes de con éxito los estándares en controles establecidos realizados. reconocer los y buenas prácticas. 47 Aviso sobre fecha Director Recibir que notificaciones que los controles se corresponde General Garantizar que 21 realizar el control a me un sobre la fecha en puntualmente área determinada. informen realicen que y debe se cumplan con realizarse un los plazos control específico establecidos. en un área determinada. Notificación ante la Director Recibir Tomar medidas 21 detección un General notificaciones inmediatas para no cuando se detecte investigar de AFT perteneciente a un un AFT que no abordar área determinada. pertenezca a cualquier ninguna área irregularidad designada. y o riesgo potencial. Tabla 10 Historia de usuario Tema Notificaciones, reportes y alertas 2.4.5 Control de AFT Historia Como Escanear válidos Necesito Para QR Responsable Escanear QR que Controlar para el de área registro de AFT Estimación la 13 contiene el existencia del número de AFT en un área inventario y determinada. descripción de un AFT. Insertar de forma Responsable Insertar el número Controlar la 8 manual el número del área. de inventario de existencia del de inventario de AFT los AFT. manual. de Comprobar control Responsable Visualizar forma AFT en un área determinada. el Analizar el 21 48 físico de AFT de económico resultado del resultado del un área. control. control y determinar faltantes y sobrantes. Realizar control Responsable Realizar control Comprobar que 21 físico de AFT de de área físico de AFT del los un área. área. AFT se encuentren en el área. Cancelar control Responsable Cancelar físico de AFT. de área el Descontinuar el 5 control físico de control físico de AFT. Obtención y Responsable Visualizar visualización económico información referente AFT. la Mostrar información referente a las áreas áreas. los 21 detalles de las a las áreas en el registradas en el sistema. sistema contable. Obtención y Responsable Visualizar visualización económico información referente información referente a los la Mostrar detalles de los a los AFT registrados AFT. en AFT. el sistema contable. Obtención y Responsable Visualizar visualización de área información referente los 21 información referente a los AFT pertenecientes la Mostrar los 21 detalles de los a los AFT del área, AFT de su área. registrados en el sistema a contable. su área 49 Filtrar áreas Responsable Filtrar las áreas Realizar una 13 económico más en el sistema. búsqueda precisa de las áreas. Filtrar AFT Responsable Filtrar los AFT que Realizar una 13 económico más se encuentran en búsqueda el sistema precisa de los contable. AFT. Filtrar AFT de un Responsable Filtrar los AFT que Realizar una 13 área más de área se encuentran en búsqueda un área precisa de los perteneciente al AFT sistema contable. Exportar listado de Responsable Exportar áreas. de área dada un área. las Guardar los 13 informaciones del datos del área área en un en documento PDF. un documento PDF. Imprimir listado de Responsable Exportar AFT. de área las Guardar informaciones de datos AFT en los 13 de los un AFT. documento PDF. Generar códigos Responsable Obtener los QR Visualizar QR de un AFT económico de los AFT. los 13 QR de los AFT. determinado. Exportar listado de Responsable Exportar los QR Guardar los QR 13 QR de los AFT económico de AFT en un que documento PDF. contienen los datos de los AFT en un documento 50 PDF. Imprimir listado de Responsable Imprimir los QR Obtener los QR 13 QR de los AFT económico de AFT. a escanear. Solicitar Responsable Crear una Obtener Movimiento AFT de área solicitud para documento de realizar solicitud para 13 movimiento de realizar AFT a movimientos de determinada área AFT. de destino. Exportar modelo Responsable Exportar Movimientos de de área AFT la Guardar la 13 solicitud de solicitud de movimiento de movimiento de AFT un AFT un en documento PDF. en documento PDF. Imprimir modelo Responsable Imprimir Movimientos de de área AFT la Guardar la 5 solicitud de solicitud de movimiento de movimiento de AFT. Cambiar estados AFT. los Responsable Modificar de los Establecer la económico estados de Solicitud de solicitudes. movimiento de 5 las nuevo estado de la solicitud de movimiento AFT de AFT. Elaborar Plan de Director Confeccionar la Planificar Chequeo Planificación controles Físico económico anual de AFT los 8 anual de Chequeo anuales de AFT. físico de AFT en el sistema. 51 Visualizar la Director Consultar planificación de económico planificación Chequeo Físico Conocer Chequeo anual de los AFT la 5 de planificación de Físico Chequeo Físico anual de los AFT. anual de los AFT. Imprimir la Director Imprimir planificación de económico planificación Chequeo Físico Conocer Chequeo anual de los AFT la 5 de planificación de Físico Chequeo Físico anual de los AFT. anual de los AFT. Exportar la Director Exportar planificación de económico planificación Chequeo Físico Guardar Chequeo anual de los AFT de planificación de Físico Chequeo Físico anual de los AFT anual de los en un documento AFT en un PDF. Visualizar Responsable Consultar controles económico realizados. Exportar documento PDF los Controlar del económico control los 5 controles controles realizados. realizados. Responsable Exportar resultados la 8 los Guardar los 8 resultados del resultados del control un control un en documento PDF. en documento PDF. Imprimir Responsable Imprimir resultados del económico control Filtrar los Guardar los 5 resultados del resultados del control. control. controles Responsable Filtrar realizados económico controles los Realizar búsqueda una 8 más precisa de los 52 controles. Tabla 11 Historia de usuario Tema Control de AFT 2.5 Tipos de pruebas ejecutadas y justificación de la selección. Debido a la naturaleza de un sistema compuesto por dos aplicaciones, se decide emplear pruebas unitarias y pruebas de widgets, ya que se enfocan en aspectos específicos del código. El sistema se fragmenta en diferentes procesos y tareas que se van integrando progresivamente para formar las aplicaciones finales. Al emplear estas pruebas unitarias, se corrigen errores y se perfecciona el código, facilitando así su posterior integración y reduciendo significativamente los fallos en las aplicaciones resultantes. Dada la complejidad y la distribución del proyecto, así como la importancia de sus funcionalidades, se opta por realizar pruebas de caja blanca, aprovechando la robusta librería flutter_test disponible. 2.6 Diseño de los casos de pruebas unitarias (selección) Considerando que las pruebas unitarias deben realizarse para verificar las distintas unidades que componen un software y para revisar el funcionamiento de códigos responsables de funciones específicas, a continuación, definimos los siguientes métodos, organizados en tres grupos. 53 2.6.1 Validaciones Figura 7 Pruebas de validación 2.6.2 Modelos 54 Figura 8 Pruebas unitarias a Modelos 2.6.3 Widget 55 Figura 9 Prueba a Widget 2.6.4 Resultados de las pruebas En la siguiente imagen, se puede observar y resultado de las pruebas unitarias, realizadas a los métodos descritos anteriormente. 56 Figura 10 Resultados de las pruebas unitarias 2.7 Requisitos no funcionales. 1. Rendimiento: ➢ La aplicación móvil debe tener tiempos de carga rápidos y respuestas ágiles al escanear códigos QR. ➢ El sistema web debe manejar eficientemente grandes volúmenes de datos y registros de control, garantizando tiempos de respuesta mínimos. 2. Seguridad: Los datos de los medios y los registros de control deben almacenarse de forma segura, utilizando técnicas de encriptación y protocolos de seguridad robustos. El acceso a la aplicación móvil y al sistema web debe requerir autenticación de usuarios y autorización adecuada para garantizar la confidencialidad y la integridad de los datos. 3. Disponibilidad: ➢ La aplicación móvil y el sistema web deben estar disponibles las 24 horas del día, los 7 días de la semana, con un tiempo de inactividad planificado mínimo para mantenimiento y actualizaciones. ➢ Se deben implementar medidas de redundancia y respaldo para garantizar la continuidad del servicio en caso de fallos o interrupciones del sistema. 4. Usabilidad: 57 ➢ La interfaz de usuario de la aplicación móvil debe ser intuitiva y fácil de usar, con un diseño claro y funcionalidades bien organizadas para facilitar la navegación y el uso del escáner de códigos QR. ➢ El sistema web debe ser accesible desde diferentes dispositivos y navegadores web, con una interfaz de usuario amigable que permita a los usuarios gestionar y consultar los registros de control de manera eficiente. 5. Escalabilidad: ➢ Tanto la aplicación móvil como el sistema web deben ser escalables, capaces de adaptarse al crecimiento futuro en el número de usuarios y registros de control sin comprometer el rendimiento ni la disponibilidad. ➢ Se deben implementar arquitecturas y tecnologías escalables que permitan agregar recursos adicionales según sea necesario para satisfacer la demanda del sistema. 6. Compatibilidad: ➢ La aplicación móvil debe ser compatible con una amplia variedad de dispositivos móviles y versiones de sistemas operativos Android. ➢ El sistema web debe ser compatible con diferentes navegadores web y sistemas operativos, asegurando una experiencia consistente para todos los usuarios, independientemente de la plataforma utilizada. 7. Integridad de datos ➢ El sistema debe validar la información introducida por el usuario. ➢ Las contraseñas de ser guardadas encriptadas. 2.8 Conclusiones. Con la definición de Interesados y los temas del proyecto ayudó a comprender y organizar las pilas de producto, las mismas sirven para determinar las funcionalidades del software que responden con las necesidades del cliente. Se 58 analizaron los requisitos no funcionales que debe presentar los sistemas, todo esto con el propósito de que la experiencia de los usuarios en el sistema sea la más adecuada y le sirva como herramienta en el proceso de negocio. 59 Capítulo 3 Descripción de la solución propuesta. 3.1 Introducción. En este capítulo, se abordará el modelado e implementación del sistema, basándose en la historia de usuario definida en el capítulo anterior. Para facilitar la comprensión, se utilizarán diagramas de clases y despliegues, detallando el diseño de la base de datos mediante modelo físico y lógico. Además, se presentará el principio y patrón de diseño utilizado en el proyecto para garantizar su eficiencia y coherencia. 3.2 Diagrama de clases del diseño. Se presenta por temas, historias de usuario o características para ganar claridad en la presentación. 60 3.2.1 Seguridad Figura 11 Diagramas de diseño Tema Seguridad 3.2.2 Nomencladores Figura 12 Diagrama de clases de diseño Tema Nomencladores 3.2.3 Comunicación 61 Figura 13 Diagrama de clase de diseño Tema Comunicación 3.2.4 Notificaciones, reporte y alertas Figura 14 Diagrama de clase de diseño Tema Notificaciones, reportes y alertas 3.2.5 Control de AFT 62 Figura 15 Diagrama de clase de diseño Tema Control de AFT 3.3 Diseño de la base de datos. En este epígrafe se deben mostrar los dos modelos en las formas que se indican más abajo. Además, se deberán describir las diferencias existentes entre ambos y las razones que las explican. 63 3.3.1 Modelo lógico de datos. 64 3.3.2 Modelo físico de datos. 65 3.4 Principios de diseño. Un patrón de diseño es una solución reutilizable a un problema común que aparece en el desarrollo de software. Estos patrones no son específicos del código, sino más bien una forma de estructurar y organizar el código para resolver problemas comunes de manera eficiente y mantenible. Los patrones de diseño ayudan a los desarrolladores a: • Estandarizar soluciones: Proporcionan una manera probada y confiable de resolver problemas que muchos desarrolladores enfrentan. • Mejorar la mantenibilidad: Facilitan la comprensión del código y su modificación en el futuro. • Fomentar las buenas prácticas: Promueven el uso de buenas prácticas en el desarrollo de software. 3.4.1 Patrón de diseño Bloc. BLoC (Business Logic Component) es un patrón de diseño utilizado en el desarrollo de aplicaciones, especialmente en Flutter, para gestionar el estado y la lógica de negocio de una manera estructurada y mantenible. BLoC ayuda a separar la lógica de negocio de la interfaz de usuario, facilitando la escalabilidad y el mantenimiento del código. El patrón Bloc consiste en: ➢ Presentación ➢ Lógica de negocios ➢ Datos o Repositorio o Proveedor de datos BLoC Pattern: View (UI Screen): Contendrá toda la interacción con las vistas; podemos organizarla en screens y widgets. 66 BLoC: La capa de negocio estará contenida aquí, por ejemplo: registrarse a la aplicación, hacer login o hacer logout; toda vista que tenga una lógica de negocio deberá tener un componente BLoC. Repository: Aquí se concentran las clases que se conectan con una fuente de datos; API, Endpoints, DataBase, etc. Data / Model: Son nuestros modelos, los cuales nos ayudan a manejar los datos; PODO Plain Old Dart Object Figura 16 Patrón Bloc 3.4.2 Interface de usuario La solución presentada cuenta con una interfaz clara y concisa, basada en los principios de Material Design desarrollados por Google. Material Design es una guía de diseño centrada en la visualización coherente y eficiente en el sistema operativo Android, así como en la web y otras plataformas. Esta normativa proporciona directrices para crear experiencias de usuario intuitivas y visualmente atractivas, asegurando consistencia y usabilidad en todas las aplicaciones. 67 3.4.3 Logotipo del sistema Figura 17 Logotipo SCAFT 3.4.4 Formato de salida de los reportes. Los reportes generados por el sistema son esenciales para la toma de decisiones dentro de la entidad. Se presentan de manera detallada y visualmente clara a través de gráficos y tablas. Estos informes se producen en formato PDF, lo que garantiza su fácil distribución y accesibilidad para el análisis. 3.4.5 Ayuda. Se le entregara un manual de usuarios, para que sea útil a los interesados en el negocio. Describiendo paso a paso lo que se debe hacer y el documento presentara imágenes del principal flujo. 3.5 Tratamiento de errores. El tratamiento de errores en un software es crucial para garantizar su robustez y fiabilidad. Este proceso implica la identificación, gestión y resolución de errores que puedan surgir durante la ejecución del programa. El sistema cuenta con mecanismos de validación de datos que previenen la entrada de valores incorrectos en la aplicación. Los errores potenciales se identifican y se comunican al usuario de diversas maneras, dependiendo de la naturaleza del error. Cada mensaje de error se presenta de manera detallada y concisa, explicando claramente la causa del problema. 68 Figura 18 Tratamiento de errores 69 Figura 19 Tratamiento de errores 3.6 Diagrama de despliegue. 70 Figura 20 Diagrama de despliegue 3.7 Factibilidad de la solución propuesta. 3.7.1 Beneficios tangibles e intangibles. Beneficios tangibles: 1. Eficiencia Operativa: La implementación del sistema de control físico de AFT reducirá el tiempo empleado en los procesos, lo que se traducirá en una mejora significativa de la eficiencia operativa. 2. Reducción de Errores: Al eliminar la dependencia de registros manuales y procesos físicos de verificación, se reducirán significativamente los errores humanos en los datos contables y de inventario. Esto evitará discrepancias en los registros y posibles pérdidas financieras asociadas con errores contables. 3. Ahorro de Recursos: La automatización de los procesos de control de AFT eliminará la necesidad de papel y otros recursos físicos utilizados en la documentación y almacenamiento de registros. Esto generará ahorros tangibles en costos asociados con la compra de papel, tinta de impresión y espacio de almacenamiento físico. Beneficios Intangibles: 1. Mayor Transparencia y Cumplimiento: El sistema proporcionará una mayor transparencia en el proceso de control físico de AFT, lo que mejorará la rendición de cuentas y facilitará el cumplimiento de las normativas contables y de control interno establecidas por las autoridades competentes. 2. Centralización de la información, logrando una mayor organización de la misma. 71 3.7.2 Análisis de costos y beneficios. Principales tareas del proyecto Estudio del negocio Cantidad de trabajadores implicados 1 Salario por Horas horas ($/h) dedicadas $ Total ($) 32 $ 997.12 31.16 Levantamiento de requisitos 80 $ 2,492.80 Estudio de las tecnologías a utilizar 80 $ 2,492.80 Diseño de las interfaces 120 $ 3,739.20 Encuentros con los interesados 5 $ 155.80 Implementación de la solución 480 $14,956.80 Total 797 $24,834.52 Tabla 12 Análisis de costos y beneficios Después de analizar la tabla de costos, se aprecia que un único trabajador le dedicó al proyecto 797 horas, lo cual equivale a un costo total de $24,834.52. Teniendo en cuenta este valor y los beneficios que tiene el desarrollo de esta aplicación, se determina que el producto es factible. 3.8 Conclusiones. En este capítulo fue de vital importancia la descripción de los elementos que contribuyeron a la solución propuesta. Llegando a la conclusión de que el diseño de los mismos contribuyó a la satisfacción del cliente del proceso de negocio. Además, el análisis de costos y beneficios demostró que el proyecto era factible, debido a que sus beneficios tangibles e intangibles eran superiores al costo de la adquisición del mismo. 72 Conclusiones Con la culminación de este trabajo se da cumplimiento al objetivo general propuesto debido a que se implementó una herramienta informática para el control físico de AFT. La herramienta desarrollada consta de dos sistemas, una APK para el control físico de AFT, la cual detecta los QR válidos (donde se almacenó el número de inventario y la descripción del AFT) y registra cada uno de los activos de un área elegida previamente por el usuario, para posteriormente se verifique si los AFT se encuentra en su área, detecta además si existen faltantes o sobrantes. El sistema de gestión es una aplicación web, mediante la cual los usuarios pueden disponer de los controles que hayan realizado, tener disponible la planificación de los próximos a realizar, así como un conjunto de reportes para la toma de decisiones. Se controlará las entidades y sus conexiones para acceder a los diferentes sistemas contables. Ambas, fueron desarrolladas en Flutter, que utiliza como lenguaje de programación Dart y permite compilar aplicaciones nativas para distintas plataformas, lo que permitió reutilizar gran parte del código. Además, se desarrollaron API para permitir la comunicación de las aplicaciones con las bases de datos, las mismas fueron creadas en Node.js y MySQL como gestor de base de datos. Para mayor seguridad se le realizaron pruebas a las aplicaciones que permitieron detectar y corregir errores durante el proceso de desarrollo. 73 Recomendaciones Al finalizar el desarrollo de este trabajo, se tiene como recomendación para posteriores versiones las siguientes: • Posibilitar la conexión con otros Sistemas de Gestión Contable (certificados). • Ampliar reportes económicos y estadísticos. 74 Referencias bibliográficas [1] editor, “Resolución 60 de República,” Gaceta Oficial, 2011 de Contraloría General de Jul. 05, la 2015. https://www.gacetaoficial.gob.cu/es/resolucion-60-de-2011-de-contraloriageneral-de-la-republica (accessed May 23, 2024). [2] “Contraloría General de la República Dominicana May 22, Interno,” Contraloria.gob.do, - Control 2018. https://www.contraloria.gob.do/index.php/sobre-nosotros-m/controlinterno#:~:text=Protecci%C3%B3n%20de-, (accessed May 23, 2024). [3] I. O. M. R. Lic. Yulema Rodríguez Corrales, "Implementación del Sistema de Control Interno, sobre la base de la gestión integrada con la NC ISO 9001:2015 " Universidad de Holguin [Online]. Available: https://eventos.uho.edu.cu/index.php/ccm/cci10/paper/viewFile/5338/2482 [4] “Ministerio de Finanzas y Precios Ministra.” Accessed: May 23, 2024. [Online]. Available: https://www.mfp.gob.cu/ficheros/disposiciones/RES0268-18.pdf [5] D. D. P. Jorge Luis Hernández Dueñas, Enrique Almeida Maldonado, "Control de activos fijos tangibles mediante el uso de herramientas informáticas novedosas," vol. 14, pp. 108-115, 2021. [6] Ecured. "Activo fijo tangible." https://www.ecured.cu/Activo_fijo_tangible. [7] “Software Administración de Activos Fijos | GIITIC,” Giitic.com, 2023. https://www.giitic.com/software-activosfijos?gad_source=1&gclid=Cj0KCQjw-_mvBhDwARIsAAQ0Q47p7l2FhgSjkzq1b3bqEMoz28ZPvt4r5LRqFDnnrU_orG8VfPJutoaAs 7sEALw_wcB (accessed May 23, 2024). [8] “activo-fijo | SMS Consulting,” SMS CONSULTING S.A. SMSCON, 2024. https://smsconsulting.ec/page/activo-fijo (accessed May 24, 2024). [9] admin, “Los 12 mejores softwares para el control de activo fijo en tu empresa - Anepsa,” Anepsa, Sep. 11, 2023. https://anepsa.com.mx/los- 75 12-mejores-softwares-para-el-control-de-activo-fijo-en-tu-empresa/ (accessed May 24, 2024). [10] FCT 10 de Octubre. Actividad Presencial #5 Introducción a SCRUM. 2018. [11] T. Gallego, “Metodología Scrum,” Uoc.edu, 2024, doi: http://hdl.handle.net/10609/17885. [12] “Metodologías ágiles: ¿qué diferencia hay entre Scrum, Kanban y XP?,” Blog Grupo Digital, Oct. 24, 2019. https://www.grupodigital.eu/blog/metodologias-agiles/ (accessed May 24, 2024). [13] “Figure 4. Table of General Features and Comparison of Agile...,” ResearchGate, 2015. https://www.researchgate.net/figure/Tableof-General-Features-and-Comparison-of-Agile-Methodologies1_fig2_278300889 (accessed May 24, 2024). [14] nuria.canals, “¿Qué es el lenguaje de programación Dart? - inLab FIB,” inLab FIB, May 26, 2020. https://inlab.fib.upc.edu/es/uncategorizedca-es/que-es-el-lenguaje-de-programacion-dart/2020/ (accessed May 24, 2024). [15] “Dart vs. JavaScript - javatpoint,” www.javatpoint.com, 2019. https://www.javatpoint.com/dart-vs-javascript (accessed May 24, 2024). [16] “¿Qué es Flutter? - Explicación de la aplicación Flutter - AWS,” Amazon Web Services, Inc., 2018. https://aws.amazon.com/es/what-is/flutter/ (accessed May 24, 2024). [17] Doonamis, “Flutter, descubre Doonamis,” Doonamis, sus ventajas Nov. y desventajas 23, - 2023. https://www.doonamis.com/descubre-ventajas-desventajas-flutter/ (accessed May 24, 2024). [18] lechediaz, “Comparación entre Flutter, Ionic y React Native - lechediaz,” lechediaz, Aug. 26, 2022. https://lechediaz.com/comparacionentre-flutter-ionic-y-react-native/ (accessed May 24, 2024). 76 [19] The One Technologies, “Comparison Between Frameworks - Flutter, React Native, and Xamarin,” Theonetechnologies.com, Jun. 23, 2023. https://theonetechnologies.com/blog/post/flutter-vs-react-native-vsxamarin-top-cross-platform-mobile-app-development-framework (accessed May 24, 2024). [20] “¿Qué es JavaScript? - Explicación de JavaScript (JS) - AWS,” Amazon Web Services, Inc., 2023. https://aws.amazon.com/es/what- is/javascript/#:~:text=JavaScript%20del%20lado%20del%20servidor%20h ace%20referencia%20al%20uso%20del,encuentra%20directamente%20e n%20el%20servidor.) (accessed May 24, 2024). [21] “Node JS: ventajas e inconvenientes - Blog Solbyte,” Blog Solbyte, Jun. 15, 2023. https://www.solbyte.com/blog/nodejs/ (accessed May 24, 2024). [22] Simplior Technologies, “PHP and Node.js are highly endorsed back-end technologies leveraged in web development endeavours.,” Linkedin.com, Dec. 05, 2022. https://www.linkedin.com/pulse/nodejs-vs-php-in-depthcomparison-web-development--1f (accessed May 24, 2024). [23] “¿Qué es una aplicación móvil? – Anincubator,” Anincubator.com, 2022. https://anincubator.com/que-es-una-aplicacion-movil/ (accessed May 24, 2024). [24] “¿Qué es una aplicación web? - Explicación de las aplicaciones web – A WS,” Amazon Web Services, Inc., 2023. https://aws.amazon.com/es/what-is/webapplication/#:~:text=Una%20aplicaci%C3%B3n%20web%20es%20un,y% 20de%20una%20forma%20segura. (accessed May 24, 2024). [25] S. Nakazawa and T. Tanaka, "Development and application of Kanban tool visualizing the work in progress," in 2016 5th IIAI International Congress on Advanced Applied Informatics (IIAI-AAI), 2016, pp. 908-913: IEEE. [26] K. SAS. (2022). iceSCrum. Available: https://www.icescrum.com/es/ [27] ScrumDo. (2022). Online Scrum and Kanban Software. Available: https://www.scrumdo.com/ 77 [28] “¿Qué es la gestión de bases de datos? | Beneficios de un DBMS | Nutanix,” Nutanix, 2024. https://www.nutanix.com/mx/info/database- management#:~:text=Un%20sistema%20de%20gesti%C3%B3n%20de% 20bases%20de%20datos%20se%20encarga,de%20una%20base%20de %20datos. (accessed May 24, 2024). [29] L. A. C. Santillán, M. G. Ginestà, and Ó. P. J. U. o. d. C. Mora, "Bases de datos en MySQL," 2014.] [30] TecnoDigital, “MySQL Completo,” Informática Ventajas y y Tecnología Desventajas: Digital, Un Jul. Análisis 02, 2023. https://informatecdigital.com/bases-de-datos/mysql-ventajas-ydesventajas-un-analisis-completo/ (accessed May 24, 2024). [31] E. Bereza, “Choosing between MySQL vs PostgreSQL vs SQL Server,” Jelvix, Jul. 07, 2020. https://jelvix.com/blog/mysql-postgresql-sqlserver (accessed May 24, 2024). [32] mijacobs, “¿Qué es el control de versiones? - Azure DevOps,” Microsoft.com, Oct. 05, 2023. https://learn.microsoft.com/eses/devops/develop/git/what-is-version-control (accessed May 24, 2024). [33] “Qué es GitHub y cómo usarlo para aprovechar sus beneficios,” Platzi, 2024. https://platzi.com/blog/que-es-github-como- funciona/#:~:text=GitHub%20te%20permite%20subir%20tus,%C3%A9l%2 0y%2C%20por%20qu%C3%A9%20no%2C (accessed May 24, 2024). [34] GraffersID, “GraffersID - IT Staff Augmentation Company,” Graffersid, Feb. 05, 2024. https://graffersid.com/gitlab-vs-github/ (accessed May 24, 2024). 78 Glosario de siglas y términos AFT: Activos Fijos Tangibles. API: La interfaz de programación de aplicaciones, conocida también por la sigla API, en inglés, application programming interface, es un conjunto de subrutinas, funciones y procedimientos que ofrece cierta biblioteca para ser utilizada por otro software como una capa de abstracción. MINCOM: Ministerio de Finanzas y Precios. MFP: Ministerio de Finanzas y Precios. NC ISO 9001:2015: Esta Norma Internacional promueve la adopción de un enfoque basado en procesos cuando se desarrolla, implementa y mejora la eficacia de un sistema de gestión de la calidad, para aumentar la satisfacción del cliente mediante el cumplimiento de sus requisitos. NC ISO 31000: Norma internacional para la gestión del riesgo. SITRANS: Empresa de Servicios de Información. SGC: Sistema de Gestión Contable y Financiera. 79