El desarrollo de software a escala industrial requiere de infraestructura acorde a los requerimientos de cada proyecto. La comunidad de software se retroalimenta de forma permanente, a través de la reutilización de componentes distribuidos en el formato de bibliotecas o paquetes. Actualmente, los proyectos de software tienden a ser diseñados como una composición de recursos de funcionalidad específica, promoviendo la reutilización y siendo, en muchos casos, un factor clave de éxito, ya sea por calidad probada o integración inmediata de una nueva prestación. Desde principios de los años 90, han surgido diferentes herramientas de soporte a la integración y actualización de sistemas operativos por medio de paquetes. Esas herramientas, denominadas Gestores de Paquetes, permiten agregar y quitar, de forma atómica, paquetes de software provenientes de repositorios externos. La industria del software también incorporó el modelo de distribución por paquetes, definiendo a la biblioteca como un conjunto de elementos de software reutilizables, indivisibles y de alta cohesión. Tomando como base a los Gestores de Paquetes, la comunidad de software desarrolló los Gestores de Dependencias. Estas herramientas interactúan con los repositorios de bibliotecas, asistiendo a los ambientes de producción de software en los procesos de recuperación y clausura de las dependencias. Si bien la adaptación del modelo de Gestor de Paquetes al ámbito industrial ha sido exitosa, padece de una serie de inconvenientes que se abordarán a lo largo de esta Tesis. A continuación, este trabajo se centrará en describir el contexto tecnológico actual y en aquellos aspectos con potencialidad para mejorar el proceso de gestión de dependencias del software Java. Luego, se presentarán tres prototipos de herramientas, una para medir la proporción de referencias entre bibliotecas y las otras dos, a modo de prueba y validación de conceptos. Finalmente se desarrollará una evaluación comparativa con las herramientas más utilizadas en la actualidad y se presentarán las conclusiones. En resumen, esta Tesis presenta una alternativa al modo como se está gestionando la resolución de las dependencias Java, proponiendo un servicio especializado en resolver y ubicar las bibliotecas requeridas por el software en desarrollo, acorde a las demandas actuales y futuras de la industria.
Los interrogantes planteados al inicio del trabajo de tesis fueron:
¿Es posible gestionar un clúster HPC a través de una herramienta web adaptable sin tener que incorporar productos con licenciamiento?
¿Es posible prestar una porción del clúster a otra institución que lo requiera, sin que incomode su uso?
¿Es posible obtener reportes del real uso de los recursos computacionales vinculados a usuarios o grupos de investigación?
¿Es posible diagnosticar el funcionamiento de aplicaciones de cálculo según el hardware donde será ejecutado, obtener valores de rendimiento y gestionarlos en el tiempo?
La tesis define una herramienta de gestión de clúster, incluye opciones de perfilado de aplicaciones, monitoreo de recursos personalizables bajo demanda de: hardware + software + usuarios del clúster.
El acceso es controlado mediante cuentas de usuarios, almacenados en base de datos.
Las tareas de usuario se asocian a roles predefinidos, son implementadas como opciones de menú.
La aplicación frontend se adapta al navegador en el que se ejecuta. Permite a un usuario del clúster monitorear la ejecución de cálculo, conocer los consumos de hardware realmente utilizados.
En el caso de estudio tomado como referencia, el sistema de gestión del clúster ha evolucionado de un ambiente basado en terminal y comandos, a uno web adaptable con información completa del estado del clúster.
El trabajo de tesis busca integrar el modelo de capacidad y madurez, Capability Maturity Model (CMMI) y la metodología de desarrollo de software bajo el paradigma de modelos, Model driven development (MDD), con el fin de mejorar la calidad y productividad en los proyectos de desarrollo de software, y por ende realizar un aporte a la industria de software.
La estrategia utilizada fue identificar los riesgos inherentes a los desarrollos bajo el paradigma MDA, uno de los enfoque de MDD, en el cumplimiento de los lineamientos del CMMI-DEV, niveles 2 y 3, y luego determinar cuáles artefactos deben implementarse en el desarrollo para minimizar los riesgos, y asegurar el éxito en las evaluaciones CMMI-DEV en esos niveles.
Como trabajo futuro se recomienda realizar proyecto colaborativo con la intervención de las comunidades de adeptos a MDD, CMMI y metodologías ágiles con el fin de proponer la integración de las metodologías de desarrollo ágiles y la impulsada por modelos, al modelo de capacidad y madurez CMMI, teniendo en cuenta los riesgos asociados a las transformaciones de modelos, los nuevos artefactos que deben usarse para minimizar los riesgos y las diferentes etapas por las que atraviesa una organización que evoluciona los procesos de desarrollo utilizando modelos, que se traducirían en niveles de madurez, y la necesidad de que el modelo se pueda utilizar en empresas medianas y pequeñas de software, proporcionando un guía de calidad íntegra al equipo de desarrollo y una herramienta a los evaluadores del modelo CMMI-DEV.
El comercio electrónico es hoy una realidad creciente en la Web, ya que continuos estudios de campo realizados en éstos confirman el creciente uso de los mismos para realizar compras. En este contexto, es imprescindible analizar los diferentes modelos que definen una aplicación web de manera de mejorar la usabilidad de cada uno para brindar una mejor experiencia de usuario a los clientes de los sitios.
En este trabajo se presentan conceptos relacionados a una aplicación web y los tres modelos que la componen (el de la aplicación o contenido, el modelo de navegación, y el modelo de presentación), se define genéricamente qué es un refactoring, caracterizando específicamente la refactorización del modelo de presentación y navegación, se muestra el catálogo de refactoring específico generado, y se muestran y analizan los resultados de la evaluación de usabilidad de los mismos.
Este trabajo propone una metodología especialmente diseñada para construir mantener e implementar en forma eficiente, migraciones de datos que ocurren en el contexto del desarrollo de un nuevo sistema de información. En ocasiones un nuevo sistema requiere para ponerse en marcha la incorporación de datos heredados de aquellos que reemplaza, esto da origen a un proyecto de migración que ocurre en paralelo al del desarrollo del sistema. El aspecto particular de dicho entorno es la aparición de frecuentes cambios en la nueva base de datos como consecuencia de la evolución en la construcción del sistema, lo que obliga a adaptar la migración. Se obtiene entonces, un proceso con las complejidades propias de una migración, pero en un entorno inestable. Como respuesta, en este trabajo se define una arquitectura física que separa las transformaciones sintácticas de las semánticas y una metodología que delinea dos procesos iterativos que posibilitan implementar cambios frecuentes en la base de destino de manera precisa y ordenada.
Autor: Caluva Emanuel Ceferino Director: Dr. Rossi GustavoCodirector: Ing. MSc. Moltoni AndrésFecha: Noviembre 2018
La trazabilidad alimentaria presenta particularidades, respecto a otros dominios, como los problemas de interoperabilidad entre diferentes actores de la cadena y un alto grado de personalización de los sistemas de trazabilidad. Esto dificulta la generalización y estandarización de tecnologías y sistemas informáticos en este dominio, y eleva su costo de desarrollo. Este trabajo propone obtener un DSL para el dominio de trazabilidad de alimentos que facilita el desarrollo de aplicaciones y la adaptación de las mismas a las complicaciones surgen dentro de los diferentes eslabones del dominio. Luego de realizar una comparación entre DSLs tradicionales y Perfiles UML se concluye que los perfiles pueden utilizarse como DSLs, sin perder especificidad, para modelar este dominio y de esta forma simplificar el proceso de desarrollo de aplicaciones. Se diseña un Perfil UML completo que es evaluado con distintos indicadores y se evalúa su robustez frente a tecnologías como la IoT. Finalmente se analiza un caso de aplicación en el subdominio de la trazabilidad de productos apícolas verificando la aplicabilidad del modelo y se presentan las conclusiones pertinentes a los diferentes análisis realizados.