“Diseño de un simulador dinámico de proyectos de desarrollo de Software que utilizan Metodología Scrum”
Autor: Godoy Diego Alberto
Director: Dr. Sosa Eduardo Omar
Codirector: Dr. Rossi Gustavo
Fecha: Abril 2015

En este trabajo de tesis se propone el diseño de un modelo de simulación del proceso de desarrollo de software que utiliza la Metodología de desarrollo Ágil Scrum. Se ha realizado un análisis de la metodología Scrum, la Metodología de Dinámica de Sistemas y de trabajos similares, correspondientes a simuladores de desarrollo de proyectos de software tanto de metodologías ágiles como tradicionales. El modelo se ha construido utilizando la metodología de dinámica de sistemas propuesta por Jay Forrester , que consta de la fase de Conceptualización, Formulación y Evaluación. El modelo diseñado se ha divido en los siguientes Subsistemas: Planificación, Producción, Desarrollo de Tareas, Pruebas de Desarrollo, Pruebas de Integración, Presión en el Plazo, Desarrollo de Tareas Extras, Promociones de R.H., Experiencia de R.H., Cansancio de R.H., Horas Trabajadas de R.H., Inasistencias de R.H. Para la implementación del modelo se utilizado la herramienta Vensim PLE en versión educativa. Para la validación del modelo se han utilizado tres casos de proyectos reales de software que siguieron la metodología Scrum. Dentro de los parámetros que se pueden establecer previo al inicio de cada simulación se encuentran: la duración y la velocidad de cada Sprint, la velocidad estimada de desarrollo de las tareas, Factores de Cansancio, de Presión en el plazo, Cantidad de integrantes del Team según su experiencia en la metodología y las tareas extras que se prevén puedan surgir. A través de la modificación de valores de los parámetros durante su ejecución el usuario puede establecer o modificar la cantidad de integrantes del Team que abandonan el proyecto, clasificar al Team mediante la asociación de estos a su experiencia en Scrum en Juniors o Expertos, cambiar la cantidad de horas estimadas de duración del proyecto, generar horas extras e inasistencia de los integrantes de manera determinística o pseudoaleatoria, entre otros. Una vez validado el modelo se propusieron cuatro casos de experimentación, los cuales se sometieron a distintas políticas para probar las posibilidades del modelo construido frente a situaciones que se dan en los proyectos de software que utilizan Scrum para su gestión. Las políticas propuestas, simulan decisiones de los Scrum Master y el team y tienden a que los proyectos puedan completarse en el tiempo previamente estimado o por el contrario extender el tiempo para terminar con todas las tareas minimizando los errores. Otro aspecto estudiado en los experimentos es el de la gestión de los recursos humanos, en cuanto a la contratación y promoción de miembros del Team, Senior y Junior. Estos modelos fueron probados en orden creciente de dificultad y utilización de la mayor cantidad de variables intervienes. Como conclusión se pude decir que el modelo cumple con su objetivo de ser de utilidad para el Scrum Master y el Team a la hora analizar el efecto del uso conjunto de la metodología Scrum en proyectos de desarrollo de software. Lo que diferencia a este trabajo de otros relacionados es que se han modelado las características esenciales de la metodología Scrum aplicada a proyectos de desarrollo de software. La dificultad de contar con datos posmortem de proyectos de software desarrollados siguiendo scrum es una dificultad que se ha presentado a la hora de validar el modelo. Es por ello que como trabajos futuros se propone el diseño de una base de datos de proyectos de desarrollo de software que utilicen metodologías ágiles. Por otro lado se pretende que el modelo construido pueda ser utilizado para el entrenamiento de Scrum Masters y Miembros del Team, en la estimación y gestión de proyectos que utilicen Scrum como Metodología.

Tesis completa

 

“Estrategia híbrida basada en código y modelos para el desarrollo ágil de Aplicaciones Web”
Autor: Jimbo Pinos Karina
Director: Dr. Rossi Gustavo
Fecha: Mayo 2015

