Concept Analysis as a Framework for Mining Functional Features from Legacy Code

  • Amal El Kharraz
  • Petko Valtchev
  • Hafedh Mili
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5986)


Legacy OO applications typically implement a set of functional features which, in the absence of aspect-oriented techniques to separately develop and maintain them, end up embodied in the same class hierarchies. We identified three types of design techniques used to implement that embodiment: a) multiple inheritance– or simulations thereof, b) aggregation/delegation, and c) what we referred to as ad-hoc implementation. We are interested in identifying and isolating software artifacts that implement distinct functional features. Here, we explore the use of concept analysis to detect ad-hoc implementations of functional features. We present the principles underlying our overall approach, a formalization of the problem in terms of concept analysis, a method for identifying functional features based on the construction and exploration of the concept latice, and the results of an experimental validation study.


Functional Feature Formal Concept Analysis Class Hierarchy Class Member Legacy Code 
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.
    Mili, H., Sahraoui, H., Lounis, H., Mcheick, H., ElKharraz, A.: Concerned about separation. In: Baresi, L., Heckel, R. (eds.) FASE 2006. LNCS, vol. 3922, pp. 247–261. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  2. 2.
    Marcus, A., Poshyvanyk, D.: The conceptual cohesion of classes. In: Proc. of ICSM 2005, pp. 133–142 (2005)Google Scholar
  3. 3.
    Dagenais, B., Mili, H.: Slicing functional aspects out of legacy code, 10 p. (2008) (submitted)Google Scholar
  4. 4.
    Hailpern, B., Ossher, H.: Extending objects to support multiple interfaces and access control. IEEE Trans. Softw. Eng. 16, 1247–1257 (1990)CrossRefGoogle Scholar
  5. 5.
    Aksit, M., Bergmans, L., Vural, S.: An object-oriented language-database integration model: The composition-filters approach. In: Lehrmann Madsen, O. (ed.) ECOOP 1992. LNCS, vol. 615, pp. 372–395. Springer, Heidelberg (1992)CrossRefGoogle Scholar
  6. 6.
    Harrison, W., Ossher, H.: Subject-oriented programming (a critique of pure objects). In: Proc. of ACM OOPSLA 1993, vol. 28, pp. 411–428 (1993)Google Scholar
  7. 7.
    Tarr, P., Ossher, H., Harrison, W., Sutton, S.: N degrees of separation: multi-dimensional separation of concerns. In: Proc. of ICSE 1999, pp. 107–119 (1999)Google Scholar
  8. 8.
    Kiczales, G., Irwin, J., Lamping, J., Loingtier, J., Lopes, C., Maeda, C., Mendhekar, A.: Aspect-oriented programming. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997)CrossRefGoogle Scholar
  9. 9.
    Elkharraz, A., Mili, H., Valtchev, P.: Mining functional aspects from legacy code. In: Proc. of ICTAI 2008, pp. 403–412. IEEE Comp. Soc., Los Alamitos (2008)Google Scholar
  10. 10.
    Aurenhammer, F., Hagauer, J., Imrich, W.: Cartesian graph factorization at logarithmic cost per edge. Computational Complexity 2, 331–349 (1992)zbMATHCrossRefMathSciNetGoogle Scholar
  11. 11.
    Ganter, B., Wille, R.: Formal Concept Analysis, Mathematical Foundations. Springer, Berlin (1999)zbMATHGoogle Scholar
  12. 12.
    Godin, R., Mili, H., Mineau, G., Missaoui, R., Arfi, A., Chau, T.: Design of Class Hierarchies based on Concept (Galois) Lattices. TAPOS 4, 117–134 (1998)Google Scholar
  13. 13.
    Godin, R., Valtchev, P.: Formal concept analysis-based normal forms for class hierarchy design in OO software development. In: FCA: Foundations and Applications, pp. 304–323. Springer, Heidelberg (2005)Google Scholar
  14. 14.
    Revelle, M., Poshyvanyk, D.: An exploratory study on assessing feature location techniques. In: ICPC 2009, Vancouver, BC, Canada (2009)Google Scholar
  15. 15.
    Hannemann, J., Kiczales, G.: Overcoming the prevalent decomposition of legacy code. In: Workshop on Advanced Separation of Concerns, ICSE 2001, Toronto (2001)Google Scholar
  16. 16.
    Robillard, M., Murphy, G.: Concern graphs:finding and describing concerns using structural program dependencies. In: Proc of ICSE 2002, pp. 406–416 (2002)Google Scholar
  17. 17.
    Shepherd, D., Fry, Z.P., Hill, E., Pollock, L., Vijay-Shanker, K.: Using natural language program analysis to locate and understand action-oriented concerns. In: Proc. of AOSD 2007, USA, pp. 212–224. ACM, New York (2007)CrossRefGoogle Scholar
  18. 18.
    Poshyvanyk, D., Marcus, A.: Combining formal concept analysis with information retrieval for concept location in source code. In: Proc. of ICPC 2007, pp. 37–48 (2007)Google Scholar
  19. 19.
    Marin, M., van Deursen, A., Moonen, L.: Identifying aspects using fan-in analysis. In: Proc. of WCRE 2004, USA, pp. 132–141. IEEE Computer Society, Los Alamitos (2004)Google Scholar
  20. 20.
    Shepherd, D., Gibson, E., Pollock, L.: Design and evaluation of an automated aspect mining tool. In: Proc. Intl. Conf. on Soft. Eng. Research and Practice (2004)Google Scholar
  21. 21.
    Eisenbarth, T., Koschke, R., Simon, D.: Locating features in source code. IEEE Trans. Software Eng. 29, 210–224 (2003)CrossRefGoogle Scholar
  22. 22.
    Breu, S., Krinke, J.: Aspect mining using event traces. In: Proc. of ASE 2004, Washington, DC, USA, pp. 310–315. IEEE Computer Society, Los Alamitos (2004)Google Scholar
  23. 23.
    Tonella, P., Ceccato, M.: Aspect mining through the formal concept analysis of execution traces. In: Proc. of WCRE 2004, pp. 112–121 (2004)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2010

Authors and Affiliations

  • Amal El Kharraz
    • 1
  • Petko Valtchev
    • 1
  • Hafedh Mili
    • 1
  1. 1.Dépt. d’Informatique UQAM, C.P. 8888, Succ. Centre-VilleMontréalCanada

Personalised recommendations