An empirical study on reactive programming.
Bachelor Thesis, Master Thesis
Reactive programming (RP) supports the development of reactive software through dedicated language-level abstractions, like signals and events. Previous research on RP mostly had a programming-languages focus. Researcher extended the available abstractions, made them more interoperable, improved safety using dedicated type systems, and proposed performance optimizations. Over the years, it has been shown that RP overcomes the well-known drawbacks of the Observer design pattern and leads to better software design.
Unfortunately, when it comes to human factors, the state of the things is less clear. There is preliminary evidence that RP do improve program comprehension in controlled experiments that compare developers using RP against a control group using traditional techniques. However, little is known about why this is the case and which reasoning processes developers adopt when facing a program in the RP style.
This kind of research challenges have been tackled before thorough experiments that apply the “think loudly” approach, where developers are required to describe the activities they are doing while coding. Collected data allow one to get interesting insights about how developers work and which mental processes guide their choices.
The candidate will design and run a controlled experiment based on the "think loudly" approach where developers are requested to perform common programming tasks (comprehension, bug fixing, extension of existing functionalities) of reactive applications in the RP and in the traditional style. The collected data will shed light on how RP influences reasoning processes of developers. The thesis will be part of the reactive programming project in the context of the PACE EU project (http://www.pace-erc.eu/).
Expected gain of knowledge
The candidate will gain skills in the design of controlled experiments, statistical analysis of empirical data and development of reactive applications.
- Guido Salvaneschi, Sven Amann, Sebastian Proksch, Mira Mezini: , An Empirical Study on Program Comprehension with Reactive Programming. FSE'14
- Thomas D. LaToza and Brad A. Myers: Developers ask reachability questions. ICSE '10
- Thomas D. LaToza, David Garlan, James D. Herbsleb, and Brad A. Myers.: Program comprehension as fact finding. ESEC-FSE '07
- Thomas D. LaToza, Gina Venolia, and Robert DeLine: Maintaining mental models: a study of developer work habits. ICSE '06