Universidade Federal de Lavras - UFLA PROCEDIMENTOS DE MODELAGEM E UMA FERRAMENTA DE GERAÇÃO AUTOMÁTICA DE CÓDIGO Lucas De Luca Castro Orientador: André Vital Saúde SUMÁRIO 1) INTRODUÇÃO 2) OBJETIVOS 3) REFERENCIAL TEÓRICO: 1) 2) 3) MODEL DRIVEN ARCHITECTURE (MDA) GERADOR AUTOMÁTICO DE CÓDIGO IGUASSU FRAMEWORK 4) MATERIAL E MÉTODOS 5) RESULTADOS 1) 2) 3) CODEGEN BLUEBOX PROCEDIMENTO DE MODELAGEM 6) CONCLUSÃO INTRODUÇÃO Mercado de Software – Contexto Atual Utilização de Padrões de Projetos para o Desenvolvimento de Software Sistemas de Web – Frameworks diversos Padrão MVC mais utilizado Ausência de Modelo de Desenvolvimento Possibilitaria Convergir os Padrões de Geração Automática de Código Necessidades: Produtividade e Manutenção INTRODUÇÃO Tendo em vista: Redução no Tempo Dispensado Desenvolvimento de Arquiteturas de Software FRAMEWORK IGUASSU Desenvolve Softwares web ARQUITETURA MVC MODELAGEM outros padrões Implementação de Código GERAÇÃO DE CÓDIGO OBJETIVOS O Objetivo Geral foi a Criação de um Gerador de Código denominado BlueBox que Otimiza as Produções de Softwares que Utilizam o Framework Iguassu como Ferramenta de Desenvolvimento e a Criação de Práticas de Modelagem, Visando a Geração dos Códigos Conforme o Modelo Iguassu. OBJETIVOS ESPECÍFICOS: • Estudo da metodologia MDA (Model Driven Architecture) • Estudo da modelagem UML • Verificação do impacto da modelagem uml na geração de arquivo de dados XMI (XML Metadata Interchange) • Proposta de procedimento de modelagem uml adequado ao gerador de código OBJETIVOS ESPECÍFICOS: • Estudo do comportamento das classes do framework Iguassu • Estudo da tecnologia XSLT e Velocity • Proposta de um gerador automático de código • Criação de templates para a geração de código no formato do Framework Iguassu REFERENCIAL TEÓRICO: Model Driven Architecture (MDA) Metodologia reconhecida pela OMG(Object Management Group) desenvolvimento de software Utiliza modelos como centro do desenvolvimento do sistema código pode ser gerado através dos modelos Possibilita transformar abstratos em concretos modelos OBJETIVO: ALCANÇAR GERAÇÃO DO CÓDIGO FONTE DE MANEIRA AUTOMATIZADA REFERENCIAL TEÓRICO: Model Driven Architecture (MDA) PROCESSO DE TRANSFORMAÇÃO DOS MODELOS MDA MAIS ABSTRATO(CIM) MAIS CONCRETO(PSM) É UTILIZADO UM CONJUNTO DE REGRAS ESPECÍFICAS QUE DESCREVEM O PROCESSO REFERENCIAL TEÓRICO: GERADOR AUTOMÁTICO DE CÓDIGO TRANSFORMAÇÕES BASEADAS EM MODELOS: REFERENCIAL TEÓRICO: GERADOR AUTOMÁTICO DE CÓDIGO TRANSFORMAÇÕES BASEADAS EM MODELOS: Gerador pode utilizar como base de dados o arquivo XMI (XML Metadata Interchange) – exemplo gerador GreenBox (2007) GreenBox utiliza os templates velocity para definir como serão apresentadas as informações no arquivo de saída MODELO DO GERADOR GREENBOX REFERENCIAL TEÓRICO: GERADOR AUTOMÁTICO DE CÓDIGO Arquivo XMI: • DIAGRAMA DE CLASSES REFERENCIAL TEÓRICO: GERADOR AUTOMÁTICO DE CÓDIGO Arquivo XMI: • CLASSE PESSOA (DIAGRAMA E ARQUIVO XMI) REFERENCIAL TEÓRICO: GERADOR AUTOMÁTICO DE CÓDIGO Arquivo XMI: • REFERÊNCIA CRUZADA REFERENCIAL TEÓRICO: GERADOR AUTOMÁTICO DE CÓDIGO Arquivo XMI: • REFERÊNCIA CRUZADA REFERENCIAL TEÓRICO: GERADOR AUTOMÁTICO DE CÓDIGO Arquivo XMI: • DIAGRAMA DE ESTADOS REFERENCIAL TEÓRICO: GERADOR AUTOMÁTICO DE CÓDIGO Arquivo XMI: REFERENCIAL TEÓRICO: GERADOR AUTOMÁTICO DE CÓDIGO Arquivo XMI: REFERENCIAL TEÓRICO: IGUASSU FRAMEWORK (MVC) IMPLEMENTAÇÃO JAVA DA ARQUITETURA IGUASSU AINDA POSSUI ALGUMAS LIMITAÇÕES TÉCNICAS ESTÁ DIVIDIDO COM A CAMADA DE VIEW NO LADO DO CLIENTE MODELO MVC UTILIZADO EM APLICAÇÃO WEB: REFERENCIAL TEÓRICO: IGUASSU FRAMEWORK (MVC) O LADO SERVIDOR FUNCIONA COMO PROVEDOR DE SERVIÇOS EM UM MODELO SOA (SERVICE-ORIENTED ARCHITECTURE) INTERNAMENTE O SERVIDOR É ORGANIZADO EM CAMADAS (ESTRUTURA HIERÁRQUICA BASEADA NA IDÉIA DE QUE UM SISTEMA PODE TER DIVERSAS APLICAÇÕES) UMA APLICAÇÃO PODE ESTAR DIVIDIDA EM DIVERSOS MÓDULOS - CADA MÓDULO - PROVÊ DIVERSOS SERVIÇOS REFERENCIAL TEÓRICO: IGUASSU FRAMEWORK Arquitetura Iguassu - destaque na única camada que necessita implementação manual MATERIAL E MÉTODOS MÉTODO Metodologia MDA Modelagem UML Arquivo XMI Comportamento das classes do Framework Iguassu Procedimentos de Modelagem Criação dos Geradores: XSLT CodeGen Templates XSL Velocity BlueBox Templates Velocity Aplicação dos Geradores na Mitah Tecnologies RESULTADOS CodeGen ARQUITETURA: RESULTADOS CodeGen PROCESSAMENTO DA GERAÇÃO: RESULTADOS CodeGen FOLHAS DE ESTILOS: RESULTADOS CodeGen FOLHAS DE ESTILOS: Referência Cruzada RESULTADOS CodeGen FOLHAS DE ESTILOS: Referência Cruzada RESULTADOS CodeGen FOLHAS DE ESTILOS: Referência Cruzada RESULTADOS BlueBox ARQUITETURA: RESULTADOS BlueBox XMI PARSE: RESULTADOS BlueBox XMI PARSE: Jcoltrane - Nuccielli, 2008 RESULTADOS BlueBox GERADOR: Processador Velocity • Encaminhar templates para Processador de Categorias; • Filtragem: Classes, Templates, Pacotes e Categorias; RESULTADOS BlueBox GERADOR: Processador de Categorias Os contextos são objetos que representam os dados do modelo e podem ser utilizados pelos templates: 1. packages 2. application 3. package 4. subPackage 5. class 6. template 7. stateMachine RESULTADOS BlueBox GERADOR: Processador de Categorias Categorias: 1. Application: 2. Classes 3. Packages 4. SubPackages 5. StateMachines RESULTADOS BlueBox GERADOR: Templates Velocity RESULTADOS Procedimento de Modelagem DIAGRAMA DE CLASSES (ER): • Classes RESULTADOS Procedimento de Modelagem DIAGRAMA DE CLASSES (ER): • Classes (StateMachine) RESULTADOS Procedimento de Modelagem DIAGRAMA DE CLASSES (ER): • Associações RESULTADOS Procedimento de Modelagem DIAGRAMA DE CLASSES (ER): • Associações (atributos personalizados) RESULTADOS Procedimento de Modelagem DIAGRAMA DE CLASSES (ER): • Atributos (marcadores) RESULTADOS Procedimento de Modelagem DIAGRAMA DE CLASSES (ER): • Pacotes RESULTADOS Procedimento de Modelagem DIAGRAMA DE ESTADOS: • Pacotes (estrutura) RESULTADOS Procedimento de Modelagem DIAGRAMA DE ESTADOS: • Estados (ações) Conclusões REFERÊNCIAS