El InCo realiza Computación se Muestra, la primera MUESTRA DE PROYECTOS DE FIN DE CARRERA DE INGENIERÍA EN COMPUTACIÓN de la UdelaR. El objetivo principal es promover el trabajo de los estudiantes realizado en los proyectos de fin de carrera.

Esta muestra, además de permitirle a los estudiantes presentar el trabajo realizado a las empresas invitadas, autoridades universitarias y a la prensa, tiene premios a los mejores trabajos. La evaluación la realiza un tribunal formado por docentes y profesionales destacados.

Fecha: 16 de abril de 2010

Hora: de 17 a 20 horas.

Lugar: Facultad de Ingeniería, Julio Herrera y Reissig 565.

Organiza: Instituto de Computación de Facultad de Ingeniería.

¿Cómo participar?

Si sos estudiante o egresado que defendió su proyecto de grado en los últimos cinco años, puedes participar de la muestra. La organización brindará un panel/stand, una mesa y una toma schuko. Habrá acceso a Internet WiFi para aquellos expositores que lo requieran.

El grupo deberá hacer uso del panel para colocar información como:  nombre de los integrantes del grupo, nombre del proyecto, nombres de los supervisores y un breve resumen del trabajo expuesto. El tamaño máximo utilizable del panel son 86x126cm (ancho x alto). La mesa podrá ser utilizada para hacer una demostración con un pc o notebook (que será traído a la muestra por los expositores), así como, distribuir flyers o volantes con información relevante del proyecto.

¿Por qué participar?

Para mostrar a la industria, colegas y estudiantes la calidad de los trabajos del grado realizados en Computación. Además se busca dar difusión de las actividades del Instituto. Se premiarán los mejores proyectos expuestos (suscripciones a la IEEE, Netbooks, etc.).

Inscripciones

asabigue@fing.edu.uy

Los proyectos que integrarán el evento:

Diseño e implementación de un Honeypot

Autores:

Fernando Cócaro – Mauricio García

Tutores:

Alejandro Blanco – Marcelo Rodríguez

Resumen:

Un honeypot es un señuelo implantado en una red con múltiples propósitos. Por ejemplo, distraer la atención de los atacantes (evitando que comprometan sistemas de valor), proveer alertas tempranas sobre las tendencias de ataques o estudiar las técnicas y herramientas utilizadas para realizarlos. Se clasifican principalmente por la veracidad de los servicios que disponen, denominado nivel de interacción. Dependiendo de sus características la implantación puede ser compleja. El proyecto de grado P2007_0028, Diseño e Implementación de un Honeypot del año 2007, consistió en desarrollar un estudio del arte de la tecnología de honeypots y en la implantación de un honeypot en la Facultad de Ingeniería de la UdelaR.

Desarrollo de un videojuego multijugador de acción

Autores:

Máximo Martínez – Felipe Otamendi

Tutores:

Eduardo Fernández Tomás Laurenzo

Resumen:

El presente informe trata sobre la investigación y desarrollo de un videojuego multijugador de acción llamado Trifulca. El ser multijugador posibilita que varios jugadores puedan participar al mismo tiempo desde distintas computadoras. Por juego de acción se entiende a un juego en el que la interacción ocurre en tiempo real y donde pueden ocurrir múltiples eventos por segundo. La aplicación desarrollada utiliza Internet y las redes locales como medio de comunicación para actualizar el estado del juego en todas las computadoras participantes. Los principales problemas tratados fueron resolver la comunicación entre los participantes en red contemplando restricciones de tiempo, lograr una presentación visual atractiva haciendo uso de hardware dedicado de última generación, y diseñar la interacción y simulación de los objetos del mundo del juego. El juego fue implementado en C++, usando varias bibliotecas de soporte como Bullet Physics para simulaciones físicas, OpenGL para acceder al hardware de gráficos y Lua para scripting. El resultado final consistió en un prototipo avanzado del juego, el cual puede ser extendido y mejorado mediante scripting y creando nuevo contenido artístico en formatos estándares.

