Mining Software Components from Object-Oriented APIs
This addresses the problem of software reuse and understanding for developers working with large APIs, but it is incremental as it builds on existing component-based concepts.
The paper tackles the complexity of reusing large object-oriented APIs by proposing an approach to reengineer them into component-based APIs, grouping classes based on usage frequency and quality metrics, and validates it on 100 Java applications using Android APIs.
Object-oriented Application Programing Interfaces (APIs) support software reuse by providing pre-implemented functionalities. Due to the huge number of included classes, reusing and understanding large APIs is a complex task. Otherwise, software components are admitted to be more reusable and understandable entities than object-oriented ones. Thus, in this paper, we propose an approach for reengineering object-oriented APIs into component-based ones. We mine components as a group of classes based on the frequency they are used together and their ability to form a quality-centric component. To validate our approach, we experimented on 100 Java applications that used Android APIs.