Supporting Software Sustainability by Using Software Complexity Metrics to Inform Code Reviews
DescriptionSoftware sustainability is critical for Computational Science and Engineering (CSE) software. One factor that impacts software sustainability is the complexity of the source code. We present a technique for considering cyclomatic complexity during code reviews. We discuss the impacts of complexity on the maintainability and sustainability of software, including complexity proposed by a pull request and complexity already present in the code base. Through several real-world example pull requests, we examine how this technique applies to pull requests of different sizes, for both pull requests that primarily add new functionality, and some which primarily modify existing functionality. While presenting our results, we will also introduce a GitHub Action that we developed to automate our metric collection. Rather than strictly limiting software complexity, we focus on ensuring expert developers are aware of where complexity currently exists and would be added via a pull request. Then it is possible to make informed decisions to limit complexity, and also mitigate the impacts of complexity, for example through documentation and testing.
TimeWednesday, June 2815:00 - 15:30 CEST
Applied Social Sciences and Humanities