Título: Especificación y diseño de feedback háptico vibrotáctil
Los sentidos del tacto humano están incorporados en interacciones con dispositivos de hardware y software desde el comienzo. Sin embargo, en la medida que el paradigma de interacción basada en pantallas fue cobrando fuerza, el tacto pareció pasar a un segundo o tercer plano sólo necesario para presionar teclas, mover ratones y, luego, tocar pantallas. En la actualidad, con nuevos paradigmas de interacción y mayores capacidades tecnológicas, muchos dispositivos de uso masivo incorporan hardware que puede estimular la percepción táctil de las personas usuarias. Y las proyecciones de mercado prevén saltos de varios órdenes de magnitud en el futuro cercano. Sin embargo, las herramientas conceptuales y metodológicas para incorporar esas capacidades en el proceso de la ingeniería de software aún son limitadas. En este tutorial presentamos una brevísima introducción sobre funcionamiento del tacto en las personas y los componentes básicos de una interfaz háptica. Luego presentamos criterios, métodos y herramientas para la especificación, diseño y programación de interacciones vibro-táctiles en dispositivos móviles.
Andrés Rodriguez
Disertante: Andrés Rodríguez es Profesor de la Facultad de Informática de la Universidad Nacional de La Plata (UNLP), Argentina. Tiene un Doctorado en Ciencias Informáticas, un Máster en Ingeniería de Software y un título de Diseño Industrial, todos por la UNLP. En los últimos 20 años ha participado como docente en grado y posgrado e investigador en numerosos proyectos del Centro LIFIA, además de coordinar el Área de Transferencia de Tecnología. Es Coordinador Académico de la Especialización en Tecnología, Diseño y Evaluación de Interacciones Humano Computadora de la UNLP. Además, se desempeña como profesor de la Maestría en Tecnología y Estética de Arte Interactivo en la Universidad de Tres de Febrero. Ha desarrollado y publicado trabajos de investigación en temas de Interacción Humano Computadora, Diseño de Experiencias de Usuario y Arte Electrónico Interactivo durante más de 20 años. En la actualidad sus temas de interés se enfocan en los procesos de ideación y bocetado de interacciones hápticas y la relación de diseño de Experiencia de Usuario con métodos ágiles de desarrollo de software.
Título: Desarrollo de Dispositivos IoT: desafíos para profesionales de la Ingenieria de Software
Desarrollar dispositivos IoT es difícil tanto en lo que hace al hardware como al firmware. El firmware se ejecuta sobre el hardware y el hardware sin firmware no hace nada. Por lo general, los desarrolladores de dispositivos IoT adoptan o desarrollan una plataforma de hardware configurable única que se puede personalizar para diferentes requisitos en diferentes áreas: comunicación, fuente de alimentación, sensores, actuadores y una unidad de procesamiento. La unidad de procesamiento suele ser un SoC (System on Chip) que incluye un procesador de propósito general y otros módulos cercanos al hardware. El desarrollo de firmware se vuelve fundamental para las organizaciones en el negocio de IoT y presenta desafíos que solo pueden resolverse utilizando las prácticas actuales de ingeniería de software (SE).
El desarrollo de firmware trata con restricciones estrictas no funcionales que afectan memoria, comunicación y duración de la batería, mientras que se ocupa de diferentes áreas de la funcionalidad esperada, como: configuración de diseño de pines, parámetros de tiempo de ejecución, controladores, almacenamiento de memoria, sistema de archivos, requisitos de procesamiento concurrentes , cliente basado en la nube, servidores de red o actualizaciones de firmware inalámbricas.
Las restricciones no funcionales hacen que el desarrollo del firmware sea único. Este tutorial mostrará aspectos relevantes del desarrollo de dispositivos IoT que los Ingenieros de Software enfrentan a diario. El tutorial se centrará en dos escenarios diferentes en el campo de la tecnología agrícola (AgTec): producción de frutas al aire libre y producción hidropónica en interiores.
Federico Balaguer
Disertante: Federico Balaguer Balaguer es el Gerente General de Stream S.A. Tiene un Ph.D. en Ciencias de la Computación de la Universidad de Illinois en Urbana-Champaign. Tiene más de 25 años de experiencia en la industria del software como desarrollador, líder de proyecto y gerente de producto. Fue uno de los líderes del proyecto del middleware (Ginga.ar) de la plataforma Argentina de TV Digital. También es profesor asistente que imparte cursos de pregrado y posgrado en Ingeniería de Software e IoT.
Título: Una mirada al interior de la cabeza de los programadores: Midiendo la comprensión de un programa con neuroimágenes y seguimiento ocular
¿Cómo piensan los programadores? ¿Cómo se convierten los novatos en programadores competentes? ¿Cómo podemos observarlos en su camino? ¿Podemos ayudarlos a superar los obstáculos? Con la programación convirtiéndose en la cuarta alfabetización, estas y otras preguntas similares son cada vez más importantes. Este tutorial presentará enfoques sobre cómo se pueden responder tales preguntas de una manera confiable y válida. Además, destacará el estado de la investigación empírica en ingeniería de software, y cómo las técnicas de neuroimagen pueden arrojar más luz sobre los procesos cognitivos de la programación.
Janet Siegmund
Disertante: Janet Siegmund es profesora de Ingeniería de Software en la Universidad Tecnológica de Chemnitz. Antes de eso, dirigió el grupo de investigación junior PICCARD, financiado por el Centro de Digitalización de Baviera. Recibió su Ph.D. de la Universidad de Magdeburg en 2012 y tiene dos maestrías, una en Ciencias de la Computación y otra en Psicología. En su investigación, se centra en el factor humano en la ingeniería de software, por ejemplo, al escribir código fuente. Janet Siegmund es coautora de más de 30 publicaciones en revistas, conferencias y talleres. Periódicamente es miembro del comité de programa de conferencias y workshops. De 2014 a 2017, formó parte del comité directivo de la International Conference on Program Comprehension.
Título: El uso del lenguaje natural en Ingeniería de Requerimientos
La etapa de Ingeniería de Requerimientos es una de las etapas más críticas en el Desarrollo de Software. Los errores cometidos en los requerimientos requieren de mucho esfuerzo para resolverlos si son identificados en etapas subsiguientes. Existen artefactos ampliamente difundidos para describir requerimientos como por ejemplo Use Cases, User Stories. Estos artefactos definen el alcance y los objetivos de un sistema de software. Además de requerimientos, existe conocimiento que toma la forma de por ejemplo Business Rules o Scenarios given-then-when. Este conocimiento esta generalmente distribuido entre una gran variedad de expertos del dominio, los cuales poseen puntos de vista diferentes y complementarios. Así, es muy importante involucrar tanto expertos como sea posible con el fin de adquirir y validar el conocimiento. Ahora bien, los expertos del dominio y los equipos de desarrollo utilizan diferentes lenguajes. Mientras que los expertos usan lenguaje natural con expresiones específicas de su disciplina, los equipos de desarrollo necesitan de formalismos como los mencionados antes (UC, US, BR, Scenarios). Es muy importante compartir un lenguaje natural en común para mejorar la comunicación. Sin embargo, el lenguaje natural adolece de inconvenientes como: ambigüedad, falta de precisión, etc… Este tutorial proveerá algunos artefactos y técnicas para hacer frente a este problema.
Leandro Antonelli
Disertante: Leandro Antonelli es profesional informático con intereses en ingenieria de software, procesos de desarrollo de software, gestión de proyectos y especialmente ingeniería de requerimientos. Obtuvo su Doctorado en Ciencias de la Computación en la Universidad Nacional de La Plata, y también posee certificaciones de la industria (PMP del Project Management Institute y Scrum master de la Agile Alliance). Es profesor en varias materias de grado y postgrado en la Universidad Nacional de La Plata, Universidad Abierta Interamericana y varias otras universidades. Es investigador del centro LIFIA de la UNLP. Y también posee experiencia en la industria, habiendo participado en diferentes roles del desarrollo de software a lo largo de 25 años de experiencia en organizaciones privadas y públicas, incluso realizando actividades de mentoring y dictando seminarios.
Título: Ingeniería de Software en la Era DevOps
DevOps es uno de los temas más populares en la industria de software en la actualidad. Todos los principales proveedores de software tienen algún tipo de oferta “DevOps”. Esta popularidad trae algo de confusión y hace que alguna gente no tenga en claro aún qué es DevOps. Al mismo tiempo, varias de las cuestiones que promueve el movimiento DevOps incluyen prácticas para despliegue y manejo de infraestructura que han sido tradicionalmente ignoradas por los libros y cursos de Ingeniería de Software. Este tutorial presenta los fundamentos de DevOps junto con sus prácticas centrales y su relación con el cuerpo de conocimiento de la Ingeniería de Software.
Nicolas Paez
Disertante: Nicolas Paez es Ingeniero en Informática de la Universidad de Buenos Aires. Reparte su tiempo entre la industria y la academia realizando tareas de desarrollo, docencia e investigación. Es profesor en UBA y UNTREF. Ha realizado una especialización en Tecnología Informática Aplicada a la Educación y ha publicado varios artículos y libros en el área de Ingeniería de Software. Tiene +20 años de experiencia trabajando en la industria de software. Ha trabajado como desarrollador, arquitecto, líder de proyecto y coach. Actualmente trabaja como consultor independiente ayudando a equipos a mejorar sus prácticas de software delivery.