1 captor-ao: gerador de aplicações apoiado pela programação orientada a aspectos carlos alberto...

23
1 Captor-AO: Gerador de Aplicações apoiado pela Programação Orientada a Aspectos Carlos Alberto de Freitas Pereira Júnior Rosana Teresinha Vaccare Braga Paulo Cesar Masiero Universidade de São Paulo Instituto de Ciências Matemáticas e Computação - ICMC

Upload: internet

Post on 17-Apr-2015

107 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 Captor-AO: Gerador de Aplicações apoiado pela Programação Orientada a Aspectos Carlos Alberto de Freitas Pereira Júnior Rosana Teresinha Vaccare Braga

1

Captor-AO: Gerador de Aplicações apoiado pela Programação Orientada

a Aspectos

Carlos Alberto de Freitas Pereira Júnior

Rosana Teresinha Vaccare Braga

Paulo Cesar Masiero

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

Page 2: 1 Captor-AO: Gerador de Aplicações apoiado pela Programação Orientada a Aspectos Carlos Alberto de Freitas Pereira Júnior Rosana Teresinha Vaccare Braga

2

Roteiro

Introdução Domínios Transversais Gerador CAPTOR-AO Engenharia de Domínio Engenharia de Aplicações Conclusões e Trabalhos Futuros

Page 3: 1 Captor-AO: Gerador de Aplicações apoiado pela Programação Orientada a Aspectos Carlos Alberto de Freitas Pereira Júnior Rosana Teresinha Vaccare Braga

3

Introdução

O grupo de engenharia de software do ICMC tem desenvolvido diversos trabalhos relacionados à á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 Captor-AO: Gerador de Aplicações apoiado pela Programação Orientada a Aspectos Carlos Alberto de Freitas Pereira Júnior Rosana Teresinha Vaccare Braga

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 Captor-AO: Gerador de Aplicações apoiado pela Programação Orientada a Aspectos Carlos Alberto de Freitas Pereira Júnior Rosana Teresinha Vaccare Braga

5

Introdução

Com o advento da separação avançada de interesses (Kiczales et al., 1997) surgiu a idéia de modularizar características (features) transversais de um tipo particular de domínio, denominado domínio transversal.

Foi desenvolvida uma extensão do gerador Captor que permite a integração entre features de domínios-base (domínios de aplicação) e domínios transversais.

Page 6: 1 Captor-AO: Gerador de Aplicações apoiado pela Programação Orientada a Aspectos Carlos Alberto de Freitas Pereira Júnior Rosana Teresinha Vaccare Braga

6

Domínios Transversais

Domínios transversais são domínios de aplicação que encapsulam comportamentos genéricos de um interesse transversal.

Pode-se citar como exemplos de domínios transversais os domínios de Persistência e Segurança (Controle de Acesso).

Page 7: 1 Captor-AO: Gerador de Aplicações apoiado pela Programação Orientada a Aspectos Carlos Alberto de Freitas Pereira Júnior Rosana Teresinha Vaccare Braga

7

Domínios Transversais

Possuem implementação orientada a aspectos e portanto possuem pontos de junção que devem ser configurados ao instanciá-los para aplicações específicas.

Esses pontos de junção podem variar de acordo com a aplicação-base a ser combinada.

Page 8: 1 Captor-AO: Gerador de Aplicações apoiado pela Programação Orientada a Aspectos Carlos Alberto de Freitas Pereira Júnior Rosana Teresinha Vaccare Braga

8

Domínio-base ADomínio-base A Domínio-base BDomínio-base B

AppA1

AppA2

AppB1

AppT2

AppT1

Domínio Transversal

Domínios Transversais

Page 9: 1 Captor-AO: Gerador de Aplicações apoiado pela Programação Orientada a Aspectos Carlos Alberto de Freitas Pereira Júnior Rosana Teresinha Vaccare Braga

9

Gerador Captor-AO

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

A configuração da ferramenta é independente da linguagem de programação adotada.

Utiliza a abordagem por composição para geração de artefatos de acordo com a instância da Linguagem de Modelagem de Aplicação(LMA) fornecida.

Page 10: 1 Captor-AO: Gerador de Aplicações apoiado pela Programação Orientada a Aspectos Carlos Alberto de Freitas Pereira Júnior Rosana Teresinha Vaccare Braga

10

Gerador Captor-AO

Uma LMA é uma linguagem de alto nível de abstração utilizada para representar aplicações (Weiss e Lai, 1999).

A LMA utilizada pela ferramenta Captor-AO é definida através de uma estrutura de formulários em forma de árvore.

Page 11: 1 Captor-AO: Gerador de Aplicações apoiado pela Programação Orientada a Aspectos Carlos Alberto de Freitas Pereira Júnior Rosana Teresinha Vaccare Braga

11

Gerador Captor-AO

