Methods for improving controlled experimentation in software engineering

Within the past decade Computer Science researchers have begun to use controlled experimentation to address questions of human factors in the programming process. However, some of this work has been criticized for lack of experimental controls, insufficient sample sizes, and questionable generality. In a study of 160 student and professional programmers, several key biographical factors have been identified which account for a large proportion of performance variation on typical experimental tasks. The study has implications for subject selection and interpretation of results in software experimentation. Our findings should lead to improved experimental design and analysis techniques with increased confidence in the results of software psychology studies.

[1]  Ruven E. Brooks,et al.  Using a behavioral theory of program comprehension in software engineering , 1978, ICSE '78.

[2]  Larry Weissman,et al.  Psychological complexity of computer programs: an experimental methodology , 1974, SIGP.

[3]  Earl Chrysler,et al.  Some basic determinants of computer programming productivity , 1978, CACM.

[4]  Peter R. Newsted,et al.  Grade and ability predictions in an introductory programming course , 1975, SGCS.

[5]  E BrooksRuven Studying programmer behavior experimentally , 1980 .

[6]  Ruven E. Brooks,et al.  Studying programmer behavior experimentally: the problems of proper methodology , 1980, CACM.

[7]  Ben Shneiderman,et al.  Experimental investigations of the utility of detailed flowcharts in programming , 1977, CACM.

[8]  Ben Shneiderman,et al.  Experimental testing in programming languages, stylistic considerations and design techniques , 1975, AFIPS '75.

[9]  Bill Curtis,et al.  Modern Coding Practices and Programmer Performance , 1979, Computer.

[10]  John D. Gould,et al.  An Exploratory Study of Computer Program Debugging1 , 1974 .

[11]  Tom Love,et al.  An experimental investigation of the effect of program structure on program understanding , 1977, Language Design for Reliable Software.

[12]  David W. Embley,et al.  Empirical and formal language design applied to a unified control construct for interactive computing , 1978 .

[13]  Tom Moher,et al.  Methodology and experimental research in software engineering , 1982 .