Hagen Schink, Martin Kuhlemann, Gunter Saake, Ralf Lämmel


Different programming languages can be involved in the implementation of a single software application. In these software applications, source code of one programming language interacts with code of a different language. By refactoring an artifact of one programming language, the interaction of this artifact with an artifact written in another programming language may break. We present a study on refactoring an software application that contains artifacts of different languages.


  1. Ambler, S. (2003). Agile Database Techniques: Effective Strategies for the Agile Software Developer. John Wiley & Sons, Inc., New York, NY, USA.
  2. Andersen, L. (2006). JDBC T M 4.0 Specification. Sun Microsystems, Inc., Santa Clara, USA, final edition.
  3. Carey, M. and DeWitt, D. (1996). Of objects and databases:A decade of turmoil. In VLDB. Citeseer.
  4. Chen, N. and Johnson, R. (2008). Toward Refactoring in a Polyglot World: Extending Automated Refactoring Support across Java and XML. Workshop on Refactoring Tools.
  5. Cleve, A. (2009). Program Analysis and Transformation for Data-Intensive System Evolution. PhD thesis, University of Namur.
  6. Cunha, A. and Visser, J. (2007). Strongly Typed Rewriting For Coupled Software Transformation. Electronic Notes in Theoretical Computer Science, 174(1).
  7. DeMichiel, L. (2009). JSR 317: JavaTM Persistence API, Version 2.0. Sun Microsystems, Inc., Santa Clara, USA, final edition.
  8. Ducasse, S., Lanza, M., and Tichelaar, S. (2000). MOOSE: An Extensible Language-Independent Environment for Reengineering Object-Oriented Systems. CoSET.
  9. Fjeldberg, H.-C. (2008). Polyglot Programming. Master thesis, Norwegian University of Science and Technology, Trondheim/Norway.
  10. Ford, N. (2008). The Productive Programmer. O'Reilly.
  11. Fowler, M. (1999). Refactoring: improving the design of existing code. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA.
  12. Grogan, M. (2006). JSR-223 Scripting for the Java Platform. Sun Microsystems, Inc., Santa Clara, USA, final edition.
  13. Hainaut, J.-L. (1996). Specification Preservation in Schema Transformations - Application to Semantics and Statistics. Data & Knowledge Engineering, 19.
  14. Harold, E. R. and Means, W. S. (2002). XML in a nutshell. O'Reilly & Associates, Inc., Sebastopol, CA, USA.
  15. ISO/IEC (2008). International Standard ISO/IEC 9075- 1 Information technology Database languages SQL Part 1: Framework (SQL/Framework). ISO/IEC, third edition.
  16. Keith, M. and Schincariol, M. (2009). Pro JPA 2: Mastering the Java Persistence API. Apress, Berkely, CA, USA.
  17. Kempf, M., Kleeb, R., Klenk, M., and Sommerlad, P. (2008). Cross Language Refactoring for Eclipse plugins. OOPSLA.
  18. Lämmel, R. (2002). Towards Generic Refactoring. ACM SIGPLAN Workshop on Rule-based Programming.
  19. Lämmel, R. (2004). Coupled Software Transformations. Workshop on Software Evolution Transformations.
  20. Laski, J., Stanley, W., and Hurst, J. (1998). Dependency analysis of Ada programs. ACM SIGAda Ada Letters, XVIII(6).
  21. Leyderman, R. (2005). Oracle rC ++ Call Interface. Oracle Corporation.
  22. Li, H. (2006). Refactoring Haskell Programs. PhD thesis, University of Kent, Canterbury, Kent, UK.
  23. Linos, P. K., Lucas, W., Myers, S., and Maier, E. (2007). A Metrics Tool for Multi-Language Software. SEA.
  24. Mens, T. and Tourwé, T. (2004). A survey of software refactoring. IEEE Transactions on software engineering, 30(2).
  25. Michels, J.-E., Kulkarni, K., Farrar, M. C., Eisenberg, A., Mattos, N., and Darwen, H. (2003). The SQL Standard. it - Information Technology, 45(1).
  26. Opdyke, W. (1992). Refactoring Object-Oriented Frameworks. PhD thesis, University of Illinois at UrbanaChampaign.
  27. Schink, H. (2010). Sprachübergreifende Refactoring Feature Module. Master thesis, Ottovon-Guericke-University, Magdeburg. Available online: http://wwwiti.cs.uni-magde db/publikationen/ps/auto/thesisSchink.pdf.
  28. Schink, H. and Kuhlemann, M. (2010). Hurdles in refactoring multi-language programs. Technical Report FIN007-2010, University of Magdeburg, Germany.
  29. Schrijvers, T., Serebrenik, A., and Demoen, B. (2004). Refactoring Prolog Code. Workshop on (Constraint) Logic Programming.
  30. Strein, D., Kratz, H., and Lowe, W. (2006). Cross-Language Program Analysis and Refactoring. Workshop on Source Code Analysis and Manipulation.
  31. Sunyé, G., Pollet, D., Traon, Y. L., and Jézéquel, J. (2001). Refactoring UML Models. UML.
  32. Tichelaar, S. (2001). Modeling Object-Oriented Software for Reverse Engineering and Refactoring. PhD thesis, University of Berne, Switzerland.
  33. Van Gorp, P., Stenten, H., Mens, T., and Demeyer, S. (2003). Towards Automating Source-Consistent UML Refactorings. UML.
  34. Visser, J. (2008). Coupled Transformation of Schemas, Documents, Queries, and Constraints. Electronic Notes in Theoretical Computer Science, 200(3).

Paper Citation

in Harvard Style

Schink H., Kuhlemann M., Saake G. and Lämmel R. (2011). HURDLES IN MULTI-LANGUAGE REFACTORING OF HIBERNATE APPLICATIONS . In Proceedings of the 6th International Conference on Software and Database Technologies - Volume 2: ICSOFT, ISBN 978-989-8425-77-5, pages 129-134. DOI: 10.5220/0003469501290134

in Bibtex Style

author={Hagen Schink and Martin Kuhlemann and Gunter Saake and Ralf Lämmel},
booktitle={Proceedings of the 6th International Conference on Software and Database Technologies - Volume 2: ICSOFT,},

in EndNote Style

JO - Proceedings of the 6th International Conference on Software and Database Technologies - Volume 2: ICSOFT,
SN - 978-989-8425-77-5
AU - Schink H.
AU - Kuhlemann M.
AU - Saake G.
AU - Lämmel R.
PY - 2011
SP - 129
EP - 134
DO - 10.5220/0003469501290134