Cognitive Complexity of Software and its Measurement
Yingxu Wang · 2006
The estimation and measurement of functional complexity of software are an age-long problem in software engineering. The cognitive complexity of software presented in this paper is a new measurement for cross-platform analysis of complexities, sizes, and comprehension effort of software specifications and implementations in the phases of design, implementation, and maintenance in software engineering. This paper reveals that the cognitive complexity of software is a product of its architectural and operational complexities on the basis of deductive semantics and the abstract system theory. Ten fundamental basic control structures (BCS's) are elicited from software architectural and behavioral specifications and descriptions. The cognitive weights of those BCS's are derived and calibrated via a series of psychological experiments. Based on this work, the cognitive complexity of software systems can be rigorously and accurately measured and analyzed. Comparative case studies demonstrate that the cognitive complexity is highly distinguishable in software functional complexity and size measurement in software engineering