ABSTRACT
This paper demonstrates how the cognitive model of the mind can explain the core fundamentals behind widely accepted design principles. The conclusion is that software design is largely a task of chunking analogies and presents a theory that is detailed enough to be accessible to even the most inexperienced programmer. The corollary of which is a pedagogical approach to understanding design principles rather than the necessity of years of software development experience.
- G. Booch; R. A. Maksimchuk; M. W. Engle; B. J. Young; J. Conallen; K. A. Houston. Object-Oriented Analysis and Design with Applications, Third Edition (2007). Addison-Wesley ISBN 0-201-89551-X Google Scholar
Digital Library
- F. Brooks. No Silver Bullet - Essence and Accidents of Software Engineering (1986). http://www.lips.utexas.edu/ee382c-15005/Readings/Readings1/05-Broo87.pdf.Google Scholar
- G. Cooper. Research into Cognitive Load Theory and Instructional Design at UNSW (1998). http://education.arts.unsw.edu.au/staff/sweller/clt/index.htmlGoogle Scholar
- J. O. Coplien. Multi-Paradigm Design for C++ (2003). Addison-Wesley ISBN 0-201-82467-1. Google Scholar
Digital Library
- N. Cowan. The Magical Number 4 in Short-term Memory: A Reconsideration of Mental Storage Capacity. In Behavioral and Brain Sciences, Vol. 24, No. 1. (February 2001), pp. 87--185. (2001)Google Scholar
- O. Dahl, E. Dijkstra, C. A. R Hoare. Structured Programming (1972). Academic Press. Google Scholar
Digital Library
- A. Didierjean, and F. Gobet. Sherlock Holmes - An expert's view of expertise. In British Journal of Psychology 99: 109--125 (2087).Google Scholar
- D. K. Dirlam. Most efficient chunk sizes. In Cognitive Psychology, 3:355--359, 1972.Google Scholar
Cross Ref
- M. Fowler, K. Beck, J. Brant, and W. Opdyke. Refactoring: Improving the Design of Existing Code (1999). Addison-Wesley ISBN 0-201-48567-2.Google Scholar
- D. Gentner. Structure-mapping: A theoretical framework for analogy. In Cognitive Science, 7, pp 155--170 (1983).Google Scholar
Cross Ref
- F. Gobet. Discrimination Nets, Production Systems and Semantic Networks: Elements of a Unified Framework (1996). http://people.brunel.ac.uk/~hsstffg/papers/UnifiedFramework/UnifiedFramework.html. Google Scholar
Digital Library
- F. Gobet, P. C. R. Lane, S. Croker, P. C-H. Cheng, G. Jones, I. Oliver, and J. M. Pine. Chunking mechanisms in human learning. In TRENDS in Cognitive Sciences, 5, 236--243. (2001).Google Scholar
Cross Ref
- Gamma, Helm, Johnson and Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. (1995). Addison-Wesley ISBN 0-201-63361-2 Google Scholar
Digital Library
- Douglas R. Hofstadter. Analogy as the Core of Cognition. In Dedre Gentner, Keith Holyoak, and Boicho Kokinov (eds.) The Analogical Mind: Perspectives from Cognitive Science, Cambridge, MA: The MIT Press/Bradford Book, 2001, pp. 499--538.Google Scholar
- K. J. Holyoak and P. Thagard. The Analogical Mind (1997). http://cogsci.uwaterloo.ca/Articles/Pages/Analog.Mind.htmlGoogle Scholar
- J. N. MacGregor. Short-term memory capacity: Limitation or optimization? In Psychological Review, 94(1):107--108, 1987.Google Scholar
Cross Ref
- George A Miller. The Magical Number Seven, Plus or Minus Two: Some Limits on Our Capacity for Processing Information. In The Psychological Review, 1956, vol. 63, pp. 81--97 (1956)Google Scholar
- H. Mills, R. Linger, A. Hevner. Principles of Information System Design and Analysis (1986). Academic Press. Google Scholar
Digital Library
- G. Myers. Composite/Structured Design (1978). Van Nostrand Reinhold. Google Scholar
Digital Library
- M. Page-Jones. The Practical Guide to Structured Systems Design (1988). Yourdon Press. Google Scholar
Digital Library
- T. Stafford, M. Webb. Mind Hacks (2004). O'Reilly ISBN 0-596-00779-5Google Scholar
- P. Van den Broek, K. Risden, Y. Tzeng, T. Trabasso, and P. Brasche. Inferential questioning: Effects of comprehension of narrative texts as function of grade and timing. In Journal of Educational Psychology, 93(3): 521--529 (2001).Google Scholar
Cross Ref
- N. Wirth. Program Development by Stepwise Refinement (1983). In Communications of the ACM vol. 26(1). Google Scholar
Digital Library
- N. Wirth. Algorithms and Data Structures (1986). Prentice-Hall. Google Scholar
Digital Library
- E. Yourdon, L. Constantine. Structured Design (1979). Prentice-Hall.Google Scholar
Index Terms
Writing code for other people: cognitive psychology and the fundamentals of good software design principles
Recommendations
Writing code for other people: cognitive psychology and the fundamentals of good software design principles
OOPSLA '09This paper demonstrates how the cognitive model of the mind can explain the core fundamentals behind widely accepted design principles. The conclusion is that software design is largely a task of chunking analogies and presents a theory that is detailed ...
Reading to write code: an experience report of a reverse engineering and modeling course
ICSE-SEET '22: Proceedings of the ACM/IEEE 44th International Conference on Software Engineering: Software Engineering Education and TrainingA substantial portion of any software engineer's job is reading code. Despite the criticality of this skill in a budding software engineer, reading code---and more specifically, techniques on how to read code when integrating oneself into a large ...







Comments