Featurevista: Interactive Feature Visualization

Featurevista: Interactive Feature Visualization

FeatureVista: Interactive Feature Visualization Alexandre Bergel Razan Ghzouli Department of Computer Science (DCC), Chalmers | University of Gothenburg University of Chile, Chile Sweden Thorsten Berger Michel R. V. Chaudron Ruhr University Bochum, Germany and Technische Universiteit Eindhoven Chalmers | University of Gothenburg, Sweden Netherlands ABSTRACT to abstraction boundaries enforced by a technological space. How- Comprehending and characterizing the spread and interaction of ever, in reality, rather few concerns adhere to abstraction bound- features in a software system is know to be difficult and error-prone. aries when implemented—which features are not confined to [6, 34] This paper presents FeatureVista, a lightweight tool providing in- and therefore provide a unique perspective on software systems. teractive, glyph-based, and iconic visualization concepts designed Explicit feature representations are known to improve the com- to visually characterize the feature locations in software assets prehension and maintainability of software systems [19, 24, 26, 27, (source code). FeatureVista supports navigating between software 33, 38, 43]. However, features are often scattered [35] across soft- components and features in an equal fashion. Our pilot study in- ware assets, which hampers their comprehension—especially un- dicates that FeatureVista is intuitive and supports comprehending derstanding the relationship between features and software assets features. It helps to precisely characterize relations among features (e.g., packages, classes, methods), as well as understanding the inter- in large software systems and to contrast explicit software com- action between features [6]. Given this challenge, modularizing fea- ponent definitions (e.g., package, class, method) with annotated tures has long been one of the holy grails in research, as witnessed feature portions—which so far was a largely manual and error- by the proposal of different modularization technologies [4, 5, 7, 9– prone activity, albeit essential to get an adequate understanding of 11, 23, 37, 39, 40], which are often specific to a programming para- a software system. We suggest research directions for true, feature- digm (mostly object-oriented programming) or even a programming oriented interfaces that can be used to manage software assets. language. However, modularizing features and adopting such a mod- ularization technology requires substantial overhead and changes CCS CONCEPTS developers’ workflows [25]. We take a different stance and advocate that developers declare features with lightweight techniques (e.g., • Software and its engineering ! Object oriented development; embedded annotations [19, 30, 41, 42], explained shortly) and use Software maintenance tools. novel ways of interacting with the software assets via features. ACM Reference Format: We envision an interactive way of interfacing with assets via Alexandre Bergel, Razan Ghzouli, Thorsten Berger, and Michel R. V. Chau- features. In this paper, we work towards this vision by providing dron. 2021. FeatureVista: Interactive Feature Visualization. In 25th ACM interactive and feature-oriented visualization concepts that are re- International Systems and Software Product Line Conference - Volume A (SPLC lated to (and also visualize) object-oriented software structures. ’21), September 6–11, 2021, Leicester, United Kingdom. ACM, New York, NY, We adopt concepts from the visualization community and provide USA, 6 pages. https://doi.org/10.1145/3461001.3471154 an integrated, feature-oriented view on object-oriented programs, together with interactive navigation facilities. We hope that these 1 INTRODUCTION visualizations provide a basis to eventually create more modern Software is often built around the notion of features—abstract enti- ways of interacting with assets, establishing features as pivotal en- ties describing the functional and non-functional aspects of a soft- tities that bridge the gap between domain experts and developers. ware system [15]. Modern agile processes, including feature-driven We propose a novel, interactive visualization called FeatureVista. development, SCRUM, and XP, often rely on features to plan and It supports comprehending a complex feature-annotated software manage software. In product-line engineering [3, 16, 29], features system by contrasting feature definitions with an explicit, object- represent the common and variable aspects of individual products, oriented software structure. Navigation is supported through a nav- typically organized in a feature model [20, 32]. Other common soft- igation technique that equally balances features and structural com- ware entities (e.g., files, classes or components) are usually confined ponents. While this short paper aims at demonstrating the concepts, we report on an early a pilot study with a software engineer. The en- Permission to make digital or hard copies of all or part of this work for personal or gineer was able to complete a set of tasks related to system compre- classroom use is granted without fee provided that copies are not made or distributed hension about features and their—potentially scattered—locations for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM in the system, whose object-oriented structures it also visualizes. must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, We contribute interactive feature-oriented visualization and nav- to post on servers or to redistribute to lists, requires prior specific permission and/or a igation concepts, implemented in the tool FeatureVista. We provide fee. Request permissions from [email protected]. SPLC ’21, September 6–11, 2021, Leicester, United Kingdom a demonstration video [1]. The feature-annotated dataset of our 1 © 2021 Association for Computing Machinery. running example (explained shortly) is also available online. ACM ISBN 978-1-4503-8469-8/21/09...$15.00 https://doi.org/10.1145/3461001.3471154 1https://bitbucket.org/easelab/datasetbitcoinwallet SPLC ’21, September 6–11, 2021, Leicester, United Kingdom Alexandre Bergel, Razan Ghzouli, Thorsten Berger, and Michel R. V. Chaudron A B G H F D C E I Figure 1: The main visualizations of FeatureVista 2 FEATUREVISTA gray boxes (D) indicate packages contained in the Bitcoin Wallet We now discuss the main visualization concepts of FeatureVista. Its app. Inner boxes (E) represent classes and interfaces of the app. current implementation realizes a visualization of a codebase where Iconic visual representation. FeatureVista employs numerous features are defined in a textual feature model and their locations techniques, called iconic visual representation [21], that map visual directly represented as embedded annotations in the source code attributes to multidimensional data elements. The initial visual- following the FAXE syntax [41]. As a running example we use a ization contains various such iconic visual representations. For popular open-source Android app: Bitcoin Wallet, a popular imple- example, the feature model (C) maps the font size used to write the mentation of a cryptocurrency wallet.2 It is as large as 50 KLOC feature name with the number of classes the feature contributes to. spread over 269 Java classes and interfaces. The app comprises 99 A feature that contributes to many classes is written using a large features organized in a feature hierarchy of depth 5. The features text font while a feature that contributes to none or a few classes were manually declared and annotated in the Bitcoin Wallet app uses a small text font. Classes are represented as inner-boxes (E) and in previous work [27, 28]. their size reflects the number of lines of code that define theclass. Interactivity. Visualizations offered by FeatureVista are highly 2.1 FeatureVista in a Nutshell interactive and provide numerous ways to highlight and focus Figure 1 gives an overview of the visualization of FeatureVista on on a particular set of features and/or source code units. Each fea- a version of the Bitcoin Wallet app annotated with feature annota- ture shows in the feature model (C) acts as a switch for which a tions. Since FeatureVista is interactive, we recommend watching an practitioner can activate by simply clicking on it. As illustrated in online video that demonstrates the visualization [1]. FeatureVista Figure 1, the feature Codecs is highlighted in yellow, the feature is made of some visual and connected panes, detailed below. ExchangeRates is in red, and BlockchainSync in green. Initial pane. Pane A is called the initial pane and represents the ini- Class inspection. A class (i.e., inner boxes, E) may be selected tial visualization of FeatureVista. The initial pane gives an overview for further inspection by left-clicking on it. A selected class is sur- of the feature model and the code base, and it shows where a pro- rounded by a thick blue border and a new pane appears on the right gram understanding activity begins from. The feature model, repre- to inspect some properties of the class. In Figure 1, a class is selected, sented as a tree, is given on the left-hand side (C in Figure 1). Large near the E mark, and its selection had the effect to open pane B. 2https://github.com/bitcoin-wallet/bitcoin-wallet FeatureVista: Interactive Feature Visualization SPLC ’21, September 6–11, 2021, Leicester, United Kingdom J … //&begin[ExchangeRates] public RequestCoinsViewModel(final

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    6 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us