Desarrollo de un prototipo de software móvil para la gestión y retroalimentación de personal y proyectos en una empresa de desarrollo de software
74
0
0
Texto completo
(2) Resumen En la actualidad tanto del país como en el mundo, en el diseño y desarrollo de proyectos se hace uso de diversas herramientas o metodologías para gestionar, optimizar y mejorar los resultados esperados de los proyectos informáticos, en este ámbito, las soluciones que se plantean en su mayoría no ofrecen posibilidades o alternativas móviles que faciliten el control, observación o modificación de diversos aspectos relacionados con los proyectos. El prototipo que se plantea tiene el objetivo de disminuir en mayor medida los porcentajes de fracaso de un proyecto de software mediante el control y retroalimentación tanto de los empleados como los proyectos realizados con anterioridad en la organización que se plantee integrar el aplicativo, de esta forma se pueden llevar a cabo los pasos iniciales de la creación de un proyecto en pocos minutos y con datos en tiempo real que faciliten las elecciones al usuario al momento de tomar decisiones conforme a su equipo de trabajo. Como resultado se entregará un prototipo de un aplicativo móvil de gestión y retroalimentación de personal y proyectos en una empresa de desarrollo de software, el cual permita la creación, modificación, lectura y eliminación de empleados, proyectos y clientes, junto a su visualización y estadísticas en tiempo real para los usuarios que se encuentren registrados e identificados dentro del aplicativo.. PALABRAS CLAVE: Prototipo, Aplicativo móvil, android, bases de datos en tiempo real, gestión de personal, gestión de proyectos..
(3) Abstract Currently, both in the country and in the world, in the design and development of projects, various tools or methodologies are used to manage, optimize and improve the expected results of computer projects, in this area, the solutions proposed in most of them do not offer possibilities or mobile alternatives that facilitate the control, observation or modification of various aspects related to the projects. The prototype that is proposed has the objective of reducing to a greater extent the failure rates of a software project through the control and feedback of both the employees and the projects previously carried out in the organization that plans to integrate the application, in this way The initial steps of the creation of a project can be carried out in a few minutes and with real-time data that facilitate user choices when making decisions according to their work team. As a result, a prototype of a mobile application for management and feedback of personnel and projects will be delivered to a software development company, which allows the creation, modification, reading and elimination of employees, projects and clients, along with their visualization and statistics in real time for users who are registered and identified within the application.. KEYWORDS: Prototype, Mobile Application, Android, Real-time databases, personnel management, project management..
(4) Agradecimientos A la Universidad Distrital “Francisco José de Caldas” y su facultad de ingeniería que me ha permitido realizar mis estudios desde pregrado hasta posgrado, a pesar de los obstáculos y retos que se me han presentado, siempre será un honor hacer parte de la Universidad y llevar en alto su nombre. A los Docentes Alexandra Abuchar Porrras, Sandra Milena Cortes y Roberto Ferro Escobar por brindarme la ayuda y guía necesaria para llevar a cabo el desarrollo del proyecto de grado, quienes mediante sus consejos, indicaciones y observaciones me permitieron completar esta etapa en mi búsqueda de conocimiento. A mi familia, los cuales me han apoyado en todo este proceso y me han permitido demostrarles cada día como mi crecimiento profesional me ha permitido abrir nuevas puertas, oportunidades de conocimiento y metas por conseguir en mi vida. A mis compañeros de especialización con quienes logre formar vínculos, compartir conocimiento y experiencias, puntos de vista y me apoyaron en este camino que todos recorrimos en búsqueda de culminar exitosamente nuestros estudios..
(5) Tabla de Figuras Resumen.......................................................................................................................................... 2 Abstract ........................................................................................................................................... 3 INTRODUCCIÓN ........................................................................................................................ 11 PARTE I FUNDAMENTACIÓN DE LA INVESTIGACIÓN .................................................... 12 CAPITULO 1 DESCRIPCIÓN DE LA INVESTIGACIÓN ........................................................ 12 1.1. IDENTIFICACIÓN DEL PROBLEMA ............................................................................ 12. 1.2. OBJETIVOS ...................................................................................................................... 13. 1.2.1 OBJETIVO GENERAL ................................................................................................. 13 1.2.2 OBJETIVOS ESPECÍFICOS ......................................................................................... 13 1.3. JUSTIFICACIÓN .............................................................................................................. 14. 1.4. HIPÓTESIS........................................................................................................................ 14. 1.5. MARCO REFERENCIAL ................................................................................................. 15. 1.5.1 MARCO TEÓRICO ....................................................................................................... 15 1.5.1.1. SCRUM................................................................................................................... 15. 1.5.1.2. APLICACIONES MÓVILES ................................................................................. 16. 1.5.1.3. ANDROID STUDIO .............................................................................................. 17. 1.5.1.4. FIREBASE .............................................................................................................. 17. 1.5.2 MARCO CONCEPTUAL .............................................................................................. 18 1.5.2.1. BASES DE DATOS EN TIEMPO REAL .............................................................. 18. 1.5.2.2. IDE .......................................................................................................................... 19. 1.5.3 ASPECTOS LEGALES ................................................................................................. 19. 1.6. 1.5.3.1. LEY ESTATUTARIA 1266 DE 2008 .................................................................... 19. 1.5.3.2. LEY ESTATUTARIA 1581 DE 2012 .................................................................... 19. METODOLOGÍA .............................................................................................................. 20. 1.6.1 LEVANTAMIENTO DE INFORMACION .................................................................. 20 1.6.2 DISEÑO ......................................................................................................................... 20 1.6.2.1 REQUERIMIENTOS DEL SISTEMA ...................................................................... 20 1.6.2.1.1. REQUERIMIENTOS FUNCIONALES ............................................................. 20. 1.6.2.1.2 REQUERIMIENTOS NO FUNCIONALES .......................................................... 22 1.6.3 DESARROLLO DEL PROTOTIPO .............................................................................. 22 1.7. ORGANIZACIÓN DEL TRABAJO ................................................................................. 23.
(6) PARTE II FUNDAMENTACIÓN DE LA INVESTIGACIÓN ................................................... 25 CAPITULO 2 DESCRIPCIÓN DE LA INVESTIGACIÓN ........................................................ 25 2.1. ANDROID STUDIO Y SU ORIENTACIÓN A INTERFACES DE USUARIO ............. 25. 2.1.1 ACTIVIDADES EN ANDROID ................................................................................... 26 2.2. FIREBASE Y LAS BASES DE DATO EN TIEMPO REAL ........................................... 28. 2.3. ARQUITECTURA ............................................................................................................ 28. 2.3.1 ARQUITECTURA LÓGICA ......................................................................................... 29 2.3.2 ARQUITECTURA FÍSICA ........................................................................................... 30 CAPITULO 3 DESCRIPCIÓN DE LA SOLUCIÓN ................................................................... 31 3.1. INTERFACES DEL PROTOTIPO ................................................................................ 31. 3.2. LÓGICA DEL PROTOTIPO ......................................................................................... 32. 3.3. BASES DE DATOS DEL PROTOTIPO ....................................................................... 32. CAPITULO 4 DISEÑO DE DIAGRAMAS DE SECUENCIA DEL PROTOTIPO ................... 35 4.1. DIAGRAMAS DE SECUENCIA .................................................................................. 35. CAPITULO 5 IDENTIFICAR LAS HISTORIAS DE USUARIO DEL PROTOTIPO .............. 39 5.1. HISTORIAS DE USUARIO .......................................................................................... 39. 5.2. PLANEACIÓN DE LOS SPRINTS .............................................................................. 42. 5.2.1 SPRINT 1 ...................................................................................................................... 43 5.2.2 SPRINT 2 ...................................................................................................................... 43 5.2.3 SPRINT 3 ...................................................................................................................... 43 5.2.4 SPRINT 4 ...................................................................................................................... 44 5.2.5 SPRINT 5 ...................................................................................................................... 44 5.2.6 SPRINT 6 ...................................................................................................................... 44 5.2.7 SPRINT 7 ...................................................................................................................... 44 CAPITULO 6 IMPLEMENTAR LA CREACIÓN E INGRESO DE USUARIOS A LA PLATAFORMA DIGITAL .......................................................................................................... 46 6.1. LOGIN DE USUARIOS ................................................................................................ 46. 6.2. REGISTRO DE USUARIOS ......................................................................................... 47. 6.3. MENÚ PRINCIPAL ...................................................................................................... 48. CAPITULO 7 DISEÑAR Y CONSTRUIR LA VISUALIZACIÓN DE LA INFORMACIÓN.. 49 7.1. VISUALIZACIÓN DE CLIENTES............................................................................... 49. 7.2. CREACIÓN DE CLIENTES ......................................................................................... 50. 7.3. VISUALIZACIÓN DE PROYECTOS .......................................................................... 51. 7.4. CREACIÓN DE PROYECTOS ..................................................................................... 52. 7.5. VISUALIZACIÓN DE EMPLEADOS ......................................................................... 53.
(7) 7.6. CREACIÓN DE EMPLEADOS .................................................................................... 54. CAPITULO 8 ASIGNACIÓN DE LOS RECURSOS HUMANOS A LOS PROYECTOS ....... 55 8.1. INICIALIZACIÓN DE PROYECTOS .......................................................................... 55. 8.2. ADICIÓN DE EMPLEADOS AL PROYECTO ........................................................... 56. CAPITULO 9 CREACIÓN Y SEGUIMIENTO DE HISTORIAS DE USUARIOS DENTRO DE LOS PROYECTOS....................................................................................................................... 57 9.1. VISUALIZACIÓN DE HISTORIAS DE USUARIO DEL PROYECTO .................... 57. 9.2. ADICIÓN DE HISTORIAS DE USUARIO AL PROYECTO ..................................... 58. 9.3. ELIMINACIÓN DE HISTORIAS DE USUARIO DEL PROYECTO ......................... 59. 9.4. MODIFICACIÓN DE HISTORIAS DE USUARIO DEL PROYECTO ...................... 60. CAPITULO 10 EVALUAR LAS HABILIDADES INDIVIDUALES DE LOS RECURSOS HUMANOS Y EL RENDIMIENTO DEL PROYECTO ............................................................. 61 10.1. RETROALIMENTACIÓN DEL PROYECTO ............................................................. 61. 10.2. RETROALIMENTACIÓN DE LOS EMPLEADOS .................................................... 62. 10.3. VISUALIZACIÓN DE LA RETROALIMENTACIÓN DEL PROYECTO ................ 63. 10.4. VISUALIZACIÓN DE LA RETROALIMENTACIÓN DE LOS EMPLEADOS ....... 64. PARTE III CIERRE DE LA INVESTIGACIÓN ......................................................................... 65 CAPITULO 11 RESULTADOS Y DISCUSIÓN......................................................................... 65 11.1. PROTOTIPO DE SOFTWARE MÓVIL EN PLATAFORMA ANDROID ................. 65. 11.2. ARTÍCULO .................................................................................................................... 65. CAPITULO 12 CONCLUSIONES .............................................................................................. 66 12.1. VERIFICACIÓN, CONTRASTE Y EVALUACIÓN DE LOS OBJETIVOS .............. 66. CAPITULO 13 PROSPECTIVA DEL TRABAJO DE GRADO................................................. 68 13.1. BUSINESS INTELLIGENCE ....................................................................................... 68. 13.2. MODELOS PREDICTIVOS.......................................................................................... 68. BIBLIOGRAFÍA .......................................................................................................................... 69 REFERENCIAS WEB .................................................................................................................. 70 ANEXOS ...................................................................................................................................... 74.
(8) Tabla de Figuras Figura 1 ¿Qué es SCRUM? Recuperado de [5] ............................................................................ 16 Figura 2 How to Create JSON Structure Recuperado de [21] ...................................................... 18 Figura 3 Ciclo de vida de las Actividades. Recuperado de [29] ................................................... 27 Figura 4 MVP (Modelo Vista Presentador). Recuperado de [31] ................................................ 29 Figura 5 Patrón de Diseño de Firebase. Recuperado de [32] ........................................................ 30 Figura 6 Estructura de las interfaces gráficas [Elaboración propia] ............................................. 31 Figura 7 Estructura Java del proyecto [Elaboración propia] ........................................................ 32 Figura 8 Asistente de conexión de Firebase [Elaboración propia] ............................................... 33 Figura 9 Interfaz de usuarios en Firebase [Elaboración propia] ................................................... 34 Figura 10 Visualización de la BD en Firebase [Elaboración propia] ........................................... 34 Figura 11 Diagrama de secuencia - Identificación y registro de usuarios [Elaboración propia] .. 35 Figura 12 Diagrama de secuencia - Creación y visualización de clientes [Elaboración propia] .. 36 Figura 13 Diagrama de secuencia - Creación, visualización, modificación de estado y asignación de personal a los proyectos [Elaboración propia] ......................................................................... 37 Figura 14 Diagrama de secuencia - Creación y visualización de empleados [Elaboración propia] ....................................................................................................................................................... 38 Figura 15 Sprint 1 [Elaboración propia] ....................................................................................... 43 Figura 16 Sprint 2 [Elaboración propia] ....................................................................................... 43 Figura 17 Sprint 3 [Elaboración propia] ....................................................................................... 43 Figura 18 Sprint 4 [Elaboración propia] ....................................................................................... 44 Figura 19 Sprint 5 [Elaboración propia] ....................................................................................... 44 Figura 20 Sprint 6 [Elaboración propia] ....................................................................................... 44 Figura 21 Sprint 7 [Elaboración propia] ....................................................................................... 44 Figura 22 Ventana de login [Elaboración propia]......................................................................... 46 Figura 23 Ventana de registro de usuarios [Elaboración propia] ................................................. 47 Figura 24 Menú principal [Elaboración propia] ........................................................................... 48 Figura 25 Visualización de clientes [Elaboración propia] ............................................................ 49 Figura 26 Añadir clientes [Elaboración propia]............................................................................ 50 Figura 27 Visualización de proyectos [Elaboración propia]......................................................... 51 Figura 28 Creación de proyectos [Elaboración propia] ................................................................ 52 Figura 29 Visualización de empleados [Elaboración propia] ....................................................... 53 Figura 30 Creación de empleados [Elaboración propia]............................................................... 54 Figura 31 Ventana de inicio de los proyectos [Elaboración propia] ............................................. 55 Figura 32 Insertar empleados en el proyecto [Elaboración propia] .............................................. 56 Figura 33 Vista de historias de usuario a los proyectos [Elaboración propia].............................. 57 Figura 34 Añadir historias de usuario al proyecto [Elaboración propia] ...................................... 58 Figura 35 Eliminar historias de usuario del proyecto [Elaboración propia] ................................. 59 Figura 36 Editar estado y asignación de las historias de usuario [Elaboración propia] ............... 60 Figura 37 Vista de evaluación del proyecto [Elaboración propia] ............................................... 61 Figura 38 Vista de evaluación de los empleados del proyecto [Elaboración propia] ................... 62 Figura 39 Vista del estado de proyecto finalizado y las calificaciones [Elaboración propia] ...... 63.
(9) Figura 40 Vista del empleado detalle junto a los valores de retroalimentación [Elaboración propia] ........................................................................................................................................... 64.
(10) Índice de Tablas Tabla 1 Requerimientos funcionales ............................................................................................. 20 Tabla 2 Requerimientos no funcionales ........................................................................................ 22 Tabla 3 Historias de usuario ......................................................................................................... 39.
(11) INTRODUCCIÓN Debido al crecimiento constante de las organizaciones en el ámbito tecnológico, se requiere de herramientas que permitan un control de dichos proyectos emergentes que se llevaran a cabo según las necesidades, oportunidades y disponibilidad del personal. Uno de los problemas o aspectos a mejorar en proyectos de software realizados por una empresa u outsourcing es el manejo de los recursos que van a ser asignados para su desarrollo exitoso, puesto que asegurar la calidad tanto del producto como de las personas relacionadas al proyecto, garantiza la satisfacción al cliente y, por ende, asegura posibles contratos a futuro o buenas referencias por parte de los clientes. Al momento de hablar de una empresa dedicada al desarrollo de software podemos tener varios aspectos a tener en cuenta, uno de los principales, es la importancia de la gestión de los recursos humanos, puesto que son el eje principal por medio del cual se lograra llevar a cabo los productos o servicios que los clientes requieran, dicho esto, se necesita una correcta gestión del tiempo y los perfiles de las personas que van a ser asignadas a un proyecto, y de esta forma, se lograra cumplir con lo requerido por el cliente y se cumplirá una entrega exitosa. Una de las problemáticas que se pueden observar en los proyectos de software y outsourcing que prestan empresas dedicadas al desarrollo, es la asignación de recursos humanos para un proyecto nuevo o de mantenimiento, puesto que en algunas situaciones no se le da la correcta importancia del rendimiento y calidad que ha tenido con anterioridad el recurso humano en proyectos anteriores, de esta forma, el simple hecho de coincidir con el perfil solicitado o encajar medianamente con los requisitos que se requieren para llevar a cabo el proyecto, son razones por las cuales muchas veces se asigna personal que no va a rendir lo necesario para la solución que se tiene planteada o puede que por alguna razón se presenten inconvenientes con los tiempos o tecnologías a implementar, todo esto puede llevar a contribuir al fracaso o extender más de lo necesario un proyecto, al punto de que el cliente presente insatisfacciones y discordias por los tiempos de entrega, también puede llevar consigo a sobrecostos y procesos legales por el incumplimiento de términos en los contratos de servicios o producción. Dicho esto, si se logra encontrar la forma de tener información del rendimiento laboral de los empleados, satisfacción en los proyectos, disponibilidad de tiempo, tecnologías que manejan o desean aprender, valoración de las retrospectivas de los diversos proyectos y planes futuros de aprendizaje o capacitación, se puede ofrecer la selección más factible y acertada del capital humano que va a ser asignado a un proyecto, teniendo en cuenta los anteriores aspectos se logra identificar la necesidad de un sistema que permita tener un control y poder visualizar estos valores en los diversos proyectos de la empresa, disminuyendo así las probabilidades de fracaso o demoras en la entrega satisfactoria o cumplimiento de las fechas establecidas para el producto o servicio ofrecido..
(12) PARTE I FUNDAMENTACIÓN DE LA INVESTIGACIÓN CAPITULO 1 DESCRIPCIÓN DE LA INVESTIGACIÓN 1.1 IDENTIFICACIÓN DEL PROBLEMA El sector de desarrollo y prestación de servicios en el área de software es un campo laboral, que, como todos, tiene una probabilidad de éxito y fracaso muy variante, la cual requiere ser tratada de tal forma que los problemas o riesgos que se puedan presentar en los diversos proyectos deben ser disminuidos o prevenidos desde cualquiera de las situaciones en que se pueden presentar. “El último Informe del Caos realizado por Standish Group con la finalidad de medir el éxito y fracaso de los proyectos IT, muestra que solo un 39% de estos proyectos finalizaron con éxito, mientras que el 43% lo hicieron con deficiencias (retraso, sobrecoste y/o menos requisitos de los esperados) y el 18% restante se cancelaron o dieron lugar a un producto que nunca se utilizó” [1]. Según la información nombrada con anterioridad y la experiencia propia de dichos problemas, se ha identificado que uno de los valores a controlar y que se le debe dar más importancia en las empresas de desarrollo de software es la prioridad y relevancia que se le debe dar a la correcta elección de equipos de trabajo, como una forma de prevenir y disminuir en la mayor medida posible los riesgos que se encuentran al momento de darle inicio a un proyecto o servicio que se va a prestar a un cliente, de tal forma que se dará una garantía de que el equipo de trabajo asignado corresponde a las necesidades tanto del cliente como del proyecto al cual se le va a asignar, la información que se va a generar a partir de esto, facilitara previas oportunidades de mejora en los recursos humanos y tener un control sobre las necesidades emergentes del conocimiento de estos..
(13) 1.2 OBJETIVOS A continuación, se describirán los objetivos de forma general y específica proyectados para la elaboración de la temática de este documento.. 1.2.1 OBJETIVO GENERAL Diseñar una plataforma digital que mejore los procesos de elección de personal según las necesidades y requerimientos del proyecto al cual van a ser asignados.. 1.2.2 OBJETIVOS ESPECÍFICOS • • • • • • •. Diseñar los diagramas de secuencia del prototipo, que permitirá la visualización de la interacción entre componentes y acciones a realizar en las funcionalidades. Identificar las historias de usuario que van a componer al prototipo y van a conformar el marco ágil de trabajo Scrum a partir del levantamiento de requerimientos. Implementar la creación e ingreso de usuarios a la plataforma digital. Diseñar y construir la visualización de la información (clientes, proyectos y empleados) desde y hacia la base de datos. Asignar los recursos humanos a los proyectos, según sea los límites establecidos y la disponibilidad de estos mismos. Permitir la creación de historias de usuario para su seguimiento posterior dentro de los proyectos. Evaluar al finalizar los proyectos tanto las habilidades individuales de los recursos humanos, como el rendimiento del proyecto..
(14) 1.3 JUSTIFICACIÓN En la actualidad con el crecimiento tecnológico en el que se encuentra el mundo, en este caso Colombia, se puede ver la creciente necesidad que surge a partir de la generación de proyectos de software que se ajusten a las necesidades emergentes del mercado y de los clientes que desean adquirirlos. Entre los factores a tener en cuenta en un mercado como este, es la competencia y rivalidad de diversas empresas por conseguir contrataciones y clientes estratégicos para seguir creciendo constantemente, lo cual lleva muchas veces a que en diversos proyectos se tomen malas decisiones por no poseer información previamente o el simple hecho de no tener un control sobre las personas que se tienen actualmente contratadas con ciertas tecnologías, para el desarrollo de los proyectos que se encuentran en el momento o van a surgir. En varias ocasiones se puede observar una mala práctica que llevan a cabo muchas de estas empresas, como lo es la asignación de personal en proyectos donde su perfil profesional no encaja, ya sea por la experiencia laboral, gustos personales o tecnologías a manejar. Esto puede traer consigo futuros inconvenientes en el transcurso del proyecto y aumentar el potencial de riesgo de estos mismos, de tal forma, que, si se logra disminuir esta posibilidad, se puede plantear una disminución al índice de fracaso o deficiencias en los proyectos. De esta forma surge la necesidad de plantear una solución que permita llevar un control visual en todo momento del personal disponible y asignado a diversos proyectos, de tal forma que se puedan controlar las necesidades de más personal, capacitaciones o demás valores agregados que pueden mejorar el plantel de recursos humanos de la empresa en la cual se puede implementar el prototipo que se desea plantear en este proyecto, todo sea con el fin de que la selección de personal y la visualización tanto de sus fortalezas, debilidades, tecnologías y anteriores asignaciones, permita formar una base más sólida de los empleados que se poseen y permita crecer a la compañía disminuyendo las posibilidades de riesgo que pueden traer consigo las malas decisiones o una oportuna prevención de las necesidades o inconvenientes que se pueden presentar respecto al personal involucrado con los proyectos de desarrollo de software.. 1.4 HIPÓTESIS El planteamiento o la identificación del problema permite definir la siguiente hipótesis: “El aplicativo móvil propuesto para las empresas de software en el ámbito de selección y gestión de personal, permite a las organizaciones conocer y tomar las respectivas decisiones sobre la elección del personal que va a ser asignado al proyecto, de esta manera se pueden identificar los aspectos que requiere el perfil profesional, recomendar las personas que se ajustan a dichas necesidades, visualizar las debilidades y fortalezas de los trabajadores, poder identificar visualmente las personas que actualmente trabajan para la compañía y que permita tanto a los directores como a gestión humana, tomar decisiones respecto a las necesidades de personal para cubrir las solicitudes emergentes o que se puedan llegar a presentar”..
(15) 1.5 MARCO REFERENCIAL En este apartado se recopilarán conceptos, leyes y definiciones que serán necesarias para el desarrollo exitoso del diseño del sistema propuesto.. 1.5.1 MARCO TEÓRICO Cuando se lleva a cabo la planeación de la realización de un proyecto hay varios factores que se deben tener en cuenta, como lo son, la disponibilidad, la experiencia laboral, el perfil profesional, el rendimiento y fortalezas de los empleados, los recursos físicos, ubicación, el cliente al cual se le realizara el proyecto, etc. Todo esto lleva consigo la necesidad de garantizar que las elecciones previas al inicio del proyecto se desarrollen de la mejor forma, de modo, que tanto los empleados como los tiempos proyectados sean de acuerdo a los datos que ya se han obtenido en anteriores experiencias similares. “La gestión de proyectos tiene una elevada importancia en las organizaciones. Además, constituye una herramienta muy necesaria para desarrollar productos o servicios, los proyectos se están convirtiendo en una forma de trabajo estratégica útil para sobrevivir en el entorno que vivimos hoy en día” [2]. Según lo anteriormente citado y el planteamiento de este documento, se hará uso de diversas tecnologías que serán explicadas a continuación, para llevar a cabo el desarrollo del prototipo móvil de gestión y retroalimentación de personal y proyectos en una empresa de desarrollo de software. Teniendo en cuenta lo anteriormente dicho, más adelante se procederá a describir con más detalle las metodologías implementadas para llevar a cabo el desarrollo, la base de datos con la cual se llevará a cabo el proyecto, el IDE que permitirá el desarrollo exitoso del prototipo planteado.. 1.5.1.1 SCRUM Scrum es un marco de trabajo usado en circunstancias que requieran de un desarrollo ágil, en el cual se entra a aplicar de manera regular un conjunto de prácticas realizadas con el fin de conseguir el cumplimiento de objetivos y mejorar el trabajo en equipo, y de esta forma buscar el obtener los mejores resultados posibles de un proyecto/producto que se vaya a realizar [3]. En este marco de trabajo se realizan entregas regulares en periodos cortos, habitualmente de dos a cuatro semanas de trabajo, a las cuales se les dará una asignación y prioridad acorde a las historias de usuario o más comúnmente llamado backlog, que se realizará a partir de los requisitos del proyecto y el beneficio que se genere para el receptor del proyecto, las prioridades de estas se deben llevar a cabo por la importancia de los módulos a realizar y las funciones que estos contengan, dándole prioridad a las estructuras básicas de los aplicativos y los módulos de los que dependan funciones más específicas y complejas [4]. Por esto, Scrum es aplicado usualmente en proyectos en entornos complejos o en ambientes que requieran de una retroalimentación constante y entregas tanto parciales como finales según se requiera por la iteración del Sprint y los acuerdos en el planteamiento inicial del proyecto, donde se requiere generar resultados de forma rápida y efectiva, a su vez, el conocimiento, innovación,.
(16) competitividad, productividad y la flexibilidad son fundamentales para el éxito del proyecto actual y la entrega del producto esperado por el cliente.. Figura 1 ¿Qué es SCRUM? Recuperado de [5]. En la figura 1 se puede observar el proceso fundamental que conforma a Scrum, se generan historias de usuario para agregar al backlog según sea su prioridad e independencia de las demás historias, se planean cuáles van a hacer parte del siguiente sprint, se realiza el desarrollo, documentación y pruebas y se entrega una iteración del software que puede ser entregada y verificada por el cliente, de esta forma se recibe una continua retroalimentación y se puede actuar según sean las situaciones emergentes [5]. Scrum también es usado para resolver situaciones que las entregas no corresponden a lo solicitado y proyectado por el cliente, tiempos de entrega demorados, sobre costos, problemas de calidad, cuando se necesita identificar y solucionar ineficiencias.. 1.5.1.2 APLICACIONES MÓVILES Los aplicativos móviles son desarrollos de software con el objetivo de ser descargados e instalados en diversos dispositivos celulares, tablets, relojes inteligentes u otros dispositivos con un SO que lo permita, todo esto con el objetivo de suplir distintas necesidades o funciones, también a su vez permite facilitar acciones, permitir nuevas opciones para los dispositivos, informar, entretener, mostrar contenido multimedia y etc. Una de las revoluciones tecnológicas que ha traído este último siglo es el de las aplicaciones móviles, puesto que son un mercado y tecnología que al través de los años no ha hecho más que seguir en crecimiento, lo cual ha generado cambios globales al momento de referirse a la información y comunicación entre usuarios por medio de dispositivos portátiles y de acceso para todo el público que quiera adquirirlo..
(17) 1.5.1.3 ANDROID STUDIO Es el (IDE) oficial para la programación y desarrollo de aplicativos nativos para Android y está basado en IntelliJ IDEA (es un entorno de desarrollo Java creado por Jet Brains) [6]. Además de que es poseedor del potente editor de código y las diversas herramientas que ofrece IntelliJ para los diversos desarrolladores, Android Studio posee más funciones que permiten aumentar la productividad durante la compilación de las aplicaciones desarrolladas para Android, como las que se enuncian a continuación: [7] •. • • • • • •. • •. Sistema de compilación creado a partir de Gradle (“Es un sistema de compilación que reúne en un uno solo las mejores prestaciones de otros sistemas de compilación. Está basado en JVM (Java Virtual Machine), lo que significa que puedes escribir tu propio script en java, y que Android Studio lo entenderá y lo usará” [8]. Emulador de dispositivos android Un entorno unificado que permite desarrollos para los diversos dispositivos que contienen android (Smartwatch, dispositivos móviles, IoT, etc) [9]. Instant Run, opción que permite aplicar cambios mientras la aplicación se está ejecutando sin la necesidad de necesitar compilar de vuelta un nuevo APK [10]. Integración con GitHub. Frameworks y herramientas que permita llevar a cabo pruebas unitarias, de usuario y etc. Herramientas Lint, empleadas para determinar y detectar problemas que afecten el rendimiento, usabilidad, compatibilidad entre versiones del sistema operativo, interfaces, etc. Soporte incorporado de la herramienta Google Cloud Plataform [11]. Soporte incorporado para la base de datos en tiempo real, Firebase [12].. 1.5.1.4 FIREBASE Firebase es la plataforma de Google enfocada al desarrollo móvil, la cual está centrada en un funcionamiento totalmente en la nube. Cuenta con diversas opciones o productos que ofrecen tanto a usuarios independientes como a empresas, mediante diferentes planes que comienzan desde gratis, hasta costo por X cantidad de transacciones dependiendo de los servicios requeridos, entre los cuales se encuentran: [13] • • • • • •. Cloud Firestore: Esta herramienta permite el almacenamiento y sincronización de la información entre usuarios y dispositivos mediante una base de datos NoSQL soportada y ubicada de forma nativa en la nube [11]. Kit de AA: Incorpora funciones de aprendizaje automático para las aplicaciones de dispositivos móviles [14]. Cloud Functions: Extiende tu aplicación con código de back-end de manera personalizada sin la necesidad de redirigir la información a otros servidores [15]. Authentication: Manejo y creación de usuarios [16]. Hosting: Provee un alojamiento web para lo que requieran los usuarios [17]. Cloud Storage: Permite almacena y compartir todo tipo de contenido [18]..
(18) •. Realtime Database: Base de datos con la opción de actualización inmediata por medio de su mayor atractivo, la visualización y cambios en tiempo real [19].. 1.5.2 MARCO CONCEPTUAL Para poder llevar a cabo la implementación del prototipo de una aplicación móvil para la gestión y retroalimentación de personal y proyectos en una empresa de desarrollo de software, es necesario hacer uso de herramientas de software para el desarrollo de los diversos módulos que van a conformar el prototipo, de tal manera que no solo sea visualmente agradable y funcional, sino que también permita y haga uso de una base de datos que permita ingresar, editar y eliminar la información de la cual se provee para determinar las recomendaciones para la creación de los equipos de trabajo para los diversos proyectos que lleguen a surgir, dicho esto, se deben explicar algunos términos que se usaran en repetidas ocasiones acerca de las herramientas tecnológicas empleadas y el prototipo planteado.. 1.5.2.1 BASES DE DATOS EN TIEMPO REAL Las bases de datos en tiempo real se pueden describir de forma sencilla, puesto que simplemente son un objeto JSON de gran magnitud que permite ser administrado en tiempo real tanto para la lectura, escritura, edición o eliminación de datos. Dicho esto, se podría decir que al ser un objeto JSON se puede representar en forma de un árbol de valores que contendrá múltiple información para ser consultada o lo que se requiera [20].. Figura 2 How to Create JSON Structure Recuperado de [21]. Basados en la figura 1, se puede observar que esta estructura permite el modelado de información de manera simple y flexible. De esta forma, se puede afirmar que la BD no posee una estructura fija, esto significa que no se debe adoptar por un esquema desde el comienzo, si no que será una estructura dinámica que puede crecer y cambiar según se requiera en el momento. Otra cosa a tener en cuenta es la persistencia de la información, la BD en tiempo real consta de un lenguaje de reglas impuestas por el servidor que permiten validar la estructura de los datos ingresados o modificarla en cada acción que se realice y no esté fuera de los parámetros de la estructura definida [11]..
(19) 1.5.2.2 IDE IDE es un entorno de programación el cual ha sido empaquetado como una aplicación, en resumidas palabras, lo componen varios elementos como lo son: [22] • • • •. Editor de código. Compilador. Depurador. Constructor de interfaz gráfica.. 1.5.3 ASPECTOS LEGALES El prototipo al requerir y manipular información personal se debe acoger a las leyes nombradas a continuación, estas deben ser cumplidas según la constitución política de Colombia puesto que son establecidas en el marco de protección a los datos personales y el correspondiente tratamiento de dicha información.. 1.5.3.1 LEY ESTATUTARIA 1266 DE 2008 “Por la cual se dictan las disposiciones generales del hábeas data y se regula el manejo de la información contenida en bases de datos personales, en especial la financiera, crediticia, comercial, de servicios y la proveniente de terceros países y se dictan otras disposiciones.” [23]. Al momento de hablar de tratamiento de información sensible, se tiene que hacer referencia a las leyes locales que incluyan prohibiciones, guías o ayudas para la implementación de las protecciones para los usuarios o clientes que puedan ver su información personal afectada o compartida, mediante esto, se debe asegurar que la información allí tratada debe hacerse bajo los lineamientos del país donde va a realizarse el despliegue y que la información ahí almacenada no va a ser suministrada a terceros a menos que el usuario lo autorice y se dé por enterado de las razones por las cuales se llevara a cabo este proceso.. 1.5.3.2 LEY ESTATUTARIA 1581 DE 2012 “La presente ley tiene por objeto desarrollar el derecho constitucional que tienen todas las personas a conocer, actualizar y rectificar las informaciones que se hayan recogido sobre ellas en bases de datos o archivos, y los demás derechos, libertades y garantías constitucionales a que se refiere el artículo 15 de la Constitución Política; así como el derecho a la información consagrado en el artículo 20 de la misma” [24]. Como se nombró en el anterior numeral, cualquier tratamiento que se realice debe ser anunciado y debe requerir de una previa autorización por parte del dueño de la información, puesto que uno de los derechos fundamentales se encuentra en la protección de la información sensible y la priorización de la protección de esta. También se le da importancia a este punto ya que desde aquí radica uno de los factores fundamentales que son más intimidantes en un mundo tan extenso como lo es el internet, la protección de los datos y la garantía de que van a ser usados únicamente con los propósitos definidos y estipulados en los términos y condiciones..
(20) 1.6 METODOLOGÍA A continuación, se describen cada una de las técnicas metodológicas que se utilizaran para el desarrollo de este proyecto.. 1.6.1 LEVANTAMIENTO DE INFORMACION En el actual trabajo a desarrollar se identifica un tipo de investigación exploratoria, aplicada con el fin de plantear un prototipo de un sistema que podrá generar información para la toma de decisiones y permitirá la disminución de los factores riesgo asociados con una mala gestión de las selecciones en los equipos de trabajo. Uno de los factores que permitirá partir de un punto de inicio para la investigación es la experiencia personal en proyectos de desarrollo de software y experiencias por parte de los compañeros laborales actuales, junto a esto se llevara a cabo un artículo de la relación de los marcos de trabajo para la gestión de proyectos de TI.. 1.6.2 DISEÑO Para llevar a cabo el planteamiento de las historias de usuario mediante los requisitos y especificaciones que van a ser abordadas más adelante, se va a hacer uso de diagramas de secuencia, una arquitectura MVP y una estructura dinámica de creación de bases de datos mediante el empleo de Firebase. Todo orientado para la definición concreta de lo que se va a realizar en el aplicativo y como debe ser el flujo de información, todo esto teniendo en cuenta que una de las ventajas de una base de datos no sql como lo es Firebase Esla oportunidad de crecer constantemente según se requiera, sin afectar los planteamientos u operaciones realizadas con anterioridad va a ser uno de los fuertes que va a contribuir a que el prototipo tenga capacidad de escalabilidad y mejora de sus alcances a futuro si se reanuda el proyecto.. 1.6.2.1 REQUERIMIENTOS DEL SISTEMA Los requerimientos que van a ser evaluados y realizados para el desarrollo del prototipo son los siguientes:. 1.6.2.1.1 REQUERIMIENTOS FUNCIONALES Tabla 1 Requerimientos funcionales. ID. Requerimiento. REQ1. El sistema deberá permitir realizar el registro de nuevos usuarios que puedan ingresar al aplicativo.. REQ2. Dependencia. El sistema deberá permitir el ingreso al aplicativo mediante los REQ1 usuarios creados..
(21) REQ3. Para los requisitos REQ1 y REQ2 se requiere del apoyo de una base de datos que garantice la unicidad de los usuarios y las validaciones REQ1 y REQ2 de credenciales para el respectivo usuario creado.. REQ4. El aplicativo debe contar con un menú que permita el desplazamiento entre las opciones y el respectivo cerrar sesión.. REQ5. Se deberá contar con un apartado de empleados que permita su REQ4 visualización y creación.. REQ6. Al momento de crear un proyecto se debe ligar a un cliente, en caso de no poseer clientes o no el que se requiere en este caso, se deberá REQ4 permitir la creación de uno nuevo con sus respectivos datos de contacto.. REQ7. La creación de cada proyecto requiere que se adjunte a un cliente del REQ6 y se le deberá asignar un área, lenguajes a utilizar y analistas REQ6 de sistemas requeridos para su realización.. REQ8. Al querer iniciar un proyecto se debe permitir el adjuntar las historias de usuario, fechas de inicio, fecha de finalización, añadir el arquitecto asignado si se requiere y los analistas de acuerdo al máximo establecido en la creación del proyecto.. REQ9. Se deberá validar las asignaciones de los empleados en los demás procesos del aplicativo para evitar conflictos de asignaciones REQ8 simultaneas.. REQ10. Se deberá contar con una opción que permita la visualización de los REQ8 proyectos activos y finalizados.. El proyecto del REQ10 deberá permitir la visualización del cliente asignado, nombre del proyecto, tipo de proyecto, estado del proyecto, REQ11 REQ10 fecha de inicio y fecha de finalización, y a su vez las historias de usuario creadas al inicio del proyecto. REQ12. Luego de dar finalizar el proyecto del RE11 se deberá permitir la REQ11 evaluación del proyecto y de los empleados adjuntos al proyecto.. Se evaluará a los empleados en 10 aspectos (Adaptabilidad, compromiso, convivencia, cumplimiento, habilidades prácticas, REQ13 honestidad, manejo del tiempo, rendimiento de recursos, resolución REQ12 de problemas y trabajo en equipo) con el fin de identificar los aspectos que se deben priorizar para la mejora..
(22) REQ14. Se deberá permitir la visualización de los datos personales y las REQ5 y REQ13 evaluaciones que se le realicen al empleado.. Las evaluaciones del REQ13 deberán contar con un respaldo y REQ15 actualización automática por parte de la base de datos para garantizar REQ13 la calidad de la información y garantizar los resultados en tiempo real.. 1.6.2.1.2 REQUERIMIENTOS NO FUNCIONALES. Tabla 2 Requerimientos no funcionales. ID. Requerimiento Dependencia El sistema debe ser capaz de procesar múltiples solicitudes y validar la REQ1 disponibilidad de las opciones o selecciones en tiempo real para no afectar la toma de decisiones. Las funcionalidades del sistema deben actualizarse en menos de un lapso REQ2 de 2 segundos con las actualizaciones que se relacionen con la base de datos y la visualización en las vistas del prototipo. REQ3. El sistema debe permitir un múltiple acceso a las funcionalidades por medio de los distintos usuarios que se hayan autorizado para el ingreso.. El sistema debe desarrollarse con un patrón MVP por la alta dependencia REQ4 de la integración del frontend y backend al momento de hablar de dispositivos móviles. REQ5. El sistema debe contar con respaldo de la información modificada o agregada en la base de datos en tiempo real.. REQ6. Los datos de las credenciales de acceso y creación de usuarios deben tener un tratamiento de encriptación para evitar filtraciones o vulnerabilidades.. REQ7. Las interfaces gráficas del usuario deben ser de fácil comprensión y no deben requerir una alta curva de aprendizaje para su correcto uso.. 1.6.3 DESARROLLO DEL PROTOTIPO El prototipo será llevado a cabo bajo el marco de trabajo Scrum, tanto por el tiempo disponible para su realización como para asegurar la calidad de lo que se busca realizar mediante ciclos de 2 semanas que permitan generar una inspección de cómo fue el sprint en términos de calidad, procesos y resultados. A su vez busca identificar y ordenar los elementos que pudieron llegar a.
(23) salir mal y las posibles mejoras que se pueden llegar a realizar, de esta forma se creara un sistema con un enfoque orientado a la adaptación y autocontrol constante.. 1.7 ORGANIZACIÓN DEL TRABAJO El plan de trabajo de este proyecto se describe a continuación: PARTE I 1. CAPITULO 1 En este capítulo se define la razón por la cual se le dio origen a la investigación y al prototipo a realizar, debido a la problemática que se ve en los distintos proyectos de desarrollo de software que no le dan la suficiente importancia a la parte de sus recursos humanos. PARTE II 2. CAPITULO 2 En este numeral se desglosa el contenido del marco teórico y se abordan los temas de interés en relación a la arquitectura planteada para el desarrollo del prototipo. 3. CAPITULO 3 Describe la solución propuesta tanto por parte del IDE como por parte de la base de datos, Firebase. En este apartado se da una breve descripción del manejo del back end, front end y base de datos que va a ser empleada en el desarrollo del proyecto y las herramientas por las cuales va a ser logrado el objetivo. 4. CAPITULO 4 En este capítulo se llevará a cabo el desarrollo del segundo objetivo específico, se conforma por casos de uso y diagramas de secuencia del prototipo. 5. CAPITULO 5 Posterior a la diagramación y abstracción de la información más relevante del proyecto, se llevará a cabo el levantamiento de historias de usuario. 6. CAPITULO 6 En este capítulo se llevará a cabo el desarrollo del tercer objetivo específico, el cual constará del módulo de creación e ingreso de usuarios dentro del prototipo. 7. CAPITULO 7 En este capítulo se llevará a cabo el tratamiento visual de la información de los clientes, empleados y proyectos, así como la lógica correspondiente para su creación..
(24) 8. CAPITULO 8 En este apartado se desarrollará la lógica de asignación del personal y los cambios de estado que deberán poseer para saber que recursos está disponible y cual no en tiempo real, de esta forma evitando la duplicidad de información y posibles conflictos ocasionados por asignación doble de recursos. 9. CAPITULO 9 En este objetivo se realizará la creación de historias de usuario dentro de los proyectos y sus respectivas posibles modificaciones que se pueden llevar a cabo luego de que el proyecto ha dado inicio. 10. CAPITULO 10 En este capítulo se llevará a cabo el desarrollo del tercer objetivo específico, el cual constará el desarrollo del aplicativo desde los diversos puntos de vista de los módulos propuestos para el prototipo e imágenes anexas que permitan la visualización y descripción de funcionalidades del aplicativo. PARTE III 11. CAPITULO 11 En este capítulo se llevarán a cabo las conclusiones y validaciones del cumplimiento tanto de los alcances como de los objetivos propuestos en un inicio del proyecto. 12. CAPITULO 12 En este capítulo se muestran y proponen las alternativas que pueden generar escalabilidad al proyecto para incrementar su utilidad y alcance..
(25) PARTE II FUNDAMENTACIÓN DE LA INVESTIGACIÓN CAPITULO 2 DESCRIPCIÓN DE LA INVESTIGACIÓN En este capítulo se entrará a profundizar y a aterrizar los aspectos tratados en el numeral 1.5, entre lo cual está el entorno de desarrollo, y la razón por la cual fue escogido junto a las otras tecnologías y demás aspectos como la arquitectura, también se deberá tener en cuenta los requerimientos del numeral 1.6.2.1.1 y 1.6.2.1.2 para permitir la creación de la estructura inicial para el desarrollo del prototipo.. 2.1 ANDROID STUDIO Y SU ORIENTACIÓN A INTERFACES DE USUARIO Actualmente cuando se habla de desarrollo web o móvil se posee una amplia gama de soluciones desde las cuales se ofrecen alternativas hibridas y nativas, según sea el tipo de desarrollo que se vaya a ejecutar, y su elección ayudara a mejorar su mercado y alcance al cual van dirigidos, todo esto teniendo en cuenta el objetivo que se busque y los conocimientos acerca de los lenguajes de programación que respaldan dichas tecnologías. En este caso, se ha escogido Android Studio como el IDE a desarrollar el prototipo, tanto por sus funciones nativas con la mayoría de los dispositivos móviles del mercado del país (Android) y los conocimientos previos en proyectos de este tipo bajo este framework. El IDE de Android Studio posee opciones preconfiguradas que facilitan el desarrollo ágil de algunos desarrollos y también permite la personalización de estos mismos, entre los cuales podemos encontrar calendarios, galería de imágenes, login/registro sin backend integrado, menús de selección, pestañas de múltiple selección o botones con pantallas emergentes [7]. Android Studio es un IDE que cuenta con dos lenguajes backend (Java y Kotlin) principalmente para el desarrollo de sus funcionalidades y un frontend (XML) más estandarizado en otros IDE’s de desarrollo orientados a la visualización de los usuarios. Para este proyecto se ha escogido el uso de Java y XML, tanto por experiencias previas como por la documentación que puede respaldar dicha solución [8]. La estructura de los proyectos realizados en el IDE se divide en distintos módulos que pueden ejecutar, probar o depurar de forma individual o conjunta. Un módulo es un conjunto de opciones de configuración y archivos estáticos o ejecutables fuente que se dividen para crear unidades agrupadas por funcionalidad, el uso de estos puede permitir que un mismo proyecto de desarrollo vaya orientado a distintos tipos de dispositivos, ya sean WearOS, tablets, vehículos, Android tv, etc. Algunos de los módulos que pueden conformar una aplicación son: •. Módulo de App para Android: En este se encuentran códigos fuentes, plantillas, librerías, permisos y declaraciones estándar para la generación de un proyecto orientado a una plataforma específica, como se nombró anteriormente, este IDE tiene a su alcance la.
(26) mayoría de los tipos de dispositivos que actualmente se manejan con el SO Android y cada uno de estos requiere parámetros a tener en cuenta para que se pueda garantizar el pleno desarrollo y resultados del proyecto [25]. •. Módulo de funciones dinámicas: Este módulo va orientado a las funciones que permite Google Play Instant y las funciones modularizadas que pueden ayudar a mejorar la experiencia del usuario [26].. •. Módulo de biblioteca: En este módulo se puede hacer uso de código reutilizable que haya sido almacenado previamente como APK y que amplié las opciones de los usuarios, su instalación se realizará directamente en el proyecto creado y no requerirá de alguna acción extra por parte del usuario final. El añadir una opción como estas permite aprovechar las funcionalidades genéricas que se hayan desarrollado con anterioridad o que se requieran usar y permitan varias opciones genéricas que permita su uso dentro de otros proyectos [27].. •. Módulo de Google Cloud: El uso de este módulo radica en la utilización del código backend almacenado en Google Cloud, en este se ubican las solicitudes, envío de información, transacciones, registro de ingresos y estado de las transferencias. Entra a funcionar como nn BaaS que va a permitir reutilizar las diversas funciones en los diversos ambientes que se le haga su llamamiento, dejando como base para las solicitudes y peticiones un servidor en la nube hosteado por Google que puede ser visualizado y controlado totalmente en la web mediante su paquete de servicios de Cloud [28].. 2.1.1 ACTIVIDADES EN ANDROID Una de las funcionalidades por las cuales se escogió Android Studio por encima de demás IDE,s/frameworks fue la alternativa que permite para la creación de Actividades. Una actividad se compone del componente visual y el componente funcional, los cuales se generan en simultaneo para crear una pestaña o fragmento de interfaz en el aplicativo, su creación trae consigo tanto la declaración de la nueva actividad en el Manifiesto de Android que permite su invocación, el XML o los XML que contengan la información visual solicitada y la clase de Java/Kotlin que se haya generado con los parámetros iniciales que corresponden a la invocación de variables de entorno y ambiente [29]. Luego de la creación de las actividades se puede proceder a invocar distintas funcionalidades tanto desde la interfaz gráfica como de la lógica, pudiendo hacer uso de clases, módulos o un backend invocado desde un servidor externo, ya sea el de Google Cloud integrado nativamente, o algún otro que se le haga conexión mediante su correcta invocación. Otro de los beneficios de las Actividades es el módulo de creación ágil de estos mismos, las cuales constan con varias opciones para facilitar el desarrollo de las partes más básicas y su posterior integración, de lo cual para su invocación se realiza mediante Intents que solo requieren el nombre de la actividad que se desea hacer uso y como desea hacer la transición entre estas..
(27) Figura 3 Ciclo de vida de las Actividades. Recuperado de [29]. Como se puede observar en la Figura 3, el ciclo de vida de una actividad depende del uso que se le vaya a dar y la transición entre estas. Entre los estados se pueden encontrar [29]: • • • •. OnCreate(): Infla los widgets y las posiciones de la interfaz en pantalla, también obtiene las referencias de los widgets t asigna los listeners correspondientes. OnStart(): Método de transición entre el OnCreate() y el estado que continúe. OnResume(): Este método es el que sigue al OnStart(), aquí ya están disponibles las funciones para ser usadas y generar resultados. OnPause(): Ese método entra a ejecución en caso de volver al menú principal del SO o abrir el menú de aplicaciones ejecutadas actualmente, luego de este método se puede dirigirse hacía OnResume() u OnStop() según la acción que realice el usuario final..
(28) • • •. OnStop(): Si la aplicación se llega a minimizar o se ve interrumpida por una fuente externa se presenta la ejecución de este módulo, también puede entrar a aplicar en caso de que se haga un cambio de actividad o se destruya esta misma. OnRestart(): Se ejecuta en caso de que la actividad entre a ejecutarse nuevamente en primer plano. OnDestroy(): Se presenta en el caso que se quiera dar por finalizada una actividad, sea por el usuario o por algo externo, al llevar a cabo la destrucción de la actividad, se liberan los recursos que se encuentran ligados a esta.. 2.2 FIREBASE Y LAS BASES DE DATO EN TIEMPO REAL Al momento de hablar de la base de datos que debía ser usada para la realización del prototipo, se encontraba una amplia variedad de opciones tanto en SQL como en NoSQL, las cuales podrían ser empleadas fácilmente mediante las opciones y conexiones que permite realizar Android Studio de manera sencilla y práctica, básicamente en este punto se disponía de una amplia gama de alternativas a escoger según los conocimientos previos o requerimientos del proyecto. Al ser un proyecto que requiere de constantes actualizaciones para evitar conflictos y de visualización de información o reportes en tiempo real, se pensó en emplear una base de datos que permitiera dichas opciones sin que fuera un mayor conflicto con el ciclo de vida de las actividades de Android, por esta razón, Firebase fue la elección que se tomó al ser en tiempo real y nativa de Android Studio [12]. Firebase junto a sus herramientas de manejo de información en tiempo real, presenta un plus en contraste a las otras alternativas que se pueden usar en Android Studio, lo cual es una integración nativa de la base de datos y sus librerías con el proyecto al cual se desee acoplar, esto, junto a sus planes de libre uso para pequeñas fracciones de transacciones y usuarios, permitió que se empleara en el proyecto sin requerir de licenciamiento y mayores complicaciones puesto que el respaldo de información y documentación por parte de Google es bastante amplio. Todo esto sin contar con la mínima cantidad de pasos requeridos para hacer esta integración y empezar a usar su base de datos en tiempo real, la cual, al estar totalmente en la nube en todo momento, podría facilitar el desarrollo y uso de esta misma según se fuera requiriendo en el transcurso del proyecto sin requerir de despliegues de servicios externos o demás para su uso, desarrollo o testeo.. 2.3 ARQUITECTURA Para el desarrollo del prototipo de la aplicación se va a diseñar una estructura en 3 capas, las cuales van a permitir la abstracción de las distintas etapas del aplicativo para poder llevar a cabo un trabajo modular y va a permitir su escalamiento en caso de ser requerido, las capas de las cuales se hará uso son la Capa de presentación, Capa de negocio y Capa de persistencia de datos las cuales van a permitir el funcionamiento del aplicativo que se instale en un dispositivo con sistema operativo Android, el cual únicamente requerirá de su descarga, instalación y conexión a internet, de esta forma se deberá llevar a cabo el correcto transcurso del aplicativo, en caso tal de no poseer la conexión a internet se verá afectado su rendimiento, puesto que la información mostrada se utiliza mediante la base de datos en tiempo real de Google, Firebase..
(29) 2.3.1 ARQUITECTURA LÓGICA Al momento de hablar de la arquitectura lógica, se debe retomar el tema de las 3 capas que van a componer la arquitectura y profundizarlas en que aspectos van a verse involucradas con el proyecto [30]. •. Capa de presentación: Esta capa hace referencia en su totalidad a las interfaces de los usuarios por medio de la cual van a interactuar con el aplicativo, a partir de la descarga en los dispositivos donde se vaya a instalar se hará acceso directamente a esta, puesto que las Actividades de Android que serían las que van a componer esta capa, no requieren de una lógica más allá de lo que se genera a partir de insertar botones, ventanas o demás a la interfaz gráfica.. •. Capa de negocio: En este punto se entrarán a evaluar, implementar y llevar a cabo las reglas de negocio. Las cuales se encargarán de obtener, almacenar y tratar la información de la cual se vaya a hacer uso, siendo el puente por medio del cual se van a recibir las acciones del usuario y se realizara una acción acorde a esto, también será la encargada de enviar la información a la siguiente capa de persistencia de datos.. Figura 4 MVP (Modelo Vista Presentador). Recuperado de [31]. Para el correcto uso de esta capa se empleará el Modelo Vista Presentador que se ve en la Figura 5, el cual permitirá la constante comunicación entre los componentes de la aplicación con la Vista (Interfaz gráfica) del dispositivo y permitirá una organización del proyecto acorde a la estructura con la cual se crean tanto las interfaces gráficas como las clases anexas en Android Studio. Como al momento de crear las Actividades en Android Studio no se lleva a cabo algún tipo de organización del proyecto, la aplicación de este modelo permite la abstracción de los módulos lógicos al punto de evitar código de una complejidad más alta y facilitar la reutilización de código. •. Capa de persistencia de datos: En este punto se deberá hablar de la información que será provista por la capa de negocio y requerirá ser almacenada para su visualización futura, en.
(30) lo cual se encuentra la creación de clientes, proyectos y registro de integrantes. Todo esto requerido para llevar a cabo el objetivo planteado con el aplicativo y poder almacenar la información que necesitara el aplicativo para su funcionamiento.. 2.3.2 ARQUITECTURA FÍSICA Como se puede observar en la figura 5 que se encuentra a continuación, la arquitectura física de la cual dependerá el proyecto será únicamente del servidor de Firebase y el dispositivo donde se ejecute la aplicación, en este caso, un dispositivo con Android superior a la versión 4.3 para evitar problemas de compatibilidad. La arquitectura física no se vería gravemente afectada en caso tal de requerir un BaaS en futuros planes para el proyecto, puesto que se pueden incluir dichas funciones mediante las Cloud Functions de Google y solo sería necesario generar el llamamiento desde el aplicativo desarrollado para su invocación y uso.. Figura 5 Patrón de Diseño de Firebase. Recuperado de [32].
(31) CAPITULO 3 DESCRIPCIÓN DE LA SOLUCIÓN En este capítulo se dará una descripción de la solución planteada y se hablara acerca de la realización del prototipo funcional, este va a ser desarrollado en Android Studio y el almacenamiento de información en tiempo real en la nube va a ser en Firebase. De esta forma se deberá plantear a cabo la integración de estas dos tecnologías que van a ser las que conformaran la solución planteada, todo esto bajo las ventajas de la integración nativa que poseen ambos entornos de desarrollo. Al momento de hablar del sector de desarrollo y prestación de servicios en el área de software, se puede identificar que es un campo laboral que, como todos, tiene una probabilidad de éxito y fracaso muy variante, la cual requiere ser tratada de tal forma que los problemas o riesgos que se puedan presentar en los diversos proyectos deben ser disminuidos o prevenidos desde cualquiera de las situaciones en que se pueden presentar. Los proyectos de software al ser compuestos y controlados por personas, no están a salvo de posibles errores o conflictos. Por eso mismo se planteó la solución propuesta en el prototipo, como una forma de prevenir y disminuir en la mayor medida posible los riesgos que se encuentran al momento de darle inicio a un proyecto o servicio que se va a prestar a un cliente, de tal forma que se dará una garantía de que el equipo de trabajo asignado corresponde a las necesidades tanto del cliente como del proyecto al cual se le va a asignar, la información que se va a generar a partir de esto, facilitara previas oportunidades de mejora en los recursos humanos y tener un control sobre las necesidades emergentes del conocimiento de estos.. 3.1 INTERFACES DEL PROTOTIPO El prototipo en la parte gráfica requiere de ciertos componentes que hacen parte de lo necesario para su correcta puesta en marcha, como se puede visualizar en la figura 6 se compone de 5 carpetas, en las cuales se almacenan diferentes tipos de archivos que van a ser fragmentos de las interfaces gráficas del prototipo [33].. Figura 6 Estructura de las interfaces gráficas [Elaboración propia]. • •. Drawable, en esta parte se encontrarán los archivos de imagen que se utilizarán en el aplicativo [34]. Layout, se compone de diversos archivos XML que constituirán la interfaz del usuario y realizarán los llamados de componentes y la lógica que componga al prototipo [35]..
(32) • • •. Menu, en esta parte se almacenan también ficheros XML como los del layout, pero a diferencia de estos, son fragmentos reutilizables que se van a llamar en el menú principal del prototipo [36]. Mipmap, en esta parte se almacenan los iconos que se van a visualizar en los dispositivos Android [37]. Values, se compone de archivos XML con parámetros de estilos que van a ser reutilizados en el proyecto [38].. 3.2 LÓGICA DEL PROTOTIPO El prototipo en la parte lógica a diferencia de la visual, no requiere de ciertos componentes para su correcta puesta en marcha, puesto que al momento de realizar la creación de una actividad, solo se crea una clase java que contiene la lógica necesaria para la interacción con los XML de los layout, solo que en este caso se hará uso de 4 carpetas como se visualiza en la figura 7, en las cuales se almacenan clases Java con distintas funcionalidades para hacer del prototipo algo escalable.. Figura 7 Estructura Java del proyecto [Elaboración propia]. • • • •. Adaptadores, en esta parte se realiza la parametrización de los RecyclerView que van a ser usados en el aplicativo y las acciones que estos realizaran. Modelos, interfaces que definen los datos que se mostrarán o serán usados en la interfaz del usuario. Presentador, actúa como puente entre los modelos y las vistas, es el encargado de la transferencia y recolección de información entre las clases Java. Vista, se compone de archivos XML con parámetros de estilos que van a ser reutilizados en el proyecto.. 3.3 BASES DE DATOS DEL PROTOTIPO Al momento de crear un proyecto en Firebase, el cual se usará para almacenar la información del aplicativo, se deberá implementar Firebase en Android Studio, por medio del gestor y editor se deberá realizar la conexión entre ambas partes por medio del asistente de conexión que se puede visualizar en la figura 8 [39]..
(33) Luego de la sincronización entre ambos proyectos, se podrá visualizar un tutorial en Android Studio, el cual dará unas breves instrucciones para agregar las librerías faltantes y parametrizar los valores que se deben llamar para la ejecución de alguno de los comandos de Firebase,. Figura 8 Asistente de conexión de Firebase [Elaboración propia]. Firebase cuenta con un módulo de registro de usuarios el cual, se ligará al proyecto y validará la información del usuario que se desee logear y registrar, con la ayuda de este módulo se podrá garantizar la seguridad con la cual es almacenada, enviada y registrada la información de registro e identificación en el prototipo, en la figura 9 se puede visualizar los usuarios de test que fueron usados al inicio de las pruebas de concepto..
(34) Figura 9 Interfaz de usuarios en Firebase [Elaboración propia]. Luego de la creación de usuarios, en la parte de la base de datos no relacional, se entrará a ver como se visualizará la estructura de esta misma y la visualización en la interfaz de Firebase como lo muestra la figura 10. Una de las ventajas de este tipo de base de datos y arquitectura que compone a Firebase, es el escalamiento continuo que permite y se puede ajustar a los múltiples cambios que se requieran en el transcurso del prototipo.. Figura 10 Visualización de la BD en Firebase [Elaboración propia].
(35) CAPITULO 4 DISEÑO DE DIAGRAMAS DE SECUENCIA DEL PROTOTIPO En este apartado se abarcará la diagramación de lo propuesto anteriormente en las historias de usuario, de tal forma, que se esquematice el proceso a seguir en el desarrollo del prototipo y se desglosen las posibles actividades o controles que se deban realizar.. 4.1 DIAGRAMAS DE SECUENCIA Mediante la diagramación por secuencia, se va a realizar una descomposición de las acciones a realizar en las historias de usuario y el plan a seguir para el desarrollo del prototipo inicial que se va a presentar, todo esto con el objetivo de planificar previamente lo que se va a llevar a cabo. En la figura 11 se visualiza el diagrama de secuencia que abarca las historias de usuario 1 y 2, en las cuales se llevará a cabo el registro e identificación dentro del aplicativo, todo esto por medio de la conexión a la base de datos de Firebase.. Figura 11 Diagrama de secuencia - Identificación y registro de usuarios [Elaboración propia].
Figure
+7
Documento similar