Refactoring for software migration

  • Authors:
  • D. Mancl

  • Affiliations:
  • Lucent Technol. Bell Labs., Murray Hill, NJ

  • Venue:
  • IEEE Communications Magazine
  • Year:
  • 2001

Quantified Score

Hi-index 0.25

Visualization

Abstract

Refactoring can be an important ingredient in the strategy for development and evolution of complex telecommunications software systems. Refactoring is one way to reuse and extend a successful software system. This article presents some design tactics that will assist a development team when they choose evolution from an existing software system over building a completely new system from the ground up. Strictly speaking, the refactoring process changes only the internal design of the software. Refactoring does not add any new functionality. However, the goal of refactoring work is to pave the way for the software to be modified and extended more easily. The simplest example of redesign is the creation of simple “wrapper classes” that contain groups of functions extracted from the legacy code. More complex design patterns are also useful when attempting to improve the design. Developers usually divide the redesign work into stages so that each stage can be implemented and tested separately. This article describes a real-world example of this approach that shows how refactoring improved the design of a wireless base station controller product