a nÁlise q uantitativa da i mplementaÇÃo de t ratamento de e xceÇÕes na l inguagem p tolemy...
TRANSCRIPT
![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](https://reader035.vdocuments.mx/reader035/viewer/2022070311/552fc130497959413d8d4f5e/html5/thumbnails/1.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070311/552fc130497959413d8d4f5e/html5/thumbnails/2.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070311/552fc130497959413d8d4f5e/html5/thumbnails/3.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070311/552fc130497959413d8d4f5e/html5/thumbnails/4.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070311/552fc130497959413d8d4f5e/html5/thumbnails/5.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070311/552fc130497959413d8d4f5e/html5/thumbnails/6.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070311/552fc130497959413d8d4f5e/html5/thumbnails/7.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070311/552fc130497959413d8d4f5e/html5/thumbnails/8.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070311/552fc130497959413d8d4f5e/html5/thumbnails/9.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070311/552fc130497959413d8d4f5e/html5/thumbnails/10.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070311/552fc130497959413d8d4f5e/html5/thumbnails/11.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070311/552fc130497959413d8d4f5e/html5/thumbnails/12.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070311/552fc130497959413d8d4f5e/html5/thumbnails/13.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070311/552fc130497959413d8d4f5e/html5/thumbnails/14.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070311/552fc130497959413d8d4f5e/html5/thumbnails/15.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070311/552fc130497959413d8d4f5e/html5/thumbnails/16.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070311/552fc130497959413d8d4f5e/html5/thumbnails/17.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070311/552fc130497959413d8d4f5e/html5/thumbnails/18.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070311/552fc130497959413d8d4f5e/html5/thumbnails/19.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070311/552fc130497959413d8d4f5e/html5/thumbnails/20.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022070311/552fc130497959413d8d4f5e/html5/thumbnails/21.jpg)
PTOLEMY
IMPLEMENTAÇÃO