[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
Download

Modelos MDA - cesarkallas.net