This Article 
 Bibliographic References 
 Add to: 
Complexity Measures for Rule-Based Programs
October 1994 (vol. 6 no. 5)
pp. 669-680

Software complexity measures are quantitative estimates of the amount of effort required by a programmer to comprehend a piece of code. Many measures have been designed for standard procedural languages, but little work has been done to apply software complexity concepts to nontraditional programming paradigms. This paper presents a collection of software complexity measures that were specifically designed to quantify the conceptual complexity of rule-based programs. These measures are divided into two classes: bulk measures, which estimate complexity by examining aspects of program size, and rule measures, which gauge complexity based on the ways in which program rules interact with data and other rules. A pilot study was conducted to assess the effectiveness of these measures. Several measures were found to correlate well with the study participants' ratings of program difficulty and the time required by them to answer questions that required comprehension of program elements. The physical order of program rules was also shown to affect comprehension. The authors conclude that the development of software complexity measures for particular programming paradigms may lead to better tools for managing program development and predicting maintenance effort in nontraditional programming environments.

[1] E.M. Allen, "YAPS: Yet another production system," Tech. Rep. TR- 1146, Maryland Artificial Intell. Group, Univ. of Maryland, Dept. of Comput. Sci., College Park, MD, USA, Dec. 1983.
[2] J. Bachant and E. Soloway, "The engineering of XCON,"Commun. ACM, vol. 32, pp. 311-318, Mar. 1989.
[3] V. R. Basili, "Recent advances in software measurement," inProc. 12th Int. Conf. Software Eng., 1990, pp. 44-49.
[4] Conte, S.D. et al. 1986.Software Engineering Metrics and Models. Menlo Park, Calif., Benjamin/Cummings.
[5] M. L. Cook, "Software metrics: An introduction and annotated bibliography," inACM SIGSOFT Software Eng. Notes, 1982, pp. 41-60.
[6] V. Côté, P. Bourque, S. Oligny, and N. Rivard, "Software metrics: An overview of recent results,"J. Syst. Software, vol. 8, no. 2, pp. 121-131, Mar. 1988.
[7] N. S. Coulter, "Software science and cognitive psychology,"IEEE Trans. Software Eng., vol. SE-9, no. 2, Mar. 1983.
[8] R. E. Courtney and D. A. Gustafson, "The fallacy of shotgun correlations for software measures," inProc. 22nd Symp. Interface: Comput. Sci. and Statistics, May 1990.
[9] R. E. Courtney and D. A. Gustafson, "Preliminary study of shotgun correlations in software measures," Tech. Rep. TR-CS-90-9, Dept. Computing and Inform. Sci., Kansas State Univ., Manhattan, KS, USA Sept. 1990.
[10] B. Curtis, I. Forman, R. Brooks, E. Soloway, and K. Ehrlich, "Psychological perspectives for software science,"Inform. Processing Mgmt., vol. 20, no. 12, pp. 81-96, 1984.
[11] B. Curtiset al., "Measuring the psychological complexity of software maintenance tasks with the Halstead and McCabe metrics,"IEEE Trans. Software Eng., vol. SE-5, no. 2, pp. 96-104, Mar. 1979.
[12] Neuron Data,Nexpert Object User Documentation, vols. I and II. Palo Alto, CA: Neuron Data, 1987-89.
[13] M. Evangelist, "An analysis of control flow complexity," inProc. Comput. Software Applic. Conf. (IEEE COMPSAC 84), 1984.
[14] C. L. Forgy, "OPS5 user's manual," Tech. Rep. CMU-CS-81-135, Dept. Comput. Sci., Carnegie Mellon Univ., Pittsburgh, PA, USA 1981.
[15] W. B. Frakes and C. J. Fox, "CEST: An expert system function library and workbench for UNIX system/C language,"AT&T Tech. J., pp. 95-106, Mar./Apr. 1988.
[16] J. Giarratano and G. Riley,Expert Systems: Principles and ProgrammingBoston: PWS-Kent, 1989.
[17] M. H. Halstead, "Advances in software science,"Advances in Comput., vol. 18, pp. 119-172, 1979.
[18] W. Harrison, K. Magel, R. Kluczny, and A. DeKock, "Applying software complexity metrics to program maintenance,"IEEE Comput., pp. 65-78, Sept. 1982.
[19] S. Henry and D. Kafura, "The evaluation of software systems' structure using quantitative software metrics,"Software: Practice and Experience, vol. 14, no. 6, pp. 561-573, June 1984.
[20] S. Henry and D. Kafura, "Software structure metrics based on information flow,"IEEE Trans. Software Eng., vol. SE-7, no. 5, Sept. 1981.
[21] R. J. K. Jacob and J. N. Froscher, "A software engineering methodology for rule-based systems,"IEEE Trans. Knowl. Data Eng., vol. 2, pp. 173-189, June 1990.
[22] A. A. Kaposi and Z. Markusz, "Complexity control in logic-based programming,"Comput. J.vol. 28, no. 5, 1985.
[23] J. K. Kearney, R. L. Sedlmeyer, W. B. Thompson, M. A. Gray, and M. A. Adler, "Software complexity measurement,"Commun. ACM, vol. 29, no. 11, pp. 1044-1050, Nov. 1986.
[24] T. McCabe, "A complexity measure,"IEEE Trans. Software Eng., vol. SE-2, no. 4, Dec. 1978.
[25] R. A. McCauley, "Conceptual complexity analysis of logic programs," Ph.D. dissertation, The Center for Advanced Computer Studies, University of Southwestern Louisiana, Lafayette, LA, USA, Spring 1992.
[26] M. B. O'Neal, "Conceptual complexity measures and software maintenance tools for rule-based programs," Ph.D. dissertation, The Center for Advanced Computer Studies, University of Southwestern Louisiana, Lafayette, LA, USA, Dec. 1989.
[27] M. B. O'Neal and W. R. Edwards, "Comprehending rule-based programs: a graph-oriented approach,"Int. J. Man-Machine Studies, vol. 39, pp. 147-175, 1993.

Index Terms:
software metrics; expert systems; software maintenance; software tools; rule-based programs; software complexity measures; quantitative estimates; code understanding; standard procedural languages; software complexity; bulk measures; complexity estimation; program size; rule measures; program difficulty; program development management; software maintenance; software tools; expert systems
M.B. O'Neal, W.R. Edwards, "Complexity Measures for Rule-Based Programs," IEEE Transactions on Knowledge and Data Engineering, vol. 6, no. 5, pp. 669-680, Oct. 1994, doi:10.1109/69.317699
Usage of this product signifies your acceptance of the Terms of Use.