10 research outputs found
Identifying and visualizing variability in object-oriented variability-rich systems
International audienceIn many variability-intensive systems, variability is implemented in code units provided by a host language, such as classes or functions, which do not align well with the domain features. Annotating or creating an orthogonal decomposition of code in terms of features implies extra effort, as well as massive and cumbersome refactoring activities. In this paper, we introduce an approach for identifying and visualizing the variability implementation places within the main decomposition structure of object-oriented code assets in a single variability-rich system. First, we propose to use symmetry, as a common property of some main implementation techniques, such as inheritance or overloading, to identify uniformly these places. We study symmetry in different constructs (e.g., classes), techniques (e.g., subtyping, overloading) and design patterns (e.g., strategy, factory), and we also show how we can use such symmetries to find variation points with variants. We then report on the implementation and application of a toolchain, symfinder, which automatically identifies and visualizes places with symmetry. The publicly available application to several large open-source systems shows that symfinder can help in characterizing code bases that are variability-rich or not, as well as in discerning zones of interest w.r.t. variability
A design of a configurable feature model configurator
Our feature configuration tool S2T2 Configurator integrates
(1) a visual interactive representation of the feature
model and (2) a formal reasoning engine that calculates
consequences of the user’s actions and provides formal explanations.
The tool’s software architecture is designed as
a chain of components, which provide mappings between
visual elements and their corresponding formal representations.
Using these mappings, consequences and explanations
calculated by the reasoning engine are communicated
in the interactive representation
Interactive techniques to support the configuration of complex feature models.
Whenever a software engineer derives a product from a product line, he has to resolve variability by making con guration decisions. This con guration process can become rather complex because of depen-
dencies within the variability model and knock-on e ects and dependencies in other related artefacts. Because of the limited cognitive capacity of the human engineer, this complexity limits the ability of handling product lines with large con guration spaces. To address this problem we focus on techniques that support the interactive con guration of larger
feature models, including (1) visual interaction with a formal reason-
ing engine, (2) visual representation of multiple interrelated hierarchies,
(3) indicators for con guration progress and (4) ltering of visible nodes.
The concepts are demonstrated within S2T2 Con gurator, an interactive feature con guration tool. The techniques are discussed and evaluated with feature models, however, we believe they can be generalised to other models that describe con guration choices, e.g., variability models and
decision models