Skip to main content
Log in

Rascal: A Recommender Agent for Agile Reuse

  • Published:
Artificial Intelligence Review Aims and scope Submit manuscript

Abstract

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

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  • 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–18

  • Apache. (2003). Apache Software Foundation – Bytecode Engineering Library (2002–2003). http://jakarta.apache.org/bcel/index.html

  • Beck K. (2000). Extreme Programming Explained: Embrace Change. Addison-Wesley Longman Publishing Co. Inc

    Google Scholar 

  • 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. http://www.agilealliance.org/principles.html

  • Bezos, J. (2004). Amazon.com PLC (1995–2004). Seattle, WA 98108-1226, USA http://www.amazon.co.uk

  • 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–52

  • 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–111

    Google Scholar 

  • 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

  • Claypool M., Gokhale A., Miranda T., Murnikov, P., Netes, D., Sartin, M. (1999). Combining Content-Based and Collaborative Filters in an Online Newspaper

  • Cusumano M., Yoffie D. (1999). Software Development on Internet Time. IEEE Computer 32(10):60–69

    Google Scholar 

  • 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, 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–1196

    Article  Google Scholar 

  • Frakes W., Terry C. (1996). Software Reuse: Metrics and Models. ACM Comput. Surv 28(2):415–435

    Article  Google Scholar 

  • Girardi M., Ibrahim B. (1995). Using English to Retrieve Software. Journals of Systems and Software 30(3):249–270

    Article  Google Scholar 

  • Griss M.L. (1991). Software Reuse at Hewlett-Packard. In: Frakes W (eds). In Proceedings of the 1st International Workshop on Software Reusability. Dortmund, Germany

    Google Scholar 

  • Hooper J., Chester R. (1991). Software Reuse and Methods. Plenum Press, New York

    Google Scholar 

  • 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.

  • Mili A., Mili R., Mittermeir R.T. (1998). A Survey of Software Reuse Libraries. Annals of Software Engineering 5:349–414

    Article  Google Scholar 

  • Movielens (2004). GroupLens Research at the University of Minnesota. http://www.movielens.org

  • Oard D., Marchionini G. (1996). A Conceptual Framework for Text Filtering Process. Technical report, University of Maryland, College Park

    Google Scholar 

  • 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)

  • OSTG (2004). SourceForge.net is owned by the Open Source Technology Group Inc (OSTG), a subsidiary of VA Software Corporation. http://sourceforge.net

  • Page L., Brin S., Motwani R., Winograd T. (1998). The PageRank Citation Ranking: Bringing Order to the Web. Technical report, Stanford Digital Library Technologies Project

  • Prieto-Diaz R., Freeman P. (1987). Classifying Software for Reuse. IEEE Software 4(1):6–16

    Article  Google Scholar 

  • Raymond E. (2004). The Cathedral and the Bazar. http://www.tuxedo.org/esr/writings/cathedral-bazar

  • 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–186

  • Sarwar B.M., Karypis G., Konstan J.A., Reidl J. (2001). Item-based Collaborative Filtering Recommendation Algorithms. In World Wide Web. 285–295

  • Schmidt D. (1999). Why Software Reuse has Failed and How to Make it Work for You. The C++ Report Magazine

  • 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–468

  • Snelting G., Tip F. (2000). Understanding Class Hierarchies Using Concept Analysis. ACM Transactions Programing Language Systems 22(3):540–582

    Article  Google Scholar 

  • Sugumaran V., Storey V.C. (2003). A Semantic-based Approach to Component Retrieval. SIGMIS Database 34(3):8–24

    Article  Google Scholar 

  • 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–188

  • Tirso, J. R. (1991). IBM Reuse Program. In Proceedings of the 4th Annual Workshop on Software Reuse, University of Maine, 1–5

  • 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–46

  • 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–64

  • 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–115

  • Yongbeom K., Stohr E. (1998). Software Reuse: Survey and Research Directions. Management Information Systems 14(4):113–147

    Google Scholar 

  • 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–166

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Frank McCarey.

Rights and permissions

Reprints and permissions

About this article

Cite this article

McCarey, F., Cinnéide, M.Ó. & Kushmerick, N. Rascal: A Recommender Agent for Agile Reuse. Artif Intell Rev 24, 253–276 (2005). https://doi.org/10.1007/s10462-005-9012-8

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10462-005-9012-8

Keywords

Navigation