Title: Specification and design of vibrotactile haptic feedback
The senses of human touch are interwoven with the use of interactive hardware from the beginning. However, as the screen-based paradigm gained strength, touch seemed to move into the background, only necessary to press keys, move mice, and tap screens. Currently, new interaction paradigms and greater technological capabilities drive the inclusion of haptic hardware in mass use devices. Market projections foresee growth of several orders of magnitude in that direction. However, the conceptual and methodological tools to incorporate these capabilities into the software engineering process are still limited. In this tutorial, we present a very brief introduction to the human sense of touch and the basic components of a haptic interface. Then we present criteria, methods, and tools for the specification, design, and programming of vibrotactile interactions in mobile devices.
Speaker: Andrés Rodríguez is a Professor at Facultad de Informática, Universidad Nacional de La Plata (UNLP), Argentina. He holds a Ph.D. in Computer Science, a Master’s in Software Engineering, and a degree in Industrial Design, all from UNLP. In the last 20 years, he has been affiliated with the LIFIA Research Center at UNLP, where he teaches and conducts research on HCI and software engineering. He has been in charge of the LIFIA Area of Technology Transfer for 15 years. He is now the Academic Coordinator of the Graduate Degree in Technology, Design, and Evaluation of Human-Computer Interactions at UNLP. In addition, he teaches at the Master’sDegree in Technology and Aesthetics of Interactive Art at the University of Tres de Febrero. He has published research papers on the topics of Human-Computer Interaction, User Experience Design, and Interactive Art. Currently, his research interests focus on the ideation and sketching processes of haptic interactions and the relationship between User Experience design and agile software development methods.
Title: Developing IoT Devices: challenges for the Software Engineer
Developing IoT (Internet of Things) Devices is hard in both: Hardware and Firmware. The Firmware runs on top of the Hardware and it’s essential for the Hardware to work. Usually, IoT Devices developers adopt or develop a unique configurable hardware platform that can be customized to different requirements in different areas: Communication, Power Source, Sensors, Actuators, and a Processing Unit. The Processing unit is usually a SoC (System on Chip) that packs a general-purpose Processor and other almost bare-metal modules.
Firmware development becomes core to organizations in the IoT business and presents challenges that can only be solved using current Software Engineering (SE) practices.
Firmware development handles strict non-functional constraints on memory, communication, and battery life while it deals with different areas of the expected functionality such as: pin-layout configuration, run-time parameters, drivers, memory storage, file system, concurrent processing requirements, Cloud-based client, network servers, or over-the-air firmware updates.
Non-functional constraints make the firmware development unique. This tutorial will show relevant aspects of the IoT devices development that SE practitioners face on a daily basis. The tutorial will focus on two different scenarios in the Agriculture Technology (AgTec) field: outdoor fruit production and indoor hydroponic production.
Speaker: Federico Balaguer Balaguer is the CEO of Stream S.A. He holds a Ph.D. in Computer Science from the University of Illinois at Urbana-Champaign. He has more than 25 years of experience in the software industry as developer, project leader and product manager. He was one of the project leaders of the Argentinian Digital TV middleware (Ginga.ar). He is also an Assistant Professor teaching undergraduate and graduate courses on Software Engineering and IoT.
Title: A Look into Programmers’ Heads: Measuring Program Comprehension with Neuro-Imaging and Eye Tracking
How do programmers think? How do novices become proficient programmers? How can we observe them on their path? Can we help them to overcome obstacles? With programming becoming the 4th literacy, these and similar questions are of rising importance. This talk presents approaches to how such questions can be answered in a reliable and valid way. Furthermore, it highlights the status of empirical research in software engineering, and neuroimaging techniques can shed more light on the cognitive processes of programming.
Speaker: Janet Siegmund is a professor of Software Engineering at the Chemnitz University of Technology. Prior to that, she led the junior research group PICCARD, funded by the Centre Digitisation, Bavaria. She received her Ph.D. from the University of Magdeburg in 2012 and she holds two master’s degrees, one in Computer Science and one in Psychology. In her research, she focuses on the human factor in software engineering, for example, when writing source code. Janet Siegmund is the co-author of more than 30 peer-reviewed journal, conference, and workshop publications. She regularly serves as a program committee member for conferences and workshops. From 2014 to 2017, she was on the steering committee of the International Conference on Program Comprehension.
Title: The use of natural language in Requirements Engineering
Requirements engineering is one of the most critical stages in software development. Errors committed in the requirements require a lot of effort to fix in further stages. Beyond the requirements described as Use Cases or User Stories that define the scope and goal of a software system, there is a lot of knowledge (business rules or given-then-when scenarios) necessary to include in the software application. This knowledge is generally widespread among experts of the domain with different and complementary points of view. Thus, it is important to involve as many experts as possible to acquire their knowledge and validate among them. Experts and IT teams use different languages. While experts use natural language with expression very specifics of the domain, IT teams frequently use formalisms and technical language distant from the experts. Thus, it is very important to share a common natural language to foster their communication. Nevertheless, the natural language has some issues such as ambiguity, lack of precision, etc… This tutorial will provide some artifacts and techniques to cope with this problem.
Speaker: Leandro Antonelli is a computer science professional. His interests are software engineering, software process development, project management, and requirements engineering. He has received a Doctor’s degree in Computer Science from Universidad de La Plata, and he also holds certifications from industry (PMP from the Project Management Institute and Scrum master from the Agile Alliance). He is a professor in several undergraduate and graduate courses at Universidad Nacional of La Plata, Universidad Abierta Interamericana and many other universities. He is a researcher at LIFIA center of UNLP. He has also experience in the industry, having participated in different roles in software development for more than 25 years in private and government organizations, as well as performing mentoring and delivering seminars.
Title: Software Engineering in the DevOps Era
DevOps is one of the mainstream topics in the software industry nowadays. All the important software vendors have some kind of DevOps offering today. This popularity brings some confusion and for many people it is not completely clear yet what DevOps is. At the same time, some of the concerns of the DevOps movement include practices for deployment and infrastructure management that have traditionally been ignored in Software Engineering courses and textbooks. This tutorial presents the DevOps foundations along with its core practices and its relation to the Software Engineering Body of Knowledge.
Speaker: Nicolas Paez is a Software Engineering practitioner and professor. He shares his time between the industry and academia. He teaches Software Engineering at Universidad de Buenos Aires and Universidad Nacional de Tres de Febrero. He has published several articles and books about Agile Software Development. He has +20 years of experience working in the software industry. He has worked as developer, project leader, architect and coach. He currently works as an independent consultant helping teams to improve their software delivery practices.