|
Study | Goal | Target | Method | Technique | Extracted information | Output | Validation |
|
Frank et al. [15] | Program Comprehension Feature location | iOS Android Java ME | Static | Instrumentation Code injection | Runtime behavior Event sequence | Call graph Report | Case study |
Joorabchi and Mesbah [16] | Model recovery | iOS | Dynamic | Crawling Event handling | Runtime behavior User interface states | Finite state machine | Case study |
Yang et al. [17] | Model recovery | Android | Hybrid | Crawling Event handling Parsing | Runtime behaviour Event Sequence | Finite state machine | Case study Comparison Evaluation |
Salva and Zafimiharisoa [18] | Verification and validation Model recovery | Android | Dynamic | Crawling | Runtime behaviour User interface states Crash detection | Call graph Finite state machine Test suite | Comparison Evaluation |
Morgado et al. [19], 2014 | Verification and validation Pattern identification | Android | Hybrid | Crawling Event handling Parsing Instrumentation | Runtime behaviour Event sequence Bugs | Call graph Report Test suite | Case study Comparison |
Nguyen and Csallner [20] | User interface identification | Mobile UI design | Static | Optical character recognition OCR Event handling | User interface widgets Computer vision | Android UI skeleton | Case study Evaluation |
Lamhaddab and Elbaamrani[21] | Porting | iOS | Static | Parsing Graph modeling Model transformation | Source code AST User interface Widgets User interface Sequences | Graph models for source platform (iOS) Graph models for target platform (Android) | Comparison Evaluation |
AmalFitano et al. [22] | Verification and validation Model recovery | Android | Dynamic | Ripping Instrumentation Test Generation | Crash detection Bugs | Call graph Report Test suite Finite state machine | Case study Comparison Evaluation |
Dugerdil and Sako [23] | Program comprehension Maintenance | iOS | Static | Instrumentation Code injection | Runtime behaviour Event Sequence | Report | Case study Evaluation |
Salihu et al. [24] | Model recovery | Android | Hybrid | Crawling Event handling Parsing | Runtime behaviour User interface states | Finite state machine | Comparison Evaluation |
Morgado and Paiva [25] | Verification and validation Pattern identification | Android | Dynamic | Crawling Event handling Parsing | Runtime behaviour Event sequence Bugs | Call graph Report Test suite | Comparison Evaluation |
Chen et al. [26] | User interface identification | Mobile UI design | Static | Neural machine translator Convolutional neural network (CNN) Recurrent neural network (RNN) | User interface widgets | Android UI skeleton | Case study Evaluation |
Beltramelli [28] | User interface identification | Mobile UI design | Static | Convolutional neural network (CNN) Recurrent neural network (RNN) DSL | User Interface Widgets | Android UI skeleton iOS UI skeleton Web-based U | Case study |
Amalfitano et al. [30] | Verification and validation Model Recovery | Android | Hybrid | Crawling Instrumentation Input event sequence Machine learning | Runtime behavior User interface states Human involvement | Call graph Finite state machine Test suite Report | Case study |
|