A NÁLISE Q UANTITATIVA DA I MPLEMENTAÇÃO DE T RATAMENTO DE E XCEÇÕES NA L INGUAGEM P TOLEMY Aluno: Cleivson Arruda Orientador: Fernando Castor T RABALHO.

Slides:



Advertisements
Apresentações semelhantes
ABSTRAÇÃO processo de representar um grupo de entidades através de seus atributos comuns feita a abstração, cada entidade particular (instância) do grupo.
Advertisements

Paulo Marques Hernâni Pedroso
Reflexão Marco Antonio Arquiteto de Software Novembro/2007.
UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE Métricas de Software Prof.ª Adriana dos Santos Caparróz Carvalho.
Tratamento de Exceções
LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS TRATAMENTO DE EXCEÇÕES
(C) 2010 Pearson Education, Inc. Todos os direitos reservados. Java Como Programar, 8/E.
(C) 2010 Pearson Education, Inc. Todos os direitos reservados. Os programas que obtêm certos tipos de recursos devem retorná-los ao sistema explicitamente.
Orientação a Objetos: Encapsulamento e Classificação
Orientação a Objetos: Encapsulamento e Classificação
Classes Concretas e Abstratas
Exceptions em Java Leonardo Freitas e
Rafael Pinto Frederico Corrêa
1 Comunicação Inter-Processos -> RMI -> RPC -> TCP -> UDP (Abstração de passagem de mensagem)
Introdução ao paradigma de programação: Orientado a Objetos
Curso Sistemas de Informação Disciplina: Arquitetura de Software
Linguagem PHP Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
9 Controle de fluxo Seqüenciadores. Jumps. Escapes. Exceções.
Aula 2 Aspectos Preliminares
Aula 10 Manipulação de Exceções
Classes e objetos P. O. O. Prof. Grace.
Introdução a Programação Orientada a Objetos
Estrutura de Dados em Java
Uma visão geral Grupo: Alexandre Henrique Vieira Soares
TÉCNICAS DE PROGRAMAÇÃO II
Separation of Concerns (SoC)
Bruno Rafael de Oliveira Rodrigues. Tratadores de Excessões A exceção é uma indicação de que um erro ou problema aconteceu durante a execução de uma aplicação.
Aula prática 13 Orientação a Objetos – C++ Parte 1
Aluno: Mário Monteiro Orientador: Sérgio Soares 1.
P ROGRAMAÇÃO ORIENTADA A ASPECTOS Equipe: Leandro Oliveira Anusio Menezes.
METODOLOGIA PARA DESENVOLVIMENTO DE SISTEMAS Prof. Dr. rer. nat. Daniel D. Abdala 1.
Desenvolvimento de Sistemas Orientados a Aspectos
Desenvolvimento de Sistemas Orientados a Aspectos
Linguagem de Programação II Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Tecnologia para Web Tratamento de Exceções
Métodos de Construção de Software: Orientação a Objetos
Chamada Remota de Procedimentos
PROGRAMAÇÃO ESTRUTURADA (MODULARIZAÇÃO/SUBPROGRAMAÇÃO)
Estudo dos Conceitos e Paradigmas de Programação
Paradigmas de Linguagens de Programação Linguagem Imperativa 2
Classes, Objetos, Atributos e Métodos JAVA
Programação Orientada à Objetos
Capítulo 6 Exceções.
Orientação a Objetos Parte I
Programação Orientada à Objetos
Prof. Roberto Rosa Aula 8.  A partir de agora vamos aprender como ver qual é o erro que está acontecendo em nosso projeto. Para.
Excepções Conceito de Excepção A classe Exception
Linguagem II Exceções.
Paradigmas da Programação – Semestre 1 – Aula 10 Professor: Eduardo Mantovani )
Paradigmas de Linguagens de Programação Aula 2
PROGRAMAÇÃO ORIENTADA A OBJETOS
Tratamento de Exceções
Capítulo 6 Exceções.
Exceções Suzana Fragoso (smpf) Adaptado do material de Guilherme Carvalho (gvc)
Slide 1 Programação com Objetos Distribuídos Trabalho Leve 1 The Guardian Model and Primitives for Exception Handling in Distributed Systems Universidade.
Aula 1 – Profª Danielle Costa
Linguagem orientada a Aspectos 2 Luiz Carlos d’Oleron Tiago Vinícius.
Construtores e Destrutores
Paulo Borba Centro de Informática Universidade Federal de Pernambuco Exceções.
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
UCSal – Bacharelado em Informática Tópicos Especiais em Informática II Profa. Semíramis Assis
Sistemas Distribuídos Prof. Marcus Rodrigues
Capítulo 15 – Tratamento de Exceções
(C) 2010 Pearson Education, Inc. Todos os direitos reservados. Java™ Como Programar, 8/E.
Tratamento de Exceções. Roteiro O que são exceções? Quando usar Capturando Exceções Exemplos.
1. 2 Programação Orientada a Objetos II Prof. Maurício Rodrigues de Morais
1.
Linguagem de Programação – Aula 04 Prof. Me. Ronnison Reges Vidal.
Transcrição da apresentação:

