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


Autoria(s): Melo, Hugo Faria
Contribuinte(s)

Coelho, Roberta de Souza

CPF:04864813442

http://lattes.cnpq.br/3905891258925705

CPF:02727172400

http://lattes.cnpq.br/9854634275938452

Kulesza, Uira

CPF:02219235432

http://lattes.cnpq.br/0189095897739979

Data(s)

17/12/2014

14/03/2013

17/12/2014

26/07/2012

Resumo

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

Formato

application/pdf

Identificador

MELO, Hugo Faria. Caracterizando os fluxos excepcionais em linhas de produto de software: um estudo exploratório. 2012. 79 f. Dissertação (Mestrado em Ciência da Computação) - Universidade Federal do Rio Grande do Norte, Natal, 2012.

http://repositorio.ufrn.br:8080/jspui/handle/123456789/18058

Idioma(s)

por

Publicador

Universidade Federal do Rio Grande do Norte

BR

UFRN

Programa de Pós-Graduação em Sistemas e Computação

Ciência da Computação

Direitos

Acesso Aberto

Palavras-Chave #Linhas de produtos de software. Tratamento de exceções. Análise estática de código #Software product lines. Exception handling. Static code analysis #CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::SISTEMAS DE COMPUTACAO
Tipo

Dissertação