• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 30
  • 14
  • 2
  • 1
  • 1
  • Tagged with
  • 52
  • 52
  • 29
  • 19
  • 15
  • 11
  • 11
  • 9
  • 8
  • 8
  • 8
  • 7
  • 7
  • 7
  • 7
  • 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.
11

Uma abordagem transacional para o tratamento de exceções em processos de negócio. / A transactional approach to exception handling in business process.

Silva, Pedro Paulo de Souza Bento da 12 June 2013 (has links)
Com o intuito de tornarem-se mais eficientes, muitas organizações -- empresas, órgãos governamentais, centros de pesquisa, etc. -- optam pela utilização de ferramentas de software para apoiar a realização de seus processos. Uma opção que vem se tornando cada vez mais popular é a utilização de sistemas de Gestão de Processos de Negócio (GPN), que são ferramentas genéricas, ou seja, não são específicas a nenhuma organização, altamente configuráveis e ajustáveis às necessidades dos objetos de atuação de cada organização. Uma das principais responsabilidades de um sistema de GPN é prover mecanismos de tratamento de exceções à execução de instâncias de processos de negócio. Exceções, se forem ignoradas ou se não forem corretamente tratadas, podem causar o aborto da execução de instâncias e, dependendo da gravidade da situação, podem causar falhas em sistemas de GPN ou até mesmo em sistemas subjacentes (sistema operacional, sistema gerenciador de banco de dados, etc.). Sendo assim, mecanismos de tratamento de exceções têm por objetivo resolver a situação excepcional ou conter seus efeitos colaterais garantindo, ao menos, uma degradação controlada (graceful degradation) do sistema. Neste trabalho, estudamos algumas das principais deficiências de modelos atuais de tratamento de exceções, no contexto de sistemas de GPN, e apresentamos soluções baseadas em Modelos Transacionais Avançados para contorná-las. Isso é feito por meio do aprimoramento dos mecanismos de tratamento de exceções da abordagem de modelagem e gerenciamento de execução de processos de negócio WED-flow. Por fim, estendemos a ferramenta WED-tool, uma implementação da abordagem WED-flow, através do desenvolvimento de seu gerenciador de recuperação de falhas. / With the aim of becoming more efficient, many organizations -- companies, governmental entities, research centers, etc -- choose to use software tools for supporting the accomplishment of its processes. An option that becomes more popular is the usage of Business Process Management Systems (BPM), which are generic tools, that is, not specific to any organization and highly configurable to the domain needs of any organization. One of the main responsibilities of BPM Systems is to provide exception handling mechanisms for the execution of business process instances. Exceptions, if ignored or incorrectly handled, may induce the abortion of instance executions and, depending on the gravity of the situation, induce failures on BPM Systems or even on subjacent systems (operational system, database management systems, etc.). Thus, exception handling mechanisms aim to solve the exceptional situation or stopping its collateral effects by ensuring, at least, a graceful degradation to the system. In this work, we study some of the main deficiencies of present exception handling models -- in the context of BPM Systems -- and present solutions based on Advanced Transaction Models to bypass them. We do this through the improvement of exception handling mechanisms from WED-flow, a business process modelling and instance execution managing approach. Lastly, we extend the WED-tool, an implementation of WED-flow approach, through the development of its failure recovery manager.
12

Ambiente de testes utilizando verificação de componentes java com tratamento de exceções / Test environment using property checking of Java components with exception handling

