Artificial Intelligence Review

, Volume 24, Issue 3–4, pp 253–276

Rascal: A Recommender Agent for Agile Reuse

  • Frank McCarey
  • Mel Ó Cinnéide
  • Nicholas Kushmerick


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 processes Agile reuse recommender agent content-based filtering collaborative filtering software reuse 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. Alspector J., Kolcz A., Karunanithi N. (1998). Comparing Feature-based and Clique-based User Models for Movie selection. In Proceedings of the third ACM conference on Digital libraries, ACM Press, 11–18Google Scholar
  2. Apache. (2003). Apache Software Foundation – Bytecode Engineering Library (2002–2003). Scholar
  3. Beck K. (2000). Extreme Programming Explained: Embrace Change. Addison-Wesley Longman Publishing Co. IncGoogle Scholar
  4. Beck, K., Beedle, M., van Bennekum, A., Cockburn, A., Cunningham, W., Fowler, M., Grenning, J., Highsmith, J., Hunt, A., Jeffries, R., Kern, J., Marick, B., Martin, R. C., Mellor, S., Schwaber, K., Sutherland, J. & Thomas, D. (2000). Agile Mainfesto. Scholar
  5. Bezos, J. (2004). PLC (1995–2004). Seattle, WA 98108-1226, USA Scholar
  6. Breese, J. S., Heckerman, D. & Kadie, C. (1998). Empirical Analysis of Predictive Algorithms for Collaborative Filtering. In Proceedings of the Fourteenth Annual Conference on Uncertainty in Artificial Intelligence, 43–52Google Scholar
  7. Carroll J.M., Rosson M.B. (1987). Paradox of the Active User. In: Carroll J.M (eds). Interfacing Thought: Cognitive Aspects of Human-Computer Interaction. Books/MIT Press, Bradford, Chapt. 5, pp. 80–111Google Scholar
  8. Chesnais P.R., Mucklo M.J., Sheena J.A. (1995). The Fishwrap Personalized News System. In IEEE Second International Workshop on Community Networking Integrating Multimedia Services to the Home Google Scholar
  9. Claypool M., Gokhale A., Miranda T., Murnikov, P., Netes, D., Sartin, M. (1999). Combining Content-Based and Collaborative Filters in an Online NewspaperGoogle Scholar
  10. Cusumano M., Yoffie D. (1999). Software Development on Internet Time. IEEE Computer 32(10):60–69Google Scholar
  11. Daudjee K.S., Toptsis A.A. (1994). A Technique for Automatically Organizing Software Libraries for Software Reuse. In Proceedings of the 1994 conference of the Centre for Advanced Studies on Collaborative research, IBM Press, 12Google Scholar
  12. Drummond C.G., Ionescu D., Holte R.C. (2000). A Learning Agent that Assists the Browsing of Software Libraries. IEEE Transactions Software Engineering 26(12):1179–1196CrossRefGoogle Scholar
  13. Frakes W., Terry C. (1996). Software Reuse: Metrics and Models. ACM Comput. Surv 28(2):415–435CrossRefGoogle Scholar
  14. Girardi M., Ibrahim B. (1995). Using English to Retrieve Software. Journals of Systems and Software 30(3):249–270CrossRefGoogle Scholar
  15. Griss M.L. (1991). Software Reuse at Hewlett-Packard. In: Frakes W (eds). In Proceedings of the 1st International Workshop on Software Reusability. Dortmund, GermanyGoogle Scholar
  16. Hooper J., Chester R. (1991). Software Reuse and Methods. Plenum Press, New YorkGoogle Scholar
  17. Inoue K., Yokomori R., Fujiwara H., Yamamoto T., Matsushita M., Kusumoto S. (2003). Component Rank: Relative Significance Rank for Software Component Search. In Proceedings of the 25th international conference on Software engineering, IEEE Computer Society, 14–24.Google Scholar
  18. Mili A., Mili R., Mittermeir R.T. (1998). A Survey of Software Reuse Libraries. Annals of Software Engineering 5:349–414CrossRefGoogle Scholar
  19. Movielens (2004). GroupLens Research at the University of Minnesota. http://www.movielens.orgGoogle Scholar
  20. Oard D., Marchionini G. (1996). A Conceptual Framework for Text Filtering Process. Technical report, University of Maryland, College ParkGoogle Scholar
  21. Ohsugi N., Monden A., Matsumoto K. (2002). A Recommendation System for Software Function Discovery. In Proceedings of the 9th Asia-Pacific Software Enginieering Conference (APSEC2002)Google Scholar
  22. OSTG (2004). is owned by the Open Source Technology Group Inc (OSTG), a subsidiary of VA Software Corporation. http://sourceforge.netGoogle Scholar
  23. Page L., Brin S., Motwani R., Winograd T. (1998). The PageRank Citation Ranking: Bringing Order to the Web. Technical report, Stanford Digital Library Technologies ProjectGoogle Scholar
  24. Prieto-Diaz R., Freeman P. (1987). Classifying Software for Reuse. IEEE Software 4(1):6–16CrossRefGoogle Scholar
  25. Raymond E. (2004). The Cathedral and the Bazar. Scholar
  26. Resnick, P., Iacovou, N., Suchak, M., Bergstorm, P., Riedl, J. (1994). GroupLens: An Open Architecture for Collaborative Filtering of Netnews. In Proceedings of ACM 1994 Conference on Computer Supported Cooperative Work. Chapel Hill, North Carolina: ACM, 175–186Google Scholar
  27. Sarwar B.M., Karypis G., Konstan J.A., Reidl J. (2001). Item-based Collaborative Filtering Recommendation Algorithms. In World Wide Web. 285–295Google Scholar
  28. Schmidt D. (1999). Why Software Reuse has Failed and How to Make it Work for You. The C++ Report Magazine Google Scholar
  29. Sindre G., Karlsson E., Staalhane T. (1993). A Method for Software Reuse Through Large Component Libraries. In Proceeding of the International Conference on Computing and Information. 464–468Google Scholar
  30. Snelting G., Tip F. (2000). Understanding Class Hierarchies Using Concept Analysis. ACM Transactions Programing Language Systems 22(3):540–582CrossRefGoogle Scholar
  31. Sugumaran V., Storey V.C. (2003). A Semantic-based Approach to Component Retrieval. SIGMIS Database 34(3):8–24CrossRefGoogle Scholar
  32. Theunissen, W. H. M., Kourie, D. G. & Watson, B. W. (2003). Standards and Agile Software Development. In Proceedings of the 2003 annual research conference of the South African institute of computer scientists and information technologists on Enablement through technology, South African Institute for Computer Scientists and Information Technologists, 178–188Google Scholar
  33. Tirso, J. R. (1991). IBM Reuse Program. In Proceedings of the 4th Annual Workshop on Software Reuse, University of Maine, 1–5Google Scholar
  34. Turk, D., France, R., Rumpepe, B. (2002). Limitations of Agile Software Process. In Proceedings of Third International Conference on eXtreme Programming and Agile Processes in Software Engineering, 43–46Google Scholar
  35. Wasfi A.M.A. (1999). Collecting User Access Patterns for Building user Profiles and Collaborative Filtering. In Proceedings of the 4th international conference on Intelligent user interfaces, ACM Press, 57–64Google Scholar
  36. Yao H., Etzkorn L. (2004). Towards a Semantic-based Approach for Software Reusable Component Classification and Retrieval. In Proceedings of the 42nd annual Southeast regional conference, ACM Press, pp. 110–115Google Scholar
  37. Yongbeom K., Stohr E. (1998). Software Reuse: Survey and Research Directions. Management Information Systems 14(4):113–147Google Scholar
  38. Yunwen Y., Fischer G. (2002). Information Delivery in Support of Learning Reusable Software Components on Demand. In Proceedings of the 7th international conference on Intelligent user interfaces, ACM Press, 159–166Google Scholar

Copyright information

© Springer 2005

Authors and Affiliations

  • Frank McCarey
    • 1
  • Mel Ó Cinnéide
    • 1
  • Nicholas Kushmerick
    • 1
  1. 1.School of Computer Science and InformaticsUniversity College DublinBelfieldIreland

Personalised recommendations