So here it is. Four years in the making and it is now available. If you are suffering from insomnia one evening and need something that will put you straight to sleep here it is. In full and unabridged attached to this past is my final PhD thesis.
This thesis examines software inspections application in a non-traditional use through examining the cognitive levels developers demonstrate while carrying out software inspection tasks. These levels are examined in order to assist in increasing developers’ ability to understand, maintain and evolve software systems.
The results from several empirical studies carried out are presented. These indicate several important findings: student software developers find structured reading techniques more helpful as an aid than less structured reading techniques, while professional developers find the more structured techniques do not allow their experience to be applied to the problem at hand; there is a correlation between the effectiveness of a software inspection and an inspector’s ability to successfully add new functionality to the inspected software artefact; the cognitive levels that student developers functioned at while carrying out software inspection tasks were at higher orders of thinking when structured inspection techniques were implemented than when unstructured techniques were applied.
From the empirical results a mapping has been created of several software inspection techniques to the cognitive process models they support and the cognitive levels, as measured using Bloom’s Taxonomy that they facilitate. This mapping is to understand the impact carrying out a software inspection has upon a developer’s cognitive understanding of the inspected system.
The knowledge and understanding of the findings of this research has culminated in the creation of a code reading methodology to increase the cognitive level software developers operate at while reading software code. The reading methodology distinguishes where in undergraduate and software developer training courses different software inspection reading techniques are to be implemented in order to maximise a software developer’s code reading ability dependent upon their experience level.