Part 4 - DC

Propaganda
1/26/2009
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
Modelagem
› MetaEdit+ (MetaCase)
› DSLTools (Microsoft)
› GME (Vanderbilt)
› GMF (Eclipse)
› xText (Eclipse/oAW)
› TCS (Eclipse)
1
1/26/2009
Transformação
› QVT (Eclipse)
› Atlas/ATL (Eclipse)
› xTend (Eclipse/oAW)
Geração de código
› JET (Eclipse)
› xPand (Eclipse)
Generic Modeling Environment –
Vanderbilt University
Model Integrated Computing
Modelagem específica de domínio
› Metamodelo próprio (MetaGME)
› API própria (BON)
› Facildade na definição sintaxe concreta
Graphical Modeling Framework
Plataforma Eclipse
› Baseado no GEF – Graphical Editing
Framework
Disponível no Ganymede (4.1)
› Pacote Modeling
2
1/26/2009
Ferramentas
Aspecto
Visual
(sintaxe
concreta)
Metamodelo
(sintaxe abstrata)
Metamodelo – ECORE
API metamodelagem – EMF
Utilizado em diversas ferramentas
› MOF simplificado
› Programação reflexiva / direta
› Projetos acadêmicos
› Industriais
Documentação bastante evoluída
› Ainda não completa
Demonstração
3
1/26/2009
Parte do projeto openArchitectureWare
Linguagem de modelagem textual
Sintaxe concreta + abstrata
› Específica de domínio
› Uma única especificação
Parser
Editor (code completion, warnings, etc)
Checagens / validação
Receitas
Demonstração
ATLAS Transformation Language
› Surgiu para atender a proposta QVT
› Inicialmente baseada no MDR (MetaData
Repository, da Sun)
› Evoluiu para EMF - Eclipse
Declarativa + imperativa
Baseada no ECORE
› Baseada em regras
4
1/26/2009
Demonstração
Projeto openArchitectureWare
› Plataforma Eclipse
Modelos ECORE / EMF
Linguagem declarativa
Demonstração
5
1/26/2009
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 Ganymede
› Pacote Modeling
Demonstração
Projeto openArchitectureWare
Mecanismo / linguagem de templates
Auto-completion
Funções úteis
Permite extensões Java
6
1/26/2009
Demonstração
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?
7
Download