Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article

Rascal: A Recommender Agent for Agile Reuse

Published: 01 November 2005 Publication History

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

References

[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-18.]]
[2]
Apache, (2003). Apache Software Foundation - Bytecode Engineering Library (2002- 2003). http://jakarta.apache.org/bcel/index.html.]]
[3]
Beck, K. (2000). Extreme Programming Explained: Embrace Change, Addison-Wesley Longman Publishing Co. Inc.]]
[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, http://www.agilealliance.org/principles.html.]]
[5]
Bezos, J. (2004). Amazon.com PLC (1995-2004). Seattle, WA 98108-1226, USA http://www.amazon.co.uk.]]
[6]
Breese, J. S., Heckermam, 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.]]
[7]
Carroll, J. M. & Rosson, M. B. (1987). Paradox of the Active User. In Carroll, J. M. (ed.) Interfacing Thought: Cognitive Aspects of Human-Computer Interaction. Bradford Books/MIT Press, Chapt. 5, 80-111.]]
[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.]]
[9]
Claypool, M., Gokhale, A., Miranda, T., Murnikov, P., Netes, D. & Sartin, M. (1999). Combining Content-Based and Collaborative Filters in an Online Newspaper.]]
[10]
Cusumano, M. & Yoffie, D. (1999). Software Development on Internet Time. IEEE Computer 32(10), 60-69.]]
[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, 12.]]
[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.]]
[13]
Frakes, W. & Terry, C. (1996). Software Reuse: Metrics and Models. ACM Comput. Surv. 28(2): 415-435.]]
[14]
Girardi, M. & lbrahim, B. (1995). Using English to Retrieve Software. Journals of Systems and Software 30(3): 249-270.]]
[15]
Griss, M. L. (1991). Software Reuse at Hewlett-Packard. In Frakes W. (ed.) In Proceedings of the 1st International Workshop on Software Reusability. Dortmund, Germany.]]
[16]
Hooper, J. & Chester, R. (1991). Software Reuse and Methods. New York: Plenum Press.]]
[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.]]
[18]
Mili, A., Mili, R. & Mittermeir, R. T. (1998). A Survey of Software Reuse Libraries. Annals of Software Engineering 5: 349-414.]]
[19]
Movielens, (2004). GroupLens Research at the University of Minnesota. http://www.movielens.org.]]
[20]
Oard, D. & Marchionini G. (1996). A Conceptual Framework for Text Filtering Process. Technical report, University of Maryland, College Park.]]
[21]
Ohsugi, N., Monden, A. & Matsumoto, K. (2002). A Recommendation System for Software Function Discovery. In Proceedings of the 9th Asia-Pacific Software Engineering, Conference (APSEC2002).]]
[22]
OSTG (2004). SourceForge.net is owned by the Open Source Technology Group Inc (OSTG), a subsidiary of VA Software Corporation. http://sourceforge.net.]]
[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 Project.]]
[24]
Prieto-Diaz, R. & Freeman, P. (1987). Classifying Software for Reuse. IEEE Software 4(1): 6-16.]]
[25]
Raymond, E. (2004). The Cathedral and the Bazar. http.//www.tuxedo.org/esr/writings/cathedral-bazar .]]
[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-186.]]
[27]
Sarwar, B. M., Karypis, G., Konstan, J. A. & Reidl, J. (2001). Item-based Collaborative Filtering Recommendation Algorithms. In World Wide Web. 285-295.]]
[28]
Schmidt, D. (1999). Why Software Reuse has Failed and How to Make it Work for You. The C++ Report Magazine.]]
[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-468.]]
[30]
Snelting, G. & Tip, F. (2000). Understanding Class Hierarchies Using Concept Analysis. ACM Transactions Programing Language Systems 22(3): 540-582.]]
[31]
Sugumaran, V. & Storey, V. C. (2003). A Semantic-based Approach to Component Retrieval. SIGMIS Database 34(3): 8-24.]]
[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 techology, South African Institute for Computer Scientists and Information Technologists, 178-188.]]
[33]
Tirso, J. R. (1991). IBM Reuse Program. In Proceedings of the 4th Annual Workshop on Software Reuse, University of Maine, 1-5.]]
[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-46.]]
[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-64.]]
[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-115.]]
[37]
Yongbeom, K. & Stohr. E. (1998). Software Reuse: Survey and Research Directions. Management Information Systems 14(4): 113-147.]]
[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-166.]]

Cited By

View all
  • (2022)Context-aware code recommendation in Intellij IDEAProceedings of the 30th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3540250.3558937(1647-1651)Online publication date: 7-Nov-2022
  • (2021)Investigating and recommending co-changed entities for JavaScript programsJournal of Systems and Software10.1016/j.jss.2021.111027180:COnline publication date: 1-Oct-2021
  • (2021)FACER: An API usage-based code-example recommender for opportunistic reuseEmpirical Software Engineering10.1007/s10664-021-10000-w26:6Online publication date: 18-Aug-2021
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image Artificial Intelligence Review
Artificial Intelligence Review  Volume 24, Issue 3-4
Nov 2005
294 pages

Publisher

Kluwer Academic Publishers

United States

Publication History

Published: 01 November 2005

Author Tags

  1. Agile processes
  2. Agile reuse
  3. collaborative filtering
  4. content-based filtering
  5. recommender agent
  6. software reuse

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 25 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2022)Context-aware code recommendation in Intellij IDEAProceedings of the 30th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3540250.3558937(1647-1651)Online publication date: 7-Nov-2022
  • (2021)Investigating and recommending co-changed entities for JavaScript programsJournal of Systems and Software10.1016/j.jss.2021.111027180:COnline publication date: 1-Oct-2021
  • (2021)FACER: An API usage-based code-example recommender for opportunistic reuseEmpirical Software Engineering10.1007/s10664-021-10000-w26:6Online publication date: 18-Aug-2021
  • (2020)Towards automating the construction of recommender systems for low-code development platformsProceedings of the 23rd ACM/IEEE International Conference on Model Driven Engineering Languages and Systems: Companion Proceedings10.1145/3417990.3420200(1-10)Online publication date: 16-Oct-2020
  • (2020)AndroLib: Third-Party Software Library Recommendation for Android ApplicationsReuse in Emerging Software Engineering Practices10.1007/978-3-030-64694-3_13(208-225)Online publication date: 2-Dec-2020
  • (2019)Recommending related functions from API usage-based function clone structuresProceedings of the 2019 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3338906.3342486(1193-1195)Online publication date: 12-Aug-2019
  • (2019)API trustworthiness: an ontological approach for software library adoptionSoftware Quality Journal10.1007/s11219-018-9428-427:3(969-1014)Online publication date: 1-Sep-2019
  • (2018)Maintaining third-party libraries through domain-specific category recommendationsProceedings of the 1st International Workshop on Software Health10.1145/3194124.3194129(2-9)Online publication date: 28-May-2018
  • (2018)An agile process supporting software reuseProceedings of the 33rd Annual ACM Symposium on Applied Computing10.1145/3167132.3167297(1544-1551)Online publication date: 9-Apr-2018
  • (2017)Search-based software library recommendation using multi-objective optimizationInformation and Software Technology10.1016/j.infsof.2016.11.00783:C(55-75)Online publication date: 1-Mar-2017
  • Show More Cited By

View Options

View options

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media