[MDA] Raphael Gatti Thomás Bryan Meta Introdução • Introdução • Desenvolvimento Tradicional • Modelo • MDA • Benefícios • Exemplos • Conclusão 2 Introdução • Melhoria no desenvolvimento de software • Evoluções tecnológicas • Artefatos e Arquitetura • Documentação • OMG (Object Management Group) 3 Desenvolvimento Tradicional Foco no design de baixo nível Definidos recursos para aplicação Diagramas e textos especificados de acordo com a arquitetura. 4 Desenvolvimento Tradicional • Produtividade Nos processos Interativos e Incremental ou no Processo Cascata, diagramas e documentos são produzidos na fase 1 até 3. Documentos e diagramas perdem valor quando começa codificação. 5 Desenvolvimento Tradicional • Portabilidade Industria de software possui característica especial. Inovações tecnológicas a cada ano e mudanças nas próprias tecnologias, com novas versões e incompatibilidade. 6 Desenvolvimento Tradicional • Interoperabilidade Comunicação entre os sistemas Divisão do sistema em componentes 7 Desenvolvimento Tradicional • Manutenção e Problemas na Documentação Documentação é ponto fraco no desenvolvimento. Problema de manutenção da documentação. Boa parte dos desenvolvedores acredita que a tarefa principal é produzir código. 8 Modelo • O nome Model Driven Architecutre deixa claro que os modelos são o principal foco da MDA. O dicionário de língua portuguesa michaelis define modelo como: - Desenho ou imagem que representa o que se pretende reproduzir, desenhando, pintando ou esculpindo. - Tudo o que serve para ser imitado. - Representação, em pequena escala, de um objeto que se pretende executar em ponto grande. A OMG define um modelo como “uma especificação formal de uma função, estrutura e/ou comportamento de um sistema.” 9 MDA • MDA e Ciclo de Vida Abordagem baseada em Modelos UML. Permite que os desenvolvedores se preocupem com a plataforma que esses requisitos serão implementados. Fases idênticas as do ciclo de desenvolvimento tradicional, diferença dos artefatos produzidos. 10 MDA Desenvolvimento Tradicional MDA 11 MDA • Modelos MDA Modelo de alto nível de abstração (PIM) Modelo específico para plataforma (PSM) 12 MDA • Modelos MDA PIM (Plataform Independent Model) Descreve como as regras de negócio devem ser implementadas. Não existe distinção de plataforma se é mainframe ou um servidor de aplicação EJB. 13 MDA • Modelos MDA PSM (Plataform Specific Model) Transformação do PIM em um ou mais modelos. Gerado um PSM para cada plataforma específica. 14 MDA • Modelos MDA As três maiores transformações no processo de desenvolvimento MDA. 15 MDA • Modelos MDA 16 MDA • Modelos MDA Transformação feita utilizando mapeamentos. 17 Benefícios da MDA • Produtividade Foco em desenvolver o PIM Definir transformação dos modelos é uma tarefa difícil mas é feita uma única vez. 18 Benefícios da MDA • Portabilidade É alcançada utilizando o PIM. Uma vez definido o modelo pode facilmente ser portado para vários PSM. 19 Benefícios da MDA • Interoperabilidade Relacionamento entre PSMs, também chamados de pontes. 20 Benefícios da MDA • Manutenção e Documentação Modelo é a representação exata do código. Mudança basta fazer manutenção no PIM, gerar o PSM e consequentemente o código. Documentação está sempre atualizada. 21 Exemplos • androMDA Ferramenta de geração de código, a partir de um modelo UML. Pode produzir código fonte em qualquer linguagem de programação. Trabalha com cartuchos (plugins), implementação da transformação que vai ser realizada. Maven para automatizar o processo de geração. 22 Exemplos • androMDA 23 Exemplos • androMDA 24 Exemplos • androMDA Gera 6 classes como resultado da transformação. • Person.java (classe abstrata) • PersonImpl.java (implementa classe Person) • PersonDao.java (interface especifica metodos CRUD) • PersonDaoBase.java (implementa PersonDao) • PersonDaoImpl.java (customização de consultas) • Person.hbm.xml (arquivo hibernate) 25 Exemplos • androMDA Person.java 26 Conclusão • Ferramentas estão evoluindo e ganhando maturidade. • Permite que o desenvolvedor se preocupe mais com as regras de negócio. • MDA é nova e mostra grande potencial. 27 Perguntas 28 Modelos MDA MOF (Meta Object Facility) Modelo UML Modelo de Carro Objeto 29 Transformação Transformation SimpleAssociationToAttribute (UML, UML) { params -- none source ae : UML::AssociationEnd; target att : UML::Attribute; source condition ae.upper <= 1; target condition att.visibility = VisibilityKind::public and att.type.isTypeOf(Class); unidirectional; mapping ae.name <~> att.name; ae.type <~> att.type; } 30