Results 1 - 10
of
308
Automated analysis of feature models 20 years later: A literature review
- INFORMATION SYSTEMS
, 2010
"... Software product line engineering is about producing a set of related products that share more commonalities than variabilities. Feature models are widely used for variability and commonality management in software product lines. Feature models are information models where a set of products are repr ..."
Abstract
-
Cited by 186 (20 self)
- Add to MetaCart
(Show Context)
Software product line engineering is about producing a set of related products that share more commonalities than variabilities. Feature models are widely used for variability and commonality management in software product lines. Feature models are information models where a set of products are represented as a set of features in a single model. The automated analysis of feature models deals with the computer–aided extraction of information from feature models. The literature on this topic has contributed with a set of operations, techniques, tools and empirical results which have not been surveyed until now. This paper provides a comprehensive literature review on the automated analysis of feature models 20 years after of their invention. This paper contributes by bringing together previously-disparate streams of work to help shed light on this thriving area. We also present a conceptual framework to understand the different proposals as well as categorise future contributions. We finally discuss the different studies and propose some challenges to be faced in the future.
Mapping features to models: A template approach based on superimposed variants
- GPCE 2005 - Generative Programming and Component Enginering. 4th International Conference
, 2005
"... Abstract. Although a feature model can represent commonalities and variabilities in a very concise taxonomic form, features in a feature model are merely symbols. Mapping features to other models, such as behavioral or data specifications, gives them semantics. In this paper, we propose a general te ..."
Abstract
-
Cited by 179 (9 self)
- Add to MetaCart
(Show Context)
Abstract. Although a feature model can represent commonalities and variabilities in a very concise taxonomic form, features in a feature model are merely symbols. Mapping features to other models, such as behavioral or data specifications, gives them semantics. In this paper, we propose a general template-based approach for mapping feature models to concise representations of variability in different kinds of other models. We show how the approach can be applied to UML 2.0 activity and class models and describe a prototype implementation. 1
An Algebra for Feature-Oriented Software Development
"... Feature-Oriented Software Development (FOSD) provides a multitude of formalisms, methods, languages, and tools for building variable, customizable, and extensible software. Along different lines of research different ideas of what a feature is have been developed. Although the existing approaches h ..."
Abstract
-
Cited by 126 (48 self)
- Add to MetaCart
(Show Context)
Feature-Oriented Software Development (FOSD) provides a multitude of formalisms, methods, languages, and tools for building variable, customizable, and extensible software. Along different lines of research different ideas of what a feature is have been developed. Although the existing approaches have similar goals, their representations and formalizations have not been integrated so far into a common framework. We present a feature algebra as a foundation of FOSD. The algebra captures the key ideas and provides a common ground for current and future research in this field, in which also alternative options can be explored.
FeatureHouse: Language-independent, automatic software composition
- In Proc. Int’l Conf. on Software Engineering
"... Superimposition is a composition technique that has been applied successfully in many areas of software development. Although superimposition is a general-purpose concept, it has been (re)invented and implemented individually for various kinds of software artifacts. We unify languages and tools that ..."
Abstract
-
Cited by 96 (46 self)
- Add to MetaCart
Superimposition is a composition technique that has been applied successfully in many areas of software development. Although superimposition is a general-purpose concept, it has been (re)invented and implemented individually for various kinds of software artifacts. We unify languages and tools that rely on superimposition by using the language-independent model of feature structure trees (FSTs). On the basis of the FST model, we propose a general approach to the composition of software artifacts written in different languages, Furthermore, we offer a supporting framework and tool chain, called FEATUREHOUSE. We use attribute grammars to automate the integration of additional languages, in particular, we have integrated Java, C#, C, Haskell, JavaCC, and XML. Several case studies demonstrate the practicality and scalability of our approach and reveal insights into the properties a language must have in order to be ready for superimposition. 1.
Reasoning about edits to feature models
- In Proc. Int’l Conf. on Software Engineering
"... Features express the variabilities and commonalities among programs in a software product line (SPL). A feature model defines the valid combinations of features, where each combination corresponds to a program in an SPL. SPLs and their feature models evolve over time. We classify the evolution of a ..."
Abstract
-
Cited by 89 (17 self)
- Add to MetaCart
(Show Context)
Features express the variabilities and commonalities among programs in a software product line (SPL). A feature model defines the valid combinations of features, where each combination corresponds to a program in an SPL. SPLs and their feature models evolve over time. We classify the evolution of a feature model via modifications as refactorings, specializations, generalizations, or arbitrary edits. We present an algorithm to reason about feature model edits to help designers determine how the program membership of an SPL has changed. Our algorithm takes two feature models as input (before and after edit versions), where the set of features in both models are not necessarily the same, and it automatically computes the change classification. Our algorithm is able to give examples of added or deleted products and efficiently classifies edits to even large models that have thousands of features. 1
Cardinality-Based Feature Modeling and Constraints: A Progress Report
- OOPSLA'05
, 2005
"... Software factories have been proposed as a comprehensive and integrative approach to generative software development. Feature modeling has several applications in generative software development, including domain analysis, product-line scoping, and feature-based product specification. This paper rep ..."
Abstract
-
Cited by 75 (10 self)
- Add to MetaCart
Software factories have been proposed as a comprehensive and integrative approach to generative software development. Feature modeling has several applications in generative software development, including domain analysis, product-line scoping, and feature-based product specification. This paper reports on our recent progress in cardinalitybased feature modeling and its support for expressing additional constraints. We show that the Object-Constraint Language (OCL) can adequately capture such constraints. Furthermore, we identify a set of facilities based on constraint satisfaction that can be provided by feature modeling and feature-based configuration tools and present a prototype implementing some of these facilities. We report on our experience with the prototype and give directions for future work.
A Case Study Implementing Features using AspectJ
- INTERNATIONAL SOFTWARE PRODUCT LINE CONFERENCE (SPLC)
, 2007
"... Software product lines aim to create highly configurable programs from a set of features. Common belief and recent studies suggest that aspects are well-suited for implementing features. We evaluate the suitability of AspectJ with respect to this task by a case study that refactors the embedded data ..."
Abstract
-
Cited by 71 (23 self)
- Add to MetaCart
Software product lines aim to create highly configurable programs from a set of features. Common belief and recent studies suggest that aspects are well-suited for implementing features. We evaluate the suitability of AspectJ with respect to this task by a case study that refactors the embedded database system Berkeley DB into 38 features. Contrary to our initial expectations, the results were not encouraging. As the number of aspects in a feature grows, there is a noticeable decrease in code readability and maintainability. Most of the unique and powerful features of AspectJ were not needed. We document where AspectJ is unsuitable for implementing features of refactored legacy applications and explain why. 1.
Feature diagrams and logics: there and back again
- in SPLC, 2007
"... Feature modeling is a notation and an approach for modeling commonality and variability in product families. In their basic form, feature models contain mandatory/optional features, feature groups, and implies and excludes relationships. It is known that such feature models can be translated into pr ..."
Abstract
-
Cited by 71 (4 self)
- Add to MetaCart
(Show Context)
Feature modeling is a notation and an approach for modeling commonality and variability in product families. In their basic form, feature models contain mandatory/optional features, feature groups, and implies and excludes relationships. It is known that such feature models can be translated into propositional formulas, which enables the analysis and configuration using existing logicbased tools. In this paper, we consider the opposite translation problem, that is, the extraction of feature models from propositional formulas. We give an automatic and efficient procedure for computing a feature model from a formula. As a side effect we characterize a class of logical formulas equivalent to feature models and identify logical structures corresponding to their syntactic elements. While many different feature models can be extracted from a single formula, the computed model strives to expose graphically the maximum of the original logical structure while minimizing redundancies in the representation. The presented work furthers our understanding of the semantics of feature modeling and its relation to logics, opening avenues for new applications in reverse engineering and refactoring of feature models.
Feature Oriented Refactoring of Legacy Applications. In:
- Proc. of ICSE
, 2006
"... ABSTRACT Feature oriented refactoring (FOR) is the process of decomposing a program into features, where a feature is an increment in program functionality. We develop a theory of FOR that relates code refactoring to algebraic factoring. Our theory explains relationships between features and their ..."
Abstract
-
Cited by 71 (6 self)
- Add to MetaCart
(Show Context)
ABSTRACT Feature oriented refactoring (FOR) is the process of decomposing a program into features, where a feature is an increment in program functionality. We develop a theory of FOR that relates code refactoring to algebraic factoring. Our theory explains relationships between features and their implementing modules, and why features in different programs of a product-line can have different implementations. We describe a tool and refactoring methodology based on our theory, and present a validating case study.
Sat-based analysis of feature models is easy
- In 13th International Conference on Software Product Lines (SPLC 2009
, 2009
"... Feature models are a popular variability modeling notation used in product line engineering. Automated analyses of feature models, such as consistency checking and interactive or offline product selection, often rely on translating models to propositional logic and using satisfiability (SAT) solvers ..."
Abstract
-
Cited by 67 (11 self)
- Add to MetaCart
(Show Context)
Feature models are a popular variability modeling notation used in product line engineering. Automated analyses of feature models, such as consistency checking and interactive or offline product selection, often rely on translating models to propositional logic and using satisfiability (SAT) solvers. Efficiency of individual satisfiability-based analyses has been reported previously. We generalize and quantify these studies with a series of independent experiments. We show that previously reported efficiency is not incidental. Unlike with the general SAT instances, which fall into easy and hard classes, the instances induced by feature modeling are easy throughout the spectrum of realistic models. In particular, the phenomenon of phase transition is not observed for realistic feature models. Our main practical conclusion is a general encouragement for researchers to continued development of SATbased methods to further exploit this efficiency in future. 1