Adding control-flow to a visual data-flow representation

Previous studies have shown that novices do not tend to extract or use data-flow information during program comprehension. However, for impact analysis and similar tasks, data-flow information is necessary and highly relevant. Visual data-flow programming languages, such as Prograph/CPX, have been commercially successful, suggesting that they provide effective data-flow representations. To explore data-flow representations for program comprehension, we augment Prograph data-flow programs with control-flow features to determine the effects on comprehension. We hypothesize that combined control/data-flow representations will aide comprehension better than data-flow alone. To validate this hypothesis, we present the results of an experiment comparing three combined representations against a data-flow only representation. While the addition of control-flow was found to be beneficial, the complexity of the representations plays an important role. Complex and highly detailed control-flow, although perceived as useful, is less effective when combined with data-flow, than less detailed and less complex control-flow descriptions. This finding suggests a tradeoff exists between a representation's content and complexity. We found a nested representation describing inter-method control-flow to be the most effective for supporting program comprehension.