Source Code Rejuvenation Is Not Refactoring

  • Authors:
  • Peter Pirkelbauer;Damian Dechev;Bjarne Stroustrup

  • Affiliations:
  • Department of Computer Science and Engineering, Texas A&M University, College Station 77843-3112;Department of Computer Science and Engineering, Texas A&M University, College Station 77843-3112;Department of Computer Science and Engineering, Texas A&M University, College Station 77843-3112

  • Venue:
  • SOFSEM '10 Proceedings of the 36th Conference on Current Trends in Theory and Practice of Computer Science
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

Abstract

Programmers rely on programming idioms, design patterns, and workaround techniques to make up for missing programming language support. Evolving languages often address frequently encountered problems by adding language and library support to subsequent releases. By using new features, programmers can express their intent more directly. As new concerns, such as parallelism or security, arise, early idioms and language facilities can become serious liabilities. Modern code sometimes benefits from optimization techniques not feasible for code that uses less expressive constructs. Manual source code migration is expensive, time-consuming, and prone to errors.In this paper, we present the notion of source code rejuvenation, the automated migration of legacy code and very briefly mention the tools we use to achieve that. While refactoring improves structurally inadequate source code, source code rejuvenation leverages enhanced program language and library facilities by finding and replacing coding patterns that can be expressed through higher-level software abstractions. Raising the level of abstraction benefits software maintainability, security, and performance.