Effects of refactoring legacy protocol implementations: a case study

We report on our experience of applying collaboration-based protocol design in combination with software refactoring as enabling technologies for re-engineering legacy protocol implementations. We have re-engineered a subsystem of a large enterprise communications product. The subsystem implements a standards-based communication protocol with numerous proprietary extensions. Due to many enhancements which the code has undergone, it showed clear signs of design degradation. The business purpose of the re-engineering project was to improve intelligibility and changeability of the code without changing or breaking existing functionality and without imposing a significant performance penalty. We used the re-engineering effort as experimental context for evaluating the enabling technologies. This article reports on our findings and discusses why collaboration-based protocol design in combination with software refactoring worked well in achieving success with our re-engineering effort.