Advertisement

A Fast Algorithm to Locate Concepts in Execution Traces

  • Soumaya Medini
  • Philippe Galinier
  • Massimiliano Di Penta
  • Yann-Gaël Guéhéneuc
  • Giuliano Antoniol
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6956)

Abstract

The identification of cohesive segments in execution traces is an important step in concept location which, in turns, is of paramount importance for many program-comprehension activities. In this paper, we reformulate concept location as a trace segmentation problem solved via dynamic programming. Differently to approaches based on genetic algorithms, dynamic programming can compute an exact solution with better performance than previous approaches, even on long traces. We describe the new problem formulation and the algorithmic details of our approach. We then compare the performances of dynamic programming with those of a genetic algorithm, showing that dynamic programming reduces dramatically the time required to segment traces, without sacrificing precision and recall; even slightly improving them.

Keywords

Concept identification dynamic analysis information retrieval dynamic programming. 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Anquetil, N., Lethbridge, T.: Extracting concepts from file names: a new file clustering criterion. In: Proceedings of the International Conference on Software Engineering, pp. 84–93. IEEE Computer Society Press, Los Alamitos (1998)CrossRefGoogle Scholar
  2. 2.
    Antoniol, G., Guéhéneuc, Y.G.: Feature identification: a novel approach and a case study. In: Proceedings of the International Conference on Software Maintenance, pp. 357–366. IEEE Computer Society Press, Los Alamitos (2005)Google Scholar
  3. 3.
    Antoniol, G., Guéhéneuc, Y.G.: Feature identification: An epidemiological metaphor. IEEE Transactions on Software Engineering 32(9), 627–641 (2006)CrossRefGoogle Scholar
  4. 4.
    Asadi, F., Antoniol, G., Guéhéneuc, Y.G.: Concept locations with genetic algorithms: A comparison of four distributed architectures. In: Proceedings of the International Symposium on Search Based Software Engineering, pp. 153–162. IEEE Computer Society Press, Los Alamitos (2010)CrossRefGoogle Scholar
  5. 5.
    Asadi, F., Di Penta, M., Antoniol, G., Guéhéneuc, Y.G.: A heuristic-based approach to identify concepts in execution traces. In: Proceedings of the European Conference on Software Maintenance and Reengineering, pp. 31–40. IEEE Computer Society Press, Los Alamitos (2010)Google Scholar
  6. 6.
    Baeza-Yates, R., Ribeiro-Neto, B.: Modern Information Retrieval. Addison-Wesley, Reading (1999)Google Scholar
  7. 7.
    Bellman, R.E., Dreyfus, S.E.: Applied Dynamic Programming, vol. 1. Princeton University Press, Princeton (1962)CrossRefzbMATHGoogle Scholar
  8. 8.
    Biggerstaff, T., Mitbander, B., Webster, D.: The concept assignment problem in program understanding. In: Proceedings of the International Conference on Software Engineering, pp. 482–498 (1993)Google Scholar
  9. 9.
    Chen, K., Rajlich, V.: Case study of feature location using dependence graph. In: Proceedings of the International Workshop on Program Comprehension, pp. 241–249. IEEE Computer Society Press, Los Alamitos (2000)Google Scholar
  10. 10.
    Cormen, T.H., Leiserson, C.E., Rivest, R.L.: Introductions to Algorithms. MIT Press, Cambridge (1990)zbMATHGoogle Scholar
  11. 11.
    Deerwester, S., Dumais, S.T., Furnas, G.W., Landauer, T.K., Harshman, R.: Indexing by latent semantic analysis. Journal of the American Society for Information Science 41(6), 391–407 (1990)CrossRefGoogle Scholar
  12. 12.
    Eaddy, M., Aho, A.V., Antoniol, G., Guéhéneuc, Y.G.: Cerberus: Tracing requirements to source code using information retrieval, dynamic analysis, and program analysis. In: Proceedings of the International Conference on Program Comprehension, pp. 53–62. IEEE Computer Society Press, Los Alamitos (2008)Google Scholar
  13. 13.
    Grissom, R.J., Kim, J.J.: Effect sizes for research: A broad practical approach, 2nd edn. Lawrence Earlbaum Associates, NJ (2005)Google Scholar
  14. 14.
    Jaccard, P.: Paul jaccard. etude comparative de la distribution florale dans une portion des alpes et des jura. Bulletin del la Socit Vaudoise des Sciences Naturelles 37, 547–549Google Scholar
  15. 15.
    Kozaczynski, V., Ning, J.Q., Engberts, A.: Program concept recognition and transformation. IEEE Transactions on Software Engineering 18(12), 1065–1075 (1992)CrossRefGoogle Scholar
  16. 16.
    Marcus, A., Poshyvanyk, D., Ferenc, R.: Using the conceptual cohesion of classes for fault prediction in object-oriented systems. IEEE Transactions on Software Engineering 34(2), 287–300 (2008)CrossRefGoogle Scholar
  17. 17.
    Marcus, A., Sergeyev, A., Rajlich, V., Maletic, J.I.: An information retrieval approach to concept location in source code. In: Proceedings of the Working Conference on Reverse Engineering, pp. 214–223. IEEE Computer Society Press, Los Alamitos (2004)Google Scholar
  18. 18.
    Mitchell, B.S., Mancoridis, S.: On the automatic modularization of software systems using the bunch tool. IEEE Transactions on Software Engineering 32(3), 193–208 (2006)CrossRefGoogle Scholar
  19. 19.
    Porter, M.F.: An algorithm for suffix stripping. Program 14(3), 130–137 (1980)CrossRefGoogle Scholar
  20. 20.
    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. Transactions on Software Engineering 33(6), 420–432 (2007)CrossRefGoogle Scholar
  21. 21.
    Poshyvanyk, D., Marcus, A.: The conceptual coupling metrics for object-oriented systems. In: Proceedings of the International Conference on Software Maintenance, pp. 469–478. IEEE Computer Society Press, Los Alamitos (2006)Google Scholar
  22. 22.
    Salah, M., Mancordis, S., Antoniol, G., Penta, M.D.: Towards employing use-cases and dynamic analysis to comprehend mozilla. In: Proceedings of the International Conference on Software Maintenance, pp. 639–642. IEEE Press, Los Alamitos (2005)Google Scholar
  23. 23.
    Ka-Yee Ng, J., Guéhéneuc, Y.G., Antoniol, G.: Identification of behavioral and creational design motifs through dynamic analysis. Journal of Software Maintenance and Evolution: Research and Practice 22(8), 597–627 (2010)CrossRefGoogle Scholar
  24. 24.
    Tonella, P., Ceccato, M.: Aspect mining through the formal concept analysis of execution traces. In: Proceedings of Working Conference on Reverse Engineering, pp. 112–121 (2004)Google Scholar
  25. 25.
    Wilde, N., Scully, M.C.: Software reconnaissance: Mapping program features to code. Journal of Software Maintenance - Research and Practice 7(1), 49–62 (1995)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2011

Authors and Affiliations

  • Soumaya Medini
    • 1
  • Philippe Galinier
    • 1
  • Massimiliano Di Penta
    • 2
  • Yann-Gaël Guéhéneuc
    • 1
  • Giuliano Antoniol
    • 1
  1. 1.DGIGLÉcole Polytechnique de MontréalCanada
  2. 2.RCOSTUniversity of SannioItaly

Personalised recommendations