ICSE 2024
Fri 12 - Sun 21 April 2024 Lisbon, Portugal
Fri 19 Apr 2024 16:15 - 16:30 at Glicínia Quartin - Evolution 6 Chair(s): Kiev Gama

The use of functional constructs in programming languages such as Python has been advocated to help write more succinct source code, improve parallelization, and reduce side effects. Nevertheless, their usage could lead to understandability issues. This paper reports the results of a controlled experiment conducted with 209 developers to assess the understandability of given Pythonic functional constructs—namely lambdas, comprehensions, and map/reduce/filter functions—if compared to their procedural alternatives. To address the study’s goal, we asked developers to modify code using functional constructs or not, to compare the understandability of different implementations, and to provide insights about when and where it is preferable to use such functional constructs. Results of the study indicate that code snippets with lambdas are more straightforward to modify than the procedural alternatives. However, this is not the case for comprehensions. Regarding the perceived understandability, code snippets relying on procedural implementations are considered more readable than their functional alternatives. Last but not least, while functional constructs may help writing compact code, improving maintainability and performance, they are considered hard to debug. Our results can lead to better education in using functional constructs, prioritizing quality assurance activities, and enhancing tool support for developers.

Fri 19 Apr

Displayed time zone: Lisbon change

16:00 - 17:30
16:00
15m
Talk
Cneps: A Precise Approach for Examining Dependencies among Third-Party C/C++ Open-Source Components
Research Track
Yoonjong Na Korea University, Seunghoon Woo Korea University, Joomyeong Lee Korea University, Heejo Lee Korea University
16:15
15m
Talk
A Study on the Pythonic Functional Constructs' Understandability
Research Track
Cyrine Zid École Polytechnique de Montréal, Fiorella Zampetti University of Sannio, Italy, Giulio Antoniol Ecole Polytechnique de Montreal, Massimiliano Di Penta University of Sannio, Italy
Pre-print
16:30
15m
Talk
Introducing Computer Science Undergraduate Students to DevOps Technologies from Software Engineering Fundamentals
Software Engineering Education and Training
Edgar Sarmiento-Calisaya Universidad Nacional de San Agustín de Arequipa, Alvaro Mamani-Aliaga Universidad Nacional de San Agustín de Arequipa, Julio Cesar Leite Federal University of Bahia (UFBA)
DOI
16:45
15m
Talk
Bridging the Theory-Practice Gap in a Maintenance Programming Course: An Experience Report
Software Engineering Education and Training
Sofia Ouhbi Uppsala University
17:00
7m
Talk
Deductive Software Architecture Recovery via Chain-of-thought Prompting
New Ideas and Emerging Results
Satrio Adi Rukmono , Lina Ochoa Eindhoven University of Technology, Michel Chaudron Eindhoven University of Technology, The Netherlands
17:07
7m
Talk
Reproducibility of Build Environments through Space and Time
New Ideas and Emerging Results
Julien Malka LTCI, Télécom Paris, Institut Polytechnique de Paris, France, Stefano Zacchiroli Télécom Paris, Polytechnic Institute of Paris, Théo Zimmermann Télécom Paris, Polytechnic Institute of Paris
Pre-print
17:14
7m
Talk
APICIA: An API Change Impact Analyzer for Android Apps
Demonstrations
Tarek Mahmud Texas State University, Meiru Che Central Queensland University, Jihan Rouijel Texas State University, Mujahid Khan Texas State University, Guowei Yang University of Queensland
17:21
7m
Talk
RAT: A Refactoring-Aware Tool for Tracking Code History
Demonstrations
Feifei Niu Nanjing University, Junqian Shao Nanjing University, Chaofan Xu Nanjing University, Christoph Mayr-Dorn JOHANNES KEPLER UNIVERSITY LINZ, Wesley Assunção North Carolina State University, Liguo Huang Southern Methodist University, Chuanyi Li Nanjing University, Jidong Ge Nanjing University, Bin Luo Nanjing University, Alexander Egyed Johannes Kepler University Linz