Teste de Programas Orientados a Aspectos: Uma Abordagem Estrutural para AspectJ

Tamanho: px
Começar a partir da página:

Download "Teste de Programas Orientados a Aspectos: Uma Abordagem Estrutural para AspectJ"

Transcrição

1 Roteiro Teste de Programas Orientados a Aspectos: Uma Abordagem Estrutural para AspectJ Otávio Augusto Lazzarini Lemos Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo Av. do Trabalhador São-Carlense, 400 São Carlos, SP oall@icmc.usp.br

2 Roteiro Roteiro 1 Introdução 2 Programação Orientada a Aspectos & Teste de Software Programação Orientada a Aspectos Teste de Software 3 Abordagem de Teste Estrutural para Programas OA Teste de Unidade Teste de Integração 4 Automatização do Teste Estrutural de Unidade JaBUTi/AJ Extensões Telas 5 Conclusões e Trabalhos Futuros Conclusões Trabalhos Futuros

3 Introdução POA nova técnica uso mais efetivo da separação de interesses no desenvolvimento Maioria dos trabalhos: implementações, aplicações... Novo momento: outros problemas projeto, VV&T POA diz-se que entendimento e esforço na manutenção Entretanto não evita erros aplicação de técnicas de VV&T Teste estrutural caixa branca estrutura lógica dos programas Motivação: Não se pode confiar... Exemplo de critérios: todos-nós, todas-arestas

4 POA Programação Orientada a Aspectos Em um projeto de software importante separar os interesses Anos 90 interesses transversais (crosscutting) espalhamento e entrelaçamento POA mecanismos para implementar tais interesses em módulos separados Linguagem OA: 1 Modelo de pontos de junção; 2 Mecanismo de identificação dos pontos de junção; 3 Unidades que encapsulam especificações de pontos de junção e mudanças de comportamento desejados (os aspectos) e 4 Processo de combinação. C 1 C2 A C3

5 POA A Linguagem AspectJ Construções novas: aspect, pointcut, before, after e around; declare warning, error e parents (e outros tipos de declaração inter-tipos) Aspectos: especificação de pontos de junção, comportamento a ser adicionado, atributos, métodos e classes internas, além das declarações.

6 POA Estratégia de Implementação do AspectJ Idéia principal: aspectos classes no bytecode (.class separados) adendos métodos no bytecode ajc insere chamadas nos possíveis pontos de junção Com essa implementação identificam-se os pontos afetados pelos adendos chamadas aos métodos adendos C m1 m2 WC m1 m2 A a1 a2 compile/weave AC am1 am2

7 Teste de Software Caso de teste (d, S(d)) d D Testar cada d D impraticável Critérios de teste avaliar e auxiliar na construção Teste estrutural lógica interna Grafo de fluxo de controle e de dados Exemplos de critérios todos-nós, todos-usos

8 Teste de Software Teste de Software Execução de um software com a intenção de revelar erros Importante outras atividades de GQS são insuficientes Fases Unidade, Integração e Sistema Menor Unidade: OO Método, OA Método e Adendo Fase OO OA Unidade Intra-método Intra-método e Intra-adendo Integração Inter-método, Intra-classe Inter-método, Método-adendo, e Inter-classe Adendo-método, Inter-adendo, Inter-método-adendo, Intra-classe e Inter-classe Sistema Toda a aplicação Toda a aplicação

9 entry loop exit me29 s30 ae39 s40 s41 s42 me2 s3 s4 me32 s33 ae43 s44 s45 s46 s47 return me9 s10 call me34 s35 me11 s12 ae48 s49 s50 s51 s52 entry loop me15 s16 s17 s18 exit ae39 s40 s41 s42 me2 s3 s4 me5 s6 me7 s8 return ae43 s44 s45 s46 s47 call me9 s10 me11 s12 ae48 s49 s50 s51 s52 me13 s14 Teste de Software Teste de Programas Orientados a Aspectos Teste Estrutural Zhao (2002, 2003) Adaptação da abordagem de Harrold & Rothermel (1994) fluxo de dados Módulo adendo-combinado e método-combinado Teste intra-módulo, inter-módulo, aspecto/classe Figura: Framed Control Flow Graphs

10 Teste de Software Teste de Programas Orientados a Aspectos entry call entry call loop me2 me9 me11 loop me2 me5 me7 me9 me11 me13 me29 s3 s10 s12 me15 s3 s6 s8 s10 s12 s14 s30 s4 me32 ae43 me34 ae48 s16 s4 ae43 ae48 ae39 s33 s44 s35 s49 s17 ae39 s44 s49 exit s40 s41 s45 s46 s50 s51 exit s18 s40 s41 s45 s46 s50 s51 s42 s47 s52 s42 s47 s52 return return Figura: Framed Control Flow Graphs

11 Teste de Software Teste de Programas Orientados a Aspectos Teste Baseado em Estados Xu (2004) Adaptação do modelo FREE Binder (1999) Mescla com teste estrutural open balance balance Open freeze unfreeze Frozen debit credit [currenty-lasty>5] proceed Inactive balance [b<0] [currenty-lasty>5&& b<max_ina_balance] se tle [b<0] credit [b>=0] close Closed Overdrawn credit[b<0]

12 Teste de Software Teste de Programas Orientados a Aspectos Open c0 d0 b0 c1 c2 d1 b1 b2 c3 d2 r0 b3 a0 r1 r2 f0 a1 r3 f1 f2 a2 f3 Overdrawn Inactive Frozen c0 c1 c2 c3 Overdrawn Open

13 Teste de Unidade Teste Intra-método e Intra-adendo Adaptar grafos de fluxo Diferenças: Pontos de interação entre métodos e adendos locais onde os adendos definem comportamento Paralelo com chamadas de métodos Adaptar CFG nós transversais (crosscutting nodes) AODU = (N, E, s, C, T ) C N é o conjunto (possivelmente vazio) de nós transversais que representam um nó no qual ocorre uma interação com um adendo de um dado aspecto; AODU para AspectJ extensão do trabalho de Vincenzi (2004) para bytecode

14 Teste de Unidade public class Point { public int x, y; public AClass a; public Point(int _x, int _y) { x = _x; y = _y; } public void affectedmethod(point p, int _x, int _y) { try { if (p.x <= 10 && p.y <= 10) { p.x = _x; p.y = _y; p.a = new AClass(10, 20); } p.printpoint(p); System.out.println(p.x); } catch (AnException ae) { System.out.println("Exception " + "catched!"); } }... } public aspect AnAspect { pointcut exec(point p, int i, int j): execution(void Point.affectedMethod(Point, int, int)) && args(p, i, j); pointcut settinga(aclass a): set(aclass Point.a) && args(a) &&!within(aspects.*); pointcut handlerpc(point p) : handler(point.anexception) && this(p); before(point p, int i, int j): exec(p, i, j) { if (p.x >= 0) p.x = i + 3; if (p.y >= 0) p.y = j + 4; } after (Point p, int i, int j) returning(): exec(p, i, j) { System.out.println("after " + "returning exec"); if (i > 10) System.out.println("i > 10"); else System.out.println("i <= 10"); if (p.x > 10) System.out.println("p.x > 10"); else System.out.println("p.x <= 10"); } void around(aclass a) : settinga(a) { System.out.println("around settinga"); a.a = 20; a.b = 30; proceed(a); } before(point p) : handlerpc(p) { p.x = 40; } }

