WebMedia 2009 – Minicurso 3 Parte 5: Ferramentas Parte 5 FERRAMENTAS 1 WebMedia 2009 – Minicurso 3 Parte 5: Ferramentas Exemplos práticos O que é possível fazer HOJE? Modelagem/Transformação/Geração de código Ferramentas / ambientes Sem ser UML Foco em modelagem específica de domínio Geração de código 2 WebMedia 2009 – Minicurso 3 Parte 5: Ferramentas Principais Modelagem MetaEdit+ (MetaCase) DSLTools (Microsoft) GME (Vanderbilt) GMF (Eclipse) xText (Eclipse TMF) TCS (Eclipse) 3 WebMedia 2009 – Minicurso 3 Parte 5: Ferramentas Principais Transformação QVT (Eclipse) Atlas/ATL (Eclipse) xTend (Eclipse Modeling) Geração de código JET (Eclipse M2T) xPand (Eclipse M2T) 4 WebMedia 2009 – Minicurso 3 Parte 5: Ferramentas GME Generic Modeling Environment – Vanderbilt University Model Integrated Computing Modelagem específica de domínio Metamodelo próprio (MetaGME) API própria (BON) Facilidade na definição sintaxe concreta 5 WebMedia 2009 – Minicurso 3 Parte 5: Ferramentas GMF Graphical Modeling Framework Plataforma Eclipse Baseado no GEF – Graphical Editing Framework Disponível no Galileo Pacote Modeling 6 WebMedia 2009 – Minicurso 3 Parte 5: Ferramentas Aspecto Visual Ferramentas (sintaxe concreta) Metamodelo (sintaxe abstrata) 7 WebMedia 2009 – Minicurso 3 Parte 5: Ferramentas GMF Metamodelo – ECORE MOF simplificado API metamodelagem – EMF Programação reflexiva / direta Utilizado em diversas ferramentas Projetos acadêmicos Industriais Documentação bastante evoluída Ainda não completa 8 WebMedia 2009 – Minicurso 3 Parte 5: Ferramentas xText Parte do projeto openArchitectureWare Linguagem de modelagem textual Específica de domínio Sintaxe concreta + abstrata Uma única especificação Parser Editor (code completion, warnings, etc) Checagens / validação Receitas 9 WebMedia 2009 – Minicurso 3 Parte 5: Ferramentas ATL ATLAS Transformation Language Surgiu para atender a proposta QVT Inicialmente baseada no MDR (MetaData Repository, da Sun) Evoluiu para EMF - Eclipse Declarativa + imperativa Baseada em regras Baseada no ECORE 10 WebMedia 2009 – Minicurso 3 Parte 5: Ferramentas xTend Projeto openArchitectureWare Plataforma Eclipse Modeling Modelos ECORE / EMF Linguagem declarativa 11 WebMedia 2009 – Minicurso 3 Parte 5: Ferramentas JET Geração de código Java Emitter Templates Mecanismo de templates Permite inclusão de scriptlets Java Possui tags com funções úteis Consultas a XML/metamodelo utilizando Xpath Disponível no Galileo Pacote Modeling 12 WebMedia 2009 – Minicurso 3 Parte 5: Ferramentas xPand Projeto openArchitectureWare Eclipse M2T Mecanismo / linguagem de templates Auto-completion Funções úteis Permite extensões Java 13 WebMedia 2009 – Minicurso 3 Parte 5: Ferramentas Fim da parte 5 Perguntas? Sugestões: • • • • • • • • • E as ferramentas comerciais? E as ferramentas UML? Conheço várias ferramentas para MDA, porque elas não foram apresentadas? Porque você não apresentou a ferramenta X? Os fontes dos exemplos serão disponibilizados? Porque laranja chama laranja e limão não se chama verde? Por que o Pateta fala e o Pluto não? Como se escreve zero em algarismos romanos? Quando inventaram o relógio, como sabiam que horas eram, para poder acertá-lo? 14