Date of Award
Doctor of Philosophy
Software complexity is an indicator of expected future maintenance and sustainability. Excessive complexity suggests that software or a component of software has a design or implementation that is difficult to understand, modify, and maintain. Several complexity measures have been developed by researchers to identify and characterize degrees of complexity. Code smells are widely adopted as indicators for low code quality. Many studies have adopted fixed threshold values for code smells and other quality metrics. These fixed threshold values often ignore the uniqueness of each software system and the unique roles each component play. Moreover, these thresholds are largely fixed throughout the software development lifecycle. Complexity frameworks that adopt fixed thresholds do not adequately consider variations in development technologies and the architectural roles of various code and design elements. This is a significant limitation particularly at this period where software platforms, middleware, and contexts are going through a rapid period of flux.
This dissertation reports on a novel software complexity metrics that adopts dynamic threshold values. This approach ensures that the derived metrics are uniquely tailored for the software under development, sensitive to the architectural roles played by modules and that the metrics and their thresholds can dynamically evolve throughout the software lifecycle. This research is motivated by the following hypoThesis: Sustainability metrics that are derived from software designs provide a better characterization of codebase quality and sustainability than traditional metrics. This dissertation presents two main contributions as follows.
The first contribution is a study that proposes novel complexity metrics derived from the software design. In order to establish a fundamental foundation for these metrics, a theoretical and practical evaluation is performed. The theoretical evaluation is performed using Weyuker's nine properties to ensure the validity and correctness of the proposed metrics. The results demonstrate that the design-driven complexity metrics satisfy all of Weyuker's properties. An empirical evaluation is achieved by investigating correlations between the proposed design complexity metrics and other existing contemporary measures, such as code smells and technical debt.
The second contribution is a set of mathematical formulas that calculates fuzzy metrics that adopt dynamic thresholds. These formulas enable an extensive empirical evaluation of these fuzzy metrics against data extracted from experts' evaluations. This empirical study demonstrates that fuzzy metrics are significantly more aligned with human expert evaluators than existing methodologies. Developing accurate software quality frameworks can significantly improve how organizations manage their ever-increasing codebases and can provide effective guidance to practitioners as they refactor and reengineer their software systems.
Received from ProQuest
Masmali, Omar, "Towards the Development of a Cohesive Design-Driven Code Quality Metrics" (2020). Open Access Theses & Dissertations. 3180.