All posts by Christoph Seidl

Plug and Play Variability for Eclipse

Delta modeling is an approach to structured reuse within software product lines. Delta modules manifest changes associated with different configurations in realization artifacts, such as source code, by adding, modifying or removing affected elements. However, a dedicated delta language is required for each realization language, e.g., DeltaJava for Java.

DeltaEcore is a tool suite for swift creation of delta languages that can seamlessly be integrated into the provided variant derivation procedure of a software product line. Its main constituents are a use-friendly graphical editor for feature models, a powerful configurator to allow valid selections of features and their versions as well as a variant derivation procedure to allow creation of specific products of a software product line.

The project HyVar utilizes DeltaEcore to model variability in Hyper-Feature Models, define a delta language for Yakindu and generate variants from state charts. Furthermore, HyVar extends the tool suite to make it suitable for capturing variability in time in Temporal Feature Models (TFMs), to allow easy and flexible reconfiguration by interfacing with HyVarRec and to make product lines context-aware through models specifically tailored to modeling context and its evolution.

The consequent model-based implementation of the HyVar tool chain allows for traceability of artifacts and changes on them, so that analyzes can identify and reduce potential errors in the complex overall structure of a software product line. Hence, the development on DeltaEcore and the research in HyVar are symbiotic in that they create an enhanced expressiveness and increased quality in software product line development along with an improved user experience through dedicated editors.

Workshop on Feature-Oriented Software Development (FOSD)

Part of the HyVar consortium is responsible for organizing the Workshop on Feature-Oriented Software Development (FOSD). Find it here: http://fosd.net/workshop2016

Abstract

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.