From Specification to Experimentation: A Software Component Search Engine Architecture

  • Vinicius Cardoso Garcia
  • Daniel Lucrédio
  • Frederico Araujo Durão
  • Eduardo Cruz Reis Santos
  • Eduardo Santana de Almeida
  • Renata Pontin de Mattos Fortes
  • Silvio Romero de Lemos Meira
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4063)


This paper presents a software component search engine, from the early specification and design steps to two experiments performed to evaluate its performance. After the experience gained from the use of this first version, several improvements were introduced. The current version of the engine combines text mining and facet-based search. The experiments indicated, so far, that using these two techniques together is better than using them separately. From the experience obtained in these experiments and in industrial tests, we point out possible improvements and future research directions, which are presented and discussed at the end of the paper.


Source Code Search Engine Standard Deviance Software Engineer Software Reuse 
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.
    McIlroy, M.D.: Software Engineering: Report on a conference sponsored by the NATO Science Committee. In: NATO Software Engineering Conference, NATO Scientific Affairs Division, pp. 138–155 (1968)Google Scholar
  2. 2.
    Frakes, W.B., Isoda, S.: Success Factors of Systematic Software Reuse. IEEE Software 11(01), 14–19 (1994)CrossRefGoogle Scholar
  3. 3.
    Rine, D.: Success factors for software reuse that are applicable across Domains and businesses. In: ACM Symposium on Applied Computing, San Jose, California, USA, pp. 182–186. ACM Press, New York (1997)CrossRefGoogle Scholar
  4. 4.
    Morisio, M., Ezran, M., Tully, C.: Success and Failure Factors in Software Reuse. IEEE Transactions on Software Engineering 28(04), 340–357 (2002)CrossRefGoogle Scholar
  5. 5.
    Ravichandran, T., Rothenberger, M.A.: Software Reuse Strategies and Component Markets. Communications of the ACM 46(8), 109–114 (2003)CrossRefGoogle Scholar
  6. 6.
    Szyperski, C., Gruntz, D., Murer, S.: Component Software: Beyond Object-Oriented Programming. Addison-Wesley, Reading (2002)Google Scholar
  7. 7.
    Gallardo, D., Burnette, E., McGovern, R.: Eclipse in Action. A Guide for Java Developers. Action Series. Manning Publications Co., Greenwich (2003)Google Scholar
  8. 8.
    Griss, M.: Making Software Reuse Work at Hewlett-Packard. IEEE Software 12(01), 105–107 (1995)CrossRefGoogle Scholar
  9. 9.
    Lucrédio, D., Almeida, E.S., Prado, A.F.: A Survey on Software Components Search and Retrieval. In: Steinmetz, R., Mauthe, A. (eds.) 30th IEEE EUROMICRO Conference, Component-Based Software Engineering Track, Rennes - France, pp. 152–159. IEEE/CS Press, Los Alamitos (2004)Google Scholar
  10. 10.
    Henninger, S.: Using Iterative Refinement to Find Reusable Software. IEEE Software 11(5), 48–59 (1994)CrossRefGoogle Scholar
  11. 11.
    Ye, Y., Fischer, G.: Supporting Reuse By Delivering Task-Relevant and Personalized Information. In: ICSE 2002 - 24th International Conference on Software Engineering, Orlando, Florida, USA, pp. 513–523 (2002)Google Scholar
  12. 12.
    Banker, R.D., Kauffman, R.J., Zweig, D.: Repository Evaluation of Software Reuse. IEEE Transactions on Software Engineering 19(4), 379–389 (1993)CrossRefGoogle Scholar
  13. 13.
    NetBeans: Javacvs project (2005)Google Scholar
  14. 14.
    Hatcher, E., Gospodnetic, O.: Lucene in Action. Action series. Manning Publications Co., Greenwich (2004)Google Scholar
  15. 15.
    Lee, C.: JavaNCSS - A Source Measurement Suite for Java (2005)Google Scholar
  16. 16.
    Stal, M.: Web services: beyond component-based computing. Communications of the ACM 45(10), 71–76 (2002)CrossRefGoogle Scholar
  17. 17.
    Prieto-Díaz, R.: Implementing faceted classification for software reuse. Communications of the ACM 34(5), 88–97 (1991)CrossRefGoogle Scholar
  18. 18.
    Grossman, D.A., Frieder, O.: Information Retrieval. Algoritms and Heuristics, 2nd edn. Springer, Dordrecht (2004)Google Scholar
  19. 19.
    Robin, J., Ramalho, F.: Can Ontologies Improve Web Search Engine Effectiveness Before the Advent of the Semantic Web? In: Laender, A.H.F. (ed.) XVIII Brazilian Symposium on Databases, Manaus, Amazonas, Brazil, UFAM, pp. 157–169 (2003)Google Scholar
  20. 20.
    Frakes, W.B., Pole, T.P.: An Empirical Study of Representation Methods for Reusable Software Components. IEEE Transactions on Software Engineering 20(8) (1994)Google Scholar
  21. 21.
    Seacord, R.C., Hissam, S.A., Wallnau, K.C.: Agora: A Search Engine for Software Components. Technical Report CMU/SEI–98–TR–011, ESC–TR–98–011, CMU/SEI - Carnegie Mellon University/Software Engineering Institute (1998)Google Scholar
  22. 22.
    Koders: Koders - Source Code Search Engine (2006),
  23. 23.
    Holmes, R., Murphy, G.C.: Using structural context to recommend source code examples. In: 27th International Conference in Software Engineering, St. Louis, MO, USA, pp. 117–125. ACM Press, New York (2005)Google Scholar
  24. 24.
    Inoue, K., Yokomori, R., Fujiwara, H., Yamamoto, T., Matsushita, M., Kusumoto, S.: Component Rank: Relative Significance Rank for Software Component Search. In: 25th International Conference on Software Engineering (ICSE 2003), pp. 14–24 (2003)Google Scholar
  25. 25.
    Almeida, E.S., Alvaro, A., Lucrédio, D., Garcia, V.C., Meira, S.R.L.: RiSE Project: Towards a Robust Framework for Software Reuse. In: IEEE International Conference on Information Reuse and Integration (IRI), Las Vegas, USA, pp. 48–53. IEEE/CMS (2004)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Vinicius Cardoso Garcia
    • 1
  • Daniel Lucrédio
    • 2
  • Frederico Araujo Durão
    • 1
  • Eduardo Cruz Reis Santos
    • 1
  • Eduardo Santana de Almeida
    • 1
  • Renata Pontin de Mattos Fortes
    • 2
  • Silvio Romero de Lemos Meira
    • 1
  1. 1.Informatics CenterFederal University of Pernambuco & C.E.S.A.R. – Recife Center for Advanced Studies and Systems 
  2. 2.Institute of Mathematical and Computing SciencesSão Paulo University 

Personalised recommendations