Uma Ferramenta Baseada em MDA para a Especialização de Mecanismos de Persistência Fabio Seixas Marques [email protected] Seminário LES – 28 de outubro de 2005 www.les.inf.puc-rio.br www.teccomm.les.inf.puc-rio.br Sumário • Processo de Transformação; • 1ª Etapa – Base de Conhecimento; • 2ª Etapa – Implementação das Transformações; • 3ª Etapa – Efetuar Transformações; • Outras Ferramentas; • O que já foi feito; • O que falta fazer; • Contribuições Esperadas; • Dúvidas. Laboratório de Engenharia de Software – PUC-Rio Processo de Transformação • O processo de transformação é dividido em 3 etapas; • Cada etapa pode ser feita por usuários distintos; • A primeira etapa consiste no cadastro da base de conhecimento da ferramenta. Laboratório de Engenharia de Software – PUC-Rio 1ª Etapa - Base de Conhecimento da Ferramenta Independente de Plataforma Foco ou Aspecto - Persistência Tag Específico para uma Plataforma Transformação Tecnologia - Arquitetura - Hibernate.rdl - Hibernate - Configuração de Acesso - Castor.rdl - Castor - Mapeamento Tabela Classe O que o Processo de Transformação vai tratar? Quais devem ser as partes comuns as tecnologias, para que consigam tratar esse Aspecto? Quais serão as tecnologias disponíveis e que atendam aos requisitos do Aspecto? O que é necessário implementar para efetuar as transformações? Laboratório de Engenharia de Software – PUC-Rio Processo de Transformação • O processo de transformação possui 3 etapas importantes, podendo envolver usuários diferentes. • A primeira etapa é o cadastro da base de conhecimento da ferramenta. • A segunda é a implementação das transformações para as tecnologias envolvidas. Laboratório de Engenharia de Software – PUC-Rio 2ª Etapa – Implementação das Transformações Implementa as regras de transformações Transformação Laboratório de Engenharia de Software – PUC-Rio Tecnologia - Hibernate.rdl - Hibernate - Castor.rdl - Castor Processo de Transformação • O processo de transformação possui 3 etapas importantes, podendo envolver usuários diferentes. • A primeira etapa é o cadastro da base de conhecimento da ferramenta. • A segunda é a implementação das transformações para as tecnologias envolvidas. • E a terceira é a utilização da ferramenta para efetuar as transformações em modelos. Laboratório de Engenharia de Software – PUC-Rio 3ª Etapa – Efetuar Transformações Modelo PSM Gerado! Cria o Modelo PIM Adiciona Marcações Exporta Modelo PIM Perguntas Respostas Importa Modelo PIM Exporta Modelo PSM Transformação Ferramenta Laboratório de Engenharia de Software – PUC-Rio Importa Modelo PSM Outras Ferramentas • Model In Action Transformation – Efetua transformações em arquivos.xmi, podendo gerar alguns tipos de arquivos além do próprio XMI; – Não possui regras pré definidas; – Possui algumas caracterizações para ajudar na organização das transformações; – Possui uma ótima interface gráfica para a implementação das transformações; • iQgen – Também efetua transformações em arquivos.xmi, podendo gerar alguns tipos de arquivos além do próprio XMI; – Também não possui regras pré definidas; – Possui uma interface gráfica para a implementação das transformações, mas a mesma não é muito boa. Laboratório de Engenharia de Software – PUC-Rio O que já foi feito • Definição do Processo de Transformação; • Estudo e levantamento das partes comuns entre os Frameworks de Persistência; • Extensão da linguagem RDL; • Comunicação entre a ferramenta e a máquina virtual RDL; • Levantamento das perguntas e respostas feitas ao usúario; Laboratório de Engenharia de Software – PUC-Rio O que falta fazer • Terminar de colocar as regras de transformações em scripts RDL; • Terminar de implementar a parte de comunicação entre a ferramenta e o desenvolvedor; • Terminar a parte escrita da dissertação. Laboratório de Engenharia de Software – PUC-Rio Contribuições Esperadas • Criação de um processo onde é possível: – Definir que aspectos serão tratados; – Definir as tecnologias que serão utilizadas para implementar os aspectos; – E as transformações necessárias para instanciar um modelo independente de plataforma em um design de uma das tecnologias definidas. • A definição das transformações não estarão embutidas no código da ferramenta, e sim definidas através da linguagem RDL. • Estudo das tecnologias na área de persistência, definindo pontos em comum caracterizados através dos tags. • Extensão da linguagem RDL, adicionando relacionamento na mesma. Laboratório de Engenharia de Software – PUC-Rio Dúvidas Laboratório de Engenharia de Software – PUC-Rio