Skip navigation
Please use this identifier to cite or link to this item: https://repositorio.ufpe.br/handle/123456789/12164
Title: Safe evolution of software product lines and sets of product lines
Authors: TEIXEIRA, Leopoldo Motta
Keywords: Software product lines;Software evolution;Re nement;Linhas de produtos de software;Evolu ção de software;Refinamento
Issue Date: 31-Jan-2014
Publisher: Universidade Federal de Pernambuco
Citation: TEIXEIRA, Leopoldo Motta. Safe evolution of software product lines and sets of product lines. Recife, 2014. 148 f. Tese (doutorado) - UFPE, Centro de Informática, Programa de Pós-graduação em Ciência da Computação, 2014..
Abstract: Software Product Lines explore reuse among software systems, providing a systematic way to generate them. Extracting product lines from existing products and evolving them can be costly and error-prone. These tasks can bene t from refactorings with formal basis, to ensure correctness by construction. Product lines are often developed in the context of a set of related product lines. In the context of product populations, we might have a number of product line versions being simultaneously developed in di erent branches. We can also combine multiple product lines that depend on each other to develop multi product lines. When evolving a product line from such a set, it is important to check whether the changes a ect the related product lines in the same set. A theory of product line re nement formalizes the notion of safe evolution in terms of a re nement relation over product lines. Re nement captures behavior preservation but abstracts quality improvement. In this work, we extend this theory, de ning re nement theories for product populations and multi product lines. We also establish compositionality properties, which reveal the necessary conditions for guaranteeing safe evolution of sets of product lines when individually evolving one of its members. The re nement theories are generic with respect to the di erent feature model, con- guration knowledge, and asset languages that we can use to describe or implement product lines, and consequently, sets of product lines. Assumptions and axioms explicitly establish the interfaces between our theories and particular languages. Instantiating the theories with di erent combinations of concrete languages enables us to derive re nement templates that abstract safe evolution transformations, ranging from evolving individual artifacts to evolving product lines and their sets as a whole. We investigate and explore similarities between these languages, abstracting common properties, which ultimately result on re nement templates that work at a higher abstraction level and can be reused to a larger number of languages. Thus, we propose a product line of theories, where di erent languages correspond to di erent features, and products correspond to instantiations of the re nement theories. We use the Prototype Veri cation System to encode and prove soundness of the theories and their instantiations. To evaluate expressiveness of the proposed templates, we analyze the evolution history of product lines. We observe whether templates are expressive enough to address the safe evolution scenarios. Additionally, we also study the Linux kernel evolution and discover that most evolution patterns conform to the product line re nement notion. Finally, we also use re nement templates to reason about evolution of the product line of theories.
Linhas de Produtos de Software exploram reuso entre sistemas de software, fornecendo uma maneira sistem atica de ger a-los. Extrair e evoluir linhas de produtos a partir de produtos existentes pode ser caro e propenso a erros. Tais tarefas podem se bene ciar de refatoramentos com base formal, garantindo corretude por constru c~ao. Linhas de produtos s~ao muitas vezes desenvolvidas no contexto de um conjunto de linhas relacionadas. Por exemplo, no contexto de popula c~oes de produtos, podemos ter diferentes vers~oes de uma linha sendo desenvolvidas simultaneamente em diferentes branches. Tamb em podemos combinar v arias linhas que dependem umas das outras para desenvolver multi-linhas de produto. Ao evoluir uma linha pertencente a um conjunto, e importante veri car se as altera c~oes afetam as demais linhas do mesmo conjunto. A teoria de re namento de linhas de produtos formaliza a no c~ao de evolu c~ao segura em termos de uma rela c~ao de re namento. Re namento captura preserva c~ao de comportamento, mas abstrai melhoria de qualidade. Neste trabalho, n os estendemos essa teoria para popula c~oes de produtos e multi-linhas de produtos. Estabelecemos propriedades de composicionalidade, que estabelecem as condi c~oes necess arias para garantir a evolu c~ao segura de conjuntos de linhas quando evolu mos individualmente seus membros. As teorias de re namento s~ao gerais com respeito as diferentes linguagens usadas para descrever modelos de caracter sticas, modelos de con gura c~ao e demais artefatos para implementar linhas de produtos e conjuntos de linhas. Pressupostos e axiomas estabelecem as interfaces entre nossas teorias e linguagens espec cas. Instanciar as teorias com diferentes combina c~oes de linguagens concretas nos permite derivar transforma c~oes que abstraem evolu c~oes seguras, que v~ao desde a evolu c~ao individual de artefatos at e a evolu c~ao de linhas de produtos e seus conjuntos como um todo. Investigamos e exploramos semelhan cas entre estas linguagens, abstraindo propriedades em comum, o que resulta em transforma c~oes expressas em n veis mais altos de abstra c~ao, que podem ser reutilizados por mais linguagens. Desta forma, n os propomos uma linha de produtos de teorias, onde diferentes linguagens correspondem a diferentes features, e os produtos correspondem a instancia c~oes das teorias de re namento. Foi utilizado o Prototype Veri cation System para codi ca c~ao e prova das teorias e suas instancia c~oes. Para avaliar a expressividade das transforma c~oes propostas, analisamos o hist orico de evolu c~ao de linhas de produtos, observando se transforma c~oes s~ao expressivas o su ciente para justi car os cen arios de evolu c~ao segura. Al em disso, tamb em estudamos a evolu c~ao do kernel do Linux e mostramos que a maioria dos padr~oes de evolu c~ao encontrados est a de acordo com a no c~ao de re namento de linhas de produtos. Finalmente, tamb em usamos as transforma c~oes para raciocinar sobre a evolu c~ao da linha de produtos de teorias.
URI: https://repositorio.ufpe.br/handle/123456789/12164
Appears in Collections:Teses de Doutorado - Ciência da Computação

Files in This Item:
File Description SizeFormat 
TESE Leopoldo Mota Teixeira.pdf3.83 MBAdobe PDFView/Open


This item is protected by original copyright



This item is licensed under a Creative Commons License Creative Commons