Repository logo
Log In(current)
  1. Home
  2. Works by Students
  3. Senior Projects
  4. Projects by Departments / Programs
  5. Computer and Information Science
  6. Traversing Syntax Trees to Redefine Software Complexity
Details

Traversing Syntax Trees to Redefine Software Complexity

Persistent URL
https://hdl.handle.net/10456/57746
Author(s)
Normile, Jeff
Date Issued
May 3, 2024
Abstract
Given the shortcomings of conventionally used software complexity metrics (LOC, Halstead's metrics, cyclomatic complexity, and cognitive complexity) there is a need for a new complexity metric that more closely approximates the human understanding of what makes a piece of software complex. Using the abstract syntax tree as a means for defining and quantifying the pieces of logic that make up a source code file, as well as the nested relationships between those pieces of logic, allows for a novel way to quantifiably measure what is an otherwise vague and abstract concept. Comparisons between this novel suite of metrics--collected and reported by an open source tool called plexity--and the aforementioned conventional metrics suggest that this approach has the potential to overcome some of the limitations of preceding complexity metrics. An experimental analysis applying this tool to a large, representative piece of open source software (vscode) further sheds light on the utility provided by the plexity tool and the new framework for considering software complexity that it presents. Perhaps most significantly, this perspective on complexity allows developers to apply complexity metrics to a category of languages (JSON, YAML, and TOML, to name a few) that have previously been incapable of being examined using most conventional complexity metrics, allowing researchers and developers alike to more wholistically consider the complexity of the entirety of our software (including configuration, build/deploy workflows, and dependency management) and not just the core logic that drives it.
Major
Software Engineering
Honors
Software Engineering, 2024
First Reader(s)
Kapfhammer, Gregory
Other Reader(s)
Luman, Douglas J.
Department
Computer and Information Science
Type of Publication
Senior Project Paper
Subjects

complexity

software metrics

abstract syntax tree

File(s)
Thumbnail Image
Name

Jeff Normile Senior Thesis.pdf

Size

380.46 KB

Format

Adobe PDF

Checksum (MD5)

9393591bcaef2119cda5c4a8b658ecc5

Allegheny Logo

814-332-4312

dspace-help@allegheny.edu

Built with DSpace-CRIS software - Extension maintained and optimized by 4Science

  • Accessibility settings
  • Privacy policy
  • End User Agreement
  • Send Feedback
Repository logo COAR Notify