Xavier, Kleber da Silva 17 April 2008 (has links)
Um sistema de software que apresente problemas em sua execução pode gerar conseqüências desde um simples incômodo ao usuário, até desastres como a perda de uma sonda da NASA em Marte. As atividades de teste visam identificar erros nos sistemas de software, prevenindo estas conseqüências indesejáveis. Porém, os testes podem envolver entre 30% e 40% do esforço de desenvolvimento do sistema, e em sistemas críticos, seu custo pode ser de 3 a 5 vezes maior do que o custo combinado das demais atividades. Para tentar reduzir estes custos podemos automatizar parte das atividades. No presente caso, pretende-se minimizar os casos de teste gerados manualmente, utilizando uma técnica denominada verificação de modelos. Esta técnica consiste em verificar propriedades definidas formalmente através de expressões matemáticas, utilizando uma ferramenta de verificação que simula a execução do código. Além disso, um sistema que utilize um tratamento de condições excepcionais eficiente, tem sua manutenibilidade, robustez e confiabilidade melhoradas. Por isso, definimos propriedades relacionadas ao tratamento de exceções, como ponto de entrada para a verificação de modelos. Apresentamos um ambiente de testes criado para permitir a verificação destas propriedades com o verificador Java PathFinder e a exibição das estatísticas de cobertura de testes de acordo com o critério selecionado. Este ambiente facilita a execução dos testes, pois apresenta uma interface gráfica com o usuário que permite a configuração e execução dos testes sem que seja necessária a escrita de código pelo testador. Apresentamos também o resultado do uso deste ambiente para o teste de vários programas exemplo, utilizando desde código concorrente até diferentes estratégias de tratamento de exceção e discutimos as características, cuidados no uso e limitações das ferramentas utilizadas. / A software system that shows some failure at runtime execution may bring consequences that range from a simple user annoyance to great disasters such as the lost NASA probe on Mars. The test activities aim to find errors in software systems, preventing these undesirable consequences. However, tests may take between 30% and 40% of total development time, and on critical systems, its cost can be from 3 to 5 times greater than the combined cost of the other activities. In an effort to reduce these costs, we may automate some of the activities. In this work we intend to minimize test case manual generation, using a technique called model checking. This technique involves the checking of properties defined through the use of mathematical formulas, using a tool, that simulates code execution. In addition, a system with an efficient exception handling mechanism, has its maintainability, robustness and reliability enhanced. So, in this work we define exception handling related properties, as an input for model checking. We present a test tool created to allow checking of these properties using the Java PathFinder model checker, and to list the test coverage statistics, according to the selected test criteria. This tool makes easy the test execution, since it presents a graphical user interface that allows configuration and running of tests with no need to write any lines of code. We also show the results of running several tests with the GUI, using some programs implemented with concurrent code and several exception handling techniques and discuss the main features, pitfalls and limitations of the underlying tools.
13

Uma abordagem transacional para o tratamento de exceções em processos de negócio. / A transactional approach to exception handling in business process.

Pedro Paulo de Souza Bento da Silva 12 June 2013 (has links)
Com o intuito de tornarem-se mais eficientes, muitas organizações -- empresas, órgãos governamentais, centros de pesquisa, etc. -- optam pela utilização de ferramentas de software para apoiar a realização de seus processos. Uma opção que vem se tornando cada vez mais popular é a utilização de sistemas de Gestão de Processos de Negócio (GPN), que são ferramentas genéricas, ou seja, não são específicas a nenhuma organização, altamente configuráveis e ajustáveis às necessidades dos objetos de atuação de cada organização. Uma das principais responsabilidades de um sistema de GPN é prover mecanismos de tratamento de exceções à execução de instâncias de processos de negócio. Exceções, se forem ignoradas ou se não forem corretamente tratadas, podem causar o aborto da execução de instâncias e, dependendo da gravidade da situação, podem causar falhas em sistemas de GPN ou até mesmo em sistemas subjacentes (sistema operacional, sistema gerenciador de banco de dados, etc.). Sendo assim, mecanismos de tratamento de exceções têm por objetivo resolver a situação excepcional ou conter seus efeitos colaterais garantindo, ao menos, uma degradação controlada (graceful degradation) do sistema. Neste trabalho, estudamos algumas das principais deficiências de modelos atuais de tratamento de exceções, no contexto de sistemas de GPN, e apresentamos soluções baseadas em Modelos Transacionais Avançados para contorná-las. Isso é feito por meio do aprimoramento dos mecanismos de tratamento de exceções da abordagem de modelagem e gerenciamento de execução de processos de negócio WED-flow. Por fim, estendemos a ferramenta WED-tool, uma implementação da abordagem WED-flow, através do desenvolvimento de seu gerenciador de recuperação de falhas. / With the aim of becoming more efficient, many organizations -- companies, governmental entities, research centers, etc -- choose to use software tools for supporting the accomplishment of its processes. An option that becomes more popular is the usage of Business Process Management Systems (BPM), which are generic tools, that is, not specific to any organization and highly configurable to the domain needs of any organization. One of the main responsibilities of BPM Systems is to provide exception handling mechanisms for the execution of business process instances. Exceptions, if ignored or incorrectly handled, may induce the abortion of instance executions and, depending on the gravity of the situation, induce failures on BPM Systems or even on subjacent systems (operational system, database management systems, etc.). Thus, exception handling mechanisms aim to solve the exceptional situation or stopping its collateral effects by ensuring, at least, a graceful degradation to the system. In this work, we study some of the main deficiencies of present exception handling models -- in the context of BPM Systems -- and present solutions based on Advanced Transaction Models to bypass them. We do this through the improvement of exception handling mechanisms from WED-flow, a business process modelling and instance execution managing approach. Lastly, we extend the WED-tool, an implementation of WED-flow approach, through the development of its failure recovery manager.
14

