[mda] raphael gatti thomás bryan. 2 meta introdução introdução desenvolvimento tradicional...

30
[MDA] Raphael Gatti Thomás Bryan

Upload: internet

Post on 17-Apr-2015

121 views

Category:

Documents


10 download

TRANSCRIPT

Page 1: [MDA] Raphael Gatti Thomás Bryan. 2 Meta Introdução Introdução Desenvolvimento Tradicional Modelo MDA Benefícios Exemplos Conclusão

[MDA]

Raphael GattiThomás Bryan

Page 2: [MDA] Raphael Gatti Thomás Bryan. 2 Meta Introdução Introdução Desenvolvimento Tradicional Modelo MDA Benefícios Exemplos Conclusão

2

Meta Introdução

• Introdução

• Desenvolvimento Tradicional

• Modelo

• MDA

• Benefícios

• Exemplos

• Conclusão

Page 3: [MDA] Raphael Gatti Thomá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

Page 4: [MDA] Raphael Gatti Thomás Bryan. 2 Meta Introdução Introdução Desenvolvimento Tradicional Modelo MDA Benefícios Exemplos Conclusão

4

Desenvolvimento TradicionalFoco no design de baixo nível

Definidos recursos para aplicação

Diagramas e textos especificados de acordo com a arquitetura.

Page 5: [MDA] Raphael Gatti Thomás Bryan. 2 Meta Introdução Introdução Desenvolvimento Tradicional Modelo MDA Benefícios Exemplos Conclusão

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

Page 6: [MDA] Raphael Gatti Thomás Bryan. 2 Meta Introdução Introdução Desenvolvimento Tradicional Modelo MDA Benefícios Exemplos Conclusão

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

Page 7: [MDA] Raphael Gatti Thomás Bryan. 2 Meta Introdução Introdução Desenvolvimento Tradicional Modelo MDA Benefícios Exemplos Conclusão

7

• InteroperabilidadeComunicação entre os sistemas

Divisão do sistema em componentes

Desenvolvimento Tradicional

Page 8: [MDA] Raphael Gatti Thomás Bryan. 2 Meta Introdução Introdução Desenvolvimento Tradicional Modelo MDA Benefícios Exemplos Conclusão

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

Page 9: [MDA] Raphael Gatti Thomás Bryan. 2 Meta Introdução Introdução Desenvolvimento Tradicional Modelo MDA Benefícios Exemplos Conclusão

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

Page 10: [MDA] Raphael Gatti Thomás Bryan. 2 Meta Introdução Introdução Desenvolvimento Tradicional Modelo MDA Benefícios Exemplos Conclusão

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.

Page 11: [MDA] Raphael Gatti Thomás Bryan. 2 Meta Introdução Introdução Desenvolvimento Tradicional Modelo MDA Benefícios Exemplos Conclusão

11

MDADesenvolvimento Tradicional

MDA

Page 12: [MDA] Raphael Gatti Thomás Bryan. 2 Meta Introdução Introdução Desenvolvimento Tradicional Modelo MDA Benefícios Exemplos Conclusão

12

MDA

• Modelos MDA

Modelo de alto nível de abstração (PIM)

Modelo específico para plataforma (PSM)

Page 13: [MDA] Raphael Gatti Thomás Bryan. 2 Meta Introdução Introdução Desenvolvimento Tradicional Modelo MDA Benefícios Exemplos Conclusão

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.

Page 14: [MDA] Raphael Gatti Thomás Bryan. 2 Meta Introdução Introdução Desenvolvimento Tradicional Modelo MDA Benefícios Exemplos Conclusão

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.

Page 15: [MDA] Raphael Gatti Thomás Bryan. 2 Meta Introdução Introdução Desenvolvimento Tradicional Modelo MDA Benefícios Exemplos Conclusão

15

MDA

• Modelos MDA• Modelos MDA

As três maiores transformações no processo de desenvolvimento MDA.

Page 16: [MDA] Raphael Gatti Thomás Bryan. 2 Meta Introdução Introdução Desenvolvimento Tradicional Modelo MDA Benefícios Exemplos Conclusão

16

MDA

• Modelos MDA

Page 17: [MDA] Raphael Gatti Thomás Bryan. 2 Meta Introdução Introdução Desenvolvimento Tradicional Modelo MDA Benefícios Exemplos Conclusão

17

MDA

• Modelos MDATransformação feita utilizando mapeamentos.

Page 18: [MDA] Raphael Gatti Thomás Bryan. 2 Meta Introdução Introdução Desenvolvimento Tradicional Modelo MDA Benefícios Exemplos Conclusão

18

Benefícios da MDA

• ProdutividadeFoco em desenvolver o PIM

Definir transformação dos modelos é uma tarefa difícil mas é feita uma única vez.

Page 19: [MDA] Raphael Gatti Thomás Bryan. 2 Meta Introdução Introdução Desenvolvimento Tradicional Modelo MDA Benefícios Exemplos Conclusão

19

Benefícios da MDA

• PortabilidadeÉ alcançada utilizando o PIM.

Uma vez definido o modelo pode facilmente ser portado para vários PSM.

Page 20: [MDA] Raphael Gatti Thomás Bryan. 2 Meta Introdução Introdução Desenvolvimento Tradicional Modelo MDA Benefícios Exemplos Conclusão

20

Benefícios da MDA

• InteroperabilidadeRelacionamento entre PSMs, também chamados de pontes.

Page 21: [MDA] Raphael Gatti Thomás Bryan. 2 Meta Introdução Introdução Desenvolvimento Tradicional Modelo MDA Benefícios Exemplos Conclusão

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.

Page 22: [MDA] Raphael Gatti Thomás Bryan. 2 Meta Introdução Introdução Desenvolvimento Tradicional Modelo MDA Benefícios Exemplos Conclusão

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.

Page 23: [MDA] Raphael Gatti Thomás Bryan. 2 Meta Introdução Introdução Desenvolvimento Tradicional Modelo MDA Benefícios Exemplos Conclusão

23

Exemplos

• androMDA

Page 24: [MDA] Raphael Gatti Thomás Bryan. 2 Meta Introdução Introdução Desenvolvimento Tradicional Modelo MDA Benefícios Exemplos Conclusão

24

Exemplos• androMDA

Page 25: [MDA] Raphael Gatti Thomás Bryan. 2 Meta Introdução Introdução Desenvolvimento Tradicional Modelo MDA Benefícios Exemplos Conclusão

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)

Page 26: [MDA] Raphael Gatti Thomás Bryan. 2 Meta Introdução Introdução Desenvolvimento Tradicional Modelo MDA Benefícios Exemplos Conclusão

26

Exemplos• androMDA

Person.java

Page 27: [MDA] Raphael Gatti Thomás Bryan. 2 Meta Introdução Introdução Desenvolvimento Tradicional Modelo MDA Benefícios Exemplos Conclusão

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

Page 28: [MDA] Raphael Gatti Thomás Bryan. 2 Meta Introdução Introdução Desenvolvimento Tradicional Modelo MDA Benefícios Exemplos Conclusão

28

Perguntas

Page 29: [MDA] Raphael Gatti Thomás Bryan. 2 Meta Introdução Introdução Desenvolvimento Tradicional Modelo MDA Benefícios Exemplos Conclusão

29

Modelos MDA

Objeto

Modelo de Carro

Modelo UML

MOF (Meta Object Facility)

Page 30: [MDA] Raphael Gatti Thomás Bryan. 2 Meta Introdução Introdução Desenvolvimento Tradicional Modelo MDA Benefícios Exemplos Conclusão

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;

}