The purpose of the research described within this thesis is to provide information that
can be used to improve the quality of programs and the productivity of the software
industry. To fulfil this purpose, the thesis is concerned with the order in which
software engineers construct solutions to software problems, the factors that influence
the order in which software engineers construct solutions, and the effectiveness of
constructing a solution in a particular order. Control strategies describe the order in
which solutions are constructed. Four empirical studies investigating control strategies
were undertaken to answer the concerns of the thesis.
The aim of the first two studies was to observe the global control strategies
employed by software engineers. The two studies collected verbal reports and
keystroke behaviour of software engineers using Prolog and C. The results showed
that software engineers used a combination of Top-Down control strategies to solve a
software problem. A Children-First Top-Down control strategy was used during the
initial stages of solving a complex sub-problem, while a Depth-First Top-Down control
strategy was used to solve simple sub-problems. Occasionally software engineers
diverged from a Top-Down control strategy. There were eight types of divergences
(such as working pursuing pre-requisites) that frequently occurred within the context of
six different activities (such as making alternations to a solution).
The third study investigated the choice of local control strategies that supplement
global control strategies. When software engineers were presented with a series of subproblems
to complete, they chose to complete the four sub-problems in the order that
they were presented. The software engineers did not choose to pursue the series of
sub-problems in any alternative order, such as the order of Easiest-First, or AnalogiesFirst.
The fourth study investigated the environmental factors that influence the software
engineers' choice of global control strategies. The study also investigated whether
software engineers using the Breadth-First control strategy produced better results than
software engineers using alternative control strategies. Three different text editors were
produced to determine under what circumstance software engineers would use the
Breadth-First control strategy. The editors also recorded the behaviour of the software
engineers. The software engineers would only use the Breadth-First control strategy
when the text editor forced them to follow the Breadth-First control strategy. However,
the performance of the software engineers was better when they were forced to use the
Breadth-First control strategy than when they used their preferred control strategies.
A Doctoral Thesis. Submitted in partial fulfilment of the requirements for the award of Doctor of Philosophy of Loughborough University.