Estudio de Open/Free (GNU/Linux) como plataforma de servicios en entornos de red

Autores:

Daniel Caraballo – Mario Madera – Marcelo Odin

Tutores:

Ariel Sabiguero

Resumen:

El Software Libre existe desde los años sesenta y en el mundo se está utilizando a niveles corporativos desde la década de los noventa. Sin embargo, hasta ahora, no existía ningún estudio público académico sobre el mismo adecuado a la realidad empresarial uruguaya. Este proyecto aborda el estudio de la utilización de GNU/Linux y el Software Libre de Código Abierto en el ámbito de las Pequeñas y Medianas Empresas uruguayas como plataforma de acceso legal a tecnologías modernas y a bajo costo. En el mismo, se relevaron los requerimientos de tecnologías de información por parte de las PyMEs en Uruguay y se estudió una taxonomía de Software adecuada a las mismas. Entre las ofertas de productos Open/Free para cada área se determinó la existencia de opciones con buen grado de madurez pudiendo afirmar que GNU/Linux junto a la gran diversidad de Software Libre de Código Abierto existente, presentan una plataforma más que satisfactoria como solución empresarial. También se realizó un estudio técnico en profundidad de dos tecnologías en particular, a saber: Mensajería Instantánea Corporativa y Sistemas de Gestión Empresarial. Es importante destacar que no se compara con otras plataformas sino que se evalúa sólo la viabilidad de GNU/Linux y del software Open/Free como plataforma integral.

IP4JVM: Implementación de servicios de red en IPv6

Autores:

Leandro Scasso – Marcos Techera

Tutores:

Ariel Sabiguero

Resumen:

El trabajo realizado consistió en mejorar y completar un prototipo ya existente que agrega el manejo de stacks de protocolos de red, particularmente IPv6, a la máquina virtual Java. El proyecto IP4JVM consiste en un framework enteramente programado en lenguaje Java, el cual implementa un stack de protocolos y realiza la comunicación con el dispositivo físico de red por medio de una implementación realizada en JNI. Mediante la integración del mencionado stack con una máquina virtual Java se obtuvo una plataforma capaz de interpretar y ejecutar código Java pero que a su vez prescinde de las funcionalidades de red brindadas por el sistema operativo y utiliza las implementadas por el stack. Durante el proyecto se incorporó al stack el soporte del protocolo DHCPv6, así como también la capacidad de operar como router entre diferentes interfaces. Otra funcionalidad agregada sobre el router es la capacidad de realizar NAT IPv6 a IPv6. Otros objetivos desarrollados fueron la construcción de un aplicativo web que permite la configuración del stack de forma dinámica. Asimismo, se estudio la posibilidad de que el proyecto pueda correr en un dispositivo móvil.

Herramientas del Sistema Operativo para combatir el Software Aging

Autores:

Fabricio González – Daniel Pedraja – Agustín Van Rompaey

Tutores:

Ariel Sabiguero – Andrés Aguirre

Resumen:

El hardware falla, no podemos hacer nada al respecto. Diferentes causas hacen que los programas y datos que nosotros almacenamos en medios digitales no sean estáticos y se degraden con el paso del tiempo. Esto ocurre tanto en los medios de almacenamiento, como en los componentes electrónicos del sistema. Estas modificaciones pueden ocasionarse por fallos en el hardware (corrupción de memoria), fallos en el software (un buffer overflow que escribe en un área de memoria que no se espera) u otros motivos. El resultado es que, la imagen que tenemos del software en memoria y la imagen original en disco difieren. A este efecto se lo conoce como software aging. En este trabajo se presenta una herramienta a nivel del sistema operativo que permite mitigar los efectos del software aging causado por errores de hardware en la memoria principal del sistema y su prototipación en el sistema operativo Linux. Se presenta además, un conjunto de experimentos y análisis de resultados, que justifican el grado de cubrimiento de errores que logra la herramienta, su aceptable efecto en la performance general del sistema, la efectividad comparativa de algunas de las estrategias que utiliza y el efecto de la incorporación de las mismas en un ambiente con requerimientos de alta disponibilidad.

