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
1
Roteiro






Introdução
Domínios Transversais
Gerador CAPTOR-AO
Engenharia de Domínio
Engenharia de Aplicações
Conclusões e Trabalhos Futuros
2
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.
3
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.
4
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.
5
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).
6
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.
7
Domínios Transversais
Domínio Transversal
App
T1
App
A1
App
A2
Domínio-base A
App
T2
App
B1
Domínio-base B
8
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.
9
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.
10
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.
11
Gerador Captor-AO
Engenharia de Domínio
12
Gerador Captor-AO
Engenharia de Aplicação
13
Arquitetura Captor-AO
14
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.
15
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.
16
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.
17
Gerador Captor
Captor
Captor
não
especializado
Domínio A
Base
Domínio B
Transversal
Domínio C
Transversal
Eng. Domínio
Aplicação
A1
Aplicação
B1
Aplicação
C1
Eng. Aplicação
Aplicação
B1
Aplicação
C1
Aplicação
A1
Composição
18
Extensão Captor-AO
Captor-AO
especializado
Domínio A
Base
Aplicação
ABC
Domínio B
Transversal
Domínio C
Transversal
Eng. Domínio
Eng. Aplicação
19
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ódigobase.
20
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.
21
Referências




KICZALES, G.; LAMPING, J.; MENHDHEKAR, A.; MAEDA,
C.; LOPES, C.; LOINGTIER, J. M.; IRWIN, J. Aspectoriented 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
22
Contato

Endereço Eletrônico



[email protected] (Carlos)
[email protected] (Rosana)
Página web

http://captor.googlecode.com
23
Download

gerador de aplicações