Tom Mullen

Writing Code For Other People

OOPSLA 2009 — ACM SIGPLAN Notices

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.

A Software Complexity Metric Based On Cognitive Principles

Unpublished

The metric is a measure of the cost of understanding software and can be evaluated at all levels of the code (from expression/statement through to library/application). A working prototype has been validated against manufactured examples for refactoring, design patterns and cohesion levels. The suggestion is that the metric could be used as part of an approach to automate a large part of refactoring and software design.

Analysing Open Source Software to Better Understand Long Term Memory Structures in the Human Brain

PPIG 2024 — 35th Annual Workshop — Psychology of Programming Interest Group

As AI models become larger, replicating long term memory structures (LTM-S) may produce the same benefits that evolution provided the human brain (efficiency, performance, and extensibility). At the heart of this paper is the conjecture that software structures are close representations of LTM-S. If this is true, then open source can be considered a huge database of easily searchable LTM-S examples that could assist in a deeper understanding of the same. The paper proposes a general refactoring algorithm based around two elements of LTM-S, chunks and analogies. The underlying aim is to develop mechanisms and theories to analyse the analogical and chunking structures employed in software.