DYNAMISM IN REFACTORING CONSTRUCTION AND EVOLUTION - A Solution based on XML and Reflection

Raúl Marticorena, Yania Crespo

Abstract

Current available refactoring tools, even stand-alone or integrated in development environments, offer a static set of refactoring operations. Users (developers) can run these refactorings on their source codes, but they can not adjust, enhance, evolve them or even increase the refactoring set in a smooth way. Refactoring operations are hand coded using some support libraries. The problem of maintaining or enriching the refactoring tools and their libraries are the same of any kind of software, introducing complexity dealing with refactoring, managing and transforming software elements, etc. On the other hand, available refactoring tools are mainly language dependent, thus the effort to reusing refactoring implementations is enormous, when we change the source code programming language. This paper describes our work on aided refactoring construction and evolution based on declarative definition of refactoring operations. The solution is based on frameworks, XML and reflective programming. Certain language independence is also achieved, easing migration from one programming language to another, and bringing rational support for multilanguage development environments.

References

  1. Burmester, S., Giese, H., Niere, J., Tichy, M., Wadsack, J. P., Wagner, R., Wendehals, L., and Zündorf, A. (2003). Tool Integration at the Meta-Model Level within the FUJABA Tool Suite. In Proc. of the Workshop on Tool-Integration in System Development (TIS), Helsinki, Finland, Satellite Event of the joint Conferences ESEC/FSE 2003, pages 51-56.
  2. Crespo, Y. (2000). Incremento del potencial de reutilización del software mediante refactorizaciones. PhD thesis, Universidad de Valladolid. Available at http://giro.infor.uva.es/docpub/crespo-phd.ps.
  3. Fayad, M., Schmidt, G., and Johnson, R. (1999). Building Applications Frameworks: Object-oriented Foundations of Framework Design. Wiley Computer Publishing.
  4. Fowler, M. (2000). Refactoring. Improving the Design of Existing Code. Addison-Wesley.
  5. Frenzel, L. (2006). The Language Toolkit: An API for Automated Refactorings in Eclipse-based IDEs. Eclipse Magazine.
  6. Gamma, E., Helm, R., Johnson, R., and Vlissides, J. (1995). Design Patterns. Elements of Reusable Object-Oriented Software. Addison-Wesley.
  7. Inc., D. E. (2007). Refactor Pro for Visual Studio .NET.
  8. JetBrains (2006). IntelliJ IDEA :: The Most Intelligent Java IDE. http://www.jetbrains.com/idea/. Java IDE.
  9. Kniesel, G. (2006). A Logic Foundation for Conditional Program Transformations. Technical Report IAI-TR2006-1, Computer Science Department III, University of Bonn.
  10. Mendoc¸a, N. C., Maia, P. H. M., Fonseca, L. A., and Andrade, R. M. C. (2004). RefaX: A Refactoring Framework Based on XML. In 20th IEEE International Conference on Software Maintenance (ICSM'04), pages 147 - 156.
  11. Nierstrasz, O., Ducasse, S., and Gˆirba, T. (2005). The Story of Moose: An Agile Reengineering Environment. In Wermelinger, M. and Gall, H., editors, ESEC/SIGSOFT FSE, pages 1-10. ACM.
  12. Opdyke, W. F. (1992). Refactoring Object-Oriented Frameworks. PhD thesis, University of Illinois at UrbanaChampaign, IL, USA.
  13. Roberts, D. B. (1999). Practical Analysis for Refactoring. PhD thesis, University of Illinois at UrbanaChampaign, IL, USA.
  14. Tichelaar, S. (2001). Modeling Object-Oriented Software for Reverse Engineering and Refactoring. PhD thesis, University of Bern.
  15. Van Gorp, P., Van Eetvelde, N., and Janssens, D. (2003). Implementing Refactorings as Graph Rewrite Rules on a Platform Independent Meta model. In Proceedings of 1st Fujaba Days.
  16. Refactoring example with its suitable XML definition: Rename class, included in (Opdyke, 1992).
Download


Paper Citation


in Harvard Style

Marticorena R. and Crespo Y. (2008). DYNAMISM IN REFACTORING CONSTRUCTION AND EVOLUTION - A Solution based on XML and Reflection . In Proceedings of the Third International Conference on Software and Data Technologies - Volume 2: ICSOFT, ISBN 978-989-8111-52-4, pages 214-219. DOI: 10.5220/0001890002140219


in Bibtex Style

@conference{icsoft08,
author={Raúl Marticorena and Yania Crespo},
title={DYNAMISM IN REFACTORING CONSTRUCTION AND EVOLUTION - A Solution based on XML and Reflection},
booktitle={Proceedings of the Third International Conference on Software and Data Technologies - Volume 2: ICSOFT,},
year={2008},
pages={214-219},
publisher={SciTePress},
organization={INSTICC},
doi={10.5220/0001890002140219},
isbn={978-989-8111-52-4},
}


in EndNote Style

TY - CONF
JO - Proceedings of the Third International Conference on Software and Data Technologies - Volume 2: ICSOFT,
TI - DYNAMISM IN REFACTORING CONSTRUCTION AND EVOLUTION - A Solution based on XML and Reflection
SN - 978-989-8111-52-4
AU - Marticorena R.
AU - Crespo Y.
PY - 2008
SP - 214
EP - 219
DO - 10.5220/0001890002140219