230 likes | 352 Views
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
E N D
Captor-AO: Gerador de Aplicações apoiado pela Programação Orientada a Aspectos Carlos Alberto de Freitas Pereira Júnior RosanaTeresinhaVaccare Braga Paulo Cesar Masiero Universidade de São Paulo Instituto de CiênciasMatemáticas e Computação - ICMC
Roteiro • Introdução • Domínios Transversais • Gerador CAPTOR-AO • Engenharia de Domínio • Engenharia de Aplicações • Conclusões e Trabalhos Futuros
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.
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.
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.
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).
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.
Domínios Transversais Domínio Transversal App T1 App T2 Domínio-base A Domínio-base B AppA1 AppA2 AppB1
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.
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.
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.
Gerador Captor-AO Engenharia de Domínio
Gerador Captor-AO Engenharia de Aplicação
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.
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.
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.
Gerador Captor Captor especializado Captor não especializado Domínio A Base Aplicação A1 AplicaçãoB1 AplicaçãoC1 Domínio B Transversal AplicaçãoB1 Aplicação A1 Domínio C Transversal AplicaçãoC1 Eng. Aplicação Eng. Domínio Composição
Extensão Captor-AO Captor-AO especializado Aplicação ABC Domínio A Base Domínio B Transversal Domínio C Transversal Eng. Aplicação Eng. Domínio
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.
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.
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
Contato • Endereço Eletrônico • cafpj@icmc.usp.br (Carlos) • rtvb@icmc.usp.br (Rosana) • Página web • http://captor.googlecode.com