• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 1
  • 1
  • Tagged with
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • About
  • The Global ETD Search service is a free service for researchers to find electronic theses and dissertations. This service is provided by the Networked Digital Library of Theses and Dissertations.
    Our metadata is collected from universities around the world. If you manage a university/consortium/country archive and want to be added, details can be found on the NDLTD website.
1

[en] ANALYZING EXCEPTION FLOWS OF ASPECT-ORIENTED PROGRAMS / [pt] ANALISANDO O FLUXO DE EXCEÇÕES EM PROGRAMAS ORIENTADOS A ASPECTOS

ROBERTA DE SOUZA COELHO 15 January 2009 (has links)
[pt] Os mecanismos de tratamento de exceções têm o objetivo de aumentar a robustez e a modularidade do software na medida em que promovem a separação entre o código dedicado ao tratamento de erros e código associado ao fluxo normal de execução do programa. Estes permitem a detecção de erros e a associação de respostas adequadas aos mesmos, através da execução de códigos de recuperação que são geralmente encapsulados em tratadores (do inglês: handlers). A importância dos mecanismos de tratamento de exceção é atestada pelo fato destes fazerem parte da maioria das linguagens de programação mais utilizadas na atualidade: Java, C++ e C#. Na última década a programação orientada a aspectos (POA) vem sendo amplamente utilizada como forma de modularizar interesses que se encontram espalhados nas decomposições primarias de um sistema (e.g., funções, classes, métodos) em uma abstração chamada aspecto. Os aspectos utilizam construções especificas para promover modificações externas nos programas, incluindo comportamentos adicionais em pontos específicos do código. POA vem sido utilizado com o objetivo de aumentar a modularidade do código de tratamento de exceção e de interesses transversais igualmente importantes tais como: persistência, distribuição, segurança, controle de transações e monitoramento. De acordo com alguns estudos empíricos, POA tem sido usado com sucesso com o objetivo de promover o tratamento de erro modular em vários cenários de tratamento de exceções. Porém, é sabido que mecanismos de programação flexíveis (e.g., herança e polimorfismo) podem ter um efeito negativo no tratamento de exceções. Se por um lado os mecanismos de composição POA baseados na inversão de controle podem trazer um novo leque de possibilidades de projeto, promovendo em muitas circunstâncias uma maior estabilidade do projeto (do inglês: design stability), eles podem perder seu valor se ele torna o tratamento de exceções propenso a erros (do inglês: error-prone). Refinamento aspectuais do comportamento do código base, podem por um lado promover a robustez do sistema em situações onde exceções são lançadas ou contribuir para os problemas típicos de tratamento de exceções mal projetados tais como: (i) exceções não capturadas (do inglês: uncaught exceptions); (ii) exceções capturadas por tratadores genéricos (do inglês: exception subsumption) (i.e., exceções capturadas por um tratador cujo argumento é um supertipo da exceção a ser tratada); (iii) e exceções capturadas por tratadores errados (do inglês: unintended handler action). Infelizmente, não existe nenhuma avaliação sistemática dos efeitos positivos e negativos da programação orientada a aspectos na robustez do código de tratamento de exceções. Os trabalhos de pesquisa descritos na literatura têm se limitado a analisar os impactos dos aspectos no fluxo normal de execução do programa. Além disso, a maioria dos estudos empíricos não vai além de discussões sobre os ganhos de modularidade e as ciladas associadas à utilização de aspectos - para o tratamento de exceções e de outros interesses transversais. Por exemplo, estes estudos não levam em consideração as conseqüências inerentes as novas exceções e tratadores que são adicionadas ao código base junto com a nova funcionalidade adicionada pelos aspectos. Esta tese descreve o primeiro estudo sistemático que avalia quantitativamente o impacto da composição aspectual no fluxo excepcional de programas. Este estudo se baseou na utilização de uma ferramenta de análise do fluxo de exceções chamada SAFE (do inglês: Static Analysis for the Flow of Exceptions) desenvolvida ao longo deste trabalho e na inspeção manual do código de tratamento de exceções de um conjunto de sistemas para os quais a versão Java e AspectJ estavam disponíveis. A ferramenta SAFE foi construída com base no framework SOOT para a análise e ot / [en] It has been empirically observed that aspect-oriented (AO) decompositions promote the modularity and the design stability of software systems containing crosscutting concerns. However, most of this existing empirical research has focused on the positive and negative impacts of AO programming in the modularization of crosscutting concerns in the context of normal control flow of programs. Consequently, most of these works do not account for the exceptions that may flow from aspects: when an aspect adds a new functionality to specific points in the code, this additional behavior may also bring new exceptions. An aspect also has the ability to handle exceptions that were previously handled inside the base code. Moreover, the exceptions that escape form aspects also flow inside the program, and may lead to unexpected error-prone scenarios, such as: unintended handler actions and uncaught exceptions. This thesis presents an empirical study to evaluate the impact of aspects on the exception flow of programs. To support the reasoning about the flow of exceptions on AO programs, a static analysis tool called SAFE (Static Analysis for the Flow of Exceptions) was implemented. Based on data empirically collected during the study we characterized a catalogue of bug patterns related to the exception handling code of AO programs. To help AO developers to check the reliability of the exception handling code, this work presents verification approach - supported by the SAFE tool - which provides guidelines to counter these bug patterns. Our findings show that the exception handling code in aspect-oriented programs tends to be error-prone, but that a verification approach based on static analysis can lead to significant improvements.
2

[en] EXTENDING THE TOOL SAFE FOR JBOSS AOP / [pt] ESTENDENDO A FERRAMENTA SAFE PARA JBOSS AOP

MARCIO DAVID DE MAGALHAES SANTOS 17 February 2011 (has links)
[pt] O paradigma de orientação a aspectos é utilizado em vários frameworks e aplicações com o objetivo de melhorar a modularidade e a separação de interesses. Contudo, a combinação do paradigma de orientação a aspectos com mecanismos de captura de exceção pode elevar o número de cenários sujeitos a falhas. Pois, os elementos que compõem os aspectos podem levantar exceções, as quais a aplicação não foi projetada para tratá-las. Nesta dissertação é apresentado (i) um estudo empírico mostrando como a programação orientada a aspectos afeta o tratamento de exceção de uma aplicação que utiliza o JBoss AOP como implementação do paradigma de orientação a aspectos; e (ii) uma ferramenta que deu suporte ao estudo. O estudo mostra que ocorrem falhas no tratamento de exceção principalmente porque as exceções são capturadas por subsunção. / [en] Aspect Oriented Paradigm (AOP) is used in many frameworks and applications in order to improve the modularity and separation of concerns. However, the combination of AOP and exception handling mechanisms may increase the number of error-prone scenarios. AOP may raise exceptions which the application was not designed to handle it. This dissertation presents (i) an empirical study showing how the AOP affects exception handling in an application that uses JBoss AOP to implement AOP, and (ii) a support tool for the study. The study shows that error-prone scenarios occur mainly because exception handling exceptions are caught by subsumption.

Page generated in 0.0514 seconds