Retrieving Reusable Software Components Using Enhanced Representation of Domain Knowledge

  • Awny AlnusairEmail author
  • Tian Zhao


This paper describes an ontology-based approach for identifying and retrieving relevant software components in large reuse libraries. Since it is usually difficult to precisely identify exact matches without considering domain knowledge, we exploit the use of domain-specific ontologies to enrich a knowledge base initially populated with multi-faceted ontological descriptions of API components. In addition to pure semantic-based search, this enriched knowledge base supports signature-based search, keyword search, and blended search. However, our experiments show evidence that only semantic search that is backed by reasoning services enables intelligent matchmaking and yields improved precision. Based on a usability case study, we further argue that semantic search is indeed usable and practical.


Domain Ontology Ontology Model SPARQL Query Input Type Semantic Search 
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.


  1. 1.
    Antunes, B., Gomez, P., Seco, N.: SRS: A software Reuse System Based on the Semantic Web. In: 3rd International Workshop on Semantic Web Enabled Software Engineering (SWESE) (2007)Google Scholar
  2. 2.
    Bajracharya, S., Ossher, O., Lopes, C.: Sourcerer: An Internet-Scale Software Repository. In: First International Workshop on Search-driven Development: Users, Infrastructure, Tools and Evaluation (SUITE’09) (2009)Google Scholar
  3. 3.
    Cubranic, D., Murphy, G.C., Singer, J., Booth, K.S.: Hipikat: A project memory for software development. IEEE Trans. Software Eng. 31(6), 446–465 (2005)CrossRefGoogle Scholar
  4. 4.
    Durao, F.A., Vanderlei, T.A., Almeida, E.S., Meira, S.R.: Applying a semantic layer in a source code search tool. In: 23rd ACM Symp. Appl. Comput. 1151–1157 (2008)Google Scholar
  5. 5.
    Frakes, W.B., Kang, K.: Software reuse research: Status and future. IEEE Trans. Software Eng. 31(7), 529–536 (2005)CrossRefGoogle Scholar
  6. 6.
    Happel, H.J., Maalej, W.: Potentials of Recommendation Systems for Software Development. In: International workshop on Recommendation Systems for Software Engineering, pp. 11–15 (2008)Google Scholar
  7. 7.
    Hoffmann, R., Fogarty, J., Weld, D.S.: Assieme: Finding and Leveraging Implicit References in a Web Search Interface for Programmers. In: ACM Symposium on User Interface Software and Technology, pp. 13–22 (2007)Google Scholar
  8. 8.
    Hummel, O., Atkinson, C.: Extreme Harvesting: Test Driven Discovery and Reuse of Software Components. In: The IEEE International Conference on Information Reuse and Integration (IRI’04), IEEE Press, pp. 66–72 (2004)Google Scholar
  9. 9.
    Hummel, O., Janjic, W., Atkinson, C.: Code conjurer: Pulling reusable software out of thin air. IEEE Software. 25(5), 45–52 (2008)CrossRefGoogle Scholar
  10. 10.
    Lemos, O., Bajracharya, S., Ossher, J., Morla, R., Masiero, P., Bald, P., Lopes, C.: CodeGenie: Using Test-Cases to Search and Reuse Source Code. In: Extended Abstract in the International Conference on Automated Software Engineering, pp. 525–526 (2007)Google Scholar
  11. 11.
    Musen, M.: Modern Architecture of Intelligent Systems: Reusable Ontologies and Problem-solving Methods. In: The American Medical Informatics Association annual symposium (AMIA’00) (2000)Google Scholar
  12. 12.
    McBride, B.: Jena: A semantic web toolkit. IEEE Internet Comput. 6(6), 55–59 (2002)CrossRefGoogle Scholar
  13. 13.
    McCarey, F., Cinneide, M.O., Kushmerick, N.: Rascal: A recommender agent for agile reuse. Artif. Intell. Rev. 24(3), 253–276 (2005)CrossRefGoogle Scholar
  14. 14.
    Noy, F.N., McGuinness, D.L.: Ontology Development 101: A Guide to Creating Your First Ontology. Stanford Knowledge System Laboratory Technical Report KSL-01-05 and Stanford Medical Informatics Technical Report. SMI-2001-0880 (2001)Google Scholar
  15. 15.
    Sugumaran, V., Storey, V.C.: A semantic-based approach to component retrieval. ACM SIGMIS DATABASE. 34(3), 8–24 (2003)CrossRefGoogle Scholar
  16. 16.
    Uschold, M., Healy, M., Williamson, K., Clark, P., Woods, S.: Ontology Reuse and Application. In: The 1st International Conference on Formal Ontology in Information Systems (FOIS’98) pp. 179–192 (1998)Google Scholar
  17. 17.
    Ye, Y., Fischer, G.: Reuse-Conductive development environments. The Int. J. Automated Software Eng. 12(2), 199–235 (2005)CrossRefGoogle Scholar

Copyright information

© Springer Vienna 2012

Authors and Affiliations

  1. 1.Department of Science, Math & InformaticsIndiana University KokomoKokomoWashington
  2. 2.Department of Computer ScienceUniversity of Wisconsin-MilwaukeeMilwaukeeUSA

Personalised recommendations