La metodología Mockup-Driven Development (MockupDD) propone utilizar prototipos de interfaz de usuario (usualmente conocidos como Mockups) como artefactos principales de elicitación de requerimientos y modelado en el contexto de un proceso Model-Driven Web Engineering (MDWE). Su proceso se basa en construir estos prototipos de manera obligatoria, temprana y de su posterior anotación al utilizar un microlenguaje de tags. MockupDD propone un enfoque ágil para MDWE, sin embargo, tratar conceptos del lenguaje para implementar requerimientos específicos sigue presentado las mismas dificultades que en los procesos MDWE convencionales: es necesario agregar nuevos elementos al metamodelo y modificar generadores de código. En esta tesis se presenta una estrategia (extensión de MockupDD) que propone agregar características al paradigma MDWE ortodoxo, en donde, cada concepto del lenguaje en lugar de ser inmutable será ejecutable por sí mismo, convirtiéndose en prototipos de implementaciones por defecto, que pueden modificarse según se requiera al utilizar codificación manual – a costas de sacrificar parte o la totalidad de su abstracción. Esto provocará cambios importantes en comparación con la versión de MockupDD original, al plantear una nueva arquitectura de semántica de tags y un alejamiento del paradigma MDWE puro en pos de mejorar la agilidad y la adaptabilidad.

Tesis completa

“Arquitectura de Servicios de Gestión de Políticas empleando protocolos COPS”
Autor: Matteoda Ramiro
Director: Dr. Riesco Daniel
Codirector: Dr. Rossi Gustavo
Fecha: Julio 2015

Dado la necesidad de definir un modelo genérico de gestión de recursos en sistemas distribuidos mediante políticas, la solución que se describe en esta tesis propone una arquitectura de servicios de gestión de políticas utilizando COPS. El modelo planteado tiene como objetivo definir un esquema de negociación de políticas independientemente de la información que estas regulen, tomando como base la arquitectura definida por el IETF y extendiendo su protocolo de comunicación de políticas sobre una arquitectura orientada a servicios que permite lograr un bajo acoplamiento entre el servidor y el cliente. Aprovechando las ventajas del estándar COPS el diseño de políticas presentado es simple, extensible, permite manejar diferentes tipos de políticas sobre diferentes tipos de clientes y agregar nuevas políticas sin redefinir el modelo.

Tesis completa

“Análisis de Algoritmos Para la Generación de Cuadrados Latinos Aleatorios para Criptografía”
Autor: Gallego Sagastume Ignacio
Director: Dra. Pons Claudia
Fecha: Agosto 2015

Existen estructuras algebraicas aplicables en seguridad informática, como los Latin squares (cuadrados Latinos o CLs), con ciertas propiedades que los hacen muy convenientes para implementar protocolos de comunicación seguros y otras aplicaciones criptográficas como algoritmos de cifrado. En particular, son difíciles de adivinar o calcular por fuerza bruta y sirven como claves de un algoritmo de cifrado simétrico. Los CLs aleatorios de orden 256 son de particular importancia, porque permiten cifrar y descifrar cualquier carácter de la tabla ASCII, utilizando un recorrido secuencial a la manera "Off the grid" de Gibson. En un contexto de una aplicación criptográfica como las anteriormente mencionadas (protocolos o algoritmos de cifrado), se debe generar un CL cada cierta cantidad de tiempo o datos transmitidos. Esto no debe representar una sobrecarga de tiempo o recursos, es decir, que el algoritmo de generación debe ser lo más eficiente posible. Es por esto que en el presente trabajo, se analizan distintos algoritmos para generar CLs aleatorios con distribución aproximadamente uniforme. En la primera parte del trabajo, se hace una introducción a la criptografía aplicada, para revisar conceptos que constituyen el contexto de los algoritmos implementados. En el segundo capítulo, se hace una introducción a los CLs y otras estructuras, su historia y problemas relacionados, como el de generar MOLS (Mutually Orthogonal Latin Squares) o generar Sudokus. En el capítulo 3, se estudian diversos enfoques y trabajos relacionados existentes al problema de la generación de CLs aleatorios con distribución uniforme. En el capítulo 4 se desarrolla un método simple de generación secuencial con backtracking que servirá como base para el algoritmo con intercambios aleatorios desarrollado en el capítulo 5. En el capítulo 6 se muestra otro algoritmo con reemplazos. Estos dos últimos algoritmos se comparan luego con una implementación del método más aceptado para resolver el problema de generación de CLs uniformemente distribuidos, el método de Jacobson y Matthews. En el capítulo 7 se estudia una implementación de este último método y se muestra también una implementación en OpenGL que se utiliza para graficar las estructuras de datos del algoritmo de Jacobson y Matthews, la cual puede ser utilizada con fines didácticos. Por último en el capítulo 8 se analizan los resultados obtenidos, trabajo futuro y algunas conclusiones.

