Título: Especificação e design de feedback háptico vibrotátil
Os sentidos do toque humano estão entrelaçados com o uso de hardware interativo desde a concepção inicial desses dispositivos. No entanto, à medida que o paradigma baseado em tela ganhou força, o toque parece ter sido relegado a segundo plano, tendo seu uso restrito ao ato de pressionar teclas, mover mouses e tocar nas telas. Atualmente, novos paradigmas de interação e uma maior capacidade tecnológica tem impulsionado a inclusão de hardware háptico em dispositivos de uso em massa. As projeções de mercado preveem um crescimento de várias ordens de magnitude nessa direção. Entretanto, as ferramentas conceituais e metodológicas para incorporar essas capacidades ao processo de engenharia de software ainda são limitadas. Neste tutorial, apresentamos uma breve introdução ao sentido do tato humano e aos componentes básicos de uma interface háptica. Em seguida, apresentamos critérios, métodos e ferramentas para a especificação, projeto e programação de interações vibrotáteis em dispositivos móveis.
Andrés Rodriguez
Palestrante: Andrés Rodríguez é Professor da Faculdade de Informática da Universidade Nacional de La Plata (UNLP), Argentina. É doutor em Ciência da Computação, mestre em Engenharia de Software e bacharel em Design Industrial, todos pela UNLP. Ele tem atuado nos últimos 20 anos como professor em cursos de graduação e pós-graduação e pesquisador em inúmeros projetos do LIFIA Research Center na UNLP, onde também tem coordenado a Área de Transferência de Tecnologia nos últimos 15 anos. Atualmente, é Coordenador Acadêmico da Pós-Graduação em Tecnologia, Design e Avaliação da Interação Humano-Computador na UNLP. Além disso, atua como professor do Mestrado em Tecnologia e Estética de Arte Interativa pela Universidade de Tres de Febrero. É autor de diversos artigos científicos sobre os temas de Interação com Computador Humano, Design de Experiência do Usuário e Arte Eletrônica Interativa. Atualmente seus temas de interesse se concentram nos processos de ideação e esboço de interações hápticas e na relação do design da Experiência do Usuário com métodos ágeis de desenvolvimento de software.
Título: Desenvolvendo Dispositivos IoT: desafios para o Engenheiro de Software
Desenvolver dispositivos IoT (Internet das Coisas) é difícil tanto em termos de Hardware quanto Firmware. O Firmware é executado sobre o Hardware e é essencial que o Hardware funcione. Normalmente, os desenvolvedores de dispositivos IoT adotam ou desenvolvem uma plataforma de hardware configurável única, que pode ser personalizada para diferentes requisitos em diferentes áreas: comunicação, fonte de energia, sensores, atuadores e uma unidade de processamento. A unidade de processamento geralmente é um SoC (System on Chip) que contém um processador de uso geral e outros módulos bare-metal.
O desenvolvimento de firmware torna-se fundamental para as organizações na área de IoT e apresenta desafios que só podem ser resolvidos por meio do uso das práticas atuais de Engenharia de Software. O desenvolvimento de firmware lida com restrições não-funcionais de memória, comunicação e vida útil da bateria, enquanto lida com diferentes áreas, tais como: configuração de layout de pinos, parâmetros de tempo de execução, drivers, armazenamento de memória, sistema de arquivos, requisitos de processamento paralelo, clientes baseados em nuvem, servidores de rede ou atualizações de firmware over-the-air.
Restrições não funcionais tornam o desenvolvimento de firmware único. Este tutorial apresentará aspectos relevantes do desenvolvimento de dispositivos IoT que os profissionais de Engenharia de Software enfrentam cotidianamente. O tutorial se concentrará em dois cenários diferentes no campo da Tecnologia Agrícola (AgTec): produção de frutas ao ar livre e produção hidropônica interna.
Federico Balaguer
Palestrante: Federico Balaguer é o CEO da Stream S.A. Ele é Ph.D. em Ciência da Computação pela Universidade de Illinois em Urbana-Champaign. Ele tem mais de 25 anos de experiência na indústria de software como desenvolvedor, líder de projeto e gerente de produto. Foi um dos líderes do projeto de middleware de TV Digital Argentina (Ginga.ar). Ele também é Professor Assistente de cursos de graduação e pós-graduação em Engenharia de Software e IoT.
Título: Um olhar sobre a cabeça dos programadores: medindo compreensão de programas com neuroimagem e rastreamento ocular
Como os programadores pensam? Como novatos se tornam programadores proficientes? Como podemos observá-los em sua trajetória? Podemos ajudá-los a superar obstáculos? Com a programação se tornando a quarta alfabetização, essas e outras questões semelhantes são de importância crescente. Esta palestra apresenta abordagens de como tais questões podem ser respondidas de forma confiável e válida. Além disso, destaca o status da pesquisa empírica em engenharia de software, e como as técnicas de neuroimagem podem lançar mais luz sobre os processos cognitivos de programação.
Janet Siegmund
Palestrante: Janet Siegmund é professora de Engenharia de Software na Chemnitz University of Technology, na Alemanha. Anteriormente, ela liderou o grupo de pesquisa PICCARD, financiado pelo Centre Digitalization, Baviera. Ela recebeu seu Ph.D. pela Universidade de Magdeburg em 2012 e possui dois mestrados, um em Ciência da Computação e outro em Psicologia. Em sua pesquisa, ela se concentra no fator humano na engenharia de software, por exemplo, na escrita de código-fonte. Janet Siegmund é coautora de mais de 30 publicações de periódicos, conferências e workshops. Ela atua regularmente como membro de comitê de programa em conferências e workshops. De 2014 a 2017, ela atuou no comitê diretivo da ICPC – International Conference on Program Comprehension.
Título: O uso de linguagem natural na Engenharia de Requisitos
A engenharia de requisitos é uma das etapas mais críticas no desenvolvimento de software. Erros cometidos nos requisitos exigem muito esforço para serem corrigidos em etapas posteriores. Além dos requisitos descritos como Casos de Uso ou Histórias de Usuários que definem o escopo e o objetivo de um sistema de software, há muito conhecimento (regras de negócios ou cenários Given-Then-When) necessário a incluir em aplicações de software. Esse conhecimento é geralmente difundido entre especialistas do domínio com pontos de vista diferentes e complementares. Assim, é importante envolver o maior número possível de especialistas para adquirir seus conhecimentos e validar entre eles. Especialistas e equipes de TI usam linguagens diferentes. Enquanto especialistas utilizam linguagem natural em que expressam de modo específico o domínio de aplicação, equipes de TI frequentemente utilizam formalismos e linguagem técnica, que estão de certo modo distantes dos especialistas. Assim, é muito importante compartilhar uma linguagem natural comum para promover a comunicação entre os envolvidos. No entanto, a linguagem natural apresenta alguns problemas tais como ambiguidade, falta de precisão, etc… Este tutorial fornecerá alguns artefatos e técnicas para lidar com esse problema.
Leandro Antonelli
Palestrante: Leandro Antonelli é um profissional de ciência da computação. Seus interesses são engenharia de software, desenvolvimento de processos de software, gerenciamento de projetos e engenharia de requisitos. É Doutor em Ciência da Computação pela Universidad de La Plata e também possui certificações da indústria (PMP e Scrum Master). Ele é professor em vários cursos de graduação e pós-graduação na Universidad Nacional de La Plata, Universidad Abierta Interamericana e outras universidades. É pesquisador do centro LIFIA da UNLP. Ele também tem vasta experiência na indústria, tendo atuado em diferentes funções no desenvolvimento de software por mais de 25 anos em organizações privadas e governamentais, além de realizar mentoria e ministrar seminários.
Título: Engenharia de Software na Era DevOps
DevOps é um dos principais tópicos da indústria de software na atualidade. Os mais importens players globais desenvolvem e oferecem serviços de DevOps. Essa popularidade traz alguma confusão e para muitas pessoas ainda não está completamente claro o que é DevOps. Ao mesmo tempo, algumas das preocupações do movimento DevOps incluem práticas de implantação e gerenciamento de infraestrutura, que tradicionalmente eram ignoradas em cursos e livros didáticos de Engenharia de Software. Este tutorial apresenta os fundamentos do DevOps juntamente com suas principais práticas e sua relação com o Corpo de Conhecimento de Engenharia de Software (Software Engineering Body of Knowledge).
Nicolas Paez
Palestrante: Nicolas Paez é professor de Engenharia de Software e também atua na indústria. Ele ensina Engenharia de Software na Universidad de Buenos Aires e na Universidad Nacional de Tres de Febrero. Publicou vários artigos e livros sobre Agile Software Development. Ele possui mais de 20 anos de experiência atuando na indústria de software. Trabalhou como desenvolvedor, líder de projeto, arquiteto e coach. Ele atualmente trabalha como consultor independente ajudando equipes a melhorar suas práticas de entrega de software.