Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Leopoldo Teixeira is active.

Publication


Featured researches published by Leopoldo Teixeira.


generative programming and component engineering | 2011

Investigating the safe evolution of software product lines

Laís Neves; Leopoldo Teixeira; Demóstentes Sena; Vander Alves; Uirá Kulesza; Paulo Borba

The adoption of a product line strategy can bring significant productivity and time to market improvements. However, evolving a product line is risky because it might impact many products and their users. So when evolving a product line to introduce new features or to improve its design, it is important to make sure that the behavior of existing products is not affected. In fact, to preserve the behavior of existing products one usually has to analyze different artifacts, like feature models, configuration knowledge and the product line core assets. To better understand this process, in this paper we discover and analyze concrete product line evolution scenarios and, based on the results of this study, we describe a number of safe evolution templates that developers can use when working with product lines. For each template, we show examples of their use in existing product lines. We evaluate the templates by also analyzing the evolution history of two different product lines and demonstrating that they can express the corresponding modifications and then help to avoid the mistakes that we identified during our analysis.


software product lines | 2013

Coevolution of variability models and related artifacts: a case study from the Linux kernel

Leonardo Teixeira Passos; Jianmei Guo; Leopoldo Teixeira; Krzysztof Czarnecki; Andrzej Wąsowski; Paulo Borba

Variability-aware systems are subject to the coevolution of variability models and related artifacts. Surprisingly, little knowledge exists to understand such coevolution in practice. This shortage is directly reflected in existing approaches and tools for variability management, as they fail to provide effective support for such a coevolution. To understand how variability models and related artifacts coevolve in a large and complex real-world variability-aware system, we inspect over 500 Linux kernel commits spanning almost four years of development. We collect a catalog of evolution patterns, capturing the coevolution of the Linux kernel variability model, Makefiles, and C source code. Further, we extract general findings to guide further research and tool development.


Empirical Software Engineering | 2016

Coevolution of variability models and related software artifacts

Leonardo Teixeira Passos; Leopoldo Teixeira; Nicolas Dintzner; Sven Apel; Andrzej Wąsowski; Krzysztof Czarnecki; Paulo Borba; Jianmei Guo

Variant-rich software systems offer a large degree of customization, allowing users to configure the target system according to their preferences and needs. Facing high degrees of variability, these systems often employ variability models to explicitly capture user-configurable features (e.g., systems options) and the constraints they impose. The explicit representation of features allows them to be referenced in different variation points across different artifacts, enabling the latter to vary according to specific feature selections. In such settings, the evolution of variability models interplays with the evolution of related artifacts, requiring the two to evolve together, or coevolve. Interestingly, little is known about how such coevolution occurs in real-world systems, as existing research has focused mostly on variability evolution as it happens in variability models only. Furthermore, existing techniques supporting variability evolution are usually validated with randomly-generated variability models or evolution scenarios that do not stem from practice. As the community lacks a deep understanding of how variability evolution occurs in real-world systems and how it relates to the evolution of different kinds of software artifacts, it is not surprising that industry reports existing tools and solutions ineffective, as they do not handle the complexity found in practice. Attempting to mitigate this overall lack of knowledge and to support tool builders with insights on how variability models coevolve with other artifact types, we study a large and complex real-world variant-rich software system: the Linux kernel. Specifically, we extract variability-coevolution patterns capturing changes in the variability model of the Linux kernel with subsequent changes in Makefiles and C source code. From the analysis of the patterns, we report on findings concerning evolution principles found in the kernel, and we reveal deficiencies in existing tools and theory when handling changes captured by our patterns.


conference on object-oriented programming systems, languages, and applications | 2010

Emergent feature modularization

Márcio Ribeiro; Humberto Pacheco; Leopoldo Teixeira; Paulo Borba

Virtual Separation of Concerns reduces the drawbacks of implementing product line variability with preprocessors. Developers can focus on certain features and hide others of no interest. However, these features eventually share elements between them, which might break feature modularization, since modifications in a feature result in problems for another. We present the concept of emergent feature modularization, which aims to establish contracts between features, to prevent developers from breaking other features when performing a maintenance task. These interfaces are product-line-aware, in the sense that it only considers valid feature combinations. We also present a prototype tool that implements the concept.


Science of Computer Programming | 2014

Making refactoring safer through impact analysis

Melina Mongiovi; Rohit Gheyi; Gustavo Soares; Leopoldo Teixeira; Paulo Borba

Currently most developers have to apply manual steps and use test suites to improve confidence that transformations applied to object-oriented (OO) and aspect-oriented (AO) programs are correct. However, it is not simple to do manual reasoning, due to the nontrivial semantics of OO and AO languages. Moreover, most refactoring implementations contain a number of bugs since it is difficult to establish all conditions required for a transformation to be behavior preserving. In this article, we propose a tool (SafeRefactorImpact) that analyzes the transformation and generates tests only for the methods impacted by a transformation identified by our change impact analyzer (Safira). We compare SafeRefactorImpact with our previous tool (SafeRefactor) with respect to correctness, performance, number of methods passed to the automatic test suite generator, change coverage, and number of relevant tests generated in 45 transformations. SafeRefactorImpact identifies behavioral changes undetected by SafeRefactor. Moreover, it reduces the number of methods passed to the test suite generator. Finally, SafeRefactorImpact has a better change coverage in larger subjects, and generates more relevant tests than SafeRefactor.


Journal of Systems and Software | 2015

Safe evolution templates for software product lines