Tesis completa

“Integración de bpm en el proceso de requerimientos de software para la modernización de sistemas legados”
Autor: Ortiz Ochoa Mauricio
Director: Dr. Antonelli Leandro
Codirector: Dra. Giandini Roxana
Fecha: Septiembre 2015

El presente trabajo de tesis, tiene como objetivo permitir la integración de BPM en el proceso de requerimientos de software para la modernización de sistemas legados. Esta integración, se logra mediante la formulación y planteamiento de un método que consta de dos etapas denominadas: “identificación de sistemas legados” e “integración de BPM en el proceso de requerimientos”; si bien la interrelación entre las dos etapas es la que permite la integración, se puede inclusive trabajar con cada una de ellas por separado. La etapa de identificación de sistemas legados utiliza el cuadrante de análisis propuesto por Andrew Sage en lo referente a la especificación de prioridades de modernización y lo complementa mediante la formalización de las experiencias del autor en identificación y catalogación de aplicaciones. Por otro lado, la etapa de integración de BPM en el proceso de requerimientos presenta un enfoque innovador al concentrarse únicamente en la primera fase del proceso de software y plantear cuatro tipos de tareas BPMN2 relacionadas específicamente con el análisis del sistema legado en producción y no en el diseño de la solución como plantean la mayoría de autores investigados. Como sustento teórico para la presentación del método, se recopila el estado del arte referente a tres líneas de investigación: sistemas legados, gestión por procesos de negocio y requerimientos de software. El método de integración propuesto en esta tesis, se encuentra fundamentado en dos pilares: en primer lugar, se utiliza el proceso de requerimientos de software sugerido en el Cuerpo del Conocimiento de la Ingeniería de Software y en segundo lugar, se utiliza la generación de modelos conceptuales a partir de notaciones BPMN2; estos modelos conceptuales se convierten en la base para el análisis de requerimientos de software de un sistema legado. La aplicación del método propuesto se evalúa mediante un caso de estudio; el mismo que implementa la propuesta en integral, con la expectativa de identificar los sistemas legados y documentar de una manera formal los diferentes procesos de negocio que se encuentran asociados a las funcionalidades presentes en los sistemas legados.

Tesis completa

“F/OSS para el Reuso: Métricas, Desarrollo de Herramientas y Marco para su Evaluación”
Autor: Ramírez Morales Jorge Federico
Director: Dr. Gil Gustavo Daniel
Codirector: Dr. Rossi Gustavo
Fecha: Septiembre 2015

