-
Chapter and Conference Paper
Semantic Code Search in Software Repositories using Neural Machine Translation
Nowadays, software development is accelerated through the reuse of code snippets found online in question-answering platforms and software repositories. In order to be efficient, this process requires forming ...
-
Book
-
Chapter
Mining Solutions for Extended Snippet Reuse
The introduction of question–answering services, such as Stack Overflow, has given rise to a new problem-solving paradigm in software development. Using these services, developers can post their programming qu...
-
Chapter and Conference Paper
Versatile Internet of Things for Agriculture: An eXplainable AI Approach
The increase of the adoption of IoT devices and the contemporary problem of food production have given rise to numerous applications of IoT in agriculture. These applications typically comprise a set of sensor...
-
Chapter
Future Work
In this chapter, we discuss ideas for future work in the area of applying mining techniques on software engineering data. We initially focus on potential improvements in each of the three main areas of applica...
-
Chapter
Introduction
Software engineering has grown to be one of the most important disciplines with noticeable impact to business and everyday life. However, there are still several challenges posed when develo** and maintainin...
-
Chapter
Providing Reusability-Aware Recommendations
As contemporary software development relies more on software reuse, several systems have been designed to automate the process of finding reusable software components from online sources and integrating them t...
-
Chapter
Conclusion
This chapter concludes the book and summarizes the main contributions produced by applying mining techniques on software engineering data. These contributions lie in three different areas of application, which...
-
Chapter
Theoretical Background and State-of-the-Art
This chapter provides an overview of the background knowledge that is relevant to the main areas of application of this book. The areas of software engineering, software reuse, and software quality are discuss...
-
Chapter
Mining Software Requirements
Requirements identification is one of the most important phases in software engineering, as incomplete or badly specified requirements are the most common cause of project failure. In this chapter, we design a...
-
Chapter
Mining Source Code for Component Reuse
Although the development of code search engines has brought forth syntax-aware capabilities when searching for reusable components, these engines do not fully exploit the given context and do not assess the re...
-
Chapter
Assessing the Reusability of Source Code Components
In the context of reusing components from online repositories, assessing the quality and specifically the reusability of source code before reusing it poses a major challenge for the research community. Althou...
-
Chapter
Modeling Software Requirements
Enhancing requirements elicitation and specification extraction has always been of added value to software engineering, as it expedites the software development life cycle. In this context, the main challenge ...
-
Chapter
Source Code Indexing for Component Reuse
The momentum of the open-source community has been constantly increasing, thus leading to numerous tools for writing, maintaining, and sharing source code. Several code search engines have been developed to su...
-
Chapter and Conference Paper
Extracting Semantics from Question-Answering Services for Snippet Reuse
Nowadays, software developers typically search online for reusable solutions to common programming problems. However, forming the question appropriately, and locating and integrating the best solution back to ...
-
Chapter
Mining Source Code for Snippet Reuse
As developers rely more and more on reusing components from online sources, an important challenge is that of finding snippets in order to integrate these components and/or to address common programming proble...
-
Chapter and Conference Paper
Assessing the User-Perceived Quality of Source Code Components Using Static Analysis Metrics
Nowadays, developers tend to adopt a component-based software engineering approach, reusing own implementations and/or resorting to third-party source code. This practice is in principle cost-effective, howeve...
-
Chapter and Conference Paper
Summarizing Software API Usage Examples Using Clustering Techniques
As developers often use third-party libraries to facilitate software development, the lack of proper API documentation for these libraries undermines their reuse potential. And although several approaches extr...
-
Article
From requirements to source code: a Model-Driven Engineering approach for RESTful web services
During the last few years, the REST architectural style has drastically changed the way web services are developed. Due to its transparent resource-oriented model, the RESTful paradigm has been incorporated in...