High-impact Refactoring Based on Architecture Violations

Software refactoring has been identified as a key technique for the maintenance and evolution of object-oriented systems. Most interesting are high-impact refactorings, that is, refactorings that have a strong impact on the quality of the system's architecture. "Bad smells " and code metrics have been suggested as means for identifying refactoring needs. According to our experience these techniques are useful yet, in order to spot opportunities for high-impact refactorings, they should be complemented with the analysis of architectural violations. The subject of this report is a mid-sized Java enterprise application from the telecommunications domain whose functionality had to be radically extended We show how we combined several tools and techniques to identify' opportunities for high-impact refactorings, and discuss the resulting architecture, the refactoring process, tool support as well as related experiences

[1]  Rudolf K. Keller,et al.  Fit for Change: Steps towards Effective Software Maintenance , 2005, ICSM.

[2]  Rachel Harrison,et al.  An overview of object-oriented design metrics , 1997, Proceedings Eighth IEEE International Workshop on Software Technology and Engineering Practice incorporating Computer Aided Software Engineering.

[3]  John Crupi,et al.  Core J2EE Patterns: Best Practices and Design Strategies , 2001 .

[4]  David Notkin,et al.  Software Reflexion Models: Bridging the Gap between Design and Implementation , 2001, IEEE Trans. Software Eng..

[5]  David Osborne,et al.  J2EE AntiPatterns , 2003 .

[6]  Joshua Kerievsky,et al.  Refactoring to Patterns , 2004, XP/Agile Universe.

[7]  René L. Krikhaar,et al.  A two-phase process for software architecture improvement , 1999, Proceedings IEEE International Conference on Software Maintenance - 1999 (ICSM'99). 'Software Maintenance for Business Change' (Cat. No.99CB36360).

[8]  Shari Lawrence Pfleeger,et al.  Software Metrics : A Rigorous and Practical Approach , 1998 .

[9]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[10]  van der Wmp Wil Aalst,et al.  Workflow data patterns , 2004 .

[11]  Tom Mens,et al.  A survey of software refactoring , 2004, IEEE Transactions on Software Engineering.

[12]  S. Berner,et al.  Observations and lessons learned from automated testing , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..