Reverse engineering reusable software components from object-oriented APIs

Image credit: Unsplash


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 accepted 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 four APIs.

Journal of Systems and Software
Zakarea Alshara
Zakarea Alshara
Associate Professor of Software Engineering

My research interests include Software Engineering, Software Security, AI, and Cloud Computing.