Formal Composition and Recovery Policies in Service-Based Business Processes

Hamadi, Rachid, Computer Science & Engineering, Faculty of Engineering, UNSW January 2005 (has links)
Process-based composition of Web services is emerging as a promising technology for the effective automation of integrated and collaborative applications. As Web services are often autonomous and heterogeneous entities, coordinating their interactions to build complex processes is a difficult, error prone, and time-consuming task. In addition, since Web services usually operate in dynamic and highly evolving environments, there is a need for supporting flexible and correct execution of integrated processes. In this thesis, we propose a Petri net-based framework for formal composition and recovery policies in service-based business processes. We first propose an algebra for composing Web services. The formal semantics of this algebra is expressed in terms of Petri nets. The use of a formal model allows the effective verification and analysis of properties, both within a service, such as termination and absence of deadlock, and between services, such as behavioral equivalences. We also develop a top down approach for the correct (e.g., absence of deadlock and termination) composition of complex business processes. The approach defines a set of refinement operators that guarantee correctness of the resulting business process nets at design time. We then introduce Self-Adaptive Recovery Net (SARN), an extended Petri net model for specifying exceptional behavior in business processes. SARN adapts the structure of the underlying Petri net at run time to handle exceptions while keeping the Petri net design simple and easy. The proposed framework caters for the specification of high-level recovery policies that are incorporated either with a single task or a set of tasks, called a recovery region. Finally, we propose a pattern-based approach to dynamically restructure SARN. These patterns capture the ways past exceptions have been dealt with. The objective is to continuously restructure recovery regions within the SARN model to minimize the impact of exception handling. To illustrate the viability of the proposed composition and exception handling techniques, we have developed HiWorD (HIerarchical WORkflow Designer), a hierarchical Petri net-based business process modeling and simulation tool.
15

Composite web services provisioning in dynamic environments

Sheng, Quanzheng, Computer Science & Engineering, Faculty of Engineering, UNSW January 2006 (has links)
Web services composition is emerging as a promising technology for the effective automation of application-to-application collaborations. The application integration problems have been subject of much research in the past years. However, with growth in importance of business process automation and highly dynamic nature of the Internet, this research has taken on a new significance and importance. Adequate solutions to this problem will be very important to make enterprise systems more flexible, robust and usable in the future. In this dissertation, we present a novel approach for the declarative definition and scalable orchestration of composite Web services in large, autonomous, heterogeneous, and dynamic environments. We first propose a composition model for composing Web services in a personalized and adaptive manner. We model composite Web services based on statecharts. To cater for large amounts of dynamic Web services, we use the concept of service community that groups services together and is responsible for the runtime selection of services against user's preferences. We use the concept of process schema that specific users can adjust with their personal preferences. A set of exception handling policies can be specified to proactively react to runtime exceptions. We then propose a tuple space based service orchestration model for distributed, self-managed composite services execution. We introduce the concept of execution controller that is associated with a service and is responsible for monitoring and controlling service executions. The knowledge required by a controller is statically extracted from the specification of personalized composite services. We also present techniques for robust Web services provisioning. The techniques presented in this dissertation are implemented in Self-Serv, a prototype that provides a set of tools for Web service composition and execution. Finally, we conduct an extensive usability and performance study of the proposed techniques. The experimental results reveal that our system i) provides an efficient support for specifying, deploying, and accessing composite services; ii) is more scalable and outperforms the centralized approach when the exchanged messages become bigger; and iii) is more robust and adaptive in highly dynamic environments.
16

