Analyses of software cognitive complexity supported by an automated parsing tool

Date
2012
Journal Title
Journal ISSN
Volume Title
Publisher
Abstract
The cognitive complexity of software is a new approach to the functional and semantic complexity of programs, which is a product of the operational complexity and architectural complexity of software. Software cognitive complexity is an emerging measure for the functional complexity of programs complementing the Line of Code (LOC) and Cyclomatic measures. LOC is a linear size measure that is commonly used by industry as a gauge of software complexity [Chelf & Chou 2008]. It assumes that the larger the software system in LOC, the more complex it is [Jay et al. 2009]. However, theoretical and empirical studies indicate that the actual functional complexity of software is not simply proportional to its LOC. Therefore, cognitive complexity is introduced to reveal programs with identical or similar LOC that may have significant variants in their complexities. To enable the study on cognitive complexity and its automatic calculation, a software tool is developed to parse and measure software cognitive complexity of a set of programs from real-world samples. The data and analysis results demonstrate a variety of attributes of software complexities from the facets of symbolic, cyclomatic, functional and cognitive complexities. The design and implementation of a tool, which provides an efficient analyzer not only for cognitive complexity measurement for practitioners and researches, but also for comparative measurements with classic software complexities of LOC and Cyclomatic features. Essentially, a single tool incorporating known classical complexity measures plus the new form of cognitive complexity measures to ease the process of measuring software complexity by eliminating the need for multiple tools while aggregating the results after analyzing in an automatic batch process. Since this specific form of cognitive complexity measurement is new, a measurement tool is not readily available in the software industry and must be developed for use as part of this software engineering research. Finally, through exploratory case studies and investigations, this thesis has characterized practical low values of software cognitive complexity measure, revealed that Wang's original theoretical experimental results and characterizations are applicable to real world software, and shown the potential use of this measure for some phases of software product life such as in capital phase, and operation and maintenance phases.
Description
Bibliography: p. 156-180
A few pages are in colour.
Keywords
Citation
Chiew, V. N. (2012). Analyses of software cognitive complexity supported by an automated parsing tool (Doctoral thesis, University of Calgary, Calgary, Canada). Retrieved from https://prism.ucalgary.ca. doi:10.11575/PRISM/4962
Collections