Historias clínicas electrónicas

Autores:

Luciana Pazos – María Noel Pérez

Tutores:

Franco Robledo

Resumen:

El proyecto Clinical Core llevó a cabo el diseño e implementación de un núcleo de un sistema de historias clínicas electrónicas, y una aplicación del mismo para un caso de uso real en oftalmología. Las características más destacables del proyecto son: el modelo de datos genérico basado en el ciclo de la atención médica (OpenEHR), que permite el almacenaje de información clínica que en un principio es desconocida; la preservación del anonimato de las personas; la verificación de la integridad y autenticidad de la información mediante el uso de firma digital y sellado de tiempo; el uso de la codificación de enfermedades CIE-10 (Clasificación Internacional de Enfermedades); la validación dinámica de datos; el versionado y auditoría de datos por motivos legales; la generación dinámica de la interfaz de usuario y la internacionalización del sistema.

Aplicación de redes sociales a la educación a través de Internet

Autores:

Yanet Cortés – Alejandra Borghi

Tutores:

Martin Furno – Pablo Rebufello

Resumen:

La Asociación de Psiquiatras del Interior manifestó a EviMed (empresa que brinda servicios informáticos y educativos a médicos) la necesidad de compartir en tiempo real entre colegas las sesiones con algunos de sus pacientes que representan casos clínicos difíciles. Los psiquiatras utilizan en su práctica clínica el dispositivo Cámara de Gesell. Consiste en una habitación dividida por un vidrio de visión unilateral en la que se puede observar sin ser vistos. Influenciados por este dispositivo, se planteó la posibilidad de desarrollar una Cámara de Gesell virtual. La solución propuesta es una aplicación cliente inteligente generalizable que aplica los conceptos ‘Web 2.0’. Permite su aplicación no sólo en este entorno, sino en una amplia diversidad de disciplinas. Permite definir entrevistas, asociar información, emitir videos en vivo para un grupo de usuarios, intercambiar mensajes durante su emisión y publicarlas para ser descargadas posteriormente. La posibilidad de poder interactuar en tiempo real rompiendo barreras geográficas, de como contar con una base de conocimiento que surge de las sesiones compartidas y de otras funcionalidades extras enfocadas a crear información en forma colectiva, permite fortalecer distintos tipos de redes sociales.

Interfaz para herramienta de planificación de recorridos para transporte público

Autores:

Héctor Martínez – Diego Gawenda

Tutores:

Antonio Mauttone – María Urquhart

Resumen:

En la planificación del transporte público se identifica como un problema a resolver el de encontrar un conjunto de recorridos de ómnibus y sus frecuencias asociadas. Para ello existen algoritmos de optimización combinatoria, los cuales requieren ciertos datos de entrada como ser: la red de calles por donde transitan los ómnibus, la demanda de viajes existente, las principales características de la flota de ómnibus y los parámetros del modelo de optimización a ejecutar. En este marco el proyecto consiste en construir una herramienta capaz de representar y manipular gráficamente los recorridos. Para esto la misma debe interactuar con los algoritmos de optimización y con aquella información necesaria para poder ejecutarlos con el fin de comunicar los resultados a los usuarios planificadores. Una parte importante de esa información, es de tipo geográfica. Para su manejo se definió como uno de los requisitos no funcionales que la tecnología de información geográfica a utilizar fuese no propietaria, siendo MapWinGIS la opción seleccionada. La herramienta se divide en tres módulos independientes: 1) construcción de un caso de estudio, 2) manipulación del caso de estudio y 3) alta y baja de los algoritmos. La construcción de un caso de estudio se divide a su vez en tres etapas: zonificación de la ciudad, construcción de la conectividad y cálculo de la matriz de demanda. La manipulación del caso de estudio es el proceso de construcción y evaluación de las soluciones; una solución es un conjunto de recorridos y sus frecuencias asociadas. En este tipo de herramientas es de gran relevancia la interacción con el usuario, por lo tanto se tuvo especial cuidado para que fuese amigable, atractiva y fácil de usar. En este trabajo se utiliza como caso de estudio el sistema de transporte colectivo de la ciudad de Rivera.

