FLOrIDA: Feature LOcatIon DAshboard for extracting and visualizing feature traces

Features are high-level, domain-specific abstractions over implementation artifacts. Developers use them to communicate and reason about a system, in order to maintain and evolve it. These activities, however, require knowing the locations of features---a common challenge when a system has many developers, many (cloned) variants, or a long lifespan. We believe that embedding feature-location information into software artifacts via annotations eases typical feature-related engineering tasks, such as modifying and removing features, or merging cloned features into a product line. However, regardless of where such annotations stem from---whether embedded by developers when writing code, or retroactively recovered using a feature-location technique---tool support is needed for developers to exploit such annotations. In this tool demonstration, we present a lightweight tool that extracts annotations from software artifacts, aggregates and processes them, and visualizes feature-related information for developers. Views, such as which files implement a specific feature, are presented on different levels of abstraction. Feature metrics, such as feature size, feature scattering, feature tangling, and numbers of feature authors, are also presented. Our tool also incorporates an information-retrieval-based feature-location technique to retroactively recover feature locations.

[1]  Alexandre Bergel,et al.  GiLA: GitHub label analyzer , 2015, 2015 IEEE 22nd International Conference on Software Analysis, Evolution, and Reengineering (SANER).

[2]  Gunter Saake,et al.  Feature-Oriented Software Product Lines , 2013, Springer Berlin Heidelberg.

[3]  Ted J. Biggerstaff,et al.  The concept assignment problem in program understanding , 1993, [1993] Proceedings Working Conference on Reverse Engineering.

[4]  Thorsten Berger,et al.  Towards system analysis with variability model metrics , 2014, VaMoS.

[5]  Goetz Botterweck,et al.  Visualization of variability and configuration options , 2012, International Journal on Software Tools for Technology Transfer.

[6]  Neil Walkinshaw,et al.  Feature Location and Extraction using Landmarks and Barriers , 2007, 2007 IEEE International Conference on Software Maintenance.

[7]  Sven Apel,et al.  Feature-oriented software evolution , 2013, VaMoS.

[8]  Peng Shao,et al.  Feature location by IR modules and call graph , 2009, ACM-SE 47.

[9]  Michal Antkiewicz,et al.  Maintaining feature traceability with embedded annotations , 2015, SPLC.

[10]  Sven Apel,et al.  An Overview of Feature-Oriented Software Development , 2009, J. Object Technol..

[11]  Emden R. Gansner,et al.  An open graph visualization system and its applications to software engineering , 2000, Softw. Pract. Exp..

[12]  Ralf Lämmel,et al.  Flexible product line engineering with a virtual platform , 2014, ICSE Companion.

[13]  Collin McMillan,et al.  A Case Study of Automated Feature Location Techniques for Industrial Cost Estimation , 2016, 2016 IEEE International Conference on Software Maintenance and Evolution (ICSME).

[14]  Qing Zhang,et al.  CVSSearch: searching through source code using CVS comments , 2001, Proceedings IEEE International Conference on Software Maintenance. ICSM 2001.

[15]  Alexandr Murashkin,et al.  Clafer tools for product line engineering , 2013, SPLC '13 Workshops.

[16]  Marsha Chechik,et al.  What is a feature?: a qualitative study of features in industrial software product lines , 2015, SPLC.

[17]  Krzysztof Czarnecki,et al.  Three Cases of Feature-Based Variability Modeling in Industry , 2014, MoDELS.

[18]  Sven Apel,et al.  An analysis of the variability in forty preprocessor-based software product lines , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[19]  Andrian Marcus,et al.  An information retrieval approach to concept location in source code , 2004, 11th Working Conference on Reverse Engineering.

[20]  Yann-Gaël Guéhéneuc,et al.  Feature Location Using Probabilistic Ranking of Methods Based on Execution Scenarios and Information Retrieval , 2007, IEEE Transactions on Software Engineering.

[21]  Marsha Chechik,et al.  A Survey of Feature Location Techniques , 2013, Domain Engineering, Product Lines, Languages, and Conceptual Models.

[22]  Krzysztof Czarnecki,et al.  A survey of variability modeling in industrial practice , 2013, VaMoS.

[23]  Andrian Marcus,et al.  Semantic driven program analysis , 2004, 20th IEEE International Conference on Software Maintenance, 2004. Proceedings..

[24]  Zhenchang Xing,et al.  How developers perform feature location tasks: a human‐centric and process‐oriented exploratory study , 2013, J. Softw. Evol. Process..

[25]  Martin P. Robillard,et al.  Representing concerns in source code , 2007, TSEM.

[26]  Paul Clements,et al.  Software product lines - practices and patterns , 2001, SEI series in software engineering.

[27]  Danilo Beuche,et al.  Running a software product line: standing still is going backwards , 2009, SPLC.