[mda]
DESCRIPTION
[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 - PowerPoint PPT PresentationTRANSCRIPT
[MDA]
Raphael GattiThomás Bryan
2
Meta Introdução
• Introdução
• Desenvolvimento Tradicional
• Modelo
• MDA
• Benefícios
• Exemplos
• Conclusão
3
• Melhoria no desenvolvimento de software
• Evoluções tecnológicas
• Artefatos e Arquitetura
• Documentação
• OMG (Object Management Group)
Introdução
4
Desenvolvimento TradicionalFoco no design de baixo nível
Definidos recursos para aplicação
Diagramas e textos especificados de acordo com a arquitetura.
5
• ProdutividadeNos 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
6
• PortabilidadeIndustria 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
7
• InteroperabilidadeComunicação entre os sistemas
Divisão do sistema em componentes
Desenvolvimento Tradicional
8
• Manutenção e Problemas na DocumentaçãoDocumentação é ponto fraco no desenvolvimento.
Problema de manutenção da documentação.
Boa parte dos desenvolvedores acredita que a tarefa principal é produzir código.
Desenvolvimento Tradicional
9
• 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.”
Modelo
10
MDA
• MDA e Ciclo de VidaAbordagem 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.
11
MDADesenvolvimento Tradicional
MDA
12
MDA
• Modelos MDA
Modelo de alto nível de abstração (PIM)
Modelo específico para plataforma (PSM)
13
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.
14
MDA
• Modelos MDA
PSM (Plataform Specific Model)Transformação do PIM em um ou mais modelos.
Gerado um PSM para cada plataforma específica.
15
MDA
• Modelos MDA• Modelos MDA
As três maiores transformações no processo de desenvolvimento MDA.
16
MDA
• Modelos MDA
17
MDA
• Modelos MDATransformação feita utilizando mapeamentos.
18
Benefícios da MDA
• ProdutividadeFoco em desenvolver o PIM
Definir transformação dos modelos é uma tarefa difícil mas é feita uma única vez.
19
Benefícios da MDA
• PortabilidadeÉ alcançada utilizando o PIM.
Uma vez definido o modelo pode facilmente ser portado para vários PSM.
20
Benefícios da MDA
• InteroperabilidadeRelacionamento entre PSMs, também chamados de pontes.
21
Benefícios da MDA
• Manutenção e DocumentaçãoModelo é 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.
22
Exemplos
• androMDAFerramenta 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.
23
Exemplos
• androMDA
24
Exemplos• androMDA
25
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)
26
Exemplos• androMDA
Person.java
27
• 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.
Conclusão
28
Perguntas
29
Modelos MDA
Objeto
Modelo de Carro
Modelo UML
MOF (Meta Object Facility)
30
Transformação
Transformation SimpleAssociationToAttribute (UML, UML) {params -- none
sourceae : UML::AssociationEnd;
targetatt : UML::Attribute;
source conditionae.upper <= 1;
target conditionatt.visibility = VisibilityKind::public andatt.type.isTypeOf(Class);
unidirectional;mapping
ae.name <~> att.name;ae.type <~> att.type;
}