When learning to use an Application Programming Interface (api), programmers need to understand the inputs and outputs (I/O) of the api functions. Current documentation tools automatically document the static informat...
详细信息
ISBN:
(纸本)9781538605356
When learning to use an Application Programming Interface (api), programmers need to understand the inputs and outputs (I/O) of the api functions. Current documentation tools automatically document the static information of I/O, such as parameter types and names. What is missing from these tools is dynamic information, such as I/O examples-actual valid values of inputs that produce certain outputs. In this paper, we demonstrate Docio, a prototype toolset we built to generate I/O examples. Docio logs I/O values when api functions are executed, for example in running test suites. Then, Docio puts I/O values into api documents as I/O examples. Docio has three programs: 1) funcWatch, which collects I/O values when api developers run test suites, 2) ioSelect, which selects one I/O example from a set of I/O values, and 3) ioPresent, which embeds the I/O examples into documents. In a preliminary evaluation, we used Docio to generate four hundred I/O examples for three C libraries: ffmpeg, libssh, and protobuf-c. Docio is open-source and available at: http://***/similar to sjiang1/docio/
This report introduces the approach that we have designed and implemented for the DeClutter challenge of DocGen2, which detects non-informative code comments. The approach combines both comment based text classificati...
详细信息
ISBN:
(纸本)9781728156194
This report introduces the approach that we have designed and implemented for the DeClutter challenge of DocGen2, which detects non-informative code comments. The approach combines both comment based text classification and code context based prediction. Based on the approach, our "fduse" team achieved the best F1 score (0.847) in the competition.
Software systems increasingly depend on external library and frameworks. Software developers need to reuse functionalities provided by these libraries through their Application Programming Inter- faces (apis). Hence, ...
详细信息
Software systems increasingly depend on external library and frameworks. Software developers need to reuse functionalities provided by these libraries through their Application Programming Inter- faces (apis). Hence, software developers have to cope with the complexity of existing apis needed to accomplish their work, and overcome the lack of usage directive in the api documentation. In this thesis, we propose a holistic approach that deals with the library usability problem at three levels of granularity. In the first step, we focus on the method level. We propose to identify usage constraints related to method parameters, by analyzing only the library source code. We applied program anal- ysis strategies to detect four critical usage constraint types. At the second step, we change the scale to focus on api usage pattern mining in order to help developers to better learn common ways to use the api complementary methods. We first propose a client-based technique for mining multi- level api usage patterns to exhibit the co-usage relationships between api methods across interfering usage scenarios. Then, we proposed a library-based technique to overcome the strong constraint of client programs' selection. Our technique infers api usage patterns through the analysis of structural and semantic relationships between api methods. Finally, we proposed a cooperative usage pattern mining technique that combines client-based and library-based usage pattern mining. Our technique takes advantage at the same time from the precision of the client-based technique and from the gener- alizability of the library-based technique. As a last contribution of this thesis, we target a higher level of library usability. We present a novel approach, to automatically identify third-party library usage patterns, of libraries that are commonly used together. This aims to help developers to discover reuse opportunities, and pick complementary libraries that may be relevant for their projects.
Our study provides an improvement on the creation of Application Programming Interfaces (apis) usage documentation using the efficiency and power of Generative AI. apis play an important role in software integration a...
详细信息
Nowadays,more and more Android developers prefer to seek help from Q&A website like Stack Overflow,despite the rich official *** researches have studied the limitations of the official application programming inte...
详细信息
Nowadays,more and more Android developers prefer to seek help from Q&A website like Stack Overflow,despite the rich official *** researches have studied the limitations of the official application programming interface(api)documentations and proposed approaches to improve ***,few of them digged into the requirements of the third-party developers to study *** this work,we gain insight into this question from multidimensional perspectives of api developers and api users by a kind of *** propose a hybrid approach,which combines manual inspection on artifacts and online survey on corresponding developers,to explore the different focus between these two types of *** our work,we manually inspect 1000 posts and receive 319 questionnaires in *** the mutual verification of the inspection and survey process,we found that the users are more concerned with the usage of api,while the official documentation mainly provides functional ***,we identified 9 flaws of the official documentation and summarized 12 aspects(from the content to the representation)for promotion to improve the official api documentations.
Creating modern software inevitably requires using application programming interfaces (apis). While software developers can sometimes use apis by simply copying and pasting code examples, a lack of robust knowledge of...
详细信息
Creating modern software inevitably requires using application programming interfaces (apis). While software developers can sometimes use apis by simply copying and pasting code examples, a lack of robust knowledge of how an api works can lead to defects, complicate software maintenance, and limit what someone can express with an api. Prior work has uncovered the many ways that api documentation fails to be helpful, though rarely describes precisely why. We present a theory of robust api knowledge that attempts to explain why, arguing that effective understanding and use of apis depends on three components of knowledge: (1) the domain concepts the api models along with terminology, (2) the usage patterns of apis along with rationale, and (3) facts about an api's execution to support reasoning about its runtime behavior. We derive five hypotheses from this theory and present a study to test them. Our study investigated the effect of having access to these components of knowledge, finding that while learners requested these three components of knowledge when they were not available, whether the knowledge helped the learner use or understand the api depended on the tasks and likely the relevance and quality of the specific information provided. The theory and our evidence in support of its claims have implications for what content api documentation, tutorials, and instruction should contain and the importance of giving the right information at the right time, as well as what information api tools should compute, and even how apis should be designed. Future work is necessary to both further test and refine the theory, as well as exploit its ideas for better instructional design.
暂无评论