1 Captor-AO: Gerador de Aplicações apoiado pela Programação Orientada a Aspectos Carlos Alberto...
Transcript of 1 Captor-AO: Gerador de Aplicações apoiado pela Programação Orientada a Aspectos Carlos Alberto...
![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.](https://reader038.fdocument.pub/reader038/viewer/2022103016/552fc117497959413d8c8628/html5/thumbnails/1.jpg)
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.](https://reader038.fdocument.pub/reader038/viewer/2022103016/552fc117497959413d8c8628/html5/thumbnails/2.jpg)
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.](https://reader038.fdocument.pub/reader038/viewer/2022103016/552fc117497959413d8c8628/html5/thumbnails/3.jpg)
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.](https://reader038.fdocument.pub/reader038/viewer/2022103016/552fc117497959413d8c8628/html5/thumbnails/4.jpg)
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.](https://reader038.fdocument.pub/reader038/viewer/2022103016/552fc117497959413d8c8628/html5/thumbnails/5.jpg)
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.](https://reader038.fdocument.pub/reader038/viewer/2022103016/552fc117497959413d8c8628/html5/thumbnails/6.jpg)
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.](https://reader038.fdocument.pub/reader038/viewer/2022103016/552fc117497959413d8c8628/html5/thumbnails/7.jpg)
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.](https://reader038.fdocument.pub/reader038/viewer/2022103016/552fc117497959413d8c8628/html5/thumbnails/8.jpg)
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.](https://reader038.fdocument.pub/reader038/viewer/2022103016/552fc117497959413d8c8628/html5/thumbnails/9.jpg)
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.](https://reader038.fdocument.pub/reader038/viewer/2022103016/552fc117497959413d8c8628/html5/thumbnails/10.jpg)
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.](https://reader038.fdocument.pub/reader038/viewer/2022103016/552fc117497959413d8c8628/html5/thumbnails/11.jpg)
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.](https://reader038.fdocument.pub/reader038/viewer/2022103016/552fc117497959413d8c8628/html5/thumbnails/12.jpg)
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.](https://reader038.fdocument.pub/reader038/viewer/2022103016/552fc117497959413d8c8628/html5/thumbnails/13.jpg)
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.](https://reader038.fdocument.pub/reader038/viewer/2022103016/552fc117497959413d8c8628/html5/thumbnails/14.jpg)
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.](https://reader038.fdocument.pub/reader038/viewer/2022103016/552fc117497959413d8c8628/html5/thumbnails/15.jpg)
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.](https://reader038.fdocument.pub/reader038/viewer/2022103016/552fc117497959413d8c8628/html5/thumbnails/16.jpg)
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.](https://reader038.fdocument.pub/reader038/viewer/2022103016/552fc117497959413d8c8628/html5/thumbnails/17.jpg)
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.](https://reader038.fdocument.pub/reader038/viewer/2022103016/552fc117497959413d8c8628/html5/thumbnails/18.jpg)
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.](https://reader038.fdocument.pub/reader038/viewer/2022103016/552fc117497959413d8c8628/html5/thumbnails/19.jpg)
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.](https://reader038.fdocument.pub/reader038/viewer/2022103016/552fc117497959413d8c8628/html5/thumbnails/20.jpg)
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.](https://reader038.fdocument.pub/reader038/viewer/2022103016/552fc117497959413d8c8628/html5/thumbnails/21.jpg)
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.](https://reader038.fdocument.pub/reader038/viewer/2022103016/552fc117497959413d8c8628/html5/thumbnails/22.jpg)
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.](https://reader038.fdocument.pub/reader038/viewer/2022103016/552fc117497959413d8c8628/html5/thumbnails/23.jpg)
23
Contato
Endereço Eletrônico [email protected] (Carlos) [email protected] (Rosana)
Página web http://captor.googlecode.com