Framework for IT Security Training

Autores:

Juan Diego Campo – Lucía Escanellas – Carlos Pintado

Tutores:

Gustavo Betarte – Alejandro Blanco – Marcelo Rodríguez

Resumen:

Este proyecto se encuentra motivado por el desarrollo de una herramienta que asista en la creación de laboratorios de seguridad informática. Dichos laboratorios permiten a los estudiantes asimilar, mediante la práctica, los conceptos adquiridos en los cursos teóricos. Los diferentes laboratorios tratan temas como: criptografía aplicada, monitoreo de redes, seguridad en sistemas operativos, seguridad en aplicaciones, etc. La solución propuesta y desarrollada en este proyecto permite generar ambientes de ensayos que emulan de manera fidedigna los ambientes de producción reales y en los cuales se pueden emplear herramientas comunmente utilizadas en el mercado. La herramienta provee los mecanismos de seguridad, de tal manera que los ambientes generados se encuentran controlados y no comprometen los ambientes de producción de la organización en la cual se ejecuten.

Un caso de estudio en Calidad de Datos para Ingeniería de Software Empírica

Autores:

Bruno Bianchi – Carolina Valverde

Tutores:

Adriana Martota – Diego Vallespir

Resumen:

En este trabajo se presenta un caso de estudio en Calidad de Datos para Ingeniería de Software Empírica. Los datos a analizar son el resultado de un experimento formal llevado adelante en el marco de un proyecto de grado, cuyo objetivo consiste en conocer el rendimiento y costo de diferentes técnicas de verificación unitaria. El presente trabajo busca identificar los aspectos de calidad relevantes en este contexto, así como evaluar la calidad de la información recabada en el experimento, detectando los errores en los datos, y definir y ejecutar procesos de limpieza sobre los mismos. El proceso realizado comienza con un análisis exhaustivo de los posibles errores sobre los datos, identificando tipos de errores. Se definen e implementan las mediciones de calidad a realizar sobre la base de datos, y se establece la forma de registrar los resultados de las mismas. Luego se definen e implementan procesos de limpieza y migración (automáticos y semiautomáticos) con el fin de corregir los errores detectados.

Formalización y Análisis del Modelo de Seguridad de MIDP 3.0.

Autores:

Gustavo Mazeikis

Tutores:

Gustavo Betarte – Carlos Luna

Resumen:

En la Plataforma Java Micro Edition, el Perfil para Dispositivos de Información Móviles (MIDP) provee el ambiente de ejecución estándar para teléfonos celulares. Con el advenimiento de MIDP 3.0 (JSR271), el presente trabajo desarrolla una especificación formal de su modelo de seguridad en el Cálculo de Construcciones Inductivas, usando el asistente de pruebas Coq. En este formalismo se demuestran propiedades de seguridad que debería cumplir toda implementación de MIDP y se propone un algoritmo para autorizar el acceso de una aplicación a recursos de otras aplicaciones. Se demuestra la corrección de dicho algoritmo y se extrae una representación ejecutable del mismo en un lenguaje funcional. En el análisis de la especificación informal de MIDP se observa una debilidad que permite a una aplicación acceder al recurso de otra falsificando una credencial exigida. Se proponen medidas para subsanar esta debilidad.

SIMPP: Librería de Simulación en C++

Autores:

Sebastián Alaggia – Bruno Martínez – Fernando Pardo

Tutores:

Antonio Mauttone, María Urquhart

Resumen:

