Powered by
Conference Publishing Consulting

7th International Workshop on Feature-Oriented Software Development (FOSD 2016), October 30, 2016, Amsterdam, Netherlands

FOSD 2016 – Proceedings

Contents - Abstracts - Authors

Frontmatter

Title Page


Message from the Chairs
Feature orientation is an emerging paradigm of software development. It supports the automatic generation of large-scale software systems from a set of units of functionality, called features. The key idea of feature-oriented software development (FOSD) is to explicitly represent similarities and differences of a family of software systems for a given application domain (e.g., database systems, banking software, text processing systems) with the goal of reusing software artifacts among the family members. Features distinguish different members of the family by their variable parts. A feature is a unit of functionality that satisfies a requirement, represents a design decision, and provides a potential configuration option. A challenge in FOSD is that a feature does not map cleanly to an isolated module of code. Rather, it may affect ("cut across") many components/artifacts of a software system. Furthermore, the decomposition of a software system into its features gives rise to a combinatorial explosion of possible feature combinations and interactions. Research on FOSD has shown that the concept of features pervades all phases of the software life cycle and requires a proper treatment in terms of analysis, design, and programming techniques, methods, languages, and tools, as well as formalisms and theory. Submissions to the workshop were expected to address current scientific topics in these areas to present novel ideas and ongoing efforts in tackling open issues.

Papers

Fine-Grained Test Case Prioritization for Integration Testing of Delta-Oriented Software Product Lines
Remo Lachmann, Sascha Lity, Mustafa Al-Hajjaji, Franz Fürchtegott, and Ina Schaefer
(TU Braunschweig, Germany; University of Magdeburg, Germany)
Software product line (SPL) testing is a challenging task, due to the huge number of variants sharing common functionalities to be taken into account for efficient testing. By adopting the concept of regression testing, incremental SPL testing strategies cope with this challenge by exploiting the reuse potential of test artifacts between subsequent variants under test. In previous work, we proposed delta-oriented test case prioritization for incremental SPL integration testing, where differences between architecture test model variants allow for reasoning about the order of reusable test cases to be executed. However, the prioritization left two issues open, namely (1) changes to component behavior are ignored, which may also influence component interactions and, (2) the weighting and ordering of similar test cases result in an unintended clustering of test cases. In this paper, we extend the test case prioritization technique by (1) incorporating changes to component behavior allowing for a more fine-grained analysis and (2) defining a dissimilarity measure to avoid clustered test case orders. We prototyped our test case prioritization technique and evaluated its applicability and effectiveness by means of a case study from the automotive domain showing positive results.

Name Resolution Strategies in Variability Realization Languages for Software Product Lines
Sven Schuster, Michael Nieke, and Ina Schaefer
(TU Braunschweig, Germany)
Software Product Lines (SPLs) exploit reuse-in-the-large to enable customization by explicitly modeling commonalities and variabilities of closely related software systems. Different approaches exist to enable SPL development and product creation by using modular languages, such as Feature-Oriented Programming (FOP) (compositional) or Delta-Oriented Programming (DOP) (transformational). These languages incorporate, e.g., object-oriented languages, adding a layer of variability. Creating a variabilityaware Abstract Syntax Graph (ASG), i.e., an ASG that contains the complete variability of the SPL, facilitates family-based analyses and is essential for supporting developers during SPL development. To this end, name resolution has to be performed. However, name resolution for these languages is a challenge as multiple declarations for the same element may occur in different modules. In this paper, we propose four name resolution strategies for compositional and transformational SPL realization languages and discuss their benefits and drawbacks, categorized by relevant application scenarios of the ASG.

Implicit Constraints in Partial Feature Models
Sofia Ananieva ORCID logo, Matthias Kowal, Thomas Thüm, and Ina Schaefer
(FZI, Germany; TU Braunschweig, Germany)
Developing and maintaining a feature model is a tedious process and gets increasingly difficult with regard to large product lines consisting of thousands of features and constraints. In addition, these large-scale feature models typically involve several stakeholders from different domains during development and maintenance. We aim at supporting such stakeholders by deriving and explaining implicit constraints for partial feature models. A partial feature model can either be a submodel of a feature model representing the full product line or a specific feature model in a set of interrelated models. For every implicit constraint, we generate an explanation exposing which other model parts and constraints interfere with the partial model of interest. Thus, stakeholders are only confronted with a small part of the feature model reducing the complexity while preserving the necessary information about dependencies. Our approach is implemented in the open-source framework FeatureIDE.

Implementing Delta-Oriented SPLs using PEoPL: An Example Scenario and Case Study
Benjamin Behringer and Moritz Fey
(University of Luxembourg, Luxembourg; Saarland University of Applied Sciences, Germany)
Software product line implementation techniques are complementary. Thus, moving fluidly between them would be beneficial. Our tool PEoPL, a novel instantiation of the MPS language workbench, supports projecting a common variational AST into user-editable projections, each of which represents a different product line implementation technique. PEoPL supports FOP-like, annotative and product projections and allows developers to move fluidly between them. In this paper, we lay the foundation for future delta-oriented projectional editors. We use an example scenario to discuss a mapping of DeltaJ language concepts to the variational AST and operations employed in PEoPL. In a case study, we show that PEoPL is expressive enough to represent DeltaJ product lines, and at the same time supports all delta manipulations.

