Return to search

Uma abordagem de apoio ? extra??o da pol?tica de tratamento de exce??es / An approach to aid the extraction of exception handling policy

Submitted by Automa??o e Estat?stica (sst@bczm.ufrn.br) on 2017-10-18T19:35:37Z
No. of bitstreams: 1
DemostenesSantosDeSena_TESE.pdf: 4593790 bytes, checksum: 3e0845d816f16e3a8f7659744e28f8ad (MD5) / Approved for entry into archive by Arlan Eloi Leite Silva (eloihistoriador@yahoo.com.br) on 2017-10-19T19:11:29Z (GMT) No. of bitstreams: 1
DemostenesSantosDeSena_TESE.pdf: 4593790 bytes, checksum: 3e0845d816f16e3a8f7659744e28f8ad (MD5) / Made available in DSpace on 2017-10-19T19:11:30Z (GMT). No. of bitstreams: 1
DemostenesSantosDeSena_TESE.pdf: 4593790 bytes, checksum: 3e0845d816f16e3a8f7659744e28f8ad (MD5)
Previous issue date: 2017-02-13 / Os mecanismos de tratamento de exce??es s?o recursos fornecidos pelas
principais linguagens de programa??o para auxiliar no desenvolvimento de sistemas
robustos. A pol?tica de tratamento de exce??es corresponde ao conjunto de regras de
design do tratamento excepcional e definem os elementos de c?digo (m?todos, classes ou
pacotes) respons?veis pela sinaliza??o, propaga??o, captura das exce??es e as respectivas
a??es de tratamento. Alguns estudos emp?ricos demonstraram que o tratamento
inadequado de exce??es, consequ?ncia da falta da pol?tica documentada, ? uma poss?vel
fonte de defeitos. Por outro lado, devido ? natureza impl?cita dos fluxos de exce??es, a
identifica??o e corre??o dos tratamentos de exce??es tornam-se tarefas complexas. Para
amenizar os problemas decorrentes do tratamento inadequado devido ? falta de
documenta??o do tratamento de exce??es, algumas abordagens definiram linguagens de
especifica??o das regras de tratamento com suporte ferramental para auxiliar na defini??o
e checagem das regras. Entretanto, historicamente, as pol?ticas de tratamento de exce??es
dos sistemas s?o postergadas ou ignoradas no processo de desenvolvimento.
Adicionalmente, nenhuma das abordagens propostas oferece suporte ? defini??o das
regras, de forma a auxiliar o arquiteto a extrair as regras a partir da an?lise de c?digo fonte
pr?-existente, e este ? o objetivo da abordagem apresentada neste trabalho. Para apoiar a
execu??o da abordagem proposta, foi desenvolvida uma ferramenta de an?lise est?tica
que permite: (i) a coleta dos fluxos excepcionas e das respectivas a??es de tratamentos;
(ii) a identifica??o e defini??o dos agrupamentos, que s?o os elementos de c?digo que
possuem os mesmos comportamentos em rela??o ao tratamento de exce??es; (iii) a
extra??o das regras; e, (iv) a checagem das regras e identifica??o das causas das viola??es
? pol?tica. A abordagem ? demonstrada em dois estudos emp?ricos. No primeiro estudo emp?rico foram analisadas 656 bibliotecas (libs) Java do reposit?rio central Maven com
objetivo de extrair e caracterizar a pol?tica de tratamento de exce??es destas libs. Este
estudo revelou que 80,9% das bibliotecas possuem fluxos excepcionais que implementam
pelo menos um anti-pattern do tratamento excepcional. O segundo estudo emp?rico teve
como objetivo investigar os benef?cios da extra??o das regras excepcionais a partir do
c?digo pr?-existente no processo de defini??o e checagem da pol?tica de tratamento de
exce??es. Dois sistemas de informa??o Web (i.e., IProject e SIGAA) foram utilizados
neste segundo estudo. Neste estudo pudemos observar que todas as regras reportadas
pelos arquitetos foram extra?das pelo suporte ferramental, e que os resultados do processo
de extra??o permitiram que novas regras fossem adicionadas pelos arquitetos. Essas
regras adicionadas foram as regras n?o definidas pelos arquitetos e corresponderam ?
57,1% (IProject) e 52,8% (SIGAA/Gradua??o) das regras da pol?tica dos sistemas
analisados. O processo de checagem das regras definidas com o apoio da abordagem
mostrou que 35,6% e 45,7% dos fluxos excepcionais do IProject e SIGAA/Gradua??o,
respectivamente, violavam alguma das regras de tratamento de exce??es. / The Exception handling (EH) mechanism is a technique embedded in most of the
mainstream programming languages to support the development of robust systems. The
exception handling policy is composed by the set of exception handling design rules and
which specify the elements (methods, classes and packages) or that contains the elements
responsible for raising, propagating and catching of exceptions as well as the handling
actions. Empirical studies have demonstrated that an inappropriate exception handling as
consequence of undocumented exception handling policy is a source of bug hazards. On
the other hand, due to the implicit nature of exception flows, the identification of
exception handling code is a complex task. To address the problems resulting from the
not-understood or inadequate exception handling, some approaches have been proposed
languages to specify exception handling rules as well as a set of support tool to verify the
constraints and checking the rules. However, historically, the exception handling policies
are postponed or ignored in the software process development. Additionally, none of the
proposed approaches provide support to the phase of exception policy definition. This
work proposes an approach that helps the architect to extract the EH rules by performing
an analysis on the existing code. Doing so, this approach fills the previous gap the EH
policy definition. To support the proposed approach, a static tool suite was developed,
which performs: (i) the discovery of exception flows and its handling actions; (ii) the
definition of compartments; (iii) the semi-automatic rule extraction process; and (iv) the
rule checking and identification of rule violation causes. This approach was assessed in
two empirical studies. In the first study, 656 libraries from Maven central repository were
analyzed. The main goal of this study was to reveal and to characterize the exception
handling policy of the analyzed libraries. This study revealed that 80.9% of the analyzed libraries have exception flows that implement at least one exception handling anti-pattern.
In the second study, we investigated the benefits of rule extraction process in the
definition and checking of exception handling rules. Two web information systems (i.e.,
IProject and SIGAA) were analyzed in this second study. We found that all set of rules
reported by the architects were extracted by our tool and the result of extraction process
allowed that new rules were added to the policy. These added rules were not defined by
architects and they corresponded to 57.1% (IProject) and 52.8% (SIGAA/Gradua??o) of
the rules of analyzed systems. The checking process of defined rules supported by our
approach verified that 35.6% (IProject) and 45.7% (SIGAA/Gradua??o) of exception
flows violated some defined rule.

Identiferoai:union.ndltd.org:IBICT/oai:repositorio.ufrn.br:123456789/24125
Date13 February 2017
CreatorsSena, Dem?stenes Santos de
Contributors02727172400, Aranha, Eduardo Henrique da Silva, 02561400492, Barbosa, Eiji Adachi Medeiros, 06393194405, Medeiros Neto, Francisco Dantas de, 00735640440, Almeida, Rodrigo Bonif?cio de, 02780875402, Kulesza, Uira, Coelho, Roberta de Souza
PublisherPROGRAMA DE P?S-GRADUA??O EM SISTEMAS E COMPUTA??O, UFRN, Brasil
Source SetsIBICT Brazilian ETDs
LanguagePortuguese
Detected LanguageEnglish
Typeinfo:eu-repo/semantics/publishedVersion, info:eu-repo/semantics/doctoralThesis
Sourcereponame:Repositório Institucional da UFRN, instname:Universidade Federal do Rio Grande do Norte, instacron:UFRN
Rightsinfo:eu-repo/semantics/openAccess

Page generated in 0.0021 seconds