III WPPC
    Workshop de Pesquisas do
     Grupo PET Computação

MetaCG - Uma Abordagem Baseada em
   Meta-modelos para a Escrita de
        Geradores de Código

                  Natã Melo
           natanvm@dsc.ufcg.edu.br


     Anderson Ledo, Franklin Ramalho
         {ledo, franklin}@dsc.ufcg.edu.br
Agenda
 •   Contexto
 •   Motivação
 •   Abordagem MetaCG
 •   Objetivo
 •   Ferramenta Computacional
 •   Considerações Finais




III WPPC - Dezembro, 2010   MetaCG - Natã Melo   2
Contexto
                            Idéia de Modelo!




                               public class Pessoa {

                                           private String nome;

                                           public String getSaudacao(){

                                           }

                               }


III WPPC - Dezembro, 2010      MetaCG - Natã Melo                         3
Contexto
                             Idéia de Meta-Modelo!


             Meta-Modelo                                Meta-Linguagem


                     Instância            Descreve


                 Modelo




III WPPC - Dezembro, 2010          MetaCG - Natã Melo                    4
Contexto
                               Exemplo!

                                                     Elemento do
         Polígono               Automóvel
                                                     Meta-Modelo

          Instância                  Instância

                                                     Elemento do
Quadrilátero    Pentágono    Carro          Ônibus
                                                        Modelo




 III WPPC - Dezembro, 2010     MetaCG - Natã Melo                  5
Contexto
                     MDA – Model Driven Architecture

 • Proposta pela OMG
      – Mudança de paradigma
 • Focar o desenvolvimento do software em modelos
      – Modelos não são apenas documentos para auxiliar o
        desenvolvimento de software, eles são o próprio software
 • Geração Automática de código


III WPPC - Dezembro, 2010      MetaCG - Natã Melo                  6
Contexto

                             Modelo

     MOF2Text e
     MOFScript


                            Transformações de
                             Modelo para Texto                Código Concreto
               Regras



                                         Gerador de Código!


III WPPC - Dezembro, 2010         MetaCG - Natã Melo                            7
Motivação
         Por quê surgiu a idéia da abordagem MetaCG?

 • Poucos trabalhos relacionados à geração de sintaxe concreta
 • Os trabalhos existentes não tratam transformações textuais
   adequadamente
 • Como promover fácil entendimento e manutenção em
   transformações textuais?




III WPPC - Dezembro, 2010    MetaCG - Natã Melo                  8
Abordagem MetaCG
 • Guidelines

      – Separação da definição de sintaxe da manipulação dos
        elementos do meta-modelo
      – Manipulação de um elemento por regra
      – Definição de regras separadas para coleções
      – Redução do uso de Print Statements


                              (Artigo: Ledo, A. Melo, N. Ramalho, F.,
                    “Guidelines for Improving Model to Text Transformations”)

III WPPC - Dezembro, 2010             MetaCG - Natã Melo                        9
Abordagem MetaCG

     Main                      Core                Templates


 • O que isso impacta no gerador de código?
      – Complexidade
      – Esforço empregado por projetistas na fase de construção
      – Facilidade de entendimento e manutenção



III WPPC - Dezembro, 2010   MetaCG - Natã Melo                    10
Objetivo
 • Desenvolver uma ferramenta computacional

      – Semi-automatiza os passos prescritos pela abordagem
      – Diretrizes para organizar, especificar e “rastrear” fluxo de
        controle entre transformações de modelo para texto


                                      Tool
    Meta-Modelo
      (Ecore)
                               Tool

                                             Tool
                                                    Gerador Código



III WPPC - Dezembro, 2010     MetaCG - Natã Melo                       11
Ferramenta
 • Tecnologias utilizadas: ATL, MOFScript e MOF2Text
 • Plug-in
      – Integrado à IDE Eclipse
      – Desenvolvimento utilizando Java



 • Desenvolvimento dividido em três fases
 • Conclusão prevista para Março/2011


III WPPC - Dezembro, 2010     MetaCG - Natã Melo       12
Ferramenta

1º
                                                           Modelo de
                                                           Referência



                     Modelo de
2º               Implementação em
                    MOF2Text




3º                    Gerador de Código




III WPPC - Dezembro, 2010             MetaCG - Natã Melo                13
Considerações Finais
 •   Concluir o desenvolvimento da ferramenta
 •   Elaborar artigos científicos
 •   Estudo de diversas tecnologias
 •   Aprofundamento no conhecimento de MDA
 •   Mais experiência no âmbito da pesquisa




III WPPC - Dezembro, 2010   MetaCG - Natã Melo   14
Dúvidas




Obrigado!

 MetaCG - Natã Melo   15
III WPPC
    Workshop de Pesquisas do
     Grupo PET Computação

