Modularity is a fundamental concept in software engineering with deep roots in human cognition. However, to date few studies of the cognitive roots of modularity have been carried out. To contribute to filling this gap, we examine memory, abstraction and conceptual categorization as viewed in cognitive psychology. We clarify the connections between those topics and hierarchical decomposition. Using them as a basis, we propose a view of software modules as cohesive and structured representations of conceptual categories geared to facilitate reasoning along multiple levels of abstraction. We examine some features of the object-oriented paradigm and point out strengths and limitations in how mainstream object-oriented languages match the cognitive needs of software developers. We conclude by mentioning some future work that may bring insights on the language features to strive for in the next wave of technology adoption.
|Title of host publication||Psychology of Programming Interest Group|
|Publication status||Published - 1 Jan 2011|
|Event||PPIG2011: Psychology of Programming Interest Group Annual Conference - |
Duration: 1 Jan 2011 → …
|Conference||PPIG2011: Psychology of Programming Interest Group Annual Conference|
|Period||1/01/11 → …|