Laís Neves; Paulo Borba; Vander Alves; Lucinéia Turnes; Leopoldo Teixeira; Demóstenes Sena; Uirá Kulesza

We extend our investigation of compositional product lines with more subjectsWe also investigate annotative product lines, and propose templates for this contextWe contribute to the body of evidence on safe evolution of product linesWe bring additional evidence of the expressiveness of the proposed templates Software product lines enable generating related software products from reusable assets. Adopting a product line strategy can bring significant quality and productivity improvements. However, evolving a product line can be risky, since it might impact many products. When introducing new features or improving its design, it is important to make sure that the behavior of existing products is not affected. To ensure that, one usually has to analyze different types of artifacts, an activity that can lead to errors. To address this issue, in this work we discover and analyze concrete evolution scenarios from five different product lines. We discover a total of 13 safe evolution templates, which are generic transformations that developers can apply when evolving compositional and annotative product lines, with the goal of preserving the behavior of existing products. We also evaluate the templates by analyzing the evolution history of these product lines. In this evaluation, we observe that the templates can address the modifications that developers performed in the analyzed scenarios, which corroborates the expressiveness of our template set. We also observe that the templates could also have helped to avoid the errors that we identified during our analysis.


Sigplan Notices | 2016

An empirical study on configuration-related issues: investigating undeclared and unused identifiers

Flávio Medeiros; Iran Rodrigues; Márcio Ribeiro; Leopoldo Teixeira; Rohit Gheyi

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, little effort has been put into understanding configuration-related faults (e.g., undeclared functions and variables) and warnings (e.g., unused functions and variables). To better understand the peculiarities of configuration-related undeclared/unused variables and functions, in this paper we perform an empirical study of 15 systems to answer research questions related to how developers introduce these issues, the number of configuration options involved, and the time that these issues remain in source files. To make the analysis of several projects feasible, we propose a strategy that minimizes the initial setup problems of variability-aware tools. We detect and confirm 2 undeclared variables, 14 undeclared functions, 16 unused variables, and 7 unused functions related to configurability. We submit 30 patches to fix issues not fixed by developers. Our findings support the effectiveness of sampling (i.e., analysis of only a subset of valid configurations) because most issues involve two or less configuration options. Nevertheless, by analyzing the version history of the projects, we observe that a number of issues remain in the code for several years. Furthermore, the corpus of undeclared/unused variables and functions gathered is a valuable source to study these issues, compare sampling algorithms, and test and improve variability-aware tools.


Requirements Engineering | 2014

Evaluating scenario-based SPL requirements approaches: the case for modularity, stability and expressiveness

Mauricio Alférez; Rodrigo Bonifácio; Leopoldo Teixeira; Paola R. G. Accioly; Uirá Kulesza; Ana Moreira; João Araújo; Paulo Borba

AbstractSoftware product lines (SPL) provide support for productivity gains through systematic reuse. Among the various quality attributes supporting these goals, modularity, stability and expressiveness of feature specifications, their composition and configuration knowledge emerge as strategic values in modern software development paradigms. This paper presents a metric-based evaluation aiming at assessing how well the chosen qualities are supported by scenario-based SPL requirements approaches. The selected approaches for this study span from type of notation (textual or graphical based), style to support variability (annotation or composition based), and specification expressiveness. They are compared using the metrics developed in a set of releases from an exemplar case study. Our major findings indicate that composition-based approaches have greater potential to support modularity and stability, and that quantification mechanisms simplify and increase expressiveness of configuration knowledge and composition specifications.


brazilian symposium on software engineering | 2011

Safe Composition of Configuration Knowledge-Based Software Product Lines

Leopoldo Teixeira; Paulo Borba; Rohit Gheyi

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 models. We translate feature models and configuration knowledge into propositional logic and use SAT Solvers to perform the verification. We evaluate our approach using seven releases of the MobileMedia SPL, which generate up to 272 products in the 7th release. We report safe composition problems related to non-conformity with the feature model, bad specification of the configuration knowledge, and implementation not envisioning the full SPL scope, that affect over 40% of the products in the 7th release.


international colloquium on theoretical aspects of computing | 2010

A theory of software product line refinement

Paulo Borba; Leopoldo Teixeira; Rohit Gheyi

To safely derive and evolve a software product line, it is important to have a notion of product line refactoring and its underlying refinement notion, which assures behavior preservation. In this paper we present a general theory of product line refinement by extending a previous formalization with explicit interfaces between our theory and the different languages that can be used to create product line artifacts. More important, we establish product line refinement properties that justify stepwise and compositional product line development and evolution.

Collaboration


Dive into the Leopoldo Teixeira's collaboration.

Top Co-Authors

Avatar

Paulo Borba

Federal University of Pernambuco

View shared research outputs
Top Co-Authors

Avatar

Rohit Gheyi

Federal University of Pernambuco

View shared research outputs
Top Co-Authors

Avatar

Uirá Kulesza

Federal University of Rio Grande do Norte

View shared research outputs
Top Co-Authors

Avatar

Márcio Ribeiro

Federal University of Alagoas

View shared research outputs
Top Co-Authors

Avatar

Melina Mongiovi

Federal University of Campina Grande

View shared research outputs
Top Co-Authors

Avatar

Vander Alves

University of Brasília

View shared research outputs
Top Co-Authors

Avatar

Elder Cirilo

Pontifical Catholic University of Rio de Janeiro

View shared research outputs
Top Co-Authors

Avatar

Flávio Medeiros

Federal University of Campina Grande

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Gustavo Soares

Federal University of Campina Grande

View shared research outputs
Researchain Logo
Decentralizing Knowledge