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

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

  • Upload
    butch

  • View
    24

  • Download
    0

Embed Size (px)

DESCRIPTION

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. Roteiro. Introdução - PowerPoint PPT Presentation

Citation preview

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

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: Captor-AO: Gerador de Aplicações apoiado pela Programação Orientada a Aspectos

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: Captor-AO: Gerador de Aplicações apoiado pela Programação Orientada a Aspectos

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: Captor-AO: Gerador de Aplicações apoiado pela Programação Orientada a Aspectos

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: Captor-AO: Gerador de Aplicações apoiado pela Programação Orientada a Aspectos

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: Captor-AO: Gerador de Aplicações apoiado pela Programação Orientada a Aspectos

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: Captor-AO: Gerador de Aplicações apoiado pela Programação Orientada a Aspectos

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: Captor-AO: Gerador de Aplicações apoiado pela Programação Orientada a Aspectos

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: Captor-AO: Gerador de Aplicações apoiado pela Programação Orientada a Aspectos

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: Captor-AO: Gerador de Aplicações apoiado pela Programação Orientada a Aspectos

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: Captor-AO: Gerador de Aplicações apoiado pela Programação Orientada a Aspectos

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: Captor-AO: Gerador de Aplicações apoiado pela Programação Orientada a Aspectos

12

Gerador Captor-AO

Engenharia de Domínio

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

13

Gerador Captor-AO

Engenharia de Aplicação

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

14

Arquitetura Captor-AO

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

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: Captor-AO: Gerador de Aplicações apoiado pela Programação Orientada a Aspectos

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: Captor-AO: Gerador de Aplicações apoiado pela Programação Orientada a Aspectos

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: Captor-AO: Gerador de Aplicações apoiado pela Programação Orientada a Aspectos

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: Captor-AO: Gerador de Aplicações apoiado pela Programação Orientada a Aspectos

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: Captor-AO: Gerador de Aplicações apoiado pela Programação Orientada a Aspectos

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: Captor-AO: Gerador de Aplicações apoiado pela Programação Orientada a Aspectos

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: Captor-AO: Gerador de Aplicações apoiado pela Programação Orientada a Aspectos

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: Captor-AO: Gerador de Aplicações apoiado pela Programação Orientada a Aspectos

23

Contato

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

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