Title :
Complexity measures for rule-based programs
Author :
O´Neal, M.B. ; Edwards, W.R., Jr.
Author_Institution :
Dept. of Comput. Sci., Louisiana Tech. Univ., Ruston, LA, USA
fDate :
10/1/1994 12:00:00 AM
Abstract :
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
Keywords :
expert systems; software maintenance; software metrics; software tools; bulk measures; code understanding; complexity estimation; expert systems; program development management; program difficulty; program size; quantitative estimates; rule measures; rule-based programs; software complexity; software complexity measures; software maintenance; software tools; standard procedural languages; Environmental management; Measurement standards; Particle measurements; Programming profession; Size measurement; Software maintenance; Software measurement; Software standards; Software tools; Time measurement;
Journal_Title :
Knowledge and Data Engineering, IEEE Transactions on