15 Teste de Unidade d={p,p.x,p.y,_x,_y} 0 <<before AnAspect>> d={p,p.x,p.y,_x,_y} 0 21 pu={p.x, p} pu={p.x, p} pu={p.x, p} pu={p.x, p} pu={p.y,p} 9 pu={p.y,p} 30 pu={p.y,p} pu={p.y,p} cu={p.x,p} d={p.a,p.x, p.y} cu={p,_x,_y} cu={p.x,p} <<around AnAspect>> d={p.x, p.y} cu={p,_x,_y} cu={p.x} 61 cu={p.x} 127 <<before AnAspect>> <<afterreturning AnAspect>> cu={p, _x, _y} 160 Figura: AODUs de um método sem e com a presença de um aspecto que o afeta.

16 Teste de Unidade d={p,p.x,p.y,_x,_y} 0 <<before AnAspect>> 21 pu={p.x, p} pu={p.y,p} 30 pu={p.x, p} pu={p.y,p} cu={p.x,p} <<around AnAspect>> d={p.x, p.y} cu={p,_x,_y} cu={p.x} 127 <<before AnAspect>> <<afterreturning AnAspect>> cu={p, _x, _y} 160

17 Teste de Unidade Critérios de Teste todos-nós-transversais (Todos-Nós C ) Requer que cada nó transversal, e portanto cada execução de adendo que ocorre na unidade afetada, seja exercitado pelo menos uma vez por algum caso de teste. todas-arestas-transversais (Todas-Arestas C ) Requer que cada aresta do grafo AODU que tem um nó transversal como nó início ou destino seja exercitada pelo menos uma vez por algum caso de teste. todos-usos-transversais (Todos-Usos C ) Requer que cada par def-uso no qual o uso está em um nó transversal seja exercitado pelo menos uma vez por algum caso de teste.

18 Teste de Unidade Tabela: Requisitos de teste para cada critério OA definido, para o método affectedmethod. Critério Conjunto de Requisitos Conjunto de Casos de Teste Todos-Nós C R n = {0, 39, 127, 148} R n = {((0, 0), 7, 6), ((0, 0), 3, 7)} Todas-Arestas C R e = {(0, 21), (21, 127), (30, 39), R n (30, 127), (39, 109), (39, 127), (109, 148), (127, 135), (135, 148), (148, 160)} Todos-Usos C R u = {( y, 0, 39), ( x, 0, 39), (p, 0, 39), R n (this, 0, 39), (this, 0, 127), (L@8, 0, 148), (L@9, 0, 148), (L@10, 0, 148)} Requisitos não-executáveis

19 Teste de Unidade Hierarquia de Inclusão Todos-C a m in h os Todos-Usos Todos-Usosei Todos-Usosed Todos-U sosc Toda s-aresta s Toda s-aresta sei Toda s-aresta sedtodas-arestasc Todos-Nós Todos-Nósei Todos-Nósed Todos-N ósc Figura: Hierarquia dos critérios definidos no trabalho de Vincenzi (2004) e neste trabalho.

20 Teste de Integração Teste de Integração Teste Método-adendo Fluxo de Dados Grafo MADU para o teste Método-adendo restringindo a profundidade para um nível Escopos de adendo e de método

21 Teste de Integração Critérios de Teste Pares Def-Uso Aspectuais componente-componente, componente-aspecto, aspecto-componente, aspecto-aspecto Critérios de teste: todos-cc-usos, todos-ca-usos, todos-ac-usos e todos-aa-usos Idéia exercitar pares Def-Uso que representam os diferentes tipos de interações entre aspectos e componentes.

22 Teste de Integração Exemplo de MADU d={p,p.x,p.y,_x,_y} 0 enh 1.0 pu={p.x,p} pu={p.x,p} 0 ret d={p.x} 1.15 cu={p} pu={p.x, p} pu={p.x, p} pu={p.y,p} pu={p.y,p} 30 d={p.y} 1.29 cu={p} pu={p.y,p} pu={p.y,p} pu={_x} 4.0 pu={_x} 39 enh d={p.x, p.y} cu={p,_x,_y} 1.36 advice scope ret 2.0 d={a.a, a.b} cu={a} advice scope pu={p.x,p} pu={p.x,p} cu={p.x,p} enh 127 enh 127 ret 3.0 d={p.x} cu={p} advice scope advice scope ret method scope

23 Teste de Integração Exemplo de MADU 0 enh 0 ret pu={p.x,p} d={p.x} 1.15 cu={p} 1.0 pu={p.x,p} pu={p.x, p} 1.22 pu={p.y,p} pu={p.y,p} d={p.y} 1.29 cu={p} pu={p.y,p} d={p.x, p.y}

24 Teste de Integração Tabela: Pares Def-Uso aspectuais coletados a partir do grafo MADU do método affectedmethod, e conjuntos de casos de teste adequados para cada critério. Critério Conjunto de Requisitos Conjunto de Casos de Teste todos-ac-usos R ac = {(1.15, (21, 30), p.x), (1.15, (21, 109), p.x), T ac = {((0, 1), 7, 4), ((0, 1), 8, 4), (1.15, 109, p.x), (1.29, (30, 109), p.y), ((0, 1), 7, 10)} (1.29, (30, 39 enh), p.y)} todos-ca-usos R ca = {(0 enh, (4.0, 4.25), x), (0 enh, (4.0, 4.14), x), T ca = {((0, 1), 10, 4), (0 enh, (4.33, 4.42), p.x), (0 enh, (4.33, 4.53), p.x), ((0, 1), 11, 4), (( 1, 1), 7, 10), (39 enh, (4.33, 4.42), p.x), (39 enh, (4.33, 4.53), p.x)} ((0, 1), 7, 4)} todos-aa-usos R aa = {(1.15, (4.33, 4.42), p.x), (1.15, (4.33, 4.53), p.x), T aa = {((0, 1), 8, 10), (3.0, (4.33, 4.42), p.x), (3.0, (4.33, 4.53), p.x) } ((0, 1), 7, 10)} todos-cc-usos R cc = {(0 enh, (21, 30), p), (0 enh, (21, 30), p.x), T cc = T ac {((0, 1), 7, 4), (0 enh, (21, 109), p), (0 enh, (21, 109), p.x), (( 1, 1), 7, 4)} (0 enh, (30, 39 enh), p), (0 enh, (30, 39 enh), p.y), (0 enh, (30, 109), p), (0 enh, (30, 109), p.y), (0 enh, 39 enh, p), (0 enh, 39 enh, x), (0 enh, 39 enh, y), (0 enh, 109, p), (0 enh, 109, p.x) } todos-usos R ac R ca R aa R cc T ac T ca T aa T cc * Requisitos não-executáveis

25 Teste de Integração Exemplo de MADU par def-uso aspecto-aspecto d={p,p.x,p.y,_x,_y} 0 enh 0 ret d={p.x} pu={p.x,p} cu={p} pu={p.x,p} pu={p.x, p} pu={p.x, p} 1.22 pu={p.y,p} pu={p.y,p} d={p.y} 1.29 cu={p} pu={p.y,p} pu={p.y,p} pu={_x} 4.0 pu={_x} 39 enh d={p.x, p.y} cu={p,_x,_y} 1.36 advice scope ret 2.0 d={a.a, a.b} cu={a} advice scope pu={p.x,p} cu={p.x,p} pu={p.x,p} enh 127 enh 127 ret 3.0 d={p.x} cu={p} advice scope advice scope ret method scope

26 Extensões Extensão da Ferramenta JaBUTi JaBUTi (Java Bytecode Understanding and TestIng) Vincenzi (2004) Extensões: Grafo AODU Critérios de teste OA

27 Telas Telas da Ferramenta JaBUTi/AJ Figura: Janela do gerenciador de projetos da JaBUTi/AJ.

28 Telas (a) Bytecode de um aspecto. (b) AODU. Figura: Telas da JaBUTi/AJ.

29 Telas (a) Todos-Nós C (b) Todas-Arestas C

30 Telas Figura: AODU do adendo anterior de um aspecto.

31 Telas (a) Grafo AODU uma classe. do construtor de (b) Grafo AODU de um método.

32 Conclusões Primeira abordagem de teste estrutural que trata métodos/adendos como menores unidades Adaptação do grafo AODU Critérios especificamente OA Todos-Nós C, Todas-Arestas C e Todos-Usos C Apoio ferramental JaBUTi/AJ Considerações teóricas teste de integração Teste Método-adendo Grafo MADU e pares Def-Uso aspectuais quatro critérios

33 Trabalhos Futuros Critérios mais fortes Ex. Potenciais-Usos Avaliação dos critérios erros específicos de programas OA, experimentos, explorar modelo de falhas de Alexander (2004) Teste de integração explorar as outras fases Ferramenta JaBUTi/AJ melhorias, teste de integração, ambiente de teste

34 Publicações LEMOS, O. A. L.; VINCENZI, A. M. R.; MALDONADO, J. C.; MASIERO, P. C. Teste de unidade de programas orientados a aspectos. In: Anais do 18 o Simpósio Brasileiro de Engenharia de Software (indicado para melhor artigo), Brasília, DF, Brasil, p , Outubro, LEMOS, O. A. L.; MALDONADO, J. C.; MASIERO, P. C. Structural Unit Testing of AspectJ Programs. Aceito para publicação no 1 o Workshop de Teste de Programas Orientados a Aspectos (WTAOP 2005) realizado em conjunto com o AOSD 2005, Chicago, EUA, Março, LEMOS, O. A. L.; MALDONADO, J. C.; MASIERO, P. C. Data-flow integration testing criteria for aspect-oriented programs. In: Anais do 1 o Workshop de Desenvolvimento de Software Orientado a Aspectos (WASP 2004) realizado em conjunto com o SBES 2004, Brasília, DF, Brasil, Outubro, 2004.

35 Teste de Programas Orientados a Aspectos: Uma Abordagem Estrutural para AspectJ Otávio Augusto Lazzarini Lemos Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo Av. do Trabalhador São-Carlense, 400 São Carlos, SP oall@icmc.usp.br

Um Método para o Desenvolvimento de Software Baseado em Componentes e Aspectos

Um Método para o Desenvolvimento de Software Baseado em Componentes e Aspectos Roteiro Um Método para o Desenvolvimento de Software Baseado em Componentes e Aspectos Marcelo Medeiros Eler Universidade de São Paulo Av. do Trabalhador São-Carlense, 400 São Carlos, SP Email: mareler@icmc.usp.br

Leia mais

Teste Estrutural de Integração Nível 1 de Programas Orientados a Objetos e a Aspectos

Teste Estrutural de Integração Nível 1 de Programas Orientados a Objetos e a Aspectos Teste Estrutural de Integração Nível 1 de Programas Orientados a Objetos e a Aspectos Vânia de Oliveira Neves, Otávio Augusto Lazzarini Lemos, Paulo Cesar Masiero Departamento de Sistemas de Computação

Leia mais

!!!!! " #!!!! $ +!!!!!! *!! * -! %!! - %.! % - "!! ) $ $ / - %!!0$ 1 - '& 2( - *! * *!0$ - '&.( - *! #

!!!!!  #!!!! $ +!!!!!! *!! * -! %!! - %.! % - !! ) $ $ / - %!!0$ 1 - '& 2( - *! * *!0$ - '&.( - *! # " # $ $ % # & '( ) # * + * $ *, * - % - %. % - " ) $ $ / - % 0$ 1 - '& 2( - * * * 0$ - '&.( - * # 2 1 3 4 5 6 * 7 8 5 / # 7 4 9 &* 5 * # % * ) 7 &* : ; 5 - * < # - 7 4 = 6 5 # * - ) )- 3 $ 1 > 5 = 5 %

Leia mais

Seminário de aspectos: conceitos, características e exemplos

Seminário de aspectos: conceitos, características e exemplos Seminário de aspectos: conceitos, características e exemplos Daniel Bruno Conrado Thiago Gottardi Departamento de Computação Universidade Federal de São Carlos (UFSCar) São Carlos SP Brasil dbconrado@gmail.com,

Leia mais

Teste de Integração Contextual de Programas Orientados a Objetos e a Aspectos: critérios e automação. Vânia de Oliveira Neves

Teste de Integração Contextual de Programas Orientados a Objetos e a Aspectos: critérios e automação. Vânia de Oliveira Neves Teste de Integração Contextual de Programas Orientados a Objetos e a Aspectos: critérios e automação Vânia de Oliveira Neves SERVIÇO DE PÓS-GRADUAÇÃO DO ICMC-USP Data de Depósito: 27 de novembro de 2009

Leia mais

Teste de programas orientados a aspectos: uma abordagem estrutural para AspectJ. Otávio Augusto Lazzarini Lemos

Teste de programas orientados a aspectos: uma abordagem estrutural para AspectJ. Otávio Augusto Lazzarini Lemos Teste de programas orientados a aspectos: uma abordagem estrutural para AspectJ Otávio Augusto Lazzarini Lemos SERVIÇO DE PÓS-GRADUAÇÃO DO ICMC-USP Data de Depósito: 20 de Janeiro de 2005 Assinatura: Teste

Leia mais

2 Desenvolvimento de Software Orientado a Aspectos

2 Desenvolvimento de Software Orientado a Aspectos 20 2 Desenvolvimento de Software Orientado a Aspectos A divisão em partes é um importante instrumento para se reduzir a complexidade de sistemas de software. É muito difícil para o ser humano compreender

Leia mais

By Gian Ricardo Berkenbrock & Eduardo Dockhorn da Costa

By Gian Ricardo Berkenbrock & Eduardo Dockhorn da Costa By Gian Ricardo Berkenbrock & Eduardo Dockhorn da Costa Problema; AOP; Aspect J; Proposta ao Problema; Conclusões; Referências. Desenvolver os tipos abstratos de dados: lista, fila, pilha e deque. Estes

Leia mais

AspectJ. AspectJ. Extensões de AspectJ. Pontos de Junção. Exemplos de Pontos de Junção. Modelo de Pontos de Junção

AspectJ. AspectJ. Extensões de AspectJ. Pontos de Junção. Exemplos de Pontos de Junção. Modelo de Pontos de Junção DCC / ICEx / UFMG AspectJ AspectJ Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Linguagem orientada a aspectos mais madura e difundida Extensão simples da linguagem Java Gera arquivos.class compatíveis

Leia mais

Agenda da Aula. Desenvolvimento de Software Orientado a Aspectos. Aspectos... Motivação. Um pouco de história. Programação Estruturada

Agenda da Aula. Desenvolvimento de Software Orientado a Aspectos. Aspectos... Motivação. Um pouco de história. Programação Estruturada Engenharia de Software Aula 23 Agenda da Aula Desenvolvimento de Software Orientado a Aspectos Introdução a desenvolvimento de software orientado a aspectos Interesses centrais e interesses transversais

Leia mais

Teste de Software Orientado a Objeto. Ricardo Argenton Ramos

Teste de Software Orientado a Objeto. Ricardo Argenton Ramos Teste de Software Orientado a Objeto Ricardo Argenton Ramos O que diferencia teste de software OO de testes Convencionais? Técnicas e abordagens são normalmente semelhantes, porém novos desafios são apresentados

Leia mais

Paradigmas de Programação. Java First-Tier: Aplicações. Orientação a Objetos em Java (I) Nomenclatura. Paradigma OO. Nomenclatura

Paradigmas de Programação. Java First-Tier: Aplicações. Orientação a Objetos em Java (I) Nomenclatura. Paradigma OO. Nomenclatura Java First-Tier: Aplicações Orientação a Objetos em Java (I) Paradigmas de Programação Programação Funcional Programação Procedural Programação Orientada por Objetos Grupo de Linguagens de Programação

Leia mais

Teste Estrutural de Integração Par-a-Par de Programas Orientados a Objetos e a Aspectos: Critérios e Automatização. Ivan Gustavo Franchin

Teste Estrutural de Integração Par-a-Par de Programas Orientados a Objetos e a Aspectos: Critérios e Automatização. Ivan Gustavo Franchin Teste Estrutural de Integração Par-a-Par de Programas Orientados a Objetos e a Aspectos: Critérios e Automatização Ivan Gustavo Franchin SERVIÇO DE PÓS-GRADUAÇÃO DO ICMC-USP Data de Depósito: Assinatura:

Leia mais

Teste de Software Orientado a Objetos e a Aspectos: Teoria e Prática

Teste de Software Orientado a Objetos e a Aspectos: Teoria e Prática Teste de Software Orientado a Objetos e a Aspectos: Teoria e Prática Paulo Cesar Masiero, Otávio Augusto Lazzarini Lemos, Fabiano Cutigi Ferrari e José Carlos Maldonado Abstract Software testing has been

Leia mais

Teste de Software Parte 2. Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1º semestre de 2015

Teste de Software Parte 2. Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1º semestre de 2015 Teste de Software Parte 2 Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1º semestre de 2015 Técnica Estrutural (Caixa Branca) Ø Baseada no conhecimento da estrutura interna (implementação) do

Leia mais

AspectJ. Silvio do Lago Pereira. Doutorando em Ciência da Computação

AspectJ. Silvio do Lago Pereira. Doutorando em Ciência da Computação AspectJ Silvio do Lago Pereira Doutorando em Ciência da Computação slago@ime.usp.br Sumário Programação Orientada a Objetos (POO) Programação Orientada a Aspectos (POA) AspectJ Exemplos Novembro/2002 Silvio

Leia mais

Teste de Software Parte 2. Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1º semestre de 2016

Teste de Software Parte 2. Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1º semestre de 2016 Teste de Software Parte 2 Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1º semestre de 2016 Técnica Estrutural (Caixa Branca) Ø Baseada no conhecimento da estrutura interna (implementação) do

Leia mais

POO e suas Limitações Introdução POA AspectJ: Conceitos Básicos. Objetivo da Programação? Introdução à OO Introdução à POO

POO e suas Limitações Introdução POA AspectJ: Conceitos Básicos. Objetivo da Programação? Introdução à OO Introdução à POO POO e suas Limitações Introdução POA AspectJ: Conceitos Básicos Exemplo: Tracing Lincoln S. Rocha (lincoln@great.ufc.br) Objetivo da Programação? Introdução à OO Introdução à POO Limitações da POO Requisitos

Leia mais

JBoss AOP para quem já conhece AspectJ

JBoss AOP para quem já conhece AspectJ JBoss AOP para quem já conhece AspectJ Francisco Reverbel Departmento de Ciência da Computação Universidade de São Paulo 1 MAC-413/5715 - IME-USP - 2004 Características do JBoss AOP Arcabouço para programação

Leia mais

Aspect Oriented Programming (AOP) Uma visão geral da programação orientada a aspectos. Usando AspectJ

Aspect Oriented Programming (AOP) Uma visão geral da programação orientada a aspectos. Usando AspectJ Aspect Oriented Programming (AOP) Uma visão geral da programação orientada a aspectos. Usando AspectJ Objetivos O objetivo dessa apresentação é proporcionar uma visão geral sobre a programação orientada

Leia mais

3 Uma Abordagem Orientada a Aspectos para o Desenvolvimento de Frameworks

3 Uma Abordagem Orientada a Aspectos para o Desenvolvimento de Frameworks 48 3 Uma Abordagem Orientada a Aspectos para o Desenvolvimento de Frameworks Este capítulo apresenta uma visão geral da contribuição principal deste trabalho: uma abordagem orientada a aspectos para o

Leia mais

Extração e Evolução de Linhas de Produtos de Software na Área de Jogos para Celulares usando Programação Orientada por Features

Extração e Evolução de Linhas de Produtos de Software na Área de Jogos para Celulares usando Programação Orientada por Features Extração e Evolução de Linhas de Produtos de Software na Área de Jogos para Celulares usando Programação Orientada por Features Rogério Celestino dos Santos Orientador: Marco Túlio Valente Instituto de

Leia mais

Definição de Conjuntos de Junção Robustos usando Aspect-Aware Interfaces e Aspectos Anotadores

Definição de Conjuntos de Junção Robustos usando Aspect-Aware Interfaces e Aspectos Anotadores Definição de Conjuntos de Junção Robustos usando Aspect-Aware Interfaces e Aspectos Anotadores Leonardo Humberto Guimarães Silva Orientador: Marco Túlio de Oliveira Valente Programa de Pós-graduação em

Leia mais

UNIVERSIDADE ESTADUAL PAULISTA INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA

UNIVERSIDADE ESTADUAL PAULISTA INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA UNIVERSIDADE ESTADUAL PAULISTA INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA Teste de Software Engenharia de Software 2o. Semestre de 2006 Slide

Leia mais

Engenharia de Software Aula 21. Revisão da Prova 2. Eduardo Figueiredo.

Engenharia de Software Aula 21. Revisão da Prova 2. Eduardo Figueiredo. Engenharia de Software Aula 21 Revisão da Prova 2 Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo dcc603@dcc.ufmg.br 16 Maio 2018 Aula 16: POO Um programa OO é geralmente constituído de várias classes

Leia mais

4 Diretrizes para o Projeto e Implementação de Frameworks usando Orientação a Aspectos

4 Diretrizes para o Projeto e Implementação de Frameworks usando Orientação a Aspectos 57 4 Diretrizes para o Projeto e Implementação de Frameworks usando Orientação a Aspectos Nossa abordagem para desenvolvimento de frameworks usando aspectos oferece um conjunto de diretrizes (seção 3.3.1)

Leia mais

Aspectos para Construção de Aplicações Distribuídas

Aspectos para Construção de Aplicações Distribuídas Aspectos para Construção de Aplicações Distribuídas Cristiano Amaral Maffort maffort@gmail.com Programa de Pós-Graduação em Informática PUC Minas Belo Horizonte MG 12 de junho de 2007 Middleware Objetivo:

Leia mais

Teste de Software. Técnica de Teste Estrutural. Rosemary Silveira Filgueiras Melo

Teste de Software. Técnica de Teste Estrutural. Rosemary Silveira Filgueiras Melo Teste de Software Técnica de Teste Estrutural Rosemary Silveira Filgueiras Melo rosesfmelo@hotmail.com 1 Agenda Casos de Teste e Cenários de Teste Técnicas de Teste Técnica de Teste Estrutural 2 Casos

Leia mais

UNIVERSIDADE LUSÍADA DE LISBOA. Programa da Unidade Curricular PROGRAMAÇÃO AVANÇADA Ano Lectivo 2013/2014

UNIVERSIDADE LUSÍADA DE LISBOA. Programa da Unidade Curricular PROGRAMAÇÃO AVANÇADA Ano Lectivo 2013/2014 Programa da Unidade Curricular PROGRAMAÇÃO AVANÇADA Ano Lectivo 2013/2014 1. Unidade Orgânica Ciências da Economia e da Empresa (1º Ciclo) 2. Curso Engenharia Informática 3. Ciclo de Estudos 1º 4. Unidade

Leia mais

Extração de Aspectos. PUC Minas Instituto de Informática. Mestrado em Informática. Aluno: Marcelo Nassau Malta

Extração de Aspectos. PUC Minas Instituto de Informática. Mestrado em Informática. Aluno: Marcelo Nassau Malta Transformações de Código C para Extração de Aspectos PUC Minas Instituto de Informática Mestrado em Informática Aluno: Marcelo Nassau Malta Orientador: Prof. Marco Túlio de Oliveira Valente Sumário Motivação

Leia mais

4 Desenvolvimento de Software Orientado a Aspectos

4 Desenvolvimento de Software Orientado a Aspectos 4 Desenvolvimento de Software Orientado a Aspectos Apesar de ser a tecnologia atualmente dominante no desenvolvimento de software, a orientação a objetos possui algumas limitações nas tarefas de projetar

Leia mais

Idiomas de Programação

Idiomas de Programação DCC / ICEx / UFMG Idiomas de Programação Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Definição de Idiomas Idiomas são padrões de baixo nível específicos de uma linguagem de programação Cada idioma

Leia mais

AVALIAÇÃO DE CONJUNTOS DE TESTES FUNCIONAIS NO CONTEXTO DE PROGRAMAS ORIENTADOS A OBJETOS E PROGRAMAS ORIENTADOS A ASPECTOS

AVALIAÇÃO DE CONJUNTOS DE TESTES FUNCIONAIS NO CONTEXTO DE PROGRAMAS ORIENTADOS A OBJETOS E PROGRAMAS ORIENTADOS A ASPECTOS UNIVERSIDADE FEDERAL DE SÃO CARLOS CENTRO DE CIÊNCIAS EXATAS E DE TECNOLOGIA PROGRAMA DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO AVALIAÇÃO DE CONJUNTOS DE TESTES FUNCIONAIS NO CONTEXTO DE PROGRAMAS ORIENTADOS

Leia mais

2 Estado da Arte e Trabalhos Relacionados

2 Estado da Arte e Trabalhos Relacionados 18 2 Estado da Arte e Trabalhos Relacionados Neste capítulo, serão apresentados alguns conceitos relativos a frameworks orientado a objetos, e o paradigma da programação orientada a aspectos. Além disso,

Leia mais

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini   / Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini E-mail: prof.andre.luis.belini@gmail.com / andre.belini@ifsp.edu.br MATÉRIA: ENGENHARIA DE SOFTWARE Aula N : 16 Tema:

Leia mais

Teste de Software. Técnica de Teste Estrutural. Rosemary Silveira Filgueiras Melo

Teste de Software. Técnica de Teste Estrutural. Rosemary Silveira Filgueiras Melo Teste de Software Técnica de Teste Estrutural Rosemary Silveira Filgueiras Melo rosesfmelo@hotmail.com 1 Agenda Técnica de Teste Estrutural Critérios de Teste 2 Casos de Teste Diante da impossibilidade

Leia mais

UNIVERSIDADE LUSÍADA DE LISBOA. Programa da Unidade Curricular PROGRAMAÇÃO AVANÇADA Ano Lectivo 2017/2018

UNIVERSIDADE LUSÍADA DE LISBOA. Programa da Unidade Curricular PROGRAMAÇÃO AVANÇADA Ano Lectivo 2017/2018 Programa da Unidade Curricular PROGRAMAÇÃO AVANÇADA Ano Lectivo 2017/2018 1. Unidade Orgânica Ciências da Economia e da Empresa (1º Ciclo) 2. Curso Engenharia Informática 3. Ciclo de Estudos 1º 4. Unidade

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Ciência da Computação Prof. Elias Ferreira Elaborador por: Ana Claudia Bastos Loureiro Monção JUNIT Teste de Software Processo de Software Um processo de software pode ser visto como o conjunto de atividades,

Leia mais

6 Mecanismo de Tratamento de Exceções Sensível ao Contexto

6 Mecanismo de Tratamento de Exceções Sensível ao Contexto 6 Mecanismo de Tratamento de Exceções Sensível ao Contexto Este capítulo apresenta a proposta de nosso mecanismo de tratamento de exceções sensível ao contexto. Tal mecanismo foi desenvolvido de acordo

Leia mais

NOTAS DIDÁTICAS DO ICMC

NOTAS DIDÁTICAS DO ICMC Instituto de Ciências Matemáticas e de Computação ISSN - 0103-2585 INTRODUÇÃO AO TESTE DE SOFTWARE COM FERRAMENTAS PARA JAVA (Versão 2016-01 ) Auri Marcelo Rizzo Vincenzi Pedro Henrique Dias Valle Jacson

Leia mais

SSC 0721 Teste e Inspeção de Software

SSC 0721 Teste e Inspeção de Software SSC 0721 Teste e Inspeção de Software Teste Estrutural GFC Prof. Marcio E. Delamaro delamaro@icmc.usp.br SSC 0721 Teste e Inspeção de Software ICMC/USP p. 1 O que é o teste estrutural Supõe a existência

Leia mais

Introdução à Verificação, Validação e Teste (VV&T)*

Introdução à Verificação, Validação e Teste (VV&T)* Introdução à Verificação, Validação e Teste (VV&T)* Auri Marcelo Rizzo Vincenzi (UNIVEM) Edmundo Sérgio Spoto (UNIVEM) Márcio Eduardo Delamaro (UNIVEM) {auri, dino, delamaro}@fundanet.br Essa apresentação

Leia mais

Teste estrutural de integração de programas orientados a aspectos: Uma abordagem baseada em conjuntos de junção para AspectJ

Teste estrutural de integração de programas orientados a aspectos: Uma abordagem baseada em conjuntos de junção para AspectJ Teste estrutural de integração de programas orientados a aspectos: Uma abordagem baseada em conjuntos de junção para AspectJ Otávio Augusto Lazzarini Lemos Orientador: Prof. Dr. Paulo Cesar Masiero São

Leia mais

CLÁUDIO ROSSE PANDOLFI SUPORTE DE INTERESSES TRANSVERSAIS PARA FRAMEWORK CODEIGNITER

CLÁUDIO ROSSE PANDOLFI SUPORTE DE INTERESSES TRANSVERSAIS PARA FRAMEWORK CODEIGNITER FUNDAÇÃO DE ENSINO EURÍPIDES SOARES DA ROCHA CENTRO UNIVERSITÁRIO EURÍPIDES DE MARÍLIA UNIVEM CURSO DE CIÊNCIA DA COMPUTAÇÃO CLÁUDIO ROSSE PANDOLFI SUPORTE DE INTERESSES TRANSVERSAIS PARA FRAMEWORK CODEIGNITER

Leia mais

Prova Final de Linguagens de Programação - DCC024B -

Prova Final de Linguagens de Programação - DCC024B - Prova Final de Linguagens de Programação - DCC024B - Ciência da Computação Nome: Eu dou minha palavra de honra que não trapacearei neste exame. Número de matrícula: As regras do jogo: A prova é sem consulta.

Leia mais

AspectJ - Programação Orientada a Aspectos em Java. Sérgio Soares Centro de Informática Universidade Federal de Pernambuco

AspectJ - Programação Orientada a Aspectos em Java. Sérgio Soares Centro de Informática Universidade Federal de Pernambuco AspectJ - Programação Orientada a Aspectos em Java Sérgio Soares Centro de Informática Universidade Federal de Pernambuco Programação Orientada a Objetos Lida com conceitos mais intuitivos Permite ganhos

Leia mais

Gabriel Giorisatto De Angelo Luiz Otávio Gerhardt Fernandes

Gabriel Giorisatto De Angelo Luiz Otávio Gerhardt Fernandes Gabriel Giorisatto De Angelo Luiz Otávio Gerhardt Fernandes Histórico Desenvolvida em 2012 por Jeff Bezanson, Stefan Karpinski, Viral B. Shah, Alan Edelman Gratuita, Open Source e licenciada sob a Licença

Leia mais

Orientação a Objetos e Java

Orientação a Objetos e Java Orientação a Objetos e Java Daves Martins davesmartins@yahoo.com.br Mestre em Computação de Alto Desempenho pela UFRJ Especialista em Banco de Dados Analista Web Orientação a Objetos e Java Características

Leia mais

Uma ferramenta baseada em aspectos para apoio ao teste funcional de programas Java. André Dantas Rocha

Uma ferramenta baseada em aspectos para apoio ao teste funcional de programas Java. André Dantas Rocha Uma ferramenta baseada em aspectos para apoio ao teste funcional de programas Java André Dantas Rocha SERVIÇO DE PÓS-GRADUAÇÃO DO ICMC-USP Data de Depósito: 20 de janeiro de 2005 Assinatura: Uma ferramenta

Leia mais

Teste estrutural. Teste baseado na estrutura do código Mais precisamente, Critério de adequação baseia-se no código!

Teste estrutural. Teste baseado na estrutura do código Mais precisamente, Critério de adequação baseia-se no código! Teste Estrutural Teste estrutural Teste baseado na estrutura do código Mais precisamente, Critério de adequação baseia-se no código! 2 Teste estrutural Estrutura de um programa é um grafo Exemplos: Organização

Leia mais

Programação Orientada a Objetos Aula I Declaração de classes, métodos construtores. Prof.: Bruno E. G. Gomes IFRN

Programação Orientada a Objetos Aula I Declaração de classes, métodos construtores. Prof.: Bruno E. G. Gomes IFRN Programação Orientada a Objetos Aula I Declaração de classes, métodos construtores Prof.: Bruno E. G. Gomes IFRN 1 Introdução Na aula de hoje: Declaração de classes Métodos Construtores Exercícios de criação

Leia mais

Aula 20 Testes 3. Alessandro Garcia Leonardo da Silva Sousa OPUS Group/LES/DI/PUC-Rio Dezembro 2016

Aula 20 Testes 3. Alessandro Garcia Leonardo da Silva Sousa OPUS Group/LES/DI/PUC-Rio Dezembro 2016 Aula 20 Testes 3 Alessandro Garcia Leonardo da Silva Sousa OPUS Group/LES/DI/PUC-Rio Dezembro 2016 Slides adaptados de: Staa, A.v. Notas de Aula em Programacao Modular; 2008. Teste de Caixa Branca O que

Leia mais

2 Desenvolvimento de Software Orientado a Aspectos

2 Desenvolvimento de Software Orientado a Aspectos 2 Desenvolvimento de Software Orientado a Aspectos Separação de concerns é um princípio bem estabelecido da engenharia de software que diz que, para se dominar a complexidade do desenvolvimento de software,

Leia mais

Prova Final de Linguagens de Programação - DCC024B - Sistemas de Informação

Prova Final de Linguagens de Programação - DCC024B - Sistemas de Informação Prova Final de Linguagens de Programação - DCC024B - Sistemas de Informação Nome: Eu dou minha palavra de honra que não trapacearei neste exame. Número de matrícula: As regras do jogo: A prova é sem consulta.

Leia mais

Introdução à orientação a objetos. João Tito Almeida Vianna 18/05/2013

Introdução à orientação a objetos. João Tito Almeida Vianna 18/05/2013 Introdução à orientação a objetos João Tito Almeida Vianna 18/05/2013 Roteiro Aula 1 Introdução: Programação estruturada x Orientação a objetos Orientação a objetos Classe e objeto Encapsulamento Herança

Leia mais

Tratamento de Exceções. Grupo de Linguagens de Programação Departamento de Informática PUC-Rio

Tratamento de Exceções. Grupo de Linguagens de Programação Departamento de Informática PUC-Rio Tratamento de Exceções Grupo de Linguagens de Programação Departamento de Informática PUC-Rio Terminologia Definições: Exceção é a ocorrência de uma condição anormal durante a execução de um método Falha

Leia mais

Programação Orientada a Aspectos em AspectJ

Programação Orientada a Aspectos em AspectJ Programação Orientada a Aspectos em AspectJ Elaine da Silva Monteiro 1, Eduardo Kessler Piveta 1 1 Curso de Sistemas de Informação Centro Universitário Luterano de Palmas (CEULP/ULBRA), Tocantins, Brasil

Leia mais

Teste de Software. Teste Funcional Teste Estrutural. Teste Baseado em Erros (Análise de Mutantes)

Teste de Software. Teste Funcional Teste Estrutural. Teste Baseado em Erros (Análise de Mutantes) Teste de Software Teste Funcional Teste Estrutural Teste Baseado em Erros (Análise de Mutantes) Profa Rosana T. V. Braga Material adaptado do material dos profs. Ellen Francine Barbosa e José Carlos Maldonado

Leia mais

ENGENHARIA DE SOFTWARE MEDIÇÃO E QUALIDADE DE SW

ENGENHARIA DE SOFTWARE MEDIÇÃO E QUALIDADE DE SW ENGENHARIA DE SOFTWARE MEDIÇÃO E QUALIDADE DE SW How do Programmers learn AOP? Péricles Alves, Alcemir Santos, Eduardo Figueiredo e Fabiano Ferrari Aluno: Adriano Lages dos Santos Toda descoberta da ciência

Leia mais

EVERTON SIMÕES DA MOTTA

EVERTON SIMÕES DA MOTTA FUNDAÇÃO DE ENSINO EURÍPIDES SOARES DA ROCHA CENTRO UNIVERSITÁRIO EURÍPIDES DE MARÍLIA UNIVEM BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO EVERTON SIMÕES DA MOTTA APRIMORAMENTO, VALIDAÇÃO DE UM PROCESSO DE DESENVOLVIMENTO

Leia mais

Programação Java (nível intermediário) 4. Polimorfismo

Programação Java (nível intermediário) 4. Polimorfismo Programação Java (nível intermediário) 4 Polimorfismo Introdução Uma linguagem orientada a objetos nos permite definir novos tipos para variáveis Nós definimos um novo tipo através de uma classe Este tipo

Leia mais

3 Estado da Arte e Trabalhos Relacionados

3 Estado da Arte e Trabalhos Relacionados 29 3 Estado da Arte e Trabalhos Relacionados Neste capítulo resumimos alguns trabalhos existentes na literatura que se relacionam à abordagem de avaliação proposta nesta dissertação. O objetivo de todo

Leia mais

MaRiSA-AOCode: Uma Abordagem Genérica para Geração de Código Orientado a Aspectos

MaRiSA-AOCode: Uma Abordagem Genérica para Geração de Código Orientado a Aspectos UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE CENTRO DE CIÊNCIAS EXATAS E DA TERRA DEPARTAMENTO DE INFORMÁTICA E MATEMÁTICA APLICADA PROGRAMA DE PÓS-GRADUAÇÃO EM SISTEMAS E COMPUTAÇÃO Dissertação de Mestrado

Leia mais

SSC 0721 Teste e Validação de Software

SSC 0721 Teste e Validação de Software SSC 0721 Teste e Validação de Software Conceitos básicos Prof. Marcio E. Delamaro delamaro@icmc.usp.br SSC 0721 Teste e Validação de Software ICMC/USP p. 1 O que é teste Atividade de executar um programa

Leia mais

Programação Java. Tratamento de Exceções

Programação Java. Tratamento de Exceções Programação Java Tratamento de Exceções Grupo de Linguagens de Programação Departamento de Informática PUC-Rio Motivações para Exceções Um método pode detectar uma falha mas não estar apto a resolver sua

Leia mais

2. Trabalhos Relacionados

2. Trabalhos Relacionados 19 acase: Ambiente para Modelagem, Geração de Código e Engenharia Reversa de Software Orientado a Aspectos Thiago Silva-de-Souza¹, ², Wallace Santos Vialle Rettich², Danilo Ferreira Leite², Diego Cardozo

Leia mais

Desenvolvimento de Software Orientado a Aspectos João Roberto Silva de Almeida

Desenvolvimento de Software Orientado a Aspectos João Roberto Silva de Almeida Desenvolvimento de Software Orientado a Aspectos João Roberto Silva de Almeida Universidade Federal de Juiz de Fora Instituto de Ciências Exatas Departamento de Ciência da Computação Bacharelado em Ciência

Leia mais

Um Estudo Quantitativo das Implementações Orientadas a Aspectos do Padrão Data Access Object

Um Estudo Quantitativo das Implementações Orientadas a Aspectos do Padrão Data Access Object Um Estudo Quantitativo das Implementações Orientadas a Aspectos do Padrão Data Access Object André L. de Oliveira 1, André L. A. Menolli 2, Ricardo G. Coelho 2, Valter V. de Camargo 3, Ricardo A. Ramos

Leia mais

Componentes Ant, IntraRT, InterRT para o protocolo de roteamento HOPNET

Componentes Ant, IntraRT, InterRT para o protocolo de roteamento HOPNET Componentes Ant, IntraRT, InterRT para o protocolo de roteamento HOPNET Engenharia de Sistemas Operacionais Alexandre Massayuki Okazaki HOPNET HOPNET é um protocolo de roteamento em redes ad hoc. Este

Leia mais

Programação Orientada a Objetos em Python

Programação Orientada a Objetos em Python Programação Orientada a Objetos em Python Diego Silveira Costa Nascimento Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Norte diego.nascimento@ifrn.edu.br 23 de junho de 2017 Ementa

Leia mais

Tratamento de Exceção. Programação Orientada a Objetos Java (Rone Ilídio)

Tratamento de Exceção. Programação Orientada a Objetos Java (Rone Ilídio) Tratamento de Exceção Programação Orientada a Objetos Java (Rone Ilídio) Tratamento de exceção Exceção é uma contração de Evento de Exceção Evento de exceção impede a execução normal de um programa Quando

Leia mais

Avaliação Quantitativa de Refatorações Orientadas a Aspectos

Avaliação Quantitativa de Refatorações Orientadas a Aspectos UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA PROGRAMA DE PÓS-GRADUAÇÃO EM COMPUTAÇÃO LUIZA FIGUEIREDO PAGLIARI Avaliação Quantitativa de Refatorações Orientadas a Aspectos Dissertação

Leia mais

Interfaces. Universidade Católica de Pernambuco Ciência da Computação. Prof. Márcio Bueno.

Interfaces. Universidade Católica de Pernambuco Ciência da Computação. Prof. Márcio Bueno. Interfaces Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno poonoite@marciobueno.com Fonte: Material da Profª Karina Oliveira Interfaces É utilizada para agrupar conceitos em

Leia mais

CIÊNCIA DA COMPUTAÇÃO - LINGUAGEM DE PROGRAMAÇÃO II REVISÃO POO

CIÊNCIA DA COMPUTAÇÃO - LINGUAGEM DE PROGRAMAÇÃO II REVISÃO POO REVISÃO POO INTRODUÇÃO À LINGUAGEM JAVA CRIANDO CLASSES EM JAVA Convenção de Nomes em Java Classes iniciam com letras maiúsculas Métodos, atributos e variáveis locais iniciam com minúsculas. Declaração

Leia mais

9 Conclusão e trabalhos futuros

9 Conclusão e trabalhos futuros 255 9 Conclusão e trabalhos futuros O aumento da complexidade das aplicações de software de hoje em dia e o advento de tecnologias inovadoras e recentes fazem com que os sistemas de software incorporem

Leia mais

Tema da aula Introdução ao paradigma de programação: Orientado a Objetos

Tema da aula Introdução ao paradigma de programação: Orientado a Objetos Profa. Juliana Santiago Teixeira Disciplina: Programação Orientada a Objetos I Tema da aula Introdução ao paradigma de programação: Orientado a Objetos Paradigma Paradigma é a filosofia adotada na construção

Leia mais

Sabemos que a classe é responsável por definir a estrutura e o comportamento de seus objetos. Portanto, os objetos são instâncias das classes.

Sabemos que a classe é responsável por definir a estrutura e o comportamento de seus objetos. Portanto, os objetos são instâncias das classes. JAVA ENCAPSULAMENTO Na linguagem de programação Java, a classe é o alicerce para o encapsulamento, o qual é definido como uma técnica que faz com que os atributos da classe permaneçam ocultos, pois desta

Leia mais

Tratamento de Exceções

Tratamento de Exceções Tratamento de Exceções Carlos Bazilio Isabel Rosseti Depto de Ciência e Tecnologia Pólo Universitário de Rio das Ostras Universidade Federal Fluminense Motivação prever na implementação do sistema situações

Leia mais

Definição de Classes de Objetos. Introdução à Programação André L. Santos

Definição de Classes de Objetos. Introdução à Programação André L. Santos Definição de Classes de Objetos Introdução à Programação André L. Santos Classes de objetos Uma classe representa um tipo de objetos. O nome da classe deve refletir o que os objetos são (no singular) Exemplos:

Leia mais

Introdução à Programação. Conceitos Básicos de Orientação a Objetos

Introdução à Programação. Conceitos Básicos de Orientação a Objetos Introdução à Programação Conceitos Básicos de Orientação a Objetos Tópicos da Aula Aprenderemos fundamentos do paradigma orientado a objetos, mas antes veremos o que é paradigma Conceito de paradigma Diferentes

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Programação Orientada a Objetos Engenharia da Computação Professor: Rosalvo Ferreira de Oliveira Neto Dados Pessoais Rosalvo Ferreira de Oliveira Neto MSc. em ciência da computação (UFPE) rosalvo.oliveira@univasf.edu.br

Leia mais

Introdução ao Teste de Software

Introdução ao Teste de Software Introdução ao Teste de Software Ricardo A. Ramos [Baseado na apresentação do LABS ICMC-USP -> http://www.labes.icmc.usp.br] Organização Introdução Teste de Software Terminologia e Conceitos Básicos Técnicas

Leia mais

PROTEUM & PROTEUM/IM JACKSON ANTONIO DO PRADO LIMA SILVIA REGINA VERGILIO

PROTEUM & PROTEUM/IM JACKSON ANTONIO DO PRADO LIMA SILVIA REGINA VERGILIO PROTEUM & PROTEUM/IM JACKSON ANTONIO DO PRADO LIMA SILVIA REGINA VERGILIO FERRAMENTAS PARA O TESTE DE MUTAÇÃO Realizar atividades relacionadas ao critério Análise de Mutantes, mesmo considerando a utilização

Leia mais

1 Da aula teórica ao Java

1 Da aula teórica ao Java Universidade Federal do ABC Bacharelado em Ciência da Computação Processamento da Informação - Prof. Fabrício Olivetti de França Guia de tradução entre Java e outras linguagens 1 Da aula teórica ao Java

Leia mais

Metodologias de Teste de Software

Metodologias de Teste de Software Metodologias de Teste de Software Fernando Magno Quintão Pereira 10 de Novembro de 2010 A espiral de testes Muitos processos de teste de software seguem a mesma espiral de desenvolvimento que vemos em

Leia mais

Computação II Orientação a Objetos

Computação II Orientação a Objetos Computação II Orientação a Objetos Fabio Mascarenhas - 2016.2 http://www.dcc.ufrj.br/~fabiom/java Interfaces Uma interface é uma forma abstrata de descrever um objeto A classe fixa a forma de um objeto

Leia mais

Lista de Exercícios da disciplina Aplicações de Linguagem de Programação Orientada a objetos

Lista de Exercícios da disciplina Aplicações de Linguagem de Programação Orientada a objetos Lista de Exercícios da disciplina Aplicações de Linguagem de Programação Orientada a objetos 1. Para a construção de uma aplicação gráfica se faz necessário conceber a interface de aplicação, identificando-se

Leia mais

Programação Orientada a Aspectos

Programação Orientada a Aspectos Programação Orientada a Aspectos Uma Breve Introdução Universidade Estadual do Oeste do Paraná Centro de Ciências Exatas e Tecnológicas Colegiado de Informática Prof. Luiz Antonio Roteiro Introdução Evolução

Leia mais

Lógica de Programação e Algoritmos com exemplos na linguagem JAVA

Lógica de Programação e Algoritmos com exemplos na linguagem JAVA Lógica de Programação e Algoritmos com exemplos na linguagem JAVA Cap. 5 Programação Estruturada: Funções Conteúdo: 5.1 Programação estruturada ou modular... 66 5.2 Funções... 67 5.3 Passagem de parâmetros...

Leia mais

PROGRAMAÇÃO ORIENTADA A OBJETOS: OCULTAR INFORMAÇÕES E ENCAPSULAMENTO

PROGRAMAÇÃO ORIENTADA A OBJETOS: OCULTAR INFORMAÇÕES E ENCAPSULAMENTO COLÉGIO ESTADUAL ULYSSES GUIMARÃES CURSO TÉCNICO PROFISSIONALIZANTE EM INFORMÁTICA ERINALDO SANCHES NASCIMENTO PROGRAMAÇÃO ORIENTADA A OBJETOS: OCULTAR INFORMAÇÕES E ENCAPSULAMENTO FOZ DO IGUAÇU 2013 LISTA

Leia mais

Reuso de Software Aula Maio 2012

Reuso de Software Aula Maio 2012 Reuso de Software Aula 19 Tópicos da Aula Engenharia de Software baseada em Componentes (CBSE) Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo reuso.software@gmail.com Componentes Modelos de Componentes

Leia mais

Java First-Tier: Aplicações. Herança: Simples Múltipla. Orientação a Objetos em Java (III) Problemas de Herança Múltipla.

Java First-Tier: Aplicações. Herança: Simples Múltipla. Orientação a Objetos em Java (III) Problemas de Herança Múltipla. Java First-Tier: plicações Orientação a Objetos em Java (III) Grupo de Linguagens de Programação Departamento de Informática PUC-Rio Herança: Simples Múltipla O tipo de herança que usamos até agora é chamado

Leia mais

2 Separação de concerns

2 Separação de concerns 11 2 Separação de concerns O trabalho de qualquer engenheiro é gerenciar a complexidade durante as diferentes fases do desenvolvimento de sistemas. Isso deve ocorrer em especial na engenharia de software:

Leia mais

Threads em Java. Java Threads. Java Componentes: JVM JVM:

Threads em Java. Java Threads. Java Componentes: JVM JVM: Threads em Java (Aula 17) Java Threads Difícil de classificar com user thread ou kernel thread As threads Java são gerenciadas pela JVM. Threads em Java podem ser criadas das seguintes maneiras: Fazendo

Leia mais

JÚLIO CÉSAR BRANDT AGUILAR UTILIZAÇÃO E ANÁLISE DE UM PROCESSO DE DESENVOLVIMENTO DE SOFTWARE ORIENTADO A ASPECTOS

JÚLIO CÉSAR BRANDT AGUILAR UTILIZAÇÃO E ANÁLISE DE UM PROCESSO DE DESENVOLVIMENTO DE SOFTWARE ORIENTADO A ASPECTOS FUNDAÇÃO DE ENSINO EURÍPIDES SOARES DA ROCHA CENTRO UNIVERSITÁRIO EURÍPIDES DE MARÍLIA UNIVEM TRABALHO DE CONCLUSÃO DE CURSO TCC JÚLIO CÉSAR BRANDT AGUILAR UTILIZAÇÃO E ANÁLISE DE UM PROCESSO DE DESENVOLVIMENTO

Leia mais

Aula 04 Princípios de Modularidade 3 e Introdução à Teste de Software Alessandro Garcia

Aula 04 Princípios de Modularidade 3 e Introdução à Teste de Software Alessandro Garcia Aula 04 Princípios de Modularidade 3 e Introdução à Teste de Software Alessandro Garcia LES/DI/PUC-Rio Março 2017 Avisos O horário de monitoria será no seguinte horário: 6ª. Feira, 13:00 15:00 (15 alunos

Leia mais

Java First-Tier: Aplicações. Sobrecarga. Orientação a Objetos em Java (II) Sobrecarga de Construtores: Exemplo de Declaração

Java First-Tier: Aplicações. Sobrecarga. Orientação a Objetos em Java (II) Sobrecarga de Construtores: Exemplo de Declaração Java First-Tier: Aplicações Orientação a Objetos em Java (II) Grupo de Linguagens de Programação Departamento de Informática PUC-Rio Sobrecarga Um recurso usual em programação OO é o uso de sobrecarga

Leia mais

Encapsulamento e Modularização

Encapsulamento e Modularização Encapsulamento e Modularização Linguagens de Programação Departamento de Computação Universidade Federal de Sergipe Encapsulamento Modularização Tipos Abstratos de Dados (TADs) Objetos Classes Conteúdo

Leia mais