A NÁLISE Q UANTITATIVA DA I MPLEMENTAÇÃO DE T RATAMENTO DE E XCEÇÕES NA L INGUAGEM P TOLEMY Aluno: Cleivson Arruda Orientador: Fernando Castor T RABALHO DE G RADUAÇÃO

R OTEIRO Introdução Fundamentação Conjunto de métricas Ferramenta Estudo Conclusão

I NTRODUÇÃO Paradigma de orientação a objetos é limitado A modularização de alguns interesses é priorizada frente a de outros Modularização é importante para aumentar o reuso, robustez e consistência do código [2] Alguns interesses acabam sendo penalizados em modelagens OO Interesses espalhados ao longo da aplicação são chamados interesses transversais [2] Logging, concorrência, tratamento de exceções

I NTRODUÇÃO AOSD como alternativa para modularização de interesses transversais [19] Permite pontos de interação entre interesses Permite encapsular comportamentos transversais através de aspectos Tratamento de exceções é um interesse geralmente implícito em aplicações Comum replicação de código para tratamento de exceções recorrentes

T RATAMENTO DE E XCEÇÕES Exceções definem comportamentos incorretos ou que violam as regras da própria linguagem Java permite que exceções sejam identificadas e tratadas [17] Exceções podem ser implícitas ou explícitas Explícitas através do comando throw

T RATAMENTO DE E XCEÇÕES Exceções explícitas para validar comportamentos [17] Facilita entendimento Aumenta a confiabilidade

T RATAMENTO DE E XCEÇÕES Toda exceção herda de Throwable Exception são falhas recuperáveis Error são falhas irrecuperáveis RuntimeException são todos as falhas detectadas durante execução Checked exception classes são exceções checadas pelo compilador

T RATAMENTO DE E XCEÇÕES Exceções são tratadas pela construção try-catch- finally O bloco try define a região protegida Pode ter uma ou mais cláusulas catch associadas Pode ter uma cláusula finally associada Cláusulas catch são associadas a uma exceção e responsáveis pelo seu tratamento Cláusulas finally definem comportamentos que devem sempre ser executados

T RATAMENTO DE E XCEÇÕES

Variáveis definidas em escopos externos à construção try-catch-finally são acessíveis internamente Variáveis dentro de cada bloco não são acessíveis aos outros blocos Todo método deve declarar sua interface de exceções

A SPECTOS Servem para separar interesses dentro da aplicação [19] Linguagens podem ser simétricas ou assimétricas Permitem interação entre interesses Eventos implícitos Eventos explícitos

A SPECTOS Linguagens de eventos implícitos [22] Maior clareza no código principal Abstração de interesses transversais Oclusão de comportamentos Ex.: AspectJ Linguagens de eventos explícitos Acrescentam construções ao código principal Exigem conhecimento mínimo dos aspectos Maior facilidade no entendimento do comportamento Ex.: Ptolemy

P TOLEMY Extensão de Java para orientação a aspectos [21] Eventos Explícitos Tipificados Quantificados Simétrica

P TOLEMY Eventos são a interface de comunicação entre interesses Anunciante do evento Tratador do evento Declaração de evento possui: Nome do evento Variáveis de contexto Tipo de retorno Contrato translúcido* [22]

P TOLEMY

Anúncios de eventos pela expressão announce Passagem de parâmetros Podem definir closures Permitem alteração do código da closure

P TOLEMY Closure se comporta como um bloco normal Variáveis definidas externamente são acessíveis dentro da closure, mas o contrário não é verdadeiro

P TOLEMY Classes devem implementar interesses transversais definindo tratadores Registradas pelo comando register Definição de tratadores pela cláusula when Associa todas as instâncias de um evento a um método tratador Tratadores Recebem uma instância do evento por parâmetro Têm o mesmo tipo de retorno do evento tratado Declaram Throwable na interface de exceções

P TOLEMY

Tratadores podem ser encadeados Ordem definida em tempo de execução Definição de fluxo de controle pela expressão invoke() Chamadas a invoke() podem lançar qualquer exceção

P TOLEMY IMPLEMENTAÇÃO