Understanding a program and the features it provides is essential for a number of software engineering tasks, including refactoring, debugging, and debloating. Unfortunately, program understanding and feature identification are also extremely challenging and time consuming activities. To support developers when they perform these activities, we propose FEATUREFINDER, an approach that aims to identify and understand the features of a program by analyzing its executions. Specifically, we defined our approach for Android apps, given their widespread use. Given an app, FEATUREFINDER generates traces that capture different properties of the app executions through instrumentation. It then leverages the user events in the trace to split the trace into segments, and clusters these segments based on their characteristics, using a classifier. Each identified cluster indicates a feature exercised in the execution. Finally, FEATUREFINDER suitably labels each identified cluster, so as to provide a human-readable description of the corresponding feature. We performed a case study in which we used FEATUREFINDER to identify features in two executions of the K- 9 MAIL app. In the study, FEATUREFINDER was able to correctly identify 6 of the 11 manually identified features, which we believe is an encouraging result and motivates further research.
|Original language||English (US)|
|Title of host publication||Proceedings - 2019 IEEE/ACM 6th International Conference on Mobile Software Engineering and Systems, MOBILESoft 2019|
|Publisher||Institute of Electrical and Electronics Engineers Inc.|
|Number of pages||5|
|State||Published - May 2019|
|Event||6th IEEE/ACM International Conference on Mobile Software Engineering and Systems, MOBILESoft 2019 - Montreal, Canada|
Duration: May 25 2019 → …
|Name||Proceedings - 2019 IEEE/ACM 6th International Conference on Mobile Software Engineering and Systems, MOBILESoft 2019|
|Conference||6th IEEE/ACM International Conference on Mobile Software Engineering and Systems, MOBILESoft 2019|
|Period||5/25/19 → …|
Bibliographical noteFunding Information:
This work was partially supported by NSF, under grants CCF-1161821 and 1563991, DARPA, under contracts FA8650-15-C-7556 and FA8650-16-C-7620, ONR, under contract N00014-17-1-2895, and gifts from Google, IBM Research, and Microsoft Research.
© 2019 IEEE.
Copyright 2020 Elsevier B.V., All rights reserved.
- feature identification
- program understanding
- trace analysis