La disponibilidad de una creciente variedad de Software Libre y de Código Abierto (F/OSS por sus siglas en inglés) distribuidos bajo licencias que permiten explícitamente su modificación y el desarrollo de aplicaciones derivadas, abre nuevas posibilidades para el desarrollo con reutilización. Las características y la información disponible en relación a cada producto de F/OSS es muy heterogénea; no obstante, todas tienen en común la libre disponibilidad del código fuente. Esta tesis presenta nuevas formas de abordar el problema de evaluar y seleccionar productos de F/OSS, centrándose en dos aspectos: La utilización de métricas que pueden obtenerse del código fuente para la evaluación de F/OSS, de modo de caracterizar el diseño general de los productos de software que se consideren para la reutilización. La elaboración de un marco de trabajo para la selección y evaluación de software que sirva de base para una sistematización paulatina de la incorporación de la reutilización de F/OSS en diferentes procesos de desarrollo de software. A partir del estudio de una muestra de 560 versiones diferentes de aplicaciones de F/OSS, y en base al estudio de distribuciones de frecuencia, se proponen umbrales para métricas que reflejan aspectos generales del diseño de una aplicación. Específicamente, se consideran el promedio de la cantidad de métodos por clase y la proporción de referencias a métodos de otras clases respecto del total de métodos definidos en la aplicación. Estas dos medidas se refieren a la aplicación en su conjunto y no a clases o módulos particulares, lo que supone una utilidad diferente de estos valores respecto del papel que cumplen en otros aspectos de la gestión de proyectos de software. En relación al segundo aspecto, se presenta un marco de trabajo en tres etapas, a saber, la detección de oportunidades de reutilización, la búsqueda de recursos candidatos y la selección y evaluación. Este marco es de carácter general, pudiendo adaptarse a diferentes metodologías y contextos de desarrollo. La elaboración del marco parte de la realización de una experiencia de desarrollo con reutilización de F/OSS, la revisión de la literatura relacionada con las temáticas de selección de elementos reutilizables y la evaluación de éstos para su incorporación en nuevos desarrollos. Este marco se aplica posteriormente al desarrollo de una herramienta para computar un conjunto de métricas basadas en el código fuente para dar soporte al proceso de selección de F/OSS para la reutilización tomando en cuenta los umbrales propuestos previamente. De esta forma, se ofrece aquí una base para abordar la reutilización de F/OSS de manera de permitir la sistematización paulatina de esta práctica, brindando un criterio de valoración provisional basado en métricas obtenidas del código fuente.

Tesis completa

 

“Tests de Regresión Automáticos creados por el Usuario Final sobre Ambientes Persistentes Orientados a Objetos”
Autor: Cano Diego
Director: Dra. Gordillo Silvia
Fecha: Octubre 2015

El objetivo de este trabajo es generar un modelo y la implementación de un prototipo como prueba de concepto que permita aumentar la automatización de Tests de Regresión, permitiendo su creación y configuración por parte del usuario final (juegos de datos, operaciones a testear, resultados esperados), reduciendo al mínimo o incluso evitando totalmente la intervención de los programadores y testers. Tanto la selección de la tecnología a utilizar como la detección de los problemas a resolver están basadas proyectos actuales de desarrollo de software de la industria, tal como el Sistema Cuenta Única del Tesoro de la Tesorería General de la Provincia de Buenos Aires.

Tesis completa

“Desarrollo basado en conocimiento siguiendo prácticas ágiles”
Autor: Gimson Saravia Loraine Elizabeth
Director: Mg. Gil Gustavo Daniel
Codirector: Dr. Rossi Gustavo
Fecha: Noviembre 2015

Este trabajo busca poder elaborar una propuesta de prácticas ágiles para el desarrollo basado en Conocimiento, que pueda enriquecer la forma de trabajar con esta última metodología. Para ello se plantea en primer lugar, realizar una investigación bibliográfica tendiente a exponer los fundamentos de diferentes metodologías ágiles propuestas para el desarrollo de sistemas y también realizar paralelamente una recopilación bibliográfica sobre el desarrollo basado en conocimiento. Posteriormente, realizar un relevamiento en Salta Capital tanto en empresas públicas como privadas en sus procesos de desarrollo trabajando con desarrollo basado en conocimiento y realizar un análisis de campo de la información recolectada para elaborar una propuesta de prácticas ágiles para estas organizaciones.

Tesis completa