7 research outputs found

    Consistency maintenance for evolving feature models

    Get PDF
    Software product line (SPL) techniques handle the construction of customized systems. One of the most common representations of the decisions a customer can make in SPLs is feature models (FMs). An FM represents the relationships among common and variable features in an SPL. Features are a representation of the characteristics in a system that are relevant to customers. FMs are subject to change since the set of features and their relationships can change along an SPL lifecycle. Due to this evolution, the consistency of FMs may be compromised. There exist some approaches to detect and explain inconsistencies in FMs, however this process can take a long time for large FMs. In this paper we present a complementary approach to dealing with inconsistencies in FM evolution scenarios that improves the performance for existing approaches reducing the impact of change to the smallest part of an FM that changes. To achieve our goal, we formalize FMs from an ontological perspective and define constraints that must be satisfied in FMs to be consistent. We define a set of primitive operations that modify FMs and which are responsible for the FM evolution, analyzing their impact on the FM consistency. We propose a set of predefined strategies to keep the consistency for error-prone operations. As a proof-of-concept we present the results of our experiments, where we check for the effectiveness and efficiency of our approach in FMs with thousands of features. Although our approach is limited by the kinds of consistency constraints and the primitive operations we define, the experiments present a significant improvement in performance results in those cases where they are applicable.Comisión Interministerial de Ciencia y Tecnología TIN2009-07366Junta de Andalucía TIC-5906Junta de Andalucía P07-TIC-253

    Model Defects in Evolving Software Product Lines: A Review of Literature

    Get PDF
    Software products lines (SPLs) are long living systems that undergo several evolutions throughout their lifetime due to many reasons related to technology, strategy, business, etc. These evolutions can be the source of several defects that impact the different artefacts of SPLs, namely requirements, models, architecture and code. Many studies in the literature have dealt with the correction of defects in software product lines, but to our knowledge, no reviews have been carried out to provide an extensive overview of these studies. In this paper, we present a literature review of model defects in software product lines. The purpose of this review is to enumerate the different defects discussed in literature and to present the approaches proposed to detect and correct them. The findings of this review reveal new research leads to explore in this issue

    Ontology-based feature modeling: an empirical study in changing scenarios

    Get PDF
    A software product line (SPL) is a set of software systems that have a particular set of common features\ud and that satisfy the needs of a particular market segment or mission. Feature modeling is one of the key\ud activities involved in the design of SPLs. The feature diagram produced in this activity captures the commonalities\ud and variabilities of SPLs. In some complex domains (e.g., ubiquitous computing, autonomic\ud systems and context-aware computing), it is difficult to foresee all functionalities and variabilities a\ud specific SPL may require. Thus, Dynamic Software Product Lines (DSPLs) bind variation points at runtime\ud to adapt to fluctuations in user needs as well as to adapt to changes in the environment. In this context,\ud relying on formal representations of feature models is important to allow them to be automatically analyzed\ud during system execution. Among the mechanisms used for representing and analyzing feature\ud models, description logic (DL) based approaches demand to be better investigated in DSPLs since it provides\ud capabilities, such as automated inconsistency detection, reasoning efficiency, scalability and\ud expressivity. Ontology is the most common way to represent feature models knowledge based on DL reasoners.\ud Previous works conceived ontologies for feature modeling either based on OWL classes and properties\ud or based on OWL individuals. However, considering change or evolution scenarios of feature\ud models, we need to compare whether a class-based or an individual-based feature modeling style is\ud recommended to describe feature models to support SPLs, and especially its capabilities to deal with\ud changes in feature models, as required by DSPLs. In this paper, we conduct a controlled experiment to\ud empirically compare two approaches based on each one of these modeling styles in several changing scenarios\ud (e.g., add/remove mandatory feature, add/remove optional feature and so on). We measure time to\ud perform changes, structural impact of changes (flexibility) and correctness for performing changes in our\ud experiment. Our results indicate that using OWL individuals requires less time to change and is more\ud flexible than using OWL classes and properties. These results provide insightful assumptions towards\ud the definition of an approach relying on reasoning capabilities of ontologies that can effectively support\ud products reconfiguration in the context of DSPL.CNPqCAPE

    Consistent View-Based Management of Variability in Space and Time

    Get PDF
    Developing variable systems faces many challenges. Dependencies between interrelated artifacts within a product variant, such as code or diagrams, across product variants and across their revisions quickly lead to inconsistencies during evolution. This work provides a unification of common concepts and operations for variability management, identifies variability-related inconsistencies and presents an approach for view-based consistency preservation of variable systems

    Consistent View-Based Management of Variability in Space and Time

    Get PDF
    Developing variable systems faces many challenges. Dependencies between interrelated artifacts within a product variant, such as code or diagrams, across product variants and across their revisions quickly lead to inconsistencies during evolution. This work provides a unification of common concepts and operations for variability management, identifies variability-related inconsistencies and presents an approach for view-based consistency preservation of variable systems

    Supporting the grow-and-prune model for evolving software product lines

    Get PDF
    207 p.Software Product Lines (SPLs) aim at supporting the development of a whole family of software products through a systematic reuse of shared assets. To this end, SPL development is separated into two interrelated processes: (1) domain engineering (DE), where the scope and variability of the system is defined and reusable core-assets are developed; and (2) application engineering (AE), where products are derived by selecting core assets and resolving variability. Evolution in SPLs is considered to be more challenging than in traditional systems, as both core-assets and products need to co-evolve. The so-called grow-and-prune model has proven great flexibility to incrementally evolve an SPL by letting the products grow, and later prune the product functionalities deemed useful by refactoring and merging them back to the reusable SPL core-asset base. This Thesis aims at supporting the grow-and-prune model as for initiating and enacting the pruning. Initiating the pruning requires SPL engineers to conduct customization analysis, i.e. analyzing how products have changed the core-assets. Customization analysis aims at identifying interesting product customizations to be ported to the core-asset base. However, existing tools do not fulfill engineers needs to conduct this practice. To address this issue, this Thesis elaborates on the SPL engineers' needs when conducting customization analysis, and proposes a data-warehouse approach to help SPL engineers on the analysis. Once the interesting customizations have been identified, the pruning needs to be enacted. This means that product code needs to be ported to the core-asset realm, while products are upgraded with newer functionalities and bug-fixes available in newer core-asset releases. Herein, synchronizing both parties through sync paths is required. However, the state of-the-art tools are not tailored to SPL sync paths, and this hinders synchronizing core-assets and products. To address this issue, this Thesis proposes to leverage existing Version Control Systems (i.e. git/Github) to provide sync operations as first-class construct
    corecore