Cognition in Software Engineering: A Taxonomy and Survey of a Half-Century of Research

01/14/2022
by   Fabian Fagerholm, et al.
0

Cognition plays a fundamental role in most software engineering activities. This article provides a taxonomy of cognitive concepts and a survey of the literature since the beginning of the Software Engineering discipline. The taxonomy comprises the top-level concepts of perception, attention, memory, cognitive load, reasoning, cognitive biases, knowledge, social cognition, cognitive control, and errors, and procedures to assess them both qualitatively and quantitatively. The taxonomy provides a useful tool to filter existing studies, classify new studies, and support researchers in getting familiar with a (sub) area. In the literature survey, we systematically collected and analysed 311 scientific papers spanning five decades and classified them using the cognitive concepts from the taxonomy. Our analysis shows that the most developed areas of research correspond to the four life-cycle stages, software requirements, design, construction, and maintenance. Most research is quantitative and focuses on knowledge, cognitive load, memory, and reasoning. Overall, the state of the art appears fragmented when viewed from the perspective of cognition. There is a lack of use of cognitive concepts that would represent a coherent picture of the cognitive processes active in specific tasks. Accordingly, we discuss the research gap in each cognitive concept and provide recommendations for future research.

READ FULL TEXT

page 15

page 18

page 19

page 20

page 21

page 22

research
05/05/2021

Software Engineering for Blockchain Based Software Systems: Foundations, Survey, and Future Directions

Many scientific and practical areas have shown increasing interest in re...
research
04/18/2021

Classifications of the Summative Assessment for Revised Blooms Taxonomy by using Deep Learning

Education is the basic step of understanding the truth and the preparati...
research
03/01/2021

Investigating the potential impact of values on requirements and software engineering

This paper describes an investigation into value-based software engineer...
research
08/12/2021

Operationalizing Human Values in Software Engineering: A Survey

Human values, such as inclusion and diversity, are defined as what an in...
research
02/20/2022

Direct assessment of individual connotation and experience: An introduction to cognitive-affective mapping

We introduce cognitive-affective maps (CAMs) as a novel tool to assess i...
research
03/26/2018

SEAT: A Taxonomy to Characterize Automation in Software Engineering

Reducing cost and time required to build high quality software is a majo...
research
10/22/2010

A Partial Taxonomy of Substitutability and Interchangeability

Substitutability, interchangeability and related concepts in Constraint ...

Please sign up or login with your details

Forgot password? Click here to reset