Supporting Program Indexing and Querying in Source Code Digital Libraries

  • Yuhanis Yusof
  • Omer F. Rana
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3529)


As a greater number of software developers make their source code available, there is a need to store such open-source applications in a library and facilitate searching over this digital library. To achieve this, we propose the usage of agents in indexing and querying program source code. This paper describes agent roles in building index files for Java programs and users’ queries based on program structure and design patterns. Precision and recall analysis is then undertaken to evaluate the retrieval performance. We believe that such a digital library will permit better sharing of experience amongst developers and facilitate reuse of code segments.


Source Code Digital Library Design Pattern Search Query Java Program 
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.
    Ruben, P., Peter, F.: Classifying software reuse. IEEE Software 4(1), 616 (1987)Google Scholar
  2. 2.
    Ugurel, S., Krovetz, R., Giles, C.L.: What’s the code?: automatic classification of source code archives. In: Proceedings of the eighth ACM SIGKDD international conference on Knowledge discovery and data mining, pp. 632–638. ACM Press, New York (2002)CrossRefGoogle Scholar
  3. 3.
    Santanul, P., Atul, P.: A framework for source code search using program patterns. IEEE Transaction on Software Engineering 20(6), 463–475 (1994)CrossRefGoogle Scholar
  4. 4.
    Ostertag, E., Hendler, J., Daz, R.P., Braun, C.: Computing similarity in a reuse system: An al-based approach. ACM Transactions on Software Engineering and Methodology (TOSEM) 1(3), 205–228 (1992)CrossRefGoogle Scholar
  5. 5.
    Dongarra, J.J., Grosse, E.: Distribution of mathematical software via electronic mail. Communications of the ACM 30(5), 403–407 (1987)CrossRefGoogle Scholar
  6. 6.
    Prieto-Diaz, R.: A Software Classification Scheme. Phd thesis, Department of Information and Computer Science, University of California (1985)Google Scholar
  7. 7.
    Sugumaran, V., Storey, V.C.: A semantic-based approach to component retrieval. The DATA BASE for Advances in Information Systems 34(3), 8–24 (2003)Google Scholar
  8. 8.
    Penix, J., Alexander, P.: Using formal specifications for component retrieval and reuse. In: Proceedings of the 31st Hawaii International Conference on System Sciences, pp. 356–365 (1998)Google Scholar
  9. 9.
    Schumann, J., Fischer, B.: Nora/hammr: Making deduction-based software component retrieval practical. In: Proceedings of the 1997 International Conference on Automated Software Engineering(ASE 1997), Lake Tahoe, CA, pp. 246–254 (1997)Google Scholar
  10. 10.
    Nakkrasae, S., Sophatsathit, P.: A formal approach for specification and classification of software components. In: Proceedings of the 14th international conference on Software engineering and knowledge engineering, pp. 773–780. ACM Press, New York (2002)CrossRefGoogle Scholar
  11. 11.
    Mili, A., Mili, R., Mittermeir, R.T.: Storing and retrieving software components: A refinement based system. IEEE Transactions on Software Engineering 23(7), 445–460 (1994)CrossRefGoogle Scholar
  12. 12.
    Birmingham, W.P., Durfee, E.H., Mullen, T., Wellman, M.P.: The distributed agent architecture of the university of michigan digital library (extended abstract). In: (AAAI) Spring Symposium on Information Gathering (1995)Google Scholar
  13. 13.
    Barth, A., Breu, M., Endres, A., de Kemp, A. (eds.): Digital Libraries in Computer Science: The MeDoc Approach. Springer, Heidelberg (1998)Google Scholar
  14. 14.
    Derbyshire, D., Ferguson, I.A., Muller, J.P., Pischel, M., Wooldridge, M.: Agent-based digital libraries: Driving the information economy. In: Proceedings of the Sixth IEEE Workshops on Enabling Technologies: Infrastructure for Collaborative Enterprises, pp. 82–86 (1997)Google Scholar
  15. 15.
    Sycara, K., Decker, K., Pannu, A., Williamson, M., Zeng, D.: Distributed intelligent agents. IEEE Expert 11(6), 36–46 (1996)CrossRefGoogle Scholar
  16. 16.
    Linn, C.N.: A multi-agent system for cooperative document indexing and query in distributed networked environments. In: Proceedings of the International Workshop on Parallel Processing, Japan, pp. 400–405 (1999)Google Scholar
  17. 17.
    Kusumura, Y., Hijikata, Y., Nishida, S.: Text mining agent for net auction. In: ACM Symposium on Applied Computing, Nicosia, Cyprus, pp. 1095–1102 (2004)Google Scholar
  18. 18.
    Sommerville, I.: Software Engineering, 7th edn. Addison-Wesley, Reading (2004)Google Scholar
  19. 19.
    Rodriguez, H.: Good programming practice,
  20. 20.
    Yusof, Y., Rana, O.F.: Template mining in source code digital libraries. In: Proceedings of the International Workshop on Mining Software Repositories, 26th International Conference on Software Engineering, Edinburgh, UK, pp. 122–126 (2004)Google Scholar
  21. 21.
    Baeza-Yates, R., Ribeiro-Neto, B.: Modern Information Retrieval. Addison-Wesley, Reading (1999)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Yuhanis Yusof
    • 1
  • Omer F. Rana
    • 1
  1. 1.School of Computer ScienceCardiff UniversityUK

Personalised recommendations