Reverse engineering approach for improving the quality of mobile applications
Background: Portable applications (Android applications) are becoming increasingly complicated by mind-boggling programming frameworks. Applications must be produced rapidly and advance persistently in order to fit new client requirements and execution settings. However, catering to these imperatives may bring about poor outline decisions on design choices, known as anti-patterns, which may possibly corrupt programming quality and execution. Thus, the automatic detection of anti-patterns is a vital process that facilitates both maintenance and evolution tasks. Additionally, it guides developers to refactor their applications and consequently enhance their quality. Methods: We propose a reverse-engineering approach to analyze Android applications and detect the anti-patterns from mobile apps. We validate the effectiveness of our approach on a set of popular mobile apps such as YouTube, Whats App, Play Store and Twitter. The result of our approach produced an Android app with fewer anti-patterns, leading the way for perfect long-time apps and ensuring that these applications are purely valid. Results: The proposed method is a general detection method. It detected a set of semantic and structural design anti-patterns which have appeared 1262 times in mobile apps. The results showed that there was a correlation between the anti-patterns detected by an ontology editor and OntoUML editor. The results also showed that using ontology increases the detection percentage approximately 11.3%, guarantees consistency and decreases accuracy of anti-patterns in the new ontology.