Transactional pointcuts for aspect-oriented programming

Sadat Kooch Mohtasham, Seyed Hossein 06 1900 (has links)
In dynamic pointcut-advice join point models of Aspect-Oriented Programming (AOP), join points are typically selected and advised independently of each other. That is, the relationships between join points are not considered in join point selection and advice. But these inter-relationships are key to the designation and advice of arbitrary pieces of code when modularizing concerns such as exception handling and synchronization. Without a mechanism for associating join points, one must instead refactor (if possible) into one method the two or more related join points that are to be advised together. In practice, join points are often not independent. Instead, they form part of a higher-level operation that implements the intent of the developer (e.g. managing a resource). This relationship should be made more explicit. We extend the dynamic pointcut-advice join point model to make possible the designation, reication, and advice of interrelated join points. The Transactional Pointcut (transcut), which is a realization of this extended model, is a special join point designator that selects sets of interrelated join points. Each match of a transcut is a set of join points that are related through control ow, dataow, or both. This allows transcuts to dene new types of join points (pieces of computation) by capturing the key points of a computation and to provide effective access for their manipulation (i.e. advice). Essentially, transcuts almost eliminate the need for refactoring to expose join points, which is shown by others to have a signicant negative effect on software quality. The transcut construct was implemented as an extension to the AspectJ language and integrated into the AspectBench compiler. We used transcuts to modularize the concern of exception handling in two real-world software systems. The results show that transcuts are effective in designating target join points without unnecessary refactorings, even when the target code is written obliviously to the potential aspectization.
17

Transactional pointcuts for aspect-oriented programming

Sadat Kooch Mohtasham, Seyed Hossein Unknown Date
No description available.
18

Um mecanismo de tratamento de excessões sensível ao contexo para sistemas ubíquos orientados a tarefas / A mechanism for exception handling sensitive to surrounding context for ubiquitous systems oriented tasks

