Architecture Migration Driven by Code Categorization

  • Rui Correia
  • Carlos M. P. Matos
  • Reiko Heckel
  • Mohammad El-Ramly
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4758)


In this paper, we report on the development of a methodology for the evolution of software towards new architectures. In our approach, we represent source code as graphs. This enables the use of graph transformation rules, allowing the automation of the transformation process. Prior to its model representation, the source code is subject to a preparatory step of semi-automatic code annotation according to the contribution of each of its parts in the target architecture. This paper first describes the overall methodology and then focuses on the code annotation and model transformation parts. We also discuss issues of the implementation of the approach based on existing tools.


Source Code Graph Transformation Code Category Type Graph Program Transformation 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Kazman, R., Woods, S., Carrière, J.: Requirements for integrating software architecture and reengineering models: CORUM II. In: WCRE 1998. Proceedings of the Fifth Working Conference on Reverse Engineering, pp. 154–163. IEEE Computer Society Press, Washington, DC, USA (1998)Google Scholar
  2. 2.
    Mens, T., Demeyer, S., Janssens, D.: Formalizing behaviour preserving program transformations. In: Corradini, A., Ehrig, H., Kreowski, H.-J., Rozenberg, G. (eds.) ICGT 2002. LNCS, vol. 2505, pp. 286–301. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  3. 3.
  4. 4.
  5. 5.
    Mens, T., Taentzer, G., Runge, O.: Analyzing refactoring dependencies using graph transformation. Software and Systems Modeling (to appear, 2007)Google Scholar
  6. 6.
    Mens, T., Eetvelde, N.V., Demeyer, S., Janssens, D.: Formalizing refactorings with graph transformations. Journal of Software Maintenance and Evolution: Research and Practice 17(4), 247–276 (2005)CrossRefGoogle Scholar
  7. 7.
    Tiger EMF Transformation Project: Tiger EMF Transformation,
  8. 8.
    Cordy, J., Dean, T., Malton, A., Schneider, K.: Source transformation in software engineering using the TXL transformation system. Journal of Information and Software Technology 44(13), 827–837 (2002)CrossRefGoogle Scholar
  9. 9.
    van den Brand, M., Heering, J., Klint, P., Olivier, P.: Compiling language definitions: the ASF+SDF compiler. ACM Transactions on Programming Languages and Systems 24(4), 334–368 (2002)CrossRefGoogle Scholar
  10. 10.
    Baxter, I., Pidgeon, C., Mehlich, M.: DMS®: Program transformations for practical scalable software evolution. In: ICSE 2004. Proceedings of the Twenty Sixth International Conference on Software Engineering, pp. 625–634. IEEE Computer Society, Washington, DC, USA (2004)Google Scholar
  11. 11.
    Andrade, L., Gouveia, J., Antunes, M., El-Ramly, M., Koutsoukos, G.: Forms2Net - Migrating Oracle Forms to Microsoft.NET. In: Lämmel, R., Saraiva, J., Visser, J. (eds.) GTTSE 2005. LNCS, vol. 4143, Springer, Heidelberg (2006)CrossRefGoogle Scholar
  12. 12.
    Fowler, M.: Refactoring: improving the design of existing code. Addison-Wesley Longman Publishing Co., Boston, MA, USA (1999)Google Scholar
  13. 13.
    The Eclipse Foundation: Eclipse,
  14. 14.
    Jetbrains: IntelliJ IDEA,

Copyright information

© Springer-Verlag Berlin Heidelberg 2007

Authors and Affiliations

  • Rui Correia
    • 1
    • 2
  • Carlos M. P. Matos
    • 1
    • 2
  • Reiko Heckel
    • 1
  • Mohammad El-Ramly
    • 3
  1. 1.Department of Computer Science, University of Leicester, University Road, Leicester, LE1 7RHUnited Kingdom
  2. 2.ATX Software, Rua Saraiva de Carvalho 207C, 1350-300 LisboaPortugal
  3. 3.Computer Science Department, Cairo UniversityEgypt

Personalised recommendations