Caracterizando os fluxos excepcionais em linhas de produto de software: um estudo exploratório

Autor: Melo, Hugo Faria
Přispěvatelé: Kulesza, Uira, Coelho, Roberta de Souza
Jazyk: portugalština
Rok vydání: 2012
Předmět:
Zdroj: Repositório Institucional da UFRN
Universidade Federal do Rio Grande do Norte (UFRN)
instacron:UFRN
Popis: The Exception Handling (EH) is a widely used mechanism for building robust systems. In Software Product Line (SPL) context it is not different. As EH mechanisms are embedded in most of mainstream programming languages (like Java, C# and C++), we can find exception signalers and handlers spread over code assets associated to common and variable SPL features. When exception signalers and handlers are added to an SPL in an unplanned way, one of the possible consequences is the generation of faulty family instances (i.e., instances on which common or variable features signal exceptions that are mistakenly caught inside the system). In this context, some questions arise: How exceptions flow between the optional and alternative features an LPS? Aiming at providing answers to these questions, this master thesis conducted an exploratory study, based on code inspection and static analysis code, whose goal was to categorize the main ways which exceptions flow in LPSs. To support the study, we developed an static analysis tool called PLEA (Product Line Exception Analyzer) that calculates the exceptional flows of LPSs, and categorize these flows according to the features associated with handlers and signalers. Preliminary results showed that some types of exceptional flows have more potential to yield failures in exceptional behavior of SLPs O mecanismo de tratamento de exceções é amplamente utilizado para a construção de sistemas robustos. No contexto de Linhas de Produto de Software (LPSs) não é diferente. Uma vez que mecanismos de tratamento de exceções estão embutidos nas principais linguagens de programação da atualidade (como Java, C# e C++), podemos encontrar sinalizadores e tratadores de exceções espalhados entre os artefatos de código associados a características (do inglês: features) opcionais e obrigatórias de uma LPS. Quando tratadores ou sinalizadores de exceções são adicionados a uma LPS de forma não planejada, uma das possíveis conseqüências é a geração de produtos falhos (i.e., produtos em que exceções lançadas por features variáveis ou obrigatórias são erroneamente tratadas). Neste contexto, surge a pergunta: Quais as consequências de se usar o mecanismo de tratamento de exceções em LPSs? Com o objetivo de responder a esta pergunta, este trabalho conduz um estudo exploratório, baseado em inspeção de código e análise estática de código, cujo objetivo foi caracterizar as principais formas em que exceções fluem em LPSs. Para apoiar a realização deste estudo desenvolvemos a PLEA (Product Line Exception Analyzer), uma ferramenta baseada em analise estática de código que calcula os fluxos excepcionais de uma LPS e os classifica de acordo com as features associadas aos seus tratadores e sinalizadores. Resultados preliminares mostraram que alguns tipos de fluxos excepcionais tem mais potencial para originarem falhas no comportamento excepcional das LPSs
Databáze: OpenAIRE