Queiroz Filho, Carlos Alberto Batista de January 2012 (has links)
QUEIROZ FILHO, Carlos Alberto Batista de. Um mecanismo de tratamento de excessões sensível ao contexo para sistemas ubíquos orientados a tarefas. 2012. 96 f. Dissertação (Mestrado em ciência da computação)- Universidade Federal do Ceará, Fortaleza-CE, 2012. / Submitted by Elineudson Ribeiro (elineudsonr@gmail.com) on 2016-07-11T11:44:28Z No. of bitstreams: 1 2012_dis_cabqueirozfilho.pdf: 1970524 bytes, checksum: 4c0037e9a7ae7b752cee99522d45b0b2 (MD5) / Approved for entry into archive by Rocilda Sales (rocilda@ufc.br) on 2016-07-14T15:27:51Z (GMT) No. of bitstreams: 1 2012_dis_cabqueirozfilho.pdf: 1970524 bytes, checksum: 4c0037e9a7ae7b752cee99522d45b0b2 (MD5) / Made available in DSpace on 2016-07-14T15:27:51Z (GMT). No. of bitstreams: 1 2012_dis_cabqueirozfilho.pdf: 1970524 bytes, checksum: 4c0037e9a7ae7b752cee99522d45b0b2 (MD5) Previous issue date: 2012 / The main purpose of ubiquitous computing is to provide information and features needed to help people in their daily tasks, proactively and transparently, at any time and anywhere. The development of ubiquitous systems involves a set of challenging requirements, including: context awareness, which allows systems to adapt their behavior to respond appropriately in the face of environmental changes, and dependability, which is related to the ability of systems provide a service which offer strong indications that are reliable. Regarding the attributes of dependability, neglecting them can bring grievances from small to severe risks to the physical integrity of the users. Exception handling is a major fault tolerance techniques used in software development to achieve greater levels of dependability. This technique, even though it is widely used in traditional software development, it is still not widely used in the development of ubiquitous systems. This is due to challenging requirements and characteristics of this type of system, among which we highlight the sensitivity to the context and distribution, which can make the necessary possibilities of handling exceptions in a system as a whole is greater than the sum of possibilities for exception handling of the parts that compose it. Therefore, this dissertation aims to propose a mechanism for exception handling context-sensitive ubiquitous systems for task-oriented. The proposed mechanism is available through a framework called foreheads, which allows the reuse mechanism. By using this framework, system functionality can be implemented on an abstraction task, which responds appropriately to changes in context, detecting and treating exceptional situations. To validate the proposed mechanism was implemented a prototype system of parking control ubiquitous as a proof of concept, which focuses on demonstration of how the tasks are implemented that make up this system and how they are defined exceptions contextual and their handlers. / O principal propósito da Computação Ubíqua é o fornecimento de informações e funcionalidades necessárias para ajudar as pessoas em suas tarefas cotidianas, de maneira proativa e transparente, a qualquer instante e em qualquer lugar. O desenvolvimento de sistemas ubíquos envolve um conjunto de requisitos desafiadores, dentre eles: sensibilidade ao contexto, que permite que os sistemas adaptem o seu comportamento para responder de forma apropriada diante de mudanças do ambiente; e dependabilidade, que está relacionado à capacidade dos sistemas de prestarem um serviço os quais ofereçam fortes indícios de que são confiáveis. Em relação aos atributos de dependabilidade, negligenciá-los pode trazer desde pequenas insatisfações até graves riscos à integridade física dos usuários. O tratamento de exceções é uma das principais técnicas de tolerância a faltas empregadas no desenvolvimento de software para atingir maiores níveis de dependabilidade. Essa técnica, apesar de já ser amplamente utilizada no desenvolvimento de software tradicional, ainda é pouco empregada no desenvolvimento de sistemas ubíquos. Isso ocorre em virtude das características e requisitos desafiadores desse tipo de sistema, dentre os quais se destacam a sensibilidade ao contexto e a distribuição, a qual pode fazer com que as possibilidades necessárias de tratamento de exceções de um sistema como um todo seja maior do que a soma das possibilidades de tratamento de exceções das partes que o compõe. Portanto, essa dissertação tem como objetivo propor um mecanismo de tratamento de exceções sensível ao contexto para sistemas ubíquos orientados a tarefas. O mecanismo proposto é disponibilizado através de um framework, denominado FRonTES, que permite a reutilização do mecanismo. Através da utilização desse framework, funcionalidades do sistema podem ser implementadas sob uma abstração de tarefa, que responde de maneira adequada a mudanças de contexto, detectando e tratando situações excepcionais. Para a validação do mecanismo proposto foi implementado um protótipo de sistema de controle de estacionamento ubíquo como uma prova de conceito, que foca na demonstração de como são implementadas as tarefas que compõem esse sistema e como são definidas as exceções contextuais e seus tratadores.
19

CatchML: uma linguagem de domínio específico para modelagem do tratamento de exceção sensível ao contexto / CatchML: a modeling language for context aware exception handling verification and specification in ubiquitous systems

