230 likes | 348 Views
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. Roteiro. Introdução Gerador CAPTOR Proposta de Trabalho
E N D
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
Roteiro • Introdução • Gerador CAPTOR • Proposta de Trabalho • Estado Atual • Dificuldades encontradas
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.
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 • 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.
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.
Captor Engenharia de Domínio
Captor Engenharia de Aplicação
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.
Proposta de Trabalho • 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 DT D D D D DT D
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.
Proposta de Trabalho Repositório CAPTOR Domínio D1 base Domínio D2 transversal Produto gerado aspecto Especificação Geração Captor Estendida Engenheiro de Aplicação
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.
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.
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.
Contato • Carlos • cafpj@icmc.usp.br • Rosana • rtvb@icmc.usp.br
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.
Exemplo de Uso 1) Escolha do domínio de vídeo locadora 2) Escolha do domínio transversal de persistência. 6) Geração do produto. 3) Configuração dos pontos de entrecorte 5) Instanciação da LMA do domínio transversal. 4) Instanciação da LMA do domínio base.