Simulación a eventos discretos es una técnica del área de Investigación de Operaciones. La idea es experimentar con aquellos modelos que presentan dificultades a la hora de realizar pruebas. Esto puede ocurrir porque es costoso o por falta de acceso al sistema real. SimPP es una biblioteca de simulación a eventos discretos basada en componentes independientes desacoplados, implementada en C++ y capaz de simular sistemas modelados en varios paradigmas de simulación a eventos discretos. Se realizó un estudio del estado del arte en cuanto a herramientas existentes, paradigmas desarrollados hasta el momento, diversas técnicas de diseño e implementación en C++, y librerías externas a utilizar. Luego se definieron requerimientos en base a los cuales SimPP sería construido. El requerimiento fundamental fue crear una herramienta capaz de correr sistemas modelados en varios paradigmas utilizando un calendario y ejecutivo simples. Finalmente se probó SimPP simulando un sistema de transporte público. Para ello se utilizó una técnica de diseño e implementación basada en el refinamiento de componentes a gran escala.

API de alto nivel genérica para desarrollo de aplicaciones de domótica

Autores:

Ken Tenzer – Juan Manuel Picerno

Tutores:

Ariel Sabiguero – Andrés Aguirre

Resumen:

La domótica es el campo que relaciona la automatización, el hogar y la tecnología brindando beneficios a los usuarios de dichos sistemas teniendo en cuenta la seguridad, el confort de las personas y el ahorro energético. Las soluciones existentes de domótica suelen estar altamente acopladas con una tecnología específica, lo cual simplifica la interacción con los distintos dispositivos y dificulta el uso de diversas tecnologías simultáneamente. Este trabajo presenta en sus primeros capítulos el relevamiento del Estado del Arte de la domótica, para introducir al lector al concepto central que es la especificación de una API genérica de domótica. Esta API permite la programación de aplicaciones con un alto grado de portabilidad, implantarse en plataformas con escasas prestaciones y es lo suficientemente genérica para contemplar diferentes interfaces de entrada/salida, así como, protocolos de comunicación heterogéneos. La solución propuesta está basada sobre una plataforma con una arquitectura orientada a servicios desarrollada en Java, llamada OSGi. Tiene en cuenta aspectos de seguridad, evitando dejar vulnerable la privacidad, la autenticación y la autorización sobre los diferentes componentes del sistema. La API permite interactuar con distintas tecnologías de forma homogénea, los cuales incluso pueden estar distribuidos entre varios sistemas. Para mostrar su aplicabilidad se realizó un prototipo para la automatización de un baño en una plataforma con recursos limitados, usando el proyecto Usb4All que permite el control de dispositivos genéricos desde el puerto USB.

Realidad Aumentada e Intefaces Tangibles

Autores:

Ernesto Rodríguez Di Paolo

Tutores:

Eduardo Fernández – Tomás Laurenzo

Resumen:

El proyecto es una investigación en la disciplina conocida como Interacción Persona Computadora. Se profundiza en la interacción basada en realidad aumentada e interfaces tangibles. El objetivo del proyecto es mostrar en qué casos este tipo de interfaces pueden resultar ventajosas en los sistemas interactivos modernos, siendo innecesario disponer de hardware costoso o poco práctico. Para mostrar esto se implementaron prototipos, cada uno atacando problemas específicos de las interfaces basadas en realidad aumentada e interfaces tangibles. Los prototipos fueron estudiados uno a uno, describiendo ventajas y desventajas del uso de los mismos, describiendo su arquitectura y mostrando su potencial en aplicaciones futuras. Finalmente se diseñó e implementó una arquitectura genérica para el desarrollo de aplicaciones de realidad aumentada con soporte de interfaces tangibles, la cual consolida lo investigado en los prototipos previos y sirve como punto de partida para nuevos proyectos.

Construcción de una plataforma de simulación para cadenas de sumnistros

Autores:

Federico Gómez – Alejandro López – Alejandro Scaramelli – Andrés Scaramelli

Tutores:

Alfredo Olivero – Franco Robledo

Resumen:

A medida que evoluciona la tecnología de la información, los participantes de las cadenas de suministros buscan aumentar el beneficio mediante la integración empresarial, compartiendo información y procesos. Las tomas de decisiones se dan en escenarios de alta complejidad, con los que la experimentación no es viable debido a su costo. El medio más adecuado para el soporte de toma de decisiones en este campo es la simulación, al ser flexible y capaz de modelar la realidad dada con bajo costo relativo. Sin embargo, para que una simulación sea exitosa, se requiere tanto de la capacidad e intervención de los miembros de la cadena, como de la calidad de la herramienta utilizada. Muchos de los paquetes de simulación existentes logran integrar aceptablemente los nodos de las cadenas, pero carecen de realismo al simplificar frecuentemente los procesos alejandro [8]. Una tendencia actual de investigación es la de usar simulación comparativa para modelar y evaluar los procesos y decisiones en el contexto de cadenas de suministros, incluso en integración con los sistemas reales de optimización alejandro [4]. Greycon es un proveedor de sistemas de información para la industria de bienes producidos en campañas, que forma parte de la iniciativa nombrada y desea contar con un simulador que represente tal escenario con realismo. Greycon requiere un simulador que soporte eficazmente la toma de decisiones en dicho contexto, y busca contar con un evaluador y comparador de rendimiento para sus algoritmos de optimización. En este proyecto se construye una plataforma de simulación para cadenas de suministros: un sistema que resuelve anticipadamente el modelado de los aspectos comunes de la realidad estudiada, y que es a la vez altamente configurable para soportar procesos de simulación de características variables. La aplicación tiene propiedades de especificidad, potencia visual, interacción manual, interacción con algoritmos de optimización y adaptabilidad al uso. La tecnología utilizada para desarrollarla es Microsoft .NET. La solución es una colaboración de componentes con bajo nivel de acoplamiento y alta independencia y mantenibilidad. El conocimiento funcional de alto nivel de especificidad requerido, ha sido facilitado por el contacto directo con distintos consultores de Greycon. Como última etapa se logra instanciar el modelo con una versión simplificada de una productora de papel de alto porte en Tailandia.

ARCASA – Un framework para la especificación, implementación y aplicación de reglas de control de acceso a Sistemas de Aplicación

Autores:

Andrés Gatto – Rodrigo Martínez

Tutores:

Gustavo Betarte – Felipe Zipitría

Resumen:

El objetivo principal de este proyecto ha sido implementar un framework, que se denomina ARCASA (Aplicación de Reglas de Control de Acceso en Sistemas de Aplicación), para la definición y enforcement de políticas de control de acceso. ARCASA provee dos componentes básicos para la implementación de control de acceso en aplicaciones: por un lado un entorno para la definición de políticas de control de acceso, incluyendo un lenguaje para expresarlas (ARCASA-Leng), su correspondiente intérprete y una consola web que permite gestionar la definición de las mismas. Por otro lado un módulo (ARCASA-AccMod) para la aplicación de las políticas definidas, que es el encargado de asegurar el enforcement y de computar la validez de un intento de acceso a un recurso protegido. Este proyecto ha sido supervisado por docentes del GSI (Grupo de Seguridad Informática) de Facultad de Ingeniería y tiene como contraparte externa la empresa Tilsor S.A.

Interfaz para la integracion del software POLYRATE

Autores:

Alfonso Vicente – Marcos Campot – Jorge Pena

Tutores:

Regina Motz -Laura Coitiño

Resumen:

POLYRATE es un programa que permite el análisis termodinámico de reactivos, productos y estados de transición. Es un producto académico, gratuito para las universidades, muy potente y con diversas áreas de aplicación; pero sin embargo es muy poco amigable. El usuario final debe preparar enormes archivos de entrada en un editor de texto, pasarlos por FTP a un servidor UNIX, ejecutar el programa POLYRATE y recuperar las salidas, o verificar que cometió un error y debe comenzar de nuevo. La productividad con POLYRATE es muy baja. Durante el proyecto se desarrolló la herramienta PolyGUI: un frontend amigable, totalmente basado en metadatos y con reglas de negocio extensibles que permiten validar mediante restricciones la correctitud de la entrada antes de procesar el trabajo. PolyGUI cuenta con una ayuda contextual, las reglas de negocio detectan los errores on-the-fly, y un backend que reside en el servidor UNIX interactúa con POLYRATE y abstrae al usuario de esta tarea.