300 likes | 466 Views
[MDA]. Raphael Gatti Thomás Bryan. Meta Introdução. Introdução Desenvolvimento Tradicional Modelo MDA Benefícios Exemplos Conclusão. Introdução. Melhoria no desenvolvimento de software Evoluções tecnológicas Artefatos e Arquitetura Documentação
E N D
[MDA] Raphael Gatti Thomás Bryan
Meta Introdução • Introdução • Desenvolvimento Tradicional • Modelo • MDA • Benefícios • Exemplos • Conclusão
Introdução • Melhoria no desenvolvimento de software • Evoluções tecnológicas • Artefatos e Arquitetura • Documentação • OMG (Object Management Group)
Desenvolvimento Tradicional Foco no design de baixo nível Definidos recursos para aplicação Diagramas e textos especificados de acordo com a arquitetura.
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.
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.
Desenvolvimento Tradicional • Interoperabilidade Comunicação entre os sistemas Divisão do sistema em componentes
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.
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.”
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.
MDA Desenvolvimento Tradicional MDA
MDA • Modelos MDA Modelo de alto nível de abstração (PIM) Modelo específico para plataforma (PSM)
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.
MDA • Modelos MDA PSM (Plataform Specific Model) Transformação do PIM em um ou mais modelos. Gerado um PSM para cada plataforma específica.
MDA • Modelos MDA • Modelos MDA As três maiores transformações no processo de desenvolvimento MDA.
MDA • Modelos MDA
MDA • Modelos MDA Transformação feita utilizando mapeamentos.
Benefícios da MDA • Produtividade Foco em desenvolver o PIM Definir transformação dos modelos é uma tarefa difícil mas é feita uma única vez.
Benefícios da MDA • Portabilidade É alcançada utilizando o PIM. Uma vez definido o modelo pode facilmente ser portado para vários PSM.
Benefícios da MDA • Interoperabilidade Relacionamento entre PSMs, também chamados de pontes.
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.
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.
Exemplos • androMDA
Exemplos • androMDA
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)
Exemplos • androMDA Person.java
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.
Modelos MDA MOF (Meta Object Facility) Modelo UML Modelo de Carro Objeto
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; }