ABSTRACT
Cognitive load theory proposes a framework to characterize the mental effort employed by individuals in their tasks. To properly measure the cognitive load of a certain activity, it is important to know its drivers, which may vary according to the nature of this activity. We report, in this paper, initial results of an investigation of the cognitive load drivers of software evolution activities. After analyzing the content of semi-structured interviews conducted with members of a software maintenance team, we found a set of problems and difficulties they experience when evolving software systems. Based on this set, we mapped a preliminary version of cognitive load drivers of software evolution activities.
- Jorge Luis Nicolas Audy. 2007. Desenvolvimento distribuído de software. Elsevier.Google Scholar
- Brian P Bailey and Shamsi T Iqbal. 2008. Understanding changes in mental workload during execution of goal-directed tasks and its application for interruption management. ACM Transactions on Computer-Human Interaction (TOCHI) 14, 4 (2008), 1–28.Google ScholarDigital Library
- Tobias Baum, Kurt Schneider, and Alberto Bacchelli. 2019. Associating working memory capacity and code change ordering with code review performance. Empirical Software Engineering 24 (2019), 1762–1798.Google ScholarDigital Library
- Ned Chapin, Joanne E Hale, Khaled Md Khan, Juan F Ramil, and Wui-Gee Tan. 2001. Types of software evolution and software maintenance. Journal of software maintenance and evolution: Research and Practice 13, 1 (2001), 3–30.Google ScholarCross Ref
- Igor Crk, Timothy Kluthe, and Andreas Stefik. 2015. Understanding programming expertise: an empirical study of phasic brain wave changes. ACM Transactions on Computer-Human Interaction (TOCHI) 23, 1 (2015), 1–29.Google ScholarDigital Library
- Rafael de Mello, José Aldo da Costa, Benedito de Oliveira, Márcio Ribeiro, Baldoino Fonseca, Rohit Gheyi, Alessandro Garcia, and Willy Tiengo. 2021. Decoding Confusing Code: Social Representations among Developers. In 2021 IEEE/ACM 13th International Workshop on Cooperative and Human Aspects of Software Engineering (CHASE). 11–20. https://doi.org/10.1109/CHASE52884.2021.00010Google ScholarCross Ref
- Adriano de Souza, Fernanda dos Santos, Lidvaldo dos Santos, Patrick Belém, Sírius da Silva, Adriana Vivacqua, and Rafael de Mello. 2023. Investigando a Percepção de Feedback em Times de Desenvolvimento de Software: Um Estudo Inicial. In Anais do VIII Workshop sobre Aspectos Sociais, Humanos e Econômicos de Software. SBC, 91–100.Google Scholar
- Sarah Fakhoury, Yuzhan Ma, Venera Arnaoudova, and Olusola Adesope. 2018. The effect of poor source code lexicon and readability on developers’ cognitive load. In Proceedings of the 26th Conference on Program Comprehension. 286–296.Google ScholarDigital Library
- Lucian José Gonçales, Kleinner Farias, and Bruno C da Silva. 2021. Measuring the cognitive load of software developers: An extended Systematic Mapping Study. Information and Software Technology 136 (2021), 106563.Google ScholarDigital Library
- Daniel Helgesson, Emelie Engström, Per Runeson, and Elizabeth Bjarnason. 2019. Cognitive load drivers in large scale software development. In 2019 IEEE/ACM 12th International Workshop on Cooperative and Human Aspects of Software Engineering (CHASE). IEEE, 91–94.Google ScholarDigital Library
- Makrina Viola Kosti, Kostas Georgiadis, Dimitrios A Adamos, Nikos Laskaris, Diomidis Spinellis, and Lefteris Angelis. 2018. Towards an affordable brain computer interface for the assessment of programmers’ mental workload. International Journal of Human-Computer Studies 115 (2018), 52–66.Google ScholarCross Ref
- Shannon L Marlow, Christina N Lacerenza, and Eduardo Salas. 2017. Communication in virtual teams: A conceptual framework and research agenda. Human resource management review 27, 4 (2017), 575–589.Google Scholar
- Claudio Nascimento and Rafael de Mello. 2022. Investigating the Perception of Success in Software Projects Among Developers from a Brazilian Software Company. In Anais do XXV Congresso Ibero-Americano em Engenharia de Software. SBC, 173–187.Google Scholar
- Fred GWC Paas and Jeroen JG Van Merriënboer. 1994. Instructional control of cognitive load in the training of complex cognitive tasks. Educational psychology review 6 (1994), 351–371.Google Scholar
- Jherson Haryson A Pereira, Alberto Luiz Oliveira Tavares de Souza, and Victor Hugo Santiago C Pinto. 2021. Cognitive Load Analyzer: A Support Tool for Cognitive-Driven Development. In Proceedings of the XXXV Brazilian Symposium on Software Engineering. 468–473.Google ScholarDigital Library
- Ita Richardson, Valentine Casey, John Burton, and Fergal McCaffery. 2010. Global software engineering: A software process approach. Collaborative software engineering (2010), 35–56.Google Scholar
- Per Runeson, Martin Host, Austen Rainer, and Bjorn Regnell. 2012. Case study research in software engineering: Guidelines and examples. John Wiley & Sons.Google ScholarDigital Library
- Leonardo Sousa, Anderson Oliveira, Willian Oizumi, Simone Barbosa, Alessandro Garcia, Jaejoon Lee, Marcos Kalinowski, Rafael de Mello, Baldoino Fonseca, Roberto Oliveira, 2018. Identifying design problems in the source code: A grounded theory. In Proceedings of the 40th international conference on software engineering. 921–931.Google ScholarDigital Library
- John Sweller. 2011. Cognitive load theory. In Psychology of learning and motivation. Vol. 55. Elsevier, 37–76.Google Scholar
- Robert K Yin. 2016. Pesquisa qualitativa do início ao fim. Penso Editora.Google Scholar
Index Terms
- Investigating the Cognitive Load Drivers of Software Evolution Activities
Recommendations
Cognitive load drivers in large scale software development
CHASE '19: Proceedings of the 12th International Workshop on Cooperative and Human Aspects of Software EngineeringSoftware engineers handle a lot of information in their daily work. We explore how software engineers interact with information management systems/tools, and to what extent these systems expose users to increased cognitive load. We reviewed the ...
Measuring the cognitive load of software developers: An extended Systematic Mapping Study
Abstract Context:Cognitive load in software engineering refers to the mental effort users spend while reading software artifacts. The cognitive load can vary according to tasks and across developers. Researchers have measured ...
Software evolution and maintenance
FOSE 2014: Future of Software Engineering ProceedingsSuccessful software requires constant change that is triggered by evolving requirements, technologies, and stakeholder knowledge. This constant change constitutes software evolution. Software evolution has gained steadily in importance and recently ...
Comments