MEASURING THE PSYCHOLOGICAL COMPLEXITY OF SOFTWARE MAINTENANCE TASKS WITH THE HALSTEAD AND MCCABE METRICS

被引:138
作者
CURTIS, B
SHEPPARD, SB
MILLIMAN, P
BORST, MA
LOVE, T
机构
[1] Information Systems Programs, Space Division, General Electric Company
[2] Advanced Systems Development Group, Information Services Business Division, General Electric Company, Rockville
关键词
Index Terms-Commenting complexity metrics documentation Halstead; s E human factors in software engineering McCabe; s v(G) mnemonic variable names modern programming practices modifications software science structured programming;
D O I
10.1109/TSE.1979.234165
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Three software complexity measures (Halstead‘s E, McCabe's u(G),, and the length as measured by number of statements) were compared to programmer performance on two software maintenance tasks. In an experiment on understanding, length and u(G) correlated with the percent of statements correctly recalled. In an experiment on modification, most significant correlations were obtained with metrics computed on modified rather than unmodified code. All three metrics correlated with both the accuracy of the modification and the time to completion. Relationships in both experiments occurred primarily in unstructured rather than structured code, and in code with no comments. The metrics were also most predictive of performance for less experienced programmers. Thus, these metrics appear to assess psychological complexity primarily where programming practices do not provide assistance in understanding the code. Copyright © 1979 by The Institute of Electrical and Electronics Engineers, Inc.
引用
收藏
页码:96 / 104
页数:9
相关论文
共 33 条
[1]  
Putnam L.H., Measurement data to support sizing, estimating and control of the software life cycle, Proc. COMPCON '78, (1978)
[2]  
Halstead M.H., Natural laws controlling algorithm structure, SIGPLANNotices, 7, pp. 19-26, (1972)
[3]  
A theoretical relationship between mental work and machine chine language programming
[4]  
Software physics: Basic principles
[5]  
Elements of Software Science, (1977)
[6]  
Fitzsimmons A.B., Love L.T., A review and evaluation of software science, ACM Computing Surveys, 10, pp. 3-18, (1978)
[7]  
Funami Y., Halstead M., A software physics analysis of Akiyama's debugging data
[8]  
Cornell L., Halstead M.H., Predicting the number of bugs expected in a program module, Comput. Sci. Dep., Purdue University, Tech. Rep. CSD-TR-205, (1976)
[9]  
Halstead M.H., Using the methodology of natural science to understand software, Comput. Sci. Dep., Purdue University, Tech. Rep. CSD-TR-190, (1976)
[10]  
Gordon R.D., Halstead M.H., An experiment comparing FORTRAN programming times with the software physicshy-pothesis, Comput. Sci. Dep., Purdue University, Tech. Rep. CSD-TR-167, (1975)