FM fact label
Abstract
FM Fact Label is a tool for visualizing the characterizations of feature models based on their metadata, structural measures, and analytical metrics. Although there are various metrics available to characterize feature models, there is no standard method to visualize and identify unique properties of feature models. Unlike existing tools, FM Fact Label provides a standalone web-based platform for configurable and interactive visualization, enabling export to various formats. This contribution is significant because it supports the Universal Variability Language (UVL) and enhances the UVL ecosystem by offering a common representation of the results of existing analysis tools.
Full text
Science of Computer Programming 240 (2025) 103214 Available online 26 September 2024 0167-6423/© 2024 The Author(s). Published by Elsevier B.V. This is an open access article under the CC BY license (http://creativecommons.org/licenses/by/4.0/). Contents lists available at ScienceDirect Science of Computer Programming journal homepage: www.elsevier.com/locate/scico Original software publication FM fact label Jose-Miguel Horcasa,∗, Jose A. Galindob, Lidia Fuentesa, David Benavidesb aITIS Software, Universidad de Málaga, Andalucía Tech, Spain bI3US, Universidad de Sevilla, Spain A R T I C L E I N F O A B S T R A C T Keywords: Characterization Feature model Metrics Software product line Variability Visualization FM Fact Label is a tool for visualizing the characterizations of feature models based on their metadata, structural measures, and analytical metrics. Although there are various metrics available to characterize feature models, there is no standard method to visualize and identify unique properties of feature models. Unlike existing tools, FM Fact Label provides a standalone web-based platform for configurable and interactive visualization, enabling export to various formats. This contribution is significant because it supports the Universal Variability Language (UVL) and enhances the UVL ecosystem by offering a common representation of the results of existing analysis tools. Metadata See Table 1. Table 1 Code metadata. Nr. Code metadata description Please fill in this column C1 Current code version v1.0.0 C2 Permanent link to code/repository used for this code version https://doi.org/10.5281/zenodo.12794159 C3 Permanent link to Reproducible Capsule https://fmfactlabel.adabyron.uma.es/ C4 Legal Code License GNU General Public License (GPL) C5 Code versioning system used git C6 Software code languages, tools, and services used Python, JavaScript, HTML, CSS C7 Compilation requirements, operating environments and dependencies Python 3.9, Flama, D3.js C8 Link to developer documentation/manual https://fmfactlabel.github.io/ C9 Support email for questions [email protected] 1. Motivation and significance •Feature models (FMs) are the de facto standard for modeling variability in software product lines (SPLs), and the Universal Variability Language (UVL) is gaining traction as a textual language for specifying FMs. In practice, when handling large-scale FMs, * Corresponding author. E-mail address: [email protected] (J.-M. Horcas). https://doi.org/10.1016/j.scico.2024.103214 Received 29 February 2024; Received in revised form 31 July 2024; Accepted 23 September 2024
Science of Computer Programming 240 (2025) 103214 2 J.-M. Horcas, J.A. Galindo, L. Fuentes et al. Fig. 1. Software architecture FM Fact Label. their textual representation (in UVL) or their visual representation (as a feature diagram) offer limited assistance in pinpointing the distinguishing properties that make an FM unique. FM Fact Label contributes to the UVL ecosystem by providing a tool to effectively visualize the information of an FM in terms of its metadata, and its structural and analytical metrics. •FM Fact Label offers a common representation of the characterization of an FM in the form of a fact label. Adhering to the principles and best design practices from the visualization field [1], the tool provides an interactive and adaptable visualization, enabling users to customize the presentation of the FM properties. The tool has been used for analysis and categorization of FMs [2,3], and is currently being integrated within UVLHub [4], a repository of FMs. •FM Fact Label is a standalone web-based application where the user uploads an FM and a visualization of its characterization is automatically generated which can be customized and exported to several formats. • Several collections of metrics for FMs are available in the literature [5,6], but they focus on assessing the evaluation of FM maintainability, ignoring detailed description of an FM beyond quality. FM Fact Label allows SPL practitioners to better choice their FMs in different scenarios (e.g., teaching purposes, scalability evaluation, model comparisons). While current SPL tools such as FeatureIDE [7], Glencoe [8], SPLOT [9], and DyMMer [10]report syntactic and semantic statistics of FMs, they lack a visualization component to efficiently convey the results outside the tool or IDE. FM Fact Label delegates the automated analysis of FMs to flama [11], and uses D3 [12], a data-driven approach for visualization based on web standards. Moreover, FM Fact Label provides more information, currently offering 46 metrics, compared to other SPL tools such as DyMMer (38 metrics), Glencoe (27 metrics), FeatureIDE (16 metrics), and SPLOT (14 metrics). 2. Software description FM Fact Label is a web-based application accessible online, which constructs a characterization of a given FM and produces its visualization in the form of a fact label inspired by the nutrition fact label commonly seen in the food industry. This visualization aims to clearly distinguish various types of information contained within the FM characterization: (1) The name of the FM; (2) Metadata of the FM such as a brief description, keywords, author(s), year, domain, and DOI of the paper where it is published; (3) The structural metrics or syntatical statistics of the FM, including the feature tree relations, cross-tree constraints, and other parameters; and (4) The analysis results or semantical metrics obtained by reasoning on the FM (i.e., using a SAT or a BDD solver). 2.1. Software architecture Fig. 1outlines the tool’s architecture and technologies. The tool itself offers a web service to upload the FM and its metadata via an online form (Web Service component). It supports FMs in UVL and FeatureIDE formats. The FM Characterization module in the server-side gathers and manages all the FM information. We distinguish three kinds of information: metadata (FM Metadata), structural metrics (FM Metrics), and analysis results (FM Analysis), treating all of them as an FM property. Each FM Property includes a name, a description, and a parent property for hierarchical organization in the fact label. Properties are associated with an FM Property Measure that provides the specific values of the property. For instance, the list of abstract features, their size, and
Science of Computer Programming 240 (2025) 103214 3 J.-M. Horcas, J.A. Galindo, L. Fuentes et al. Fig. 2. Fact label of an FM characterization and main functionalities of the tool. ratio for the ABSTRACT FEATURES property. Analysis tasks are delegated to external tools, with the current implementation relying on flama [11](dark component in Fig. 1). The tool encompasses 46 measures, with the possibility of being extended to include additional metrics from the SPL literature. All information included in each FM Property and its FM Property Measure is serialized in JSON to send it to the client-side. The fact label visualization is generated using D3 [12]on the client-side (Visualization component). D3 is based on web standards (HTML, CSS, JavaScript, SVG, and JSON) to integrate visualization components and employs a data-driven approach for dynamic transformations. 2.2. Software functionalities The generated fact label is (1) completely customizable, and (2) interactive. This means, first, that all metadata are optional, allowing users to input only relevant information. Second, configurable options enable users to selectively collapse or expand FM sub-properties or hide properties with zero or empty values. Additionally, hovering over a property reveals its description in a tooltip, while clicking on it reveals its specific value. Third, the configured visualization can be exported in high-quality SVG format for inclusion in research publications or as a PNG image for online portability. Lastly, the entire FM characterization can be exported in JSON format or plain text for interoperability with other SPL tools for further analysis such as statistical analysis of FMs’ datasets. 3. Illustrative examples Fig. 2depicts the fact label visualization and major functions of the tool. Ten real feature models are provided within the tool as examples for its usage which can also be downloaded. A fact label of the Linux feature model (one of the largest models in the SPL community) is available in [13]. 4. Impact •FM Fact Label improves the characterization of FMs beyond supporting their quality evaluation. The tool allows SPL practitioners to answer questions such as which FMs can be used to evaluate a new algorithm implemented to optimize configurations?, or which are the properties of the FMs that effect the scalability of your proposal?, or which FM is more appropriate for teaching purposes?, among others. •By including all fundamental information, not just maintenance metrics, the tool allows SPL practitioners to better select their FMs in different scenarios. For instance, for teaching purposes, a small FM that includes at least one feature and relation of each type (e.g., an or-group, an xor-group, a requires and an excludes constraint, a dead-feature) is more appropriate than a large
Science of Computer Programming 240 (2025) 103214 4 J.-M. Horcas, J.A. Galindo, L. Fuentes et al. FM that cannot even be completely visualized in a feature diagram. In contrast, to evaluate the scalability of a new analysis operation, a large-scale FM with thousands of features and constraints may be preferable [3]. • Thanks to FM Fact Label tool, users can now focus on the FM itself without the burden of acquiring or analyzing its properties. There is no need for users to install or manage separate analysis tools. •From the first release of the FM Fact Label in 2022 [13], the tool has received 13 citations according to Google Scholar, including [2–4]. •The tool is currently being integrated into UVLHub [4]. UVLHub is a repository of FMs datasets using UVL and Open Science principles developed by several partners of the SPL community. 5. Conclusions FM Fact Label facilitates the generation of common visualizations representing FM characterizations through the integration of FM metadata, syntactical metrics, and analytical data. Its adaptable architecture allows for seamless integration into the UVL ecosystem and easy extension to accommodate other FM analysis tools and additional metrics. This tool helps SPL practitioners to discern the unique attributes of FMs and select the most suitable FM for their specific requirements. We anticipate the integration of FM Fact Label into various tools as an independent component [4]. 6. Future plans We plan to expand FM Fact Label to characterize datasets of FMs, and incorporate additional features such as thresholds for the metrics, and configuration options such as a horizontal visualization of the label. A complete list of planned features is available in the GitHub project. CRediT authorship contribution statement Jose-Miguel Horcas: Writing – original draft, Visualization, Software, Methodology, Investigation, Conceptualization. Jose A. Galindo: Writing – review & editing, Visualization, Validation, Software, Formal analysis. Lidia Fuentes: Writing – review & editing, Validation, Supervision, Resources, Funding acquisition, Conceptualization. David Benavides: Writing – review & editing, Resources, Project administration, Methodology, Funding acquisition, Conceptualization. Declaration of competing interest The authors declare the following financial interests/personal relationships which may be considered as potential competing interests: Lidia Fuentes, David Benavides reports financial support and travel were provided by Ministry of Science, Innovation and Universities (Spain). Lidia Fuentes, David Benavides reports financial support and travel were provided by Junta de Andalucía. Mónica Pinto, editor of this special issue, also contributed to the first version of this project. If there are other authors, they declare that they have no known competing financial interests or personal relationships that could have appeared to influence the work reported in this paper. Acknowledgements We thank Mónica Pinto who has also contributed to this project. This work was partially supported by EU, FEDER/Ministry of Science, Innovation and Universities/Junta de Andalucía/State Research Agency/CDTI with the following grants: TASOVA PLUS research network (RED2022-134337-T), IRIS (PID2021-122812OB-I00) (FEDER funds), DAEMON (H2020-101017109), Data-pl (PID2022138486OB-I00), AquaIA (GOPG-SE-23-0011) and MIDAS (IDI-20230256). Funding for open access charge: Universidad de Málaga/ CBUA. References [1] D. Romero-Organvidez, J.M. Horcas, J.A. Galindo, D. Benavides, Data visualization guidance using a software product line approach, J. Syst. Softw. 213 (2024) 112029, https://doi .org /10 .1016 /J .JSS .2024 .112029. [2] J.A. Galindo, A.J. Dominguez, J. White, D. Benavides, Large language models to generate meaningful feature model instances, in: 27th ACM International Systems and Software Product Line Conference (SPLC), vol. A, 2023, pp. 15–26. [3] D. Munoz, M. Pinto, L. Fuentes, D.S. Batory, Transforming numerical feature models into propositional formulas and the universal variability language, J. Syst. Softw. 204 (2023) 111770, https://doi .org /10 .1016 /J .JSS .2023 .111770. [4] D. Romero-Organvidez, J.A. Galindo, C. Sundermann, J.-M. Horcas, D. Benavides, UVLHub: a feature model data repository using uvl and open science principles, J. Syst. Softw. 216 (2024) 112150, https://doi .org /10 .1016 /j .jss .2024 .112150. [5] E. Bagheri, D. Gasevic, Assessing the maintainability of software product line feature models using structural metrics, Softw. Qual. J. 19 (3) (2011) 579–612, https://doi .org /10 .1007 /s11219 -010 -9127 -2. [6] C.I.M. Bezerra, R.M.C. Andrade, J.M. Monteiro, Exploring quality measures for the evaluation of feature models: a case study, J. Syst. Softw. 131 (2017) 366–385, https://doi .org /10 .1016 /j .jss .2016 .07 .040. [7] T. Thüm, C. Kästner, F. Benduhn, J. Meinicke, G. Saake, T. Leich, FeatureIDE: an extensible framework for feature-oriented software development, Sci. Comput. Program. 79 (2014), https://doi .org /10 .1016 /j .scico .2012 .06 .002. [8] A. Schmitt, C. Bettinger, G. Rock, Glencoe – a tool for specification, visualization and formal analysis of product lines, in: 25th Trans, Eng, 2018, pp. 665–673.
Science of Computer Programming 240 (2025) 103214 5 J.-M. Horcas, J.A. Galindo, L. Fuentes et al. [9] M. Mendonca, M. Branco, D. Cowan, S.P.L.O.T.: software product lines online tools, in: OOPSLA, 2009. [10] C.I.M. Bezerra, R. Lima, P. Silva, Dymmer 2.0: a tool for dynamic modeling and evaluation of feature model, in: 35th Brazilian Symposium on Software Engineering (SBES), 2021, pp. 121–126. [11] J.A. Galindo, J.M. Horcas, A. Felfernig, D. Fernández-Amorós, D. Benavides, FLAMA: a collaborative effort to build a new framework for the automated analysis of feature models, in: 27th ACM International Systems and Software Product Line Conference (SPLC), vol. B, 2023, pp. 16–19. [12] M. Bostock, V. Ogievetsky, J. Heer, D3data-driven documents, IEEE Trans. Vis. Comput. Graph. 17 (12) (2011), https://doi .org /10 .1109 /TVCG .2011 .185. [13] J.M. Horcas, J.A. Galindo, M. Pinto, L. Fuentes, D. Benavides, FM Fact Label: a configurable and interactive visualization of feature model characterizations, in: 26th ACM International Systems and Software Product Line Conference (SPLC), vol. B, 2022, pp. 42–45.
