The DOI matches its Crossref record; 2 of the 2 references it cites were found in a registry or an index.
Supporting Software Developers with a Holistic Recommender System
Abstract
The promise of recommender systems is to provide intelligent support to developers during their programming tasks. Such support ranges from suggesting program entities to taking into account pertinent Q&A pages. However, current recommender systems limit the context analysis to change history and developers' activities in the IDE, without considering what a developer has already consulted or perused, e.g., by performing searches from the Web browser. Given the faceted nature of many programming tasks, and the incompleteness of the information provided by a single artifact, several heterogeneous resources are required to obtain the broader picture needed by a developer to accomplish a task. We present Libra, a holistic recommender system. It supports the process of searching and navigating the information needed by constructing a holistic meta-information model of the resources perused by a developer, analyzing their semantic relationships, and augmenting the web browser with a dedicated interactive navigation chart. The quantitative and qualitative evaluation of Libra provides evidence that a holistic analysis of a developer's information context can indeed offer comprehensive and contextualized support to information navigation and retrieval during software development.
Overview
Integrity signals
Registry
Cites
Statistics
Verification
Claims the paper makes
Citations
Cites
Using task context to improve programmer productivity
Kersten, M., & Murphy, G. C. (2006) · Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineering · doi:10.1145/1181775.1181777 · Cited by 452
Mining StackOverflow to turn the IDE into a self-confident programming prompter
Ponzanelli, L., Bavota, G., Di Penta, M., Oliveto, R., & Lanza, M. (2014) · Proceedings of the 11th Working Conference on Mining Software Repositories · doi:10.1145/2597073.2597077 · Cited by 240
Self-citation
Flagged first, then by citations
Research works printed but not linked: 53
- 10.1109/ICPC.2006.14 · DOI
- 10.1145/2063239.2063243 · DOI
- 10.1145/1985793.1985809 · DOI
- 10.1109/TSE.2011.84 · DOI
- 10.1145/1321631.1321663 · DOI
- 10.1145/1297846.1297946 · DOI
- linstead, 2007, Mining internet-scale software repositories, Proceedings of NIPS 2007 (21st Annual Conference on Neural Information Processing Systems), 929
- 10.1007/s10664-010-9144-6 · DOI · Paper page
- 10.1109/MSR.2009.5069489 · DOI
- 10.1109/ASE.2008.43 · DOI
- baker, 1995, Modern permutation test software, Randomization tests
- grissom, 2005, Effect Sizes for Research A Broad Practical Approach
- 10.1109/ICSE.2009.5070525 · DOI
- 10.1109/ICPC.2015.19 · DOI
- 10.1007/978-0-387-09684-1_21 · DOI
- 10.1109/MSR.2015.67 · DOI
- 10.1016/S0169-7552(98)00110-X · DOI · Paper page
- 10.1017/CBO9780511809071 · DOI · Paper page
- 10.1109/MSR.2015.49 · DOI
- sheskin, 2007, Handbook of Parametric and Nonparametric Statistical Procedures
- erkan, 2004, Lexrank: Graph-based lexical centrality as salience in text summarization, Journal of Artificial Intelligence Research, 22, 457, 10.1613/jair.1523 · DOI
- 10.1109/VLHCC.2012.6344497 · DOI
- 10.1109/CSMR-WCRE.2014.6747170 · DOI · Paper page
- 10.1007/s10664-015-9397-1 · DOI
- 10.1109/ICSME.2014.99 · DOI
- 10.1145/1985429.1985434 · DOI
- 10.1109/RSSE.2012.6233418 · DOI
- 10.1109/ICSE.2015.98 · DOI
- ponzanelli, 2016, Too long; didn't watch! extracting relevant fragments from software development video tutorials, Proceedings of ICSE 2016 (38th International Conference on Software Engineeering), 261
- 10.1109/ICPC.2015.12 · DOI
- 10.1145/2889160.2889172 · DOI
- 10.1109/ICSE.2004.1317478 · DOI
- 10.1109/CSMR.2013.16 · DOI
- 10.1145/1984708.1984722 · DOI
- 10.1109/ICSE.2003.1201219 · DOI
- 10.1145/2786805.2786855 · DOI
- 10.1109/SUITE.2009.5070013 · DOI
- pirolli, 2005, The sensemaking process and leverage points for analyst technology as identified through cognitive task analysis, Proceedings of International Conference on Intelligence Analysis, 2
- 10.1109/ICSE.2013.6606629 · DOI
- 10.1109/MS.2009.161 · DOI
- robillard, 2014, Recommending reference API documentation, Empirical Software Engineering, 20, 1
- 10.1145/1287624.1287630 · DOI
- 10.1109/ICSE.2012.6227140 · DOI
- 10.1109/VLHCC.2006.32 · DOI
- 10.1145/2568225.2568292 · DOI
- 10.1145/1081706.1081744 · DOI
- 10.1145/1370750.1370755 · DOI
- holmes, 2005, Using structural context to recommend source code examples, Proceedings of ICSE 2005 (27th IEEE International Conference on Software Engineering), 117
- 10.1109/TSE.2006.117 · DOI
- 10.1109/SANER.2016.39 · DOI · Paper page
- 10.1109/ICPC.2016.7503714 · DOI
- 10.1109/EURMIC.2003.1231611 · DOI
- 10.1016/j.jvlc.2009.04.003 · DOI
Cited by
Sorted by citations
Software Documentation Issues Unveiled
Aghajani, E., Nagy, C., Vega-Marquez, O. L., Linares-Vasquez, M., Moreno, L., Bavota, G., & Lanza, M. (2019) · 2019 IEEE/ACM 41st International Conference on Software Engineering (ICSE) · doi:10.1109/icse.2019.00122 · Cited by 195
“Code search engines and recommendation systems are available for retrieving API and code usage examples [30]–[33], code fragments implementing specific features [34]–[37] and crowd knowledge [38], [39].”
BackgroundSelf-citationSoftware Documentation: The Practitioners' Perspective
Aghajani, E., Nagy, C., Linares-Vásquez, M., Moreno, L., Bavota, G., Lanza, M., & Shepherd, D. (2020) · International Conference on Software Engineering · doi:10.1145/3377811.3380405 · Cited by 173
“Equally important are recommenders that support developers in finding APIs and code usage examples [21, 22, 31, 45, 64], code fragments implementing specific features [41, 51, 53, 66] or generally useful crowdsourced knowledge for a given implementation task [50].”
BackgroundSelf-citation(2018) · doi:10.1145/3274404 · Cited by 122
“, which systematically mines community based resources such as forums or Stack Overflow to propose related changes [46].”
BackgroundFOCUS: A Recommender System for Mining API Function Calls and Usage Patterns
Nguyen, P., Rocco, J. D., di Ruscio, D., Ochoa, L., Degueule, T., & Penta, M. D. D. (2019) · International Conference on Software Engineering · doi:10.1109/icse.2019.00109 · Cited by 115
“flow discussions to suggest context-specific code snippets and documentation [5], [25], [26], [27], [29], [31], [38], [41].”
Do you Really Code? Designing and Evaluating Screening Questions for Online Surveys with Programmers
Danilova, A., Naiakshina, A., Horstmann, S. A., & Smith, M. (2021) · International Conference on Software Engineering · doi:10.1109/icse43902.2021.00057 · Cited by 80
“One advantage of recruiting locally is that researchers can be fairly certain that most of their sample actually has a computer science/programming background (e.g., [1], [2], [3], [4], [5], [6]).”
BackgroundUnakite: Scaffolding Developers' Decision-Making Using the Web
Liu, M. X., Hsieh, J., Hahn, N., Zhou, A., Deng, E., Burley, S., Taylor, C., Kittur, A., & Myers, B. A. (2019) · ACM Symposium on User Interface Software and Technology (UIST) · doi:10.1145/3332165.3347908 · Cited by 65
“For example, tools like Mica [64], Assieme [33], and Libra [56] improve existing general-purpose search engines by concentrating programming-specific information to help developers locate the most relevant API choices or other resources; BluePrint [15] and Seahawk [55] mined software repositories and online Q&A forums…”
BackgroundPattern-Based Mining of Opinions in Q&A Websites
Lin, B., Zampetti, F., Bavota, G., Penta, M. D., & Lanza, M. (2019) · International Conference on Software Engineering · doi:10.1109/icse.2019.00066 · Cited by 70
“Among the various resources available on the Web, Q&A Websites — and in particular Stack Overflow— have been the basis of many recommender systems [8], [29], [30], [39].”
BackgroundSelf-citationRedundancy, Context, and Preference: An Empirical Study of Duplicate Pull Requests in OSS Projects
Li, Z., Yu, Y., Zhou, M., Wang, T., Yin, G., Lan, L., & Wang, H. (2020) · IEEE Transactions on Software Engineering · doi:10.1109/tse.2020.3018726 · Cited by 38
“Following the previous guidelines [70], [90] on interpreting the effect size (trivial: | d | ≤ 0 .”
MethodDevelopment of recommendation systems for software engineering: the CROSSMINER experience
Rocco, J. D., di Ruscio, D., Sipio, C. D., Nguyen, P., & Rubei, R. (2021) · Empirical Software Engineering · doi:10.1007/s10664-021-09963-7 · Cited by 40
“Other tools exploit StackOverflow discussions to suggest code snippets and documentation [9], [31], [32], [34], [36], [47], [50].”
Boosting API Recommendation With Implicit Feedback
Zhou, Y., Xinying, Y., Chen, T., Huang, Z., Ma, X., & Gall, H. C. (2021) · IEEE Transactions on Software Engineering · doi:10.1109/tse.2021.3053111 · Cited by 46
“propose a holistic recommendation system Libra, which integrates the IDE and the web browser [47].”
BackgroundNeyem, A., González, L., Mendoza, M., Alcocer, J. P. S., Centellas, L., & Paredes, C. (2024) · IEEE Transactions on Learning Technologies · doi:10.1109/tlt.2024.3396735 · Cited by 33
“On the other hand, the main challenge of external [17].”
BackgroundAn Empirical Study on Code Comment CompletionPreprint
Mastropaolo, A., Aghajani, E., Pascarella, L., & Bavota, G. (2021) · IEEE International Conference on Software Maintenance and Evolution · doi:10.48550/arxiv.2107.10544 · Cited by 31
Self-citationRecommending stack overflow posts for fixing runtime exceptions using failure scenario matching
Mahajan, S., Abolhassani, N., & Prasad, M. (2020) · ESEC/SIGSOFT FSE · doi:10.1145/3368089.3409764 · Cited by 27
“Libra [32] augments this approach by including relevant terms from the user’s recent browsing history.”
BackgroundSummarization techniques for code, change, testing, and user feedback (Invited paper)
Panichella, S. (2018) · 2018 IEEE Workshop on Validation, Analysis and Evolution of Software Tests (VST) · doi:10.1109/vst.2018.8327148 · Cited by 26
“Recent work proposed approaches to help developers browse heterogeneous data during maintenance tasks [17], [20], [21].”
BackgroundSoftware assistants in software engineering: A systematic mapping study
Savary-Leblanc, M., Burgueño, L., Cabot, J., Pallec, X. L., & Gérard, S. (2022) · Software, Practice & Experience · doi:10.1002/spe.3170 · Cited by 25
A Survey on Online Learning Preferences for Computer Science and Programming
Escobar-Avila, J., Venuti, D., Di Penta, M., & Haiduc, S. (2019) · 2019 IEEE/ACM 41st International Conference on Software Engineering: Software Engineering Education and Training (ICSE-SEET) · doi:10.1109/icse-seet.2019.00026 · Cited by 24
Automated Documentation of Android Apps
Aghajani, E., Bavota, G., Linares-Vásquez, M., & Lanza, M. (2021) · IEEE Transactions on Software Engineering · doi:10.1109/tse.2018.2890652 · Cited by 22
“Such approaches [61], [62], [63], [64], [65], [66], [67], [68], [69], [70], [71] mine software repositories to find representative API usage examples for assisting developers when trying to use a class or method, or when finding code examples showing how to implement a given task/feature.”
Self-citationWen, F., Aghajani, E., Nagy, C., Lanza, M., & Bavota, G. (2021) · International Conference on Software Engineering · doi:10.1109/icse43902.2021.00025 · Cited by 20
“, [21]-[23]), the automatic generation of code for different purposes (e.”
BackgroundSelf-citationDeveloper recommendation for Topcoder through a meta-learning based policy model
Zhang, Z., Sun, H., & Zhang, H. (2019) · Empirical Software Engineering · doi:10.1007/s10664-019-09755-0 · Cited by 28
“2016), programming-related information (Ponzanelli et al. 2017), APIs (Yuan et al.”
BackgroundPolitowski, C., Fontoura, L. M., Petrillo, F., & Guéhéneuc, Y.-G. (2018) · Information and Software Technology · doi:10.1016/j.infsof.2018.04.003 · Cited by 17
“For example, recommendation of developments artifacts [42, 43, 44, 45], contextual information [46], libraries [47], meth-ods [48], commands [49] and even pull-requests commenter [50].”
BackgroundODYSSEY: Software Development Life Cycle Ontology
Olszewska, J., & Allison, I. (2018) · International Conference on Knowledge Engineering and Ontology Development · doi:10.5220/0006957703010309 · Cited by 17
“Indeed, it has been found that, on one hand, human software developers spent most of their time in activities such as information seeking (Ponzanelli et al., 2017) or interacting (Ciccozzi et al., 2017).”
BackgroundSENSORY: Leveraging Code Statement Sequence Information for Code Snippets Recommendation
Ai, L., Huang, Z.-Q., Li, W.-W., Zhou, Y., & Yu, Y.-S. (2019) · Annual International Computer Software and Applications Conference · doi:10.1109/compsac.2019.00014 · Cited by 13
“Libra [21] is a holistic recommender system which can support software developers by reorganizing browser search results.”
BackgroundConstantino, K., Belém, F., & Figueiredo, E. (2023) · Software, Practice & Experience · doi:10.1002/spe.3194 · Cited by 11
Developer portraying: A quick approach to understanding developers on OSS platforms
Yang, W.-H., Pan, M.-X., Zhou, Y., & Huang, Z.-Q. (2020) · Information and Software Technology · doi:10.1016/j.infsof.2020.106336 · Cited by 10
Pre-implementation Method Name Prediction for Object-oriented Programming
Wang, S.-W., Wen, M., Lin, B., Liu, Y.-P., Bissyandé, T. F., & Mao, X.-G. (2023) · ACM Transactions on Software Engineering and Methodology · doi:10.1145/3597203 · Cited by 9
“A wide range of studies focus on the conventions of developers when writing Java programs and their potential applications.”
Context-aware API recommendation using tensor factorization
Zhou, Y., Chen, C., Wang, Y.-C., Han, T.-T., & Chen, T. (2023) · Science China Information Sciences · doi:10.1007/s11432-021-3529-9 · Cited by 9
Providing Real-time Assistance for Repairing Runtime Exceptions using Stack Overflow Posts
Mahajan, S., & Prasad, M. (2022) · International Conference on Information Control Systems & Technologies · doi:10.48550/arxiv.2202.04762 · Cited by 7
“The previous version of M AESTRO [17], [57] recommends relevant SO posts for manual fixing of REs, while Prompter [58], [59] and Li-bra [60] suggest posts to assist during implementation.”
MethodContext-Aware Software Documentation
Aghajani, E. (2018) · IEEE International Conference on Software Maintenance (ICSM) · doi:10.1109/icsme.2018.00090 · Cited by 8
“However, some summarization approaches leverage new techniques, for instance HoliRank [28], [29], an extension of PageRank [30] devised to analyze data in a holistic fashion.”
MethodCRAM: Code Recommendation With Programming Context Based on Self-Attention Mechanism
Tao, C., Lin, K., Huang, Z., & Sun, X. (2022) · IEEE Transactions on Reliability · doi:10.1109/tr.2022.3171309 · Cited by 9
Characterizing Task-Relevant Information in Natural Language Software Artifacts
Marques, A., Bradley, N., & Murphy, G. C. (2020) · IEEE International Conference on Software Maintenance and Evolution · doi:10.1109/icsme46990.2020.00052 · Cited by 6
“Researchers might use eye-trackers not only for data collection, but also for the design of online approaches that leverage a developer’s previously viewed information to continuously assist in the identification of task-relevant text [30].”
BackgroundMethodInfluentialA Big Data Semantic Driven Context Aware Recommendation Method for Question-Answer Items
Castro, J., Toledo, R. Y., Alzahrani, A. A., Sánchez, P. J., Barranco, M., & Martínez, L. (2019) · IEEE Access · doi:10.1109/access.2019.2957881 · Cited by 6
“In the same domain, Libra [30] integrates recommendations but it also considers, in addition to context extracted from the integrated development environment, resources opened by the user such as URLs or documents to better understand his/her context.”
BackgroundTrackThinkDashboard: Understanding Student Self-Regulated Learning in Programming Study
Watanabe, K., Matsuda, Y., Nakamura, Y., Arakawa, Y., & Ishimaru, S. (2025) · arXiv.org · doi:10.48550/arxiv.2503.19460 · Cited by 5
“This concept was later expanded in Libra [18], which provides comprehensive web resource recommendations directly within the IDE. CrossRec [16] recommends third-party libraries by analyzing attached code.”
API Recommendation for Novice Programmers: Build a Bridge of Query-Task Knowledge Gap
Wang, Y., Fang, Y.-T., Gao, C.-Y., & Chen, L. (2024) · IEEE Transactions on Reliability · doi:10.1109/tr.2024.3361922 · Cited by 4
“…Almost all API recommendation tasks rely on two sources of information, natural language queries that developers use to search [4], [5], [18], [19], [20], [21], [22], [23], [24], [25], and contextual information about existing code on the client side [26], [27], [28], [29], [30], [31], [32], [33].”
BackgroundMelo, G. (2023) · ACM/IEEE International Conference on Software Engineering: Companion Proceedings (ICSE-Companion) · doi:10.1109/icse-companion58688.2023.00064 · Cited by 4
“[1], this information is often highly heterogeneous, making it difficult for developers to access and integrate all the information they need to complete their tasks effectively.”
BackgroundNalanda: a socio-technical graph platform for building software analytics tools at enterprise scale
Maddila, C., Shanbhogue, S., Agrawal, A., Zimmermann, T., Bansal, C., Forsgren, N., Agrawal, D., Herzig, K., & van Deursen, A. (2021) · ESEC/SIGSOFT FSE · doi:10.1145/3540250.3558949 · Cited by 2
“Tools like Libra [53] aim at refining the web search results complemented by the code context of the software developer in their IDEs.”
MethodAssessing Semantic Frames to Support Program Comprehension Activities
Marques, A., Viviani, G., & Murphy, G. C. (2021) · IEEE International Conference on Program Comprehension · doi:10.48550/arxiv.2105.05981 · Cited by 1
“1) Datasets: For this investigation, we chose artifact types that relate to program comprehension tasks [28], [29].”
MethodAugmented Fine-Grained Defect Prediction for Code Review
Pascarella, L. (2020) · doi:10.4233/uuid:e553e8ae-73be-4718-ab93-81f466db7347 · Cited by 1
How do Copilot Suggestions Impact Developers' Frustration and Productivity?
Guglielmi, E., Arnoudova, V., Bavota, G., Oliveto, R., & Scalabrino, S. (2025) · arXiv · doi:10.48550/arxiv.2504.06808 · Cited by 1
“…developer, we will measure the completion percentage as the number of sub-tasks correctly completed divided by the total number of sub-tasks [26], [27], and completion time , measured in seconds passed from the beginning of the task to the moment in which the participants says they have completed…”
Self-citationSupporting Web-Based API Searches in the IDE Using Signatures
Bradley, N., Fritz, T., & Holmes, R. (2024) · International Conference on Software Engineering · doi:10.1145/3597503.3639089
“Libra adds a plot to Google’s search result page visualizing results according to the number and diversity of overlapping code terms, helping guide developers toward pages with more details or alternative solutions [34].”
BackgroundA Survey on Query-based API RecommendationPreprint
Wei, M., Harzevili, N. S., Belle, A. B., Wang, J., Shi, L., Yang, J., Wang, S., Zhen, M., & Jiang (2023) · arXiv (Cornell University) · doi:10.48550/arxiv.2312.10623
“In the early years of API recommendation, researchers approached the API recommendation problem using statistical approaches such as Indexing [23, 54, 55, 68, 69, 80, 89], Tf-idf [18, 42, 97, 98], bag-of-words (BOW) [78], PageRank [64] and Learn-to-rank [102].”
MethodLeveraging Data Mining Algorithms to Recommend Source Code Changes
Naghshzan, A., Khalilazar, S., Poilane, P., Baysal, O., Guerrouj, L., & Khomh, F. (2023) · arXiv.org · doi:10.48550/arxiv.2305.00323
“The use of data mining algorithms for recommending source code changes has been steadily increasing in a variety of fields, including industrial, scientific, and commercial ones (Borg et al., 2017; Robillard et al., 2010; Ponzanelli et al., 2017).”
BackgroundMethodAI-CTO: Knowledge graph for automated and dependable software stack solution
Xu, X.-Y., Wu, J.-Z., Yang, M., Luo, T.-Y., Meng, Q.-R., Li, W., & Wu, Y.-J. (2020) · Journal of Intelligent & Fuzzy Systems · doi:10.3233/jifs-200899
“Newcomers possess limited knowledge and experience [9, 10].”
Helping developers search and locate task-relevant information in natural language documents
Marques, A. (2019) · ESEC/SIGSOFT FSE · doi:10.1145/3338906.3341459
“As a first step to help locate relevant information to a task, many systems assist in locating pertinent artifacts (e.g. [4, 18]).”
BackgroundA Context Model for Code and API Recommendation Systems based on Programming Onsite Data
Zhang, Z., Chuanqi, T., Yang, W., Yuqian, Z., & Zhiqiu, H. (2019) · International Journal of Performability Engineering · doi:10.23940/ijpe.19.10.p18.27182725
“Ponzanelli et al. presented a holistic recommender system called Libra to help analyze developers' semantic relationships by constructing a holistic meta-information model of developers [28].”
Background
Metadata
- Authors
- Ponzanelli, L., Scalabrino, S., Bavota, G., Mocci, A., Oliveto, R., Di Penta, M., & Lanza, M.
- Affiliations
- Università della Svizzera italiana (CH)
- University of Molise (IT)
- Venue
- 2017 IEEE/ACM 39th International Conference on Software Engineering (ICSE)
- Publisher
- IEEE
- Published
- 2017-05
- Pages
- 94-105
- ISSN
- 0270-5257 (ISSN-L)
- OpenAlex
- W2617733587
- Cited by
- 41
- References
- 67
- Citations by year
- 2024: 3 · 2023: 4 · 2022: 3 · 2021: 9 · 2020: 6 · 2019: 11 · 2018: 5
- FWCI
- 4.62
- Type
- conference paper
- Language
- en
- Open access
- closed
- Locations
- ACM/IEEE International Conference on Software Engineering: Companion Proceedings (ICSE-Companion) (publishedVersion)
- Archivio Istituzionale della Ricerca - Università degli Studi del Molise (submittedVersion)
- Funders
- Schweizerischer Nationalfonds zur Förderung der Wissenschaftlichen Forschung
- Topics
- Physical Sciences › Computer Science › Information Systems › Software Engineering Research
- Physical Sciences › Computer Science › Information Systems › Recommender Systems and Techniques
- Physical Sciences › Computer Science › Information Systems › Software Engineering Techniques and Practices
- Keywords
- recommender systems, software developers, developer support, Brazilian Sign Language (Libras), information navigation, information retrieval, semantic relations, heterogeneous resources, contextual analysis
About these checks
Registry, retraction, Cites and statistics results are computed, not judged, with one exception: a printed reference that no index lists is read once by a model before it counts as a citation error. Claims are extracted by a model and kept only when their quote appears verbatim in the text; each cited source is then checked, with a model’s help, for whether it says what the claim relies on. Those verdicts can be wrong — read the claim’s quote and the cited source before relying on one.
Statistics and arithmetic are recomputed, not judged.
Confidence bands are shown only for fields calibrated on our annotated test set. None is calibrated yet, so no band is shown.
What counts as a claim ›How we measure confidence ›How we check this ›
Are you an author, or do you see a problem with this page? Request a review