Restructuring Object-Oriented Applications into Component-Oriented Applications by Using Consistency with Execution Traces

  • Simon Allier
  • Houari A. Sahraoui
  • Salah Sadou
  • Stéphane Vaucher
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6092)


Software systems should evolve in order to respond to changing client requirements and their evolving environments. But unfortunately, the evolution of legacy applications generates an exorbitant cost. In this paper, we propose an approach to restructure legacy object-oriented applications into component-based applications. Our approach is based on dynamic dependencies between classes to identify potential components. In this way, the composition is dictated by the context of the application to improve its evolvability. We validate our approach through the study of three legacy Java applications.


Genetic Algorithm Simulated Annealing Algorithm Local Search Algorithm Execution Trace Call Graph 
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.
    Bohnet, J., Döllner, J.: Visual exploration of function call graphs for feature location in complex software systems. In: SOFTVIS, pp. 95–104 (2006)Google Scholar
  2. 2.
    Chardigny, S., Seriai, A., Tamzalit, D., Oussalah, M.: Quality-driven extraction of a component-based architecture from an object-oriented system. In: CSMR, pp. 269–273 (2008)Google Scholar
  3. 3.
    Eisenbarth, T., Koschke, R., Simon, D.: Locating features in source code. IEEE Trans. Software Eng. 29(3), 210–224 (2003)CrossRefGoogle Scholar
  4. 4.
    Erlikh, L.: Leveraging legacy system dollars for e-business. IEEE IT Professional 2(3) (2000)Google Scholar
  5. 5.
    George, B., Fleurquin, R., Sadou, S.: A methodological approach for selecting components in development and evolution process. Electronic Notes on Theoretical Computer Science (ENTCS) 6(2), 111–140 (2007)Google Scholar
  6. 6.
    Greevy, O., Ducasse, S.: Correlating features and code using a compact two-sided trace analysis approach. In: CSMR, pp. 314–323. IEEE Computer Society, Los Alamitos (2005)Google Scholar
  7. 7.
    Kadri, R., Merciol, F., Sadou, S.: CBSE in Small and Medium-Sized Enterprise: Experience Report. In: Gorton, I., Heineman, G.T., Crnković, I., Schmidt, H.W., Stafford, J.A., Szyperski, C., Wallnau, K. (eds.) CBSE 2006. LNCS, vol. 4063, pp. 154–165. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  8. 8.
    Kelner, V., Capitanescu, F., Léonard, O., Wehenkel, L.: A hybrid optimization technique coupling an evolutionary and a local search algorithm. J. Comput. Appl. Math. 215(2), 448–456 (2008)zbMATHCrossRefMathSciNetGoogle Scholar
  9. 9.
    Kessentini, M., Sahraoui, H., Boukadoum, M.: Model transformation as an optimization problem. In: Czarnecki, K., Ober, I., Bruel, J.-M., Uhl, A., Völter, M. (eds.) MODELS 2008. LNCS, vol. 5301, pp. 159–173. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  10. 10.
    Lehman, M., Belady, L.: Program evolution: Process of software change. Academic Press, London (1985)Google Scholar
  11. 11.
    Lientz, B.P., Swanson, E.B.: Problems in application software maintenance. Communiactions of the ACM 24(11) (1981)Google Scholar
  12. 12.
    Liu, D., Marcus, A., Poshyvanyk, D., Rajlich, V.: Feature location via information retrieval based filtering of a single scenario execution trace. In: Stirewalt, R.E.K., Egyed, A., Fischer, B. (eds.) ASE, pp. 234–243 (2007)Google Scholar
  13. 13.
    Maqbool, O., Babri, H.: Hierarchical clustering for software architecture recovery. IEEE Trans. Softw. Eng. 33(11), 759–780 (2007)CrossRefGoogle Scholar
  14. 14.
    McKee, J.: Maintenance as function of design. In: AFIPS National Computer Conference, pp. 187–193 (1984)Google Scholar
  15. 15.
    Medvidovic, N., Jakobac, V.: Using software evolution to focus architectural recovery. Automated Software Engg. 13(2), 225–256 (2006)CrossRefGoogle Scholar
  16. 16.
    Mitchell, B.S., Mancoridis, S.: On the evaluation of the bunch search-based software modularization algorithm. Soft. Comput. 12(1), 77–93 (2008)CrossRefGoogle Scholar
  17. 17.
    Poshyvanyk, D., Guéhéneuc, Y.-G., Marcus, A., Antoniol, G., Rajlich, V.: Feature location using probabilistic ranking of methods based on execution scenarios and information retrieval. IEEE Trans. Software Eng. 33(6), 420–432 (2007)CrossRefGoogle Scholar
  18. 18.
    Seacord, R.C., Plakosh, D., Lewis, G.A.: Modernizing legacy systems: Software technologies, engineering processes, and business practices. SEI Series in Software Engineering (2003)Google Scholar
  19. 19.
    Seng, O., Stammel, J., Burkhart, D.: Search-based determination of refactorings for improving the class structure of object-oriented systems. In: GECCO, pp. 1909–1916. ACM, New York (2006)Google Scholar
  20. 20.
    Washizaki, H., Fukazawa, Y.: A technique for automatic component extraction from object-oriented programs by refactoring. Sci. Comput. Program. 56(1-2), 99–116 (2005)zbMATHCrossRefMathSciNetGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2010

Authors and Affiliations

  • Simon Allier
    • 1
    • 2
  • Houari A. Sahraoui
    • 1
  • Salah Sadou
    • 2
  • Stéphane Vaucher
    • 1
  1. 1.DIROUniversité de MontréalCanada
  2. 2.VALORIASouth-Brittany UniversityVannesFrance

Personalised recommendations