Lima, Rafael de January 2013 (has links)
LIMA, Rafael de. CatchML: uma linguagem de domínio específico para modelagem do tratamento de exceção sensível ao contexto. 2013. 111 f. Dissertação (Mestrado em ciência da computação)- Universidade Federal do Ceará, Fortaleza-CE, 2013. / Submitted by Elineudson Ribeiro (elineudsonr@gmail.com) on 2016-07-12T15:18:44Z No. of bitstreams: 1 2013_dis_rlima.pdf: 1916774 bytes, checksum: 8d3c896a97a4692523fcd35305e73f1e (MD5) / Approved for entry into archive by Rocilda Sales (rocilda@ufc.br) on 2016-07-20T13:54:36Z (GMT) No. of bitstreams: 1 2013_dis_rlima.pdf: 1916774 bytes, checksum: 8d3c896a97a4692523fcd35305e73f1e (MD5) / Made available in DSpace on 2016-07-20T13:54:36Z (GMT). No. of bitstreams: 1 2013_dis_rlima.pdf: 1916774 bytes, checksum: 8d3c896a97a4692523fcd35305e73f1e (MD5) Previous issue date: 2013 / In ubiquitous systems, due to the complexity added by the use of contextual information, the application of context aware exception handling (CAEH) techniques has many challenges and in the literature several approaches have been found to define concepts and abstractions useful for modeling CAEH. However, only one of these approaches proposes a method for specification and verification of models in the field of ubiquitous systems, which provides a tool for specifying the CAEH model using a Java API, and also generates an error report to a text file. The disadvantage of this approach is that the designer should strive to understand programming details that are irrelevant to the analysis process of the exceptional behavior of the system. Then, this work aims to propose a domain specific language for modeling CAEH, which provides abstractions and constructors that allow to express relevant concepts and make the task of designing CAEH models simpler and more intuitive. In addition, the language is integrated with the tool mentioned before that allows automatic model verification. The errors generated by the verifier are now shown directly in the source code making their identification and correction easier for the designer. In order to evaluate the language, a case study is conducted to provide evidence of its viability as an alternative to modeling CAEH. / Em sistemas ubíquos, devido à complexidade inserida pela utilização de informações contextuais, a aplicação de técnicas de tratamento de exceção sensível ao contexto (TESC) tem sido objeto de estudo para muitos pesquisadores. Na literatura são encontradas diversas abordagens que definem conceitos e abstrações úteis para modelagem de TESC. Entretanto, apenas uma dessas abordagens propõe um método para especificação e verificação de modelos no domínio de sistemas ubíquos o qual fornece uma ferramenta para especificação do modelo de TESC através de uma API Java, e gera ainda um relatório de erros em um arquivo texto. A desvantagem dessa abordagem é que o projetista deve se esforçar para entender detalhes de programação irrelevantes ao processo de análise do comportamento excepcional do sistema. Esta dissertação tem portanto como objetivo propor uma linguagem de domínio específico para modelagem de TESC, com o intuito de oferecer abstrações e construtores que permitem expressar conceitos pertinentes e tornar a tarefa de projetar modelos de TESC mais simples e intuitiva. Além disso, a linguagem é integrada com a ferramenta citada anteriormente, o que permite realizar a verificação do modelo de forma automática. Os erros gerados pelo verificador são mostrados agora diretamente no código do modelo facilitando a identificação e correção dos mesmos pelo projetista. A fim de avaliar a linguagem, um estudo de caso é realizado para fornecer indícios de sua viabilidade como alternativa para modelagem de TESC.
20

An Exploratory Study on Exception Handling Bugs in Java Programs

