954 research outputs found
Requirements of API Documentation: A Case Study into Computer Vision Services
Using cloud-based computer vision services is gaining traction, where
developers access AI-powered components through familiar RESTful APIs, not
needing to orchestrate large training and inference infrastructures or
curate/label training datasets. However, while these APIs seem familiar to use,
their non-deterministic run-time behaviour and evolution is not adequately
communicated to developers. Therefore, improving these services' API
documentation is paramount-more extensive documentation facilitates the
development process of intelligent software. In a prior study, we extracted 34
API documentation artefacts from 21 seminal works, devising a taxonomy of five
key requirements to produce quality API documentation. We extend this study in
two ways. Firstly, by surveying 104 developers of varying experience to
understand what API documentation artefacts are of most value to practitioners.
Secondly, identifying which of these highly-valued artefacts are or are not
well-documented through a case study in the emerging computer vision service
domain. We identify: (i) several gaps in the software engineering literature,
where aspects of API documentation understanding is/is not extensively
investigated; and (ii) where industry vendors (in contrast) document artefacts
to better serve their end-developers. We provide a set of recommendations to
enhance intelligent software documentation for both vendors and the wider
research community.Comment: Early Access preprint for an upcoming issue of the IEEE Transactions
on Software Engineerin
Opinion Mining for Software Development: A Systematic Literature Review
Opinion mining, sometimes referred to as sentiment analysis, has gained increasing attention in software engineering (SE) studies.
SE researchers have applied opinion mining techniques in various contexts, such as identifying developers’ emotions expressed in
code comments and extracting users’ critics toward mobile apps. Given the large amount of relevant studies available, it can take
considerable time for researchers and developers to figure out which approaches they can adopt in their own studies and what perils
these approaches entail.
We conducted a systematic literature review involving 185 papers. More specifically, we present 1) well-defined categories of opinion
mining-related software development activities, 2) available opinion mining approaches, whether they are evaluated when adopted in
other studies, and how their performance is compared, 3) available datasets for performance evaluation and tool customization, and 4)
concerns or limitations SE researchers might need to take into account when applying/customizing these opinion mining techniques.
The results of our study serve as references to choose suitable opinion mining tools for software development activities, and provide
critical insights for the further development of opinion mining techniques in the SE domain
Exploiting Context in Dealing with Programming Errors and Exceptions in the IDE
Studies show that software developers spend about 19% of their development time in web surfing. While collecting necessary information using traditional web search, they face several practical challenges. First, it does not consider context (i.e., surroundings, circumstances) of the programming problems during search unless the developers do so in search query formulation, and forces the developers to frequently switch between their working environment (e.g., IDE) and the web browser. Second, technical details (e.g., stack trace) of an encountered exception often contain a lot of information, and they cannot be directly used as a search query given that the traditional search engines do not support long queries. Third, traditional search generally returns hundreds of search results, and the developers need to manually analyze the result pages one by one in order to extract a working solution. Both manual analysis of a page for content relevant to the encountered exception (and its context) and working an appropriate solution out are non-trivial tasks. Traditional code search engines share the same set of limitations of the web search ones, and they also do not help much in collecting the code examples that can be used for handling the encountered exceptions.
In this thesis, we present a context-aware and IDE-based approach that helps one overcome those four challenges above. In our first study, we propose and evaluate a context-aware meta search engine for programming errors and exceptions. The meta search collects results for any encountered exception in the IDE from three popular search engines- Google, Bing and Yahoo and one programming Q & A site- StackOverflow, refines and ranks the results against the detailed context of the encountered exception, and then recommends them within the IDE. From this study, we not only explore the potential of the context-aware and meta search based approach but also realize the significance of appropriate search queries in searching for programming solutions. In the second study, we propose and evaluate an automated query recommendation approach that exploits the technical details of an encountered exception, and recommends a ranked list of search queries. We found the recommended queries quite promising and comparable to the queries suggested by experts. We also note that the support for the developers can be further complemented by post-search content analysis. In the third study, we propose and evaluate an IDE-based context-aware content recommendation approach that identifies and recommends sections of a web page that are relevant to the encountered exception in the IDE. The idea is to reduce the cognitive effort of the developers in searching for content of interest (i.e., relevance) in the page, and we found the approach quite effective through extensive experiments and a limited user study. In our fourth study, we propose and evaluate a context-aware code search engine that collects code examples from a number of code repositories of GitHub, and the examples contain high quality handlers for the exception of interest. We validate the performance of each of our proposed approaches against existing relevant literature and also through several mini user studies. Finally, in order to further validate the applicability of our approaches, we integrate them into an Eclipse plug in prototype--ExcClipse. We then conduct a task-oriented user study with six participants, and report the findings which are significantly promising
The Role of Social Media in Policy Formulation Improvement in California
How could staff members of California Assembly members use social media to improve policy formulation? The purpose of this study is to assess the role that social media platforms such as Twitter and Facebook could play in the formulation and evaluation of policies in the state of California, given the increasing application of big data in decision making in the private sector. This study further evaluated how emerging technologies such as machine learning and artificial intelligence could be used to determine the attitudes and perceptions of the citizens of California, specifically on policy issues, and analyze how these technologies could be used by California as a means of gaining useful insights, gauging sentiments and collecting data, prior to formulating and evaluating laws and policies
Open Tracing Tools: Overview and Critical Comparison
Background. Coping with the rapid growing complexity in contemporary software
architecture, tracing has become an increasingly critical practice and been
adopted widely by software engineers. By adopting tracing tools, practitioners
are able to monitor, debug, and optimize distributed software architectures
easily. However, with excessive number of valid candidates, researchers and
practitioners have a hard time finding and selecting the suitable tracing tools
by systematically considering their features and advantages. Objective. To such
a purpose, this paper aims to provide an overview of the popular tracing tools
on the market via a critical comparison. Method. Herein, we first identified 11
tools in an objective, systematic, and reproducible manner adopting the
Systematic Multivocal Literature Review protocol. Then, we characterized each
tool looking at the 1) measured features, 2) popularity both in peer-reviewed
literature and online media, and 3) benefits and issues. Results. As a result,
this paper presents a systematic comparison amongst the selected tracing tools
in terms of their features, popularity, benefits and issues. Conclusion. Such a
result mainly shows that each tracing tool provides a unique combination of
features with also different pros and cons. The contribution of this paper is
to provide the practitioners better understanding of the tracing tools
facilitating their adoption
- …