Cada formulário contém um conjunto de campos, tais como: caixas de texto, caixas de seleção, etiquetas e tabelas.

Os campos de formulário devem ser utilizados para representar as variabilidades do domínios.

Page 12: 1 Captor-AO: Gerador de Aplicações apoiado pela Programação Orientada a Aspectos Carlos Alberto de Freitas Pereira Júnior Rosana Teresinha Vaccare Braga

12

Gerador Captor-AO

Engenharia de Domínio

Page 13: 1 Captor-AO: Gerador de Aplicações apoiado pela Programação Orientada a Aspectos Carlos Alberto de Freitas Pereira Júnior Rosana Teresinha Vaccare Braga

13

Gerador Captor-AO

Engenharia de Aplicação

Page 14: 1 Captor-AO: Gerador de Aplicações apoiado pela Programação Orientada a Aspectos Carlos Alberto de Freitas Pereira Júnior Rosana Teresinha Vaccare Braga

14

Arquitetura Captor-AO

Page 15: 1 Captor-AO: Gerador de Aplicações apoiado pela Programação Orientada a Aspectos Carlos Alberto de Freitas Pereira Júnior Rosana Teresinha Vaccare Braga

15

Engenharia de Domínio

Domínios-base Deve-se indicar que domínios

transversais podem ser combinados com ele.

Compatibilidade entre domínios. Pode ser necessário definir conjuntos

de extensão.

Page 16: 1 Captor-AO: Gerador de Aplicações apoiado pela Programação Orientada a Aspectos Carlos Alberto de Freitas Pereira Júnior Rosana Teresinha Vaccare Braga

16

Engenharia de Domínio

Domínios transversais Variabilidades de negócios Variabilidades de junção: variabilidades

inerentes ao uso de aspectos e se caracterizam pela concretização de pontos de junção abstratos.

Page 17: 1 Captor-AO: Gerador de Aplicações apoiado pela Programação Orientada a Aspectos Carlos Alberto de Freitas Pereira Júnior Rosana Teresinha Vaccare Braga

17

Engenharia de Aplicação

Uma aplicação específica pode ser composta a partir da instanciação de mais de um domínio.

Sendo um deles um domínio-base (domínio de aplicação) e os demais, domínios transversais.

Pontos de junção pré-definidos tornam as configurações de baixo nível transparentes para o engenheiro de aplicação.

Page 18: 1 Captor-AO: Gerador de Aplicações apoiado pela Programação Orientada a Aspectos Carlos Alberto de Freitas Pereira Júnior Rosana Teresinha Vaccare Braga

18

Gerador Captor

Captor especializado

Domínio ABase

Aplicação A1

Domínio BTransversal

Domínio CTransversal

Captor não especializado

Eng. Domínio Eng. Aplicação

AplicaçãoB1

AplicaçãoC1

Aplicação A1

AplicaçãoB1

AplicaçãoC1

Composição

Page 19: 1 Captor-AO: Gerador de Aplicações apoiado pela Programação Orientada a Aspectos Carlos Alberto de Freitas Pereira Júnior Rosana Teresinha Vaccare Braga

19

Extensão Captor-AO

Captor-AO especializado

Domínio ABase

Aplicação ABC

Domínio BTransversal

Domínio CTransversal

Eng. Domínio Eng. Aplicação

Page 20: 1 Captor-AO: Gerador de Aplicações apoiado pela Programação Orientada a Aspectos Carlos Alberto de Freitas Pereira Júnior Rosana Teresinha Vaccare Braga

20

Conclusões

A utilização de domínios transversais proporciona o reúso de interesses transversais em diversas LPS, evitando a implementação desnecessária de features.

O mecanismo de variabilidades de junção permite a automatização do processo de combinação entre aspectos e código-base.

Page 21: 1 Captor-AO: Gerador de Aplicações apoiado pela Programação Orientada a Aspectos Carlos Alberto de Freitas Pereira Júnior Rosana Teresinha Vaccare Braga

21

Trabalhos Futuros

O Captor-AO será alterado para possibilitar combinações entre dois ou mais domínios-base.

Pretende-se testar o desempenho do Captor-AO utilizando estudos de caso com famílias de produtos mais complexas.

Page 22: 1 Captor-AO: Gerador de Aplicações apoiado pela Programação Orientada a Aspectos Carlos Alberto de Freitas Pereira Júnior Rosana Teresinha Vaccare Braga

22

Referências

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.

WEISS, D. M.; LAI, C. T. R. Software product-line engineering: a family-based software development process. Addison-Wesley, 1999

Page 23: 1 Captor-AO: Gerador de Aplicações apoiado pela Programação Orientada a Aspectos Carlos Alberto de Freitas Pereira Júnior Rosana Teresinha Vaccare Braga

23

Contato

Endereço Eletrônico [email protected] (Carlos) [email protected] (Rosana)

Página web http://captor.googlecode.com