Part 1: Introduction and Background.- Introduction.- Theoretical Background and State-of-the-art.- Part II: Requirements Mining.- Modelling Software Requirements.- Mining Software Requirements.- Part III: Source Code Mining.- Source Code Indexing for Component Reuse.- Mining Source Code for Component Reuse.- Mining Source Code for Snippet Reuse.- Mining Solutions for Extended Snippet Reuse.- Part IV: Quality Assessment.- Providing Reusability-aware Recommendations.- Assessing the Reusability of Source Code Components.- Part V: Conclusion and Future Work.- Conclusion.- Future Work.- Bibliography
This monograph discusses software reuse and how it can be applied at different stages of the software development process, on different types of data and at different levels of granularity. Several challenging hypotheses are analyzed and confronted using novel data-driven methodologies, in order to solve problems in requirements elicitation and specification extraction, software design and implementation, as well as software quality assurance.
The book is accompanied by a number of tools, libraries and working prototypes in order to practically illustrate how the phases of the software engineering life cycle can benefit from unlocking the potential of data.
Software engineering researchers, experts, and practitioners can benefit from the various methodologies presented and can better understand how knowledge extracted from software data residing in various repositories can be combined and used to enable effective decision making and save considerable time and effort through software reuse. Mining Software Engineering Data for Software Reuse can also prove handy for graduate-level students in software engineering.