ABSTRACT
When developers maintain or evolve software, they often need to know the locations of features. This proves challenging when the feature locations are not documented, when the code was written by different developers who may have left the organization, or when the developer's memory of the implementation has faded. Automated feature location techniques are hard to adopt in practice, especially since they boast too many false positives. To address these challenges, embedded feature annotations have been proposed to allow developers to trace features in code during development with minimal effort. However, tool support is needed for developers to effectively record and use these annotations. We propose HAnS as a tool to meet this need; it is implemented as an IntelliJ IDE plugin to support developers seamlessly record feature locations while they write their code. HAnS supports developers when mapping features to software assets, such as files and code fragments, with code completion and syntax highlighting. It also provides functionality to browse feature definitions and locations, as well as refactor features. A demo video is available at https://youtu.be/cx_-ZshHLgA.
- 2021. FAXE Online Appendix. https://bitbucket.org/easelab/faxe.Google Scholar
- Hadil Abukwaik, Andreas Burger, Berima Kweku Andam, and Thorsten Berger. 2018. Semi-automated feature traceability with embedded annotations. In ICSME.Google Scholar
- Berima Andam, Andreas Burger, Thorsten Berger, and Michel R. V. Chaudron. 2017. FLOrIDA: Feature LOcatIon DAshboard for extracting and visualizing feature traces. In VaMoS. Google ScholarDigital Library
- Sven Apel, Don Batory, Christian Kästner, and Gunter Saake. 2013. Feature-Oriented Software Product Lines. Springer. Google ScholarDigital Library
- Wesley K. G. Assunção, Roberto E Lopez-Herrejon, Lukas Linsbauer, Silvia R Vergilio, and Alexander Egyed. 2017. Reengineering Legacy Applications Into Software Product Lines: A Systematic Mapping. Empirical Software Engineering 22, 6 (2017), 2972--3016. Google ScholarDigital Library
- Alexandre Bergel, Razan Ghzouli, Thorsten Berger, and Michel R. V. Chaudron. 2021. FeatureVista: Interactive Feature Visualization. In SPLC. Google ScholarDigital Library
- Thorsten Berger, Daniela Lettner, Julia Rubin, Paul Grünbacher, Adeline Silva, Martin Becker, Marsha Chechik, and Krzysztof Czarnecki. 2015. What is a feature? a qualitative study of features in industrial software product lines. In SPLC. Google ScholarDigital Library
- Ted J. Biggerstaff, Bharat G. Mitbander, and Dallas Webster. 1993. The Concept Assignment Problem in Program Understanding. In ICSE. Google ScholarDigital Library
- Paul Clements and Linda Northrop. 2001. Software Product Lines: Practices and Patterns. Addison-Wesley. Google ScholarDigital Library
- Sina Entekhabi, Anton Solback, Jan-Philipp Steghöfer, and Thorsten Berger. 2019. Visualization of feature locations with the tool featuredashboard. In SPLC (2). Google ScholarDigital Library
- Wenbin Ji, Thorsten Berger, Michal Antkiewicz, and Krzysztof Czarnecki. 2015. Maintaining feature traceability with embedded annotations. In SPLC. ACM. Google ScholarDigital Library
- Kyo C Kang, Sholom G Cohen, James A Hess, William E Novak, and A Spencer Peterson. 1990. Feature-oriented domain analysis (FODA) feasibility study. Technical Report. CMU SEI.Google Scholar
- Christian Kästner, Salvador Trujillo, and Sven Apel. 2008. Visualizing Software Product Line Variabilities in Source Code.. In SPLC (2).Google Scholar
- Jacob Krueger and Thorsten Berger. 2020. Activities and Costs of Re-Engineering Cloned Variants Into an Integrated Platform. In VaMoS.Google Scholar
- Jacob Krueger, Wanzi Gu, Hui Shen, Mukelabai Mukelabai, Regina Hebig, and Thorsten Berger. 2018. Towards a Better Understanding of Software Features and Their Characteristics: A Case Study of Marlin. In VaMoS. Google ScholarDigital Library
- Jacob Krüger, Thorsten Berger, and Thomas Leich. 2018. Features and how to find them: a survey of manual feature location. LLC/CRC Press.Google Scholar
- Craig Larman. 2008. Scaling lean & agile development: thinking and organizational tools for large-scale Scrum. Pearson Education India.Google Scholar
- Salome Maro, Anthony Anjorin, Rebekka Wohlrab, and Jan-Philipp Steghöfer. 2016. Traceability maintenance: factors and guidelines. In ASE. Google ScholarDigital Library
- Francisca Pérez, Jorge Echeverría, Raúl Lapeña, and Carlos Cetina. 2020. Comparing manual and automated feature location in conceptual models: A Controlled experiment. Information and Software Technology 125 (2020), 106337.Google ScholarCross Ref
- Andreas Pleuss, Rick Rabiser, and Goetz Botterweck. 2011. Visualization techniques for application in interactive product configuration. In SPLC (2). Google ScholarDigital Library
- Julia Rubin and Marsha Chechik. 2013. A survey of feature location techniques. In Domain Engineering.Google Scholar
- Tobias Schwarz, Wardah Mahmood, and Thorsten Berger. 2020. A Common Notation and Tool Support for Embedded Feature Annotations. In SPLC. Google ScholarDigital Library
- Marcus Seiler and Barbara Paech. 2017. Using Tags to Support Feature Management Across Issue Tracking Systems and Version Control Systems. In REFSQ.Google Scholar
- Marcus Seiler and Barbara Paech. 2019. Documenting and Exploiting Software Feature Knowledge through Tags. In SEKE.Google Scholar
- Jinshui Wang, Xin Peng, Zhenchang Xing, and Wenyun Zhao. 2013. How Developers Perform Feature Location Tasks: A Human-Centric and Process-Oriented Exploratory Study. Journal of Software: Evolution and Process 25, 11 (2013).Google ScholarCross Ref
Index Terms
- HAnS: IDE-based editing support for embedded feature annotations
Recommendations
IntelliJML: a JML plugin for IntelliJ IDEA
FTfJP '21: Proceedings of the 23rd ACM International Workshop on Formal Techniques for Java-like ProgramsJava code can be annotated with formal specifications using the Java Modelling Language (JML). Previous work has provided IDE plugins intended to help write JML, but mostly for the Eclipse IDE. We introduce IntelliJML, a JML plugin for IntelliJ IDEA, ...
A Web-Based IDE for Teaching with Any Language (Abstract Only)
SIGCSE '17: Proceedings of the 2017 ACM SIGCSE Technical Symposium on Computer Science EducationThis workshop introduces participants to CS50 IDE (cs50.io), a web-based integrated development environment based on Amazon's Cloud9 (c9.io). Not only does the IDE enable students to work on programming projects within a browser, without need for local ...
Comments