Ebert, Felipe 02 August 2013 (has links)
Several studies argue that exception handling code is usually of poor quality and that it is commonly neglected by developers. Moreover, it is said to be the least understood, documented, and tested part of the implementation of a system. In spite of this scenario, there are very few studies that analyze the actual exception handling bugs that occur in real software systems and no study that attempts to understand developers’ perceptions about these bugs. In this work we present an exploratory study on exception handling bugs that employs two complementary approaches: a survey of 154 developers and an analysis of 220 bugs from the repositories of Eclipse and Tomcat. Respondents of our survey believe that exception handling bugs are more easily fixed than other kinds of bugs. There is also a significant difference in the opinion of the respondents pertaining to the quality of the exception handling code: more experienced developers tend to believe that it is worse. Analysis of the repositories of Eclipse and Tomcat revealed conflicting results. The fix time for exception handling bugs in Eclipse is significantly shorter than for other bugs. However, exception handling bugs have a significantly greater number of discussion messages than non-exception handling bugs. On the other hand, for Tomcat, we could not find a significant difference for fix time and exception handling bugs have significantly less discussion messages than other bugs. Moreover, we discovered that bug reports describing bugs stemming from overly general catch blocks, a well-known bad smell in programs that use exceptions, are rare, even though there are many opportunities for them to occur. In addition, empty catch blocks are not only prevalent, as previously reported in literature, but they are also commonly used as part of bug fixes, which includes fixes for exception handling bugs. Furthermore, we found very few bug reports whose causes are empty catch blocks, although developers often mention them as causes of bugs they have fixed in the past. And lastly, we present a proposal of the classification of exception handling bugs based on the data we collected. / Submitted by João Arthur Martins (joao.arthur@ufpe.br) on 2015-03-10T18:18:46Z No. of bitstreams: 2 Dissertaçao Felipe Ebert.pdf: 1326280 bytes, checksum: b28c0a4b3a4f5a5d84483b41a94a7a48 (MD5) license_rdf: 1232 bytes, checksum: 66e71c371cc565284e70f40736c94386 (MD5) / Made available in DSpace on 2015-03-11T17:40:09Z (GMT). No. of bitstreams: 2 Dissertaçao Felipe Ebert.pdf: 1326280 bytes, checksum: b28c0a4b3a4f5a5d84483b41a94a7a48 (MD5) license_rdf: 1232 bytes, checksum: 66e71c371cc565284e70f40736c94386 (MD5) Previous issue date: 2013-08-02 / FACEPE e CNPq / Vários estudos afirmam que o código de tratamento de exceções em geral tem baixa qualidade e que é geralmente negligenciado por desenvolvedores. Além disso, acredita-se que essa parte da implementação de um sistema é a menos compreendida, documentada e testada. Apesar desse cenário, existem poucos estudos que analisam bugs de tratamento de exceções que ocorrem em sistemas de software reais e nenhum estudo que tente entender a percepção dos desenvolvedores sobre esses bugs. Neste trabalho, apresentamos um estudo exploratório sobre bugs de tratamento de exceções baseado em duas abordagens complementares: uma pesquisa com 154 desenvolvedores e uma análise de 220 bugs dos repositórios do Eclipse e Tomcat. Os desenvolvedores de nossa pesquisa acreditam que bugs de tratamento de exceções são mais facilmente corrigidos do que outros tipos de bugs. Há também uma diferença significativa na opinião dos desenvolvedores sobre a qualidade do código de tratamento de exceções: os desenvolvedores mais experientes tendem a acreditar que é pior. A análise dos repositórios do Eclipse e Tomcat revelou resultados conflitantes. O tempo de correção dos bugs de tratamento de exceções do Eclipse é significativamente menor do que o de outros tipos de bugs. Entretanto, os bugs de tratamento de exceções têm um número significativamente maior de comentários do que os bugs que não são de tratamento de exceções. Por outro lado, para o Tomcat, não conseguimos achar uma diferença significativa para o tempo de correção dos bugs e os bugs de tratamento de exceções tem um número significativamente menor de comentários do que os outros tipos de bugs. Além disso, descobrimos que os bugs decorrentes de blocos catch genéricos, um defeito bem conhecido em programas que usam exceções, são raros, embora existam várias oportunidades para que eles ocorram. Descobrimos também que blocos catch vazios não são só prevalentes, como previamente relatado na literatura, mas também geralmente usados como correções dos bugs, inclusive para bugs de tratamento de exceções. Também achamos poucos bugs reportados em que as causas deles são blocos catch vazios, embora desenvolvedores frequentemente mencionem eles como causas de bugs que já corrigiram no passado. E por fim, apresentamos uma proposta de classificação dos bugs de tratamento de exceções.

Page generated in 0.122 seconds