MetaCG - Uma Abordagem Baseada em
   Meta-modelos para a Escrita de
        Geradores de Código

                  Natã Melo
           natanvm@dsc.ufcg.edu.br


     Anderson Ledo, Franklin Ramalho
         {ledo, franklin}@dsc.ufcg.edu.br

MetaCG

  • 1.
    III WPPC Workshop de Pesquisas do Grupo PET Computação MetaCG - Uma Abordagem Baseada em Meta-modelos para a Escrita de Geradores de Código Natã Melo natanvm@dsc.ufcg.edu.br Anderson Ledo, Franklin Ramalho {ledo, franklin}@dsc.ufcg.edu.br
  • 2.
    Agenda • Contexto • Motivação • Abordagem MetaCG • Objetivo • Ferramenta Computacional • Considerações Finais III WPPC - Dezembro, 2010 MetaCG - Natã Melo 2
  • 3.
    Contexto Idéia de Modelo! public class Pessoa { private String nome; public String getSaudacao(){ } } III WPPC - Dezembro, 2010 MetaCG - Natã Melo 3
  • 4.
    Contexto Idéia de Meta-Modelo! Meta-Modelo Meta-Linguagem Instância Descreve Modelo III WPPC - Dezembro, 2010 MetaCG - Natã Melo 4
  • 5.
    Contexto Exemplo! Elemento do Polígono Automóvel Meta-Modelo Instância Instância Elemento do Quadrilátero Pentágono Carro Ônibus Modelo III WPPC - Dezembro, 2010 MetaCG - Natã Melo 5
  • 6.
    Contexto MDA – Model Driven Architecture • Proposta pela OMG – Mudança de paradigma • Focar o desenvolvimento do software em modelos – Modelos não são apenas documentos para auxiliar o desenvolvimento de software, eles são o próprio software • Geração Automática de código III WPPC - Dezembro, 2010 MetaCG - Natã Melo 6
  • 7.
    Contexto Modelo MOF2Text e MOFScript Transformações de Modelo para Texto Código Concreto Regras Gerador de Código! III WPPC - Dezembro, 2010 MetaCG - Natã Melo 7
  • 8.
    Motivação Por quê surgiu a idéia da abordagem MetaCG? • Poucos trabalhos relacionados à geração de sintaxe concreta • Os trabalhos existentes não tratam transformações textuais adequadamente • Como promover fácil entendimento e manutenção em transformações textuais? III WPPC - Dezembro, 2010 MetaCG - Natã Melo 8
  • 9.
    Abordagem MetaCG •Guidelines – Separação da definição de sintaxe da manipulação dos elementos do meta-modelo – Manipulação de um elemento por regra – Definição de regras separadas para coleções – Redução do uso de Print Statements (Artigo: Ledo, A. Melo, N. Ramalho, F., “Guidelines for Improving Model to Text Transformations”) III WPPC - Dezembro, 2010 MetaCG - Natã Melo 9
  • 10.
    Abordagem MetaCG Main Core Templates • O que isso impacta no gerador de código? – Complexidade – Esforço empregado por projetistas na fase de construção – Facilidade de entendimento e manutenção III WPPC - Dezembro, 2010 MetaCG - Natã Melo 10
  • 11.
    Objetivo • Desenvolveruma ferramenta computacional – Semi-automatiza os passos prescritos pela abordagem – Diretrizes para organizar, especificar e “rastrear” fluxo de controle entre transformações de modelo para texto Tool Meta-Modelo (Ecore) Tool Tool Gerador Código III WPPC - Dezembro, 2010 MetaCG - Natã Melo 11
  • 12.
    Ferramenta • Tecnologiasutilizadas: ATL, MOFScript e MOF2Text • Plug-in – Integrado à IDE Eclipse – Desenvolvimento utilizando Java • Desenvolvimento dividido em três fases • Conclusão prevista para Março/2011 III WPPC - Dezembro, 2010 MetaCG - Natã Melo 12
  • 13.
    Ferramenta 1º Modelo de Referência Modelo de 2º Implementação em MOF2Text 3º Gerador de Código III WPPC - Dezembro, 2010 MetaCG - Natã Melo 13
  • 14.
    Considerações Finais • Concluir o desenvolvimento da ferramenta • Elaborar artigos científicos • Estudo de diversas tecnologias • Aprofundamento no conhecimento de MDA • Mais experiência no âmbito da pesquisa III WPPC - Dezembro, 2010 MetaCG - Natã Melo 14
  • 15.
  • 16.
    III WPPC Workshop de Pesquisas do Grupo PET Computação MetaCG - Uma Abordagem Baseada em Meta-modelos para a Escrita de Geradores de Código Natã Melo natanvm@dsc.ufcg.edu.br Anderson Ledo, Franklin Ramalho {ledo, franklin}@dsc.ufcg.edu.br