Now we are going to look at why the cognitive model drives software design.
The gateway to an expanse of information the size of a planet (LTM) is a four window portal (STM). Adding to, or retrieving from, LTM can only be performed through the four windows. In something akin to Google Earth, the windows can contain big items (countries, states, cities) or zoom in to fine grain items such as words on a book. How-ever, only one item (chunk) can be pulled in to each window at any time and, unless rehearsed, they will float back down to the web of LTM and soon dis-appear from our conscious.
The topics we desire to learn are interconnected elements like balls of spaghetti. In traditional topics, such as physics, teachers unravel and reshape the complex connections and feed it to students so that it fits through STM and has a good chance of reshaping into something useful on the other side (LTM). For the software application, design principles influence the programmer to create a spaghetti ball that is already reshaped and unravelled. Indeed the ideal situation would be that the application could be simply poured through the portal, where the only limitation was the flow rate (the time taken to commit to memory). The less complex the translation between the software code and the structure of the LTM network, the less likelihood of mistakes by a new reader in formulating (i.e. understanding and learning) and therefore the less likelihood in needing to restructure their memory network
If we accept Fred Brooks postulate that current high-level languages have evolved to their limit and If we also surmise that the evolution of languages and design principles has been driven by the desire to make code easier to understand, then by Darwinian argument we have the following conjecture.......