Higher-Order Delta Modeling for Software Product Line Evolution
Sascha Lity, Matthias Kowal, and Ina Schaefer
(TU Braunschweig, Germany)
In software product lines (SPL), i.e., a family of similar software systems sharing common and variable artifacts, modeling evolution and reasoning about it is challenging, as not only a single system, but rather a set of system variants as well as their interdependencies change. An integrated modeling formalism for variability and evolution is required to allow the capturing of evolution operations that are applied to SPL artifacts, and to facilitate the impact analysis of evolution on the artifact level. Delta modeling is a flexible transformational variability modeling approach, where the variability and commonality between variants are explicitly documented and analyzable by means of transformations modeled as deltas. In this paper, we lift the notion of delta modeling to capture both, variability and evolution, by deltas. We evolve a delta model specifying a set of variants by applying higher-order deltas. A higher-order delta encapsulates evolution operations, i.e., additions, removals, or modifications of deltas, and transforms a delta model in its new version. In this way, we capture the complete evolution history of delta-oriented SPLs by higher-order delta models. By analyzing each higher-order delta application, we are further able to reason about the impact and, thus, the changes to the specified set of variants. We prototypically implement our formalism and show its applicability using a system from the automation engineering domain.

Formula Choice Calculus
Spencer Hubbard and Eric Walkingshaw
(Oregon State University, USA)
The choice calculus is a simple metalanguage and associated theory that has been successfully applied to several problems of interest to the feature-oriented software development community. The formal presentation of the choice calculus essentially restricts variation points, called choices, to vary based on the inclusion or not of a single feature, while in practice variation points may depend on several features. Therefore, in both theoretical applications of the choice calculus, and in tools inspired by the choice calculus, the syntax of choices has often been generalized to depend on an arbitrary propositional formula of features. The purpose of this paper is to put this syntactic generalization on more solid footing by also generalizing the associated theory. Specifically, after defining the syntax and denotational semantics of the formula choice calculus (FCC), we define and prove the soundness of a syntactic equivalence relation on FCC expressions. This effort validates previous work which has implicitly assumed the soundness of rules in the equivalence relation, and also reveals several rules that are specific to FCC. Finally, we describe some further generalizations to FCC and their limits.

Info
Towards Predicting Feature Defects in Software Product Lines
Rodrigo Queiroz, Thorsten Berger, and Krzysztof Czarnecki
(University of Waterloo, Canada; Chalmers University of Technology, Sweden; University of Gothenburg, Sweden)
Defect-prediction techniques can enhance the quality assurance activities for software systems. For instance, they can be used to predict bugs in source files or functions. In the context of a software product line, such techniques could ideally be used for predicting defects in features or combinations of features, which would allow developers to focus quality assurance on the error-prone ones. In this preliminary case study, we investigate how defect prediction models can be used to identify defective features using machine-learning techniques. We adapt process metrics and evaluate and compare three classifiers using an open-source product line. Our results show that the technique can be effective. Our best scenario achieves an accuracy of 73 % for accurately predicting features as defective or clean using a Naive Bayes classifier. Based on the results we discuss directions for future work.

Variability Mining of State Charts
David Wille, Sandro Schulze, and Ina Schaefer
(TU Braunschweig, Germany; TU Hamburg, Germany)
Companies commonly use state charts to reduce the complexity of software development. To create variants with slightly different functionality from existing products, it is common practice to copy the corresponding state charts and modify them to changed requirements. Even though these so-called clone-and-own approaches save money in the short-term, they introduce severe risks for software evolution and product quality in the long term as the relation between the software variants is lost so that all products have to be maintained separately. In previous work, we introduced variability mining algorithms to identify the relations between related MATLAB/Simulink model variants regarding their common and varying parts. In this paper, we adapt these algorithms for state charts by applying guidelines from previous work to make them available for developers to better understand the relations between a set of state chart variants. Using this knowledge, maintenance of related variants can be improved and migration from clone-and-own based single variant development to more elaborate reuse strategies is possible to increase maintainability and the overall product quality. We demonstrate the feasibility of variability mining for state charts by means of a case study with models of realistic size.

FeatureCoPP: Compositional Annotations
Jacob Krüger ORCID logo, Ivonne Schröter, Andy Kenner, Christopher Kruczek, and Thomas Leich
(Harz University of Applied Sciences, Germany; University of Magdeburg, Germany; METOP Magdeburg, Germany)
Software product lines can be implemented with different techniques.
Those techniques can be grouped into annotation-based and composition-based approaches, with complementary strengths and weaknesses.
A combination seems useful to utilize benefits of both groups but using two techniques in parallel may cause new problems.
To our knowledge, there is no approach that integrates composition into an annotation-based approach or vice versa.
We propose the use of an extended preprocessor to introduce physical separation of concerns similar to feature-oriented programming.
In this paper, we i) present a preliminary implementation that integrates composition into annotation, ii) analyse its benefits and shortcomings, and iii) discuss implementation and tooling.
Overall, we enable developers to keep on using familiar preprocessors but also to benefit from composition.
Finally, we show the potential of our approach.

proc time: 7.45