1 |
Feature Model SynthesisShe, Steven 29 August 2013 (has links)
Variability provides the ability to adapt and customize a software system's artifacts for a particular context or circumstance. Variability enables code reuse, but its mechanisms are often tangled within a software artifact or scattered over multiple artifacts. This makes the system harder to maintain for developers, and harder to understand for users that configure the software.
Feature models provide a centralized source for describing the variability in a software system. A feature model consists of a hierarchy of features—the common and variable system characteristics—with constraints between features. Constructing a feature model, however, is a arduous and time-consuming manual process.
We developed two techniques for feature model synthesis. The first, Feature-Graph-Extraction, is an automated algorithm for extracting a feature graph from a propositional formula in either conjunctive normal form (CNF), or disjunctive normal form (DNF). A feature graph describes all feature diagrams that are complete with respect to the input. We evaluated our algorithms against related synthesis algorithms and found that our CNF variant was significantly faster than the previous comparable technique, and the DNF algorithm performed similarly to a comparable, but newer technique, with the exception of several models where our algorithm was faster.
The second, Feature-Tree-Synthesis, is a semi-automated technique for building a feature model given a feature graph. This technique uses both logical constraints and text to address the most challenging part of feature model synthesis—constructing the feature hierarchy—by ranking potential parents of a feature with a textual similarity heuristic. We found that the procedure effectively reduced a modeler's choices from thousands, to five or less when synthesizing the Linux and eCos variability models.
Our third contribution is the analysis of Kconfig—a language similar to feature modeling used to specify the variability model of the Linux kernel. While large feature models are reportedly used in industry, these models have not been available to the research community for benchmarking feature model analysis and synthesis techniques. We compare Kconfig to feature modeling, reverse engineer formal semantics, and translate 12 open-source Kconfig models—including the Linux model with over 6000 features—to propositional logic.
|
2 |
Feature Model SynthesisShe, Steven 29 August 2013 (has links)
Variability provides the ability to adapt and customize a software system's artifacts for a particular context or circumstance. Variability enables code reuse, but its mechanisms are often tangled within a software artifact or scattered over multiple artifacts. This makes the system harder to maintain for developers, and harder to understand for users that configure the software.
Feature models provide a centralized source for describing the variability in a software system. A feature model consists of a hierarchy of features—the common and variable system characteristics—with constraints between features. Constructing a feature model, however, is a arduous and time-consuming manual process.
We developed two techniques for feature model synthesis. The first, Feature-Graph-Extraction, is an automated algorithm for extracting a feature graph from a propositional formula in either conjunctive normal form (CNF), or disjunctive normal form (DNF). A feature graph describes all feature diagrams that are complete with respect to the input. We evaluated our algorithms against related synthesis algorithms and found that our CNF variant was significantly faster than the previous comparable technique, and the DNF algorithm performed similarly to a comparable, but newer technique, with the exception of several models where our algorithm was faster.
The second, Feature-Tree-Synthesis, is a semi-automated technique for building a feature model given a feature graph. This technique uses both logical constraints and text to address the most challenging part of feature model synthesis—constructing the feature hierarchy—by ranking potential parents of a feature with a textual similarity heuristic. We found that the procedure effectively reduced a modeler's choices from thousands, to five or less when synthesizing the Linux and eCos variability models.
Our third contribution is the analysis of Kconfig—a language similar to feature modeling used to specify the variability model of the Linux kernel. While large feature models are reportedly used in industry, these models have not been available to the research community for benchmarking feature model analysis and synthesis techniques. We compare Kconfig to feature modeling, reverse engineer formal semantics, and translate 12 open-source Kconfig models—including the Linux model with over 6000 features—to propositional logic.
|
3 |
A Feature Modelling Language Based on Product Family AlgebraAlabbad, Mohammed 10 1900 (has links)
<p>Feature modelling is an emerging software engineering paradigm, which helps organizations to develop products from core assets. Products are organized into families that share common core features. Feature modelling involves capturing, into a feature model, the commonality and variability of product families and several relationships among features or products. This thesis is about proposing a language for specifying feature models that is based on product family algebra (PFA). The language is intended to encompass the constructs found in early feature modelling graphical notations and languages. The thesis gives the syntax and the semantics of the proposed language. It discusses the design of its compiler that takes a feature model specification and generates its corresponding PFA, which can be analyzed using the tool Jory. The thesis uses a quite extensive case study to illustrate the use of the proposed language and its compiler.</p> / Master of Applied Science (MASc)
|
4 |
Quality of Feature Diagram Languages: Formal Evaluation and Comparison.Trigaux, Jean-Christophe 27 September 2008 (has links)
In software engineering, software reuse has been a popular topic since 1968. Nowadays, Software Product Line (SPL) engineering promotes systematic reuse throughout the whole software development process. Within SPL, reusability strongly depends on variability. In this context, variability modelling and management are crucial activities that crosscuts all development stages. Different techniques are used to model variability and one of them is Feature Diagrams (FDs). FD languages are a family of popular modelling languages used to model, and reason on, variability. Since the seminal proposal of a FD language, namely FODA, many extensions have been proposed to improve it. However, the pros and cons of these languages are difficult to evaluate for two main reasons: (1) most of them are informally defined and (2) no well defined criteria were used to justify the extensions made to FODA. As a consequence, variability modelling and management techniques proposed in the literature or used by practitioners may be suboptimal.
Globally, this work underlines that the current research on FDs is fragmented and provides principles to remedy this situation. A formal approach is proposed to introduce more rigour in the motivation, definition and comparison of FD languages. Thereby, examining their qualities should be more focused and productive. A formal approach guarantees unambiguity and is a prerequisite to define formal quality criteria and to produce efficient and safe tool automation. A quality analysis is necessary to avoid the proliferation of languages and constructs that are an additional source of misinterpretations and interoperability problems. The creation or selection of a FD language should be driven and motivated by rigourous criteria. Translations from one FD language to another should be defined and carefully studied to avoid interoperability problems.
The main contributions of this work are: (1) to use a quality framework to serve as a roadmap to improve the quality of FD languages, (2) to formally evaluate and compare FD language qualities according to well-defined criteria and following a clear method, (3) to formally define and motivate a new FD language that obtains the best scoring according to the quality criteria and (4) to develop tool support for this language.
|
Page generated in 0.0904 seconds