21
ANÁLISE QUANTITATIVA DA IMPLEMENTAÇÃO DE TRATAMENTO DE EXCEÇÕES NA LINGUAGEM PTOLEMY Aluno: Cleivson Arruda Orientador: Fernando Castor TRABALHO DE GRADUAÇÃ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

Embed Size (px)

Citation preview

Page 1: 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

ANÁLISE QUANTITATIVA DA IMPLEMENTAÇÃO DE TRATAMENTO DE EXCEÇÕES NA LINGUAGEM PTOLEMY

Aluno: Cleivson Arruda

Orientador: Fernando Castor

TRABALHO DE GRADUAÇÃO

Page 2: 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

ROTEIRO

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

Page 3: 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

INTRODUÇÃ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

Page 4: 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

INTRODUÇÃ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

Page 5: 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

TRATAMENTO DE EXCEÇÕ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

Page 6: 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

TRATAMENTO DE EXCEÇÕES

Exceções explícitas para validar comportamentos [17] Facilita entendimento Aumenta a confiabilidade

Page 7: 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

TRATAMENTO DE EXCEÇÕ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

Page 8: 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

TRATAMENTO DE EXCEÇÕ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

Page 9: 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

TRATAMENTO DE EXCEÇÕES

Page 10: 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

TRATAMENTO DE EXCEÇÕ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

Page 11: 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

ASPECTOS

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

Page 12: 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

ASPECTOS

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

Page 13: 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

PTOLEMY

Extensão de Java para orientação a aspectos [21]

Eventos Explícitos Tipificados Quantificados

Simétrica

Page 14: 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

PTOLEMY

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]

Page 15: 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

PTOLEMY

Page 16: 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

PTOLEMY

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

Page 17: 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

PTOLEMY

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

Page 18: 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

PTOLEMY

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

Page 19: 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

PTOLEMY

Page 20: 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

PTOLEMY

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

Page 21: 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

PTOLEMY

IMPLEMENTAÇÃO