Deriving modernity signatures of codebases with static analysis

Chris Admiraal, Wouter van den Brink, Marcus Gerhold, Vadim Zaytsev*, Christian Zubcu

*Corresponding author for this work

Research output: Contribution to journalArticleAcademicpeer-review

1 Citation (Scopus)
133 Downloads (Pure)

Abstract

This paper addresses the problem of determining the modernity of software systems by analysing the use of new language features and their adoption over time. We propose the concept of modernity signatures to estimate the age of a codebase, naturally adjusted for maintenance practices, such that the modernity of a regularly updated system would be above that of a more recently created one which neglects current features and best practices. This can provide insights into coding practices, codebase health and the evolution of software languages. We present case studies on PHP and Python code, demonstrating the effectiveness of modernity signatures in determining the age of a codebase without executing the code or performing extensive human inspection. The paper describes the technical implementation details of generating the modernity signature for both of these languages, including the use of existing tools like the PHP parser and Vermin. The findings suggest that modernity signatures can aid developers in many ways from choosing whether to use a system or how to approach its maintenance, to assessing usefulness of a language feature, thus providing a valuable tool for source code analysis and manipulation.
Original languageEnglish
Article number111973
JournalThe Journal of systems and software
Volume211
DOIs
Publication statusPublished - 1 May 2024

Keywords

  • Coupled evolution
  • Software evolution
  • Programming language adoption

Fingerprint

Dive into the research topics of 'Deriving modernity signatures of codebases with static analysis'. Together they form a unique fingerprint.

Cite this