1 composição e geração de aplicações usando aspectos carlos alberto de freitas pereira júnior...

23
1 Composição e Geração de Aplicações usando Aspectos Carlos Alberto de Freitas Pereira Júnior Orientadora: Profª. Dra. Rosana T. Vaccare Braga Universidade de São Paulo Instituto de Ciências Matemáticas e Computação - ICMC

Upload: internet

Post on 17-Apr-2015

106 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 Composição e Geração de Aplicações usando Aspectos Carlos Alberto de Freitas Pereira Júnior Orientadora: Profª. Dra. Rosana T. Vaccare Braga Universidade

1

Composição e Geração de Aplicações usando Aspectos

Carlos Alberto de Freitas Pereira JúniorOrientadora: Profª. Dra. Rosana T. Vaccare Braga

Universidade de São PauloInstituto de Ciências Matemáticas e Computação - ICMC

Page 2: 1 Composição e Geração de Aplicações usando Aspectos Carlos Alberto de Freitas Pereira Júnior Orientadora: Profª. Dra. Rosana T. Vaccare Braga Universidade

2

Roteiro

Introdução Gerador CAPTOR Proposta de Trabalho Estado Atual Dificuldades encontradas

Page 3: 1 Composição e Geração de Aplicações usando Aspectos Carlos Alberto de Freitas Pereira Júnior Orientadora: Profª. Dra. Rosana T. Vaccare Braga Universidade

3

Introdução

O grupo de engenharia de software do ICMC tem desenvolvido diversos trabalhos relacionados com a área de reúso de software.

Há interesse em unir várias tecnologias com a finalidade de facilitar o desenvolvimento e permitir a automatização de partes da implementação do software resultante.

Page 4: 1 Composição e Geração de Aplicações usando Aspectos Carlos Alberto de Freitas Pereira Júnior Orientadora: Profª. Dra. Rosana T. Vaccare Braga Universidade

4

Introdução

Foi conduzido pelo grupo de pesquisa um estudo sobre Geradores de Aplicações, que resultou no gerador de aplicações Captor (Shimabukuro, 2006).

Para realizar a geração de uma família de produtos no Captor, o engenheiro troca o processo de desenvolvimento da linha de produtos de software (LPS) a partir do zero, por um processo de configuração de domínio.

Page 5: 1 Composição e Geração de Aplicações usando Aspectos Carlos Alberto de Freitas Pereira Júnior Orientadora: Profª. Dra. Rosana T. Vaccare Braga Universidade

5

Introdução

A motivação deste trabalho vem da idéia de criar um gerador que possa utilizar mais de um domínio para gerar uma determinada aplicação.

Serão utilizados conceitos de separação avançada de interesses (Kiczales et al., 1997) para que a combinação entre os domínios durante a geração seja feita de forma modular e clara.

Page 6: 1 Composição e Geração de Aplicações usando Aspectos Carlos Alberto de Freitas Pereira Júnior Orientadora: Profª. Dra. Rosana T. Vaccare Braga Universidade

6

Captor

O Captor é um gerador de aplicações MDMA (Multiple Domains Multiple Applications) (Masiero e Meira, 1993).

Utiliza a abordagem por composição para geração de artefatos.

Page 7: 1 Composição e Geração de Aplicações usando Aspectos Carlos Alberto de Freitas Pereira Júnior Orientadora: Profª. Dra. Rosana T. Vaccare Braga Universidade

7

Arquitetura Captor

Page 8: 1 Composição e Geração de Aplicações usando Aspectos Carlos Alberto de Freitas Pereira Júnior Orientadora: Profª. Dra. Rosana T. Vaccare Braga Universidade

8

Captor

Engenharia de Domínio

Page 9: 1 Composição e Geração de Aplicações usando Aspectos Carlos Alberto de Freitas Pereira Júnior Orientadora: Profª. Dra. Rosana T. Vaccare Braga Universidade

9

Captor

Engenharia de Aplicação

Page 10: 1 Composição e Geração de Aplicações usando Aspectos Carlos Alberto de Freitas Pereira Júnior Orientadora: Profª. Dra. Rosana T. Vaccare Braga Universidade

10

Proposta de Trabalho

Este trabalho tem por objetivo estender o gerador Captor e desenvolver um processo de composição de domínios usando OA.

A idéia é permitir que a geração de aplicações possa ser feita por meio da combinação entre domínios base e domínios transversais.

Page 11: 1 Composição e Geração de Aplicações usando Aspectos Carlos Alberto de Freitas Pereira Júnior Orientadora: Profª. Dra. Rosana T. Vaccare Braga Universidade

11

Um domínio pode ser definido como uma área de conhecimento ou atividade caracterizada por um conjunto de conceitos e terminologia comum utilizados por especialistas nessa área (Booch et al., 2000). Domínio base domínio independente de outros

e para o qual podem ser geradas aplicações concretas que formam a base de um sistema.

Domínio transversal domínio cuja implementação resulta em módulos espalhados ou entrelaçados, que entrecortam partes de determinados domínios-base. Em geral referem-se a camada de serviços, infra-estrutura ou utilitários.

Proposta de Trabalho

Page 12: 1 Composição e Geração de Aplicações usando Aspectos Carlos Alberto de Freitas Pereira Júnior Orientadora: Profª. Dra. Rosana T. Vaccare Braga Universidade

