Learn More
Adoption strategies for Software Product Lines (SPL) frequently involve bootstrapping existing products into a SPL and extending an existing SPL to encompass another product. One way to do that is to use program refactorings. However, the traditional notion of refactoring does not handle appropriately feature models (FM), nor transformations involving(More)
Automatic analysis of UML models constrained by OCL in-variants is still an open research topic. Especially for critical systems, such tool support is important for early identification of errors in mod-eling, before functional requirements are implemented. In this paper, we present ideas on an approach for automatic analysis of UML class diagrams,(More)
The C preprocessor is commonly used to implement variability in program families. Despite the widespread usage, some studies indicate that the C preprocessor makes variability implementation difficult and error-prone. However, we still lack studies to investigate preprocessor-based syntax errors and quantify to what extent they occur in practice. In this(More)
Some approaches have been used to investigate evidence on how developers refactor their code, whether refactorings activities may decrease the number of bugs, or improve developers' productivity. However, there are some contradicting evidence in previous studies. For instance, some investigations found evidence that if the number of refactoring changes(More)
—Feature models and configuration knowledge drive product generation in a Software Product Line (SPL). Mistakes when specifying these models or in the implementation might result in ill-formed products — the safe composition problem. This work proposes an automated approach for verifying safe composition for SPLs with explicit configuration knowledge(More)
The variability of configurable systems may lead to configuration-related issues (i.e., faults and warnings) that appear only when we select certain configuration options. Previous studies found that issues related to configurability are harder to detect than issues that appear in all configurations, because variability increases the complexity. However,(More)
A technique is presented for obtaining a specification from a requirement through a series of incremental steps. The starting point is a Problem Frame description, involving a decomposition of the environment into interconnected domains and a formal requirement on phenomena of those domains. In each step, the requirement is moved towards the machine,(More)
Feature models are used to state the instances of a software product-line. However, there is a limited tool support for automatically checking properties of feature models. In this paper, we propose a theory of feature models in Alloy. This theory can be used to check a number of properties in the Alloy Analyzer. For instance, we show how to check whether(More)
To safely evolve a software product line, it is important to have a notion of product line refinement that assures behavior preservation of the original product line products. So in this article we present a language independent theory of product line refinement, establishing refinement properties that justify stepwise and compositional product line(More)
Equivalence notions for object models are usually too concrete in the sense that they assume that the compared models are formed by elements with the same names. This is not adequate in several situations: during model refactoring, when using auxiliary model elements, or when the compared models comprise distinct but corresponding elements. So, in this(More)