Zum Hauptinhalt springen

Eye Tracking in Software Engineering: Past, Present, and Future

Bonita Sharif, Department of Computer Science and Engineering at University of Nebraska - Lincoln

Eye trackers have been used for decades to study how people comprehend visual stimuli. Eye movements are essential to cognitive processes because they focus a person’s visual attention to the parts of a visual stimulus that are processed by the brain. Visual attention triggers cognitive processes that are required to perform such things as comprehension. Program comprehension has only more recently been studied via eye trackers. The current role of eye trackers in software engineering is mainly limited to empirical assessment. This restriction is understandable since the affordability of high-quality eye-tracking equipment is not yet to the level of common computer components. If history of technology evolution is to be our guide, it is perhaps not farfetched to say that in the foreseeable future, eye-tracking technology will become more and more affordable. Eye trackers will then be a common feature on personal computers like web cameras and other peripherals. It is becoming increasingly possible to do things in integrated development environments with a “blink of an eye”, similar to what we do today “by word of mouth or click of a button”. Capturing eye gazes will be as simple as capturing screen shots, videos, or activity logs. Such eye-tracking enabled Integrated Development Environments (IDEs) can offer unique opportunities to software engineering. The talk will cover how eye tracking in software engineering was used in the past, how it is being used now by leveraging iTrace (eye tracking community infrastructure) and a vision of how the technology will be used in the future of software engineering research and practice.

Engineering Software Automatically with Evolutionary Computation

Stephanie Forrest, Biodesign Istitute, Arizona State University

Computer programmers like to think of software as the product of intelligent design, carefully crafted to meet well-specified goals. In reality, large software systems evolve inadvertently through the actions of many individual programmers, often leading to unanticipated consequences. Because software is subject to constraints similar to
those faced by evolving biological systems, we have much to gain by viewing software through the lens of evolutionary biology. The talk will highlight research applying the mechanisms of evolution quite directly to the software, including repairing bugs and runtime optimization.

Illustrated Code: What Software Engineering can Learn from Research Softwar

Andreas Zeller, CISPA Helmholtz Center for Information Security

What do researchers use to evaluate, search, manage data? Software, of course – off the shelf as well as their own programs. From a Software Engineering point of view, such hand-written research software often leaves to be desired: modularity, quality assurance, documentation, configuration management are rarely up to standards – all which makes it hard to reuse code and replicate research results. Still, the research community has brought up a number of tools and practices that the SE community should take very seriously – in fact, a synergy between the best practices of SE and research software could lead to new and better forms of coding. Using interactive demos, I will show how interactive notebooks combine code, documentation, tests. visualizations and interactive tutorials in an elegant and reusable fashion – and go far beyond classical program code.

Andreas Zeller is faculty at the CISPA Helmholtz Center for Information Security and professor for Software Engineering at Saarland University, both in Saarbrücken, Germany. His research on automated debugging, mining software archives, specification mining, and security testing has won several awards for its impact in academia and industry. Zeller is an ACM Fellow, an IFIP Fellow, an ERC Advanced Grant Awardee, and holds an ACM SIGSOFT Outstanding Research Award. His recent textbooks "The Fuzzing Book” and “The Debugging Book” use Jupyter Notebooks extensively to combine code, documentation, and interactive tutorials.