TRABALHO DE GRADUAÇÃO
ANÁLISE QUANTITATIVA DA
IMPLEMENTAÇÃO DE TRATAMENTO DE
EXCEÇÕES NA LINGUAGEM PTOLEMY
Aluno: Cleivson Arruda
Orientador: Fernando Castor
ROTEIRO
Introdução
 Fundamentação
 Conjunto de métricas
 Ferramenta
 Estudo
 Conclusão

INTRODUÇÃO

Paradigma de orientação a objetos é limitado


Modularização é importante para aumentar o
reuso, robustez e consistência do código [2]


A modularização de alguns interesses é priorizada
frente a de outros
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
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
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
TRATAMENTO DE EXCEÇÕES

Exceções explícitas para validar comportamentos [17]
Facilita entendimento
 Aumenta a confiabilidade

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
TRATAMENTO DE EXCEÇÕES


Exceções são tratadas pela construção try-catchfinally
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
TRATAMENTO DE EXCEÇÕES
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
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

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

PTOLEMY

Extensão de Java para orientação a aspectos [21]

Eventos
Explícitos
 Tipificados
 Quantificados


Simétrica
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]

PTOLEMY
PTOLEMY

Anúncios de eventos pela expressão announce
Passagem de parâmetros
 Podem definir closures
 Permitem alteração do código da closure

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
PTOLEMY

Classes devem implementar interesses
transversais definindo tratadores


Definição de tratadores pela cláusula when


Registradas pelo comando register
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

PTOLEMY
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
PTOLEMY

IMPLEMENTAÇÃO
Download

Apresentação