Artificial Intelligence Review

, Volume 24, Issue 3, pp 253–276

Rascal: A Recommender Agent for Agile Reuse


    • School of Computer Science and InformaticsUniversity College Dublin
  • Mel Ó Cinnéide
    • School of Computer Science and InformaticsUniversity College Dublin
  • Nicholas Kushmerick
    • School of Computer Science and InformaticsUniversity College Dublin

DOI: 10.1007/s10462-005-9012-8

Cite this article as:
McCarey, F., Cinnéide, M.Ó. & Kushmerick, N. Artif Intell Rev (2005) 24: 253. doi:10.1007/s10462-005-9012-8


As software organisations mature, their repositories of reusable software components from previous projects will also grow considerably. Remaining conversant with all components in such a repository presents a significant challenge to developers. Indeed the retrieval of a particular component in this large search space may prove problematic. Further to this, the reuse of components developed in an Agile environment is likely to be hampered by the existence of little or no support materials. We propose to infer the need for a component and proactively recommend that component to the developer using a technique which is consistent with the principles of Agile methodologies. Our RASCAL recommender agent tracks usage histories of a group of developers to recommend to an individual developer components that are expected to be needed by that developer. Unlike many traditional recommender systems, we may recommend items that the developer has actually employed previously. We introduce a content-based filtering technique for ordering the set of recommended software components and present a comparative analysis of applying this technique to a number of collaborative filtering algorithms. We also investigate the relationship between the number of usage histories collected and recommendation accuracy. Our overall results indicate that RASCAL is a very promising tool for allowing developers discover reusable components at no additional cost


Agile processesAgile reuserecommender agentcontent-based filteringcollaborative filteringsoftware reuse

Copyright information

© Springer 2005