12

Proposta de Trabalho

DT

DD

DD

DDDD

DD

DT

Page 13: 1 Composição e Geração de Aplicações usando Aspectos Carlos Alberto de Freitas Pereira Júnior Orientadora: Profª. Dra. Rosana T. Vaccare Braga Universidade

13

Proposta de Trabalho

O Captor foi escolhido para este projeto porque é uma ferramenta disponibilizada pelo grupo de pesquisa e, portanto, com maior acessibilidade ao código fonte.

Existe a motivação de estender o Captor para torná-lo um gerador cada vez mais poderoso.

Page 14: 1 Composição e Geração de Aplicações usando Aspectos Carlos Alberto de Freitas Pereira Júnior Orientadora: Profª. Dra. Rosana T. Vaccare Braga Universidade

14

Proposta de Trabalho

CaptorEstendida

aspecto

Produto gerado

Repositório CAPTOR

Domínio D1base

Domínio D2transversal

Engenheiro de Aplicação

Especificação Geração

Page 15: 1 Composição e Geração de Aplicações usando Aspectos Carlos Alberto de Freitas Pereira Júnior Orientadora: Profª. Dra. Rosana T. Vaccare Braga Universidade

15

Estado Atual

Estão sendo desenvolvidas regras de validação para combinações de domínios.

Permitir combinações somente entre domínios compatíveis

Atualmente, a extensão do gerador já possui funcionalidades que permitem criar projetos com mais de um domínio.

Page 16: 1 Composição e Geração de Aplicações usando Aspectos Carlos Alberto de Freitas Pereira Júnior Orientadora: Profª. Dra. Rosana T. Vaccare Braga Universidade

16

Page 17: 1 Composição e Geração de Aplicações usando Aspectos Carlos Alberto de Freitas Pereira Júnior Orientadora: Profª. Dra. Rosana T. Vaccare Braga Universidade

17

Estado Atual

Page 18: 1 Composição e Geração de Aplicações usando Aspectos Carlos Alberto de Freitas Pereira Júnior Orientadora: Profª. Dra. Rosana T. Vaccare Braga Universidade

18

Estado Atual

Page 19: 1 Composição e Geração de Aplicações usando Aspectos Carlos Alberto de Freitas Pereira Júnior Orientadora: Profª. Dra. Rosana T. Vaccare Braga Universidade

19

Dificuldades encontradas Reusabilidade de DT’s.

Dificuldade em isolar as propriedades ortogonais de tal forma que elas possam ser aplicadas no maior número possível de domínios base.

Dúvidas em relação a configuração dos pontos de entrecorte de um DT.

Criar uma interface própria ou todos os pontos de entrecorte podem ser vistos como variabilidades do DT.

Page 20: 1 Composição e Geração de Aplicações usando Aspectos Carlos Alberto de Freitas Pereira Júnior Orientadora: Profª. Dra. Rosana T. Vaccare Braga Universidade

20

Referências

BOOCH, G.; RUMBAUGH, J.; JACOBSON, I. The unified modeling language user guide. Addison-Wesley, 2000.

KICZALES, G.; LAMPING, J.; MENHDHEKAR, A.; MAEDA, C.; LOPES, C.; LOINGTIER, J. M.; IRWIN, J. Aspect-oriented programming. In: European Conference on Object-Oriented Programming, Springer-Verlag, 1997, p. 220–242.

MASIERO, P. C.; MEIRA, C. A. A. Development and instantiation of a generic application generator. Journal of Systems and Software, v. 23, n. 1, p. 27–37, 1993.

SHIMABUKURO, E. K. Um gerador de aplicações configurável. Dissertação de Mestrado, ICMC/USP, São Carlos, SP, 2006.

Page 21: 1 Composição e Geração de Aplicações usando Aspectos Carlos Alberto de Freitas Pereira Júnior Orientadora: Profª. Dra. Rosana T. Vaccare Braga Universidade

21

Contato

[email protected]

Rosana [email protected]

Page 22: 1 Composição e Geração de Aplicações usando Aspectos Carlos Alberto de Freitas Pereira Júnior Orientadora: Profª. Dra. Rosana T. Vaccare Braga Universidade

22

Exemplo de Uso Exemplo: suponha que a ferramenta

tenha os seguintes domínios no seu repositório:

Um domínio base de vídeo locadoras, sem a camada de persistência;

E um domínio transversal de persistência de dados.

Pretende-se gerar um sistema de vídeo locadora com persistência de informações, como clientes e filmes, por exemplo.

Page 23: 1 Composição e Geração de Aplicações usando Aspectos Carlos Alberto de Freitas Pereira Júnior Orientadora: Profª. Dra. Rosana T. Vaccare Braga Universidade

23

Exemplo de Uso

1) Escolha do domínio de vídeo

locadora

1) Escolha do domínio de vídeo

locadora

2) Escolha do domínio transversal

de persistência.

2) Escolha do domínio transversal

de persistência.

3) Configuração dos pontos de entrecorte

3) Configuração dos pontos de entrecorte

4) Instanciação da LMA do domínio

base.

4) Instanciação da LMA do domínio

base.

5) Instanciação da LMA do domínio

transversal.

5) Instanciação da LMA do domínio

transversal.

6) Geração do produto.

6) Geração do produto.