Software developers need access to correlated information (e.g., api documentation, Wikipedia pages, Stack Overflow questions and answers) which are often dispersed among different Web resources. This paper is concern...
详细信息
Software developers need access to correlated information (e.g., api documentation, Wikipedia pages, Stack Overflow questions and answers) which are often dispersed among different Web resources. This paper is concerned with the situation where a developer is visiting a Web page, but at the same time is willing to explore correlated Web resources to extend his/her knowledge or to satisfy his/her curiosity. Specifically, we present an item-based collaborative filtering technique, named LinkLive, for automatically recommending a list of correlated Web resources for a particular Web page. The recommendation is done by exploiting hyperlink associations from the crowdsourced knowledge on Stack Overflow. We motivate our research using an exploratory study of hyperlink dissemination patterns on Stack Overflow. We then present our LinkLive technique that uses multiple features, including hyperlink co-occurrences in Q&A discussions, locations (e.g., question, answer, or comment) in which hyperlinks are referenced, and votes for posts/comments in which hyperlinks are referenced. Experiments using 7 years of Stack Overflow data show that, our technique recommends correlated Web resources with promising accuracy in an open setting. A user study of 6 participants suggests that practitioners find the recommended Web resources useful for Web discovery.
Application programming interface (api) is an important form of software reuse. api documentations, such as api specifications, tutorials, and online forums, are valuable learning resources for reusing the apis. In re...
详细信息
Application programming interface (api) is an important form of software reuse. api documentations, such as api specifications, tutorials, and online forums, are valuable learning resources for reusing the apis. In recent years, many data-driven api documentation mining (ADM) methods have been proposed. These methods mine api documentations and return api-related information to help developers better understand and reuse apis. These methods treat documentations as unstructured data and apply various data mining techniques to analyze the documentation data. Currently, there is no comprehensive review of the data-driven approach to api documentation mining. This review aims to fill in this gap by analyzing and discussing the state of the art ADM papers. We survey 32 representative papers published in prominent software engineering journals and conferences in recent 5 years (January 2014-July 2019). We analyze their mining tasks, mined data, problems, data mining techniques, and evaluation metrics. Based on the survey results, we point out research challenges and future research directions in this area. This article is categorized under: Application Areas > Science and Technology
R is a package-based programming ecosystem that provides an easy way to install third-party code, datasets, and examples. Thus, R developers rely heavily on the documentation of the packages they import to use them co...
详细信息
R is a package-based programming ecosystem that provides an easy way to install third-party code, datasets, and examples. Thus, R developers rely heavily on the documentation of the packages they import to use them correctly and accurately. This documentation is often written using Roxygen, equivalent to Java's well-known Javadoc. This two-part study provides the first analysis in this area. First, 379 systematically-selected, open-source R packages were mined and analysed to address the quality of their documentation in terms of presence, distribution, and completeness to identify potential sources of documentation debt of technical debt that describes problems in the documentation. Second, a survey addressed how R package developers perceive documentation and face its challenges (with a response rate of 10.04%). Results show that incomplete documentation is the most common smell, with several cases of incorrect use of the Roxygen utilities. Unlike in traditional api documentation, developers do not focus on how behaviour is implemented but on common use cases and parameter documentation. Respondents considered the examples section the most useful, and commonly perceived challenges were unexplained examples, ambiguity, incompleteness and fragmented information. (C) 2022 Elsevier Inc. All rights reserved.
The importance of apis in software development, especially web apis, has increased Developers read documentation, which is available on the internet, and use the corresponding apis in their products. However, document...
详细信息
ISBN:
(纸本)9781728119700
The importance of apis in software development, especially web apis, has increased Developers read documentation, which is available on the internet, and use the corresponding apis in their products. However, documentation occasionally contains mistakes. Such mistakes can confuse developers or lead to defects that lower the quality of the product. In this paper, we investigate the reliability of web apis by extracting and comparing Openapi specifications from both the documentations and the results of the api calls. Almost half of the documentations are somehow unreliable. Mismatches between documentation and the response can be categorized into four types: 1) Undocumented Keys, 2) Dynamic Keys, 3) Unreturned Keys, and 4) Type Mismatched. This study will help developers design more reliable products.
Learning to use existing or new software libraries is a difficult task for software developers, which would impede their productivity. Much existing work has provided different techniques to mine api usage patterns fr...
详细信息
ISBN:
(纸本)9781538615898
Learning to use existing or new software libraries is a difficult task for software developers, which would impede their productivity. Much existing work has provided different techniques to mine api usage patterns from client programs in order to help developers on understanding and using existing libraries. However, this techniques produce incomplete patterns, i.e., without temporal properties, or simple ones. In this paper, we propose a new formulation of the problem of api temporal pattern mining and a new approach to solve it. Indeed, we learn complex temporal patterns using a genetic programming approach. Our preliminary results show that across a considerable variability of client programs, our approach has been able to infer non-trivial patterns that reflect informative temporal properties.
Due to the lexical gap between functionality descriptions and user queries, documentation-based api retrieval often produces poor results. Verb phrases and their phrase patterns are essential in both describing api fu...
详细信息
ISBN:
(纸本)9781450370431
Due to the lexical gap between functionality descriptions and user queries, documentation-based api retrieval often produces poor results. Verb phrases and their phrase patterns are essential in both describing api functionalities and interpreting user queries. Thus we hypothesize that api retrieval can be facilitated by explicitly recognizing and matching between the fine-grained structures of functionality descriptions and user queries. To verify this hypothesis, we conducted a large-scale empirical study on the functionality descriptions of 14,733 JDK and Android api methods. We identified 356 different functionality verbs from the descriptions, which were grouped into 87 functionality categories, and we extracted 523 phrase patterns from the verb phrases of the descriptions. Building on these findings, we propose an api method recommendation approach based on explicit matching of functionality verb phrases in functionality descriptions and user queries, called PreMA. Our evaluation shows that PreMA can accurately recognize the functionality categories (92.8%) and phrase patterns (90.4%) of functionality description sentences;and when used for api retrieval tasks, PreMA can help participants complete their tasks more accurately and with fewer retries compared to a baseline approach.
There are few resources geared to technical writers working on documentation for software developers. This paper presents the results of online surveys and telephone interviews that cover the experience, technical kno...
详细信息
ISBN:
(纸本)078039027X
There are few resources geared to technical writers working on documentation for software developers. This paper presents the results of online surveys and telephone interviews that cover the experience, technical knowledge, and practices of technical writers in this area, with a large percentage of respondents who are Microsoft employees. Respondents value strong writing skills and the ability to learn quickly and continuously, with the amount and type of knowledge needed being specific to the subject area and audience for their work.
Software development increasingly relies on Application Programming Interfaces (apis) to increase productivity. However, learning how to use new apis in many cases is a non-trivial task given their ever-increasing com...
详细信息
ISBN:
(纸本)9781479929313
Software development increasingly relies on Application Programming Interfaces (apis) to increase productivity. However, learning how to use new apis in many cases is a non-trivial task given their ever-increasing complexity. To help developers during the api learning process, we describe in this paper a platform-called apiMiner-that instruments the standard Java-based api documentation format with concrete examples of usage. The examples are extracted from a private source code repository-composed by real systems-and summarized using a static slicing algorithm. We also describe a particular instantiation of our platform for the Android api. To evaluate the proposed solution, we performed a field study, when professional Android developers used the platform by four months.
Developers often rely on api documentation to learn api directives, i.e., constraints and guidelines related to api usage. Failing to follow api directives may cause defects or improper implementations. Since there ar...
详细信息
ISBN:
(纸本)9781450385626
Developers often rely on api documentation to learn api directives, i.e., constraints and guidelines related to api usage. Failing to follow api directives may cause defects or improper implementations. Since there are no industry-wide standards on how to document api directives, they take many forms and are often hard to understand by developers or challenging to parse with tools. In this paper, we propose a learning based approach for extracting first-order logic representations of api directives (FOL directives for short). The approach, called LEADFOL, uses a joint learning method to extract atomic formulas by identifying the predicates and arguments involved in directive sentences, and recognizes the logical relations between atomic formulas, by parsing the sentence structures. It then parses the arguments and uses a learning based method to link api references to their corresponding api elements. Finally, it groups the formulas of the same class or method together and transforms them into conjunctive normal form. Our evaluation shows that LEADFOL can accurately extract more FOL directives than a state-of-the-art approach and that the extracted FOL directives are useful in supporting code reviews.
Application Programming Interfaces (apis) in software libraries play an important role in modern software development. Although most libraries provide api documentation as a reference, developers may find it difficult...
详细信息
ISBN:
(纸本)9781450355728
Application Programming Interfaces (apis) in software libraries play an important role in modern software development. Although most libraries provide api documentation as a reference, developers may find it difficult to directly search for appropriate apis in documentation using the natural language description of the programming tasks. We call such phenomenon as knowledge gap, which refers to the fact that api documentation mainly describes api functionality and structure but lacks other types of information like concepts and purposes. In this paper, we propose a Java api recommendation tool named BIKER (Bi-Information source based KnowledgE Recommendation) to bridge the knowledge gap. We implement BIKER as a search engine website. Given a query in natural language, instead of directly searching api documentation, BIKER first searches for similar api-related questions on Stack Overflow to extract candidate apis. Then, BIKER ranks them by considering the query's similarity with both Stack Overflow posts and api documentation. Finally, to help developers better understand why each api is recommended and how to use them in practice, BIKER summarizes and presents supplementary information (e.g., api description, code examples in Stack Overflow posts) for each recommended api. Our quantitative evaluation and user study demonstrate that BIKER can help developers find appropriate apis more efficiently and precisely.
暂无评论