Viabilidade de Construção de Software com MDD e MDA André Sandri Pesquisa em Ciência da...

30
Viabilidade de Construção de Software com MDD e MDA André Sandri Pesquisa em Ciência da Computação UNILASALLE – Canoas – RS Novembro de 2005

Transcript of Viabilidade de Construção de Software com MDD e MDA André Sandri Pesquisa em Ciência da...

Page 1: Viabilidade de Construção de Software com MDD e MDA André Sandri Pesquisa em Ciência da Computação UNILASALLE – Canoas – RS Novembro de 2005.

Viabilidade de Construção de

Software com MDD e MDA

André Sandri

Pesquisa em Ciência da ComputaçãoUNILASALLE – Canoas – RS

Novembro de 2005

Page 2: Viabilidade de Construção de Software com MDD e MDA André Sandri Pesquisa em Ciência da Computação UNILASALLE – Canoas – RS Novembro de 2005.

Introdução

MDD – Model Driven Development

MDA – Model Driven Architecture OMG - Object Management Group

Estudo da viabilidade da construção de software com MDD e MDA

Page 3: Viabilidade de Construção de Software com MDD e MDA André Sandri Pesquisa em Ciência da Computação UNILASALLE – Canoas – RS Novembro de 2005.

Principais Conceitos

MDD

MDA UML MOF XMI CWM PIM PSM Processo e Transformações

Page 4: Viabilidade de Construção de Software com MDD e MDA André Sandri Pesquisa em Ciência da Computação UNILASALLE – Canoas – RS Novembro de 2005.

MDD – Model Driven Development

Foco nos modelos Promete aumentar a produtividade,

inclusive na fase de manutenção Pesquisa da Compuware: ganhos

de 70% durante a fase de manutenção. A equipe MDD completou 5 recursos 37% mais rápido (165h contra 260h)

Eclipse - Projeto MDDi - Model Driven Development Integration

Page 5: Viabilidade de Construção de Software com MDD e MDA André Sandri Pesquisa em Ciência da Computação UNILASALLE – Canoas – RS Novembro de 2005.

OMG – Object Management Group

Em 1989, o foco era padrões middleware OO: CORBA;

Em seguida, UML; Em 2001, concluiu que a heterogeneidade

de tecnologias existentes no mercado era permanente;

Interoperabilidade? Com um sistema padronizado e público de modelos e interfaces independentes de linguagem, sistema ou protocolo.

Page 6: Viabilidade de Construção de Software com MDD e MDA André Sandri Pesquisa em Ciência da Computação UNILASALLE – Canoas – RS Novembro de 2005.

MDA – Model Driven Architecture

Page 7: Viabilidade de Construção de Software com MDD e MDA André Sandri Pesquisa em Ciência da Computação UNILASALLE – Canoas – RS Novembro de 2005.

MDA – Model Driven Architecture

Novos modelos abstratos (padrões) Dependentes de tecnologia Independentes de tecnologia

Contempla pelo menos um modelo independente e outro independente

Reutilização do modelo independente e dependente

Está ainda em sua infância

Page 8: Viabilidade de Construção de Software com MDD e MDA André Sandri Pesquisa em Ciência da Computação UNILASALLE – Canoas – RS Novembro de 2005.

UML – Unified Modeling Language

É a especificação mais utilizada Recursos essenciais:

Diagramas Estereótipos (stereotypes) Profiles (perfis) Constraints (restrições/regras)

UML 2.0 Principal evolução: modelagem visual Mais apropriado para MDA e para SOA

Page 9: Viabilidade de Construção de Software com MDD e MDA André Sandri Pesquisa em Ciência da Computação UNILASALLE – Canoas – RS Novembro de 2005.

MOF – Meta-object Facility

Define a linguagem utilizada para definir modelos padronizados!

Meta-modelos de UML e de CWM Permite construção de ferramentas Transformações entre os modelos UML é uma das linguagens de

modelagem definida com MOF

Page 10: Viabilidade de Construção de Software com MDD e MDA André Sandri Pesquisa em Ciência da Computação UNILASALLE – Canoas – RS Novembro de 2005.

MOF – Meta-object Facility

Page 11: Viabilidade de Construção de Software com MDD e MDA André Sandri Pesquisa em Ciência da Computação UNILASALLE – Canoas – RS Novembro de 2005.

MOF 2.0 – Meta-object Facility

QVT – Query/Views/Transformations

Principais componentes: Uma linguagem para a criação de visões sobre

os modelos; Uma linguagem para efetuar pesquisas sobre os

modelos; Uma linguagem declarativa para descrever

transformações; Uma linguagem visual para descrever

transformações.

Page 12: Viabilidade de Construção de Software com MDD e MDA André Sandri Pesquisa em Ciência da Computação UNILASALLE – Canoas – RS Novembro de 2005.

QVT – Query/Views/Transformations/* mapear cada classe persistente em uma tabela */relation ClassToTable { domain uml c:Class { namespace = p:Package {}, kind='Persistent', name=cn } domain rdbms t:Table { schema = s:Schema {}, name=cn, column = cl:Column { name=cn+'_tid', type='NUMBER'}, primaryKey = k:PrimaryKey { name=cn+'_pk', column=cl} } when { PackageToSchema(p, s); } where { AttributeToColumn(c, t); }}

Page 13: Viabilidade de Construção de Software com MDD e MDA André Sandri Pesquisa em Ciência da Computação UNILASALLE – Canoas – RS Novembro de 2005.

XMI – XML Metadata Interchange

Recomendado desde 1999 Baseado no padrão XML da W3C

XMI possibilita a transferência de modelos UML e meta-modelos baseados em MOF através do padrão XML DTD

Page 14: Viabilidade de Construção de Software com MDD e MDA André Sandri Pesquisa em Ciência da Computação UNILASALLE – Canoas – RS Novembro de 2005.

CWM – Common Warehouse Metamodel

Aplicações de Data Warehousing Meta-classes especiais em UML

Bancos de dados relacionais, registros e estruturas, OLAP, XML, transformações, visualização da informação, mineração de dados, banco de dados multidimensionais, processos e operações de data warehousing, entre outros.

Page 15: Viabilidade de Construção de Software com MDD e MDA André Sandri Pesquisa em Ciência da Computação UNILASALLE – Canoas – RS Novembro de 2005.

PIM – Platform-independent Model

Um PIM descreve um sistema completo para uma determinada necessidade de negócio.

Características principais: O PIM deve ser escrito para ser compreendido

e corrigido por outros profissionais. Deve ser compreendida por seres humanos e

por máquinas. O PIM deve ser independente de qualquer

tecnologia de execução.

Page 16: Viabilidade de Construção de Software com MDD e MDA André Sandri Pesquisa em Ciência da Computação UNILASALLE – Canoas – RS Novembro de 2005.

PSM – Platform-specific Model

Inversamente ao PIM, deve refletir conceitos e construções utilizados na tecnologia correspondente

São automaticamente gerados Necessitam ser compreendidos

apenas por ferramentas automatizadas de transformação e por peritos da tecnologia

Page 17: Viabilidade de Construção de Software com MDD e MDA André Sandri Pesquisa em Ciência da Computação UNILASALLE – Canoas – RS Novembro de 2005.

Processo de Construção

1. Construir o PIM;2. Transformar o PIM em PSMs;3. Transformar os PSMs em código.

Manutenção no PIM Manutenção no PSM Manutenção no código

Page 18: Viabilidade de Construção de Software com MDD e MDA André Sandri Pesquisa em Ciência da Computação UNILASALLE – Canoas – RS Novembro de 2005.

Estudo da Viabilidade

Viável principalmente para:

Projetos de médio a grande porte; Uma arquitetura com média ou alta

complexidade; Muito trabalho repetitivo; Pelo menos um talentoso arquiteto de

software.

Page 19: Viabilidade de Construção de Software com MDD e MDA André Sandri Pesquisa em Ciência da Computação UNILASALLE – Canoas – RS Novembro de 2005.

Papéis em um processo MDA

Processo MDA x Tradicional

PIM – Analista de Negócio PSM – Engenheiro de Software e

Programadores (tecnologias) Código - Programadores

Page 20: Viabilidade de Construção de Software com MDD e MDA André Sandri Pesquisa em Ciência da Computação UNILASALLE – Canoas – RS Novembro de 2005.

A escolha da ferramenta

Linguagens e ferramentas de transformação produtivas

Geração de código para diferentes linguagens

Geração de código para diferentes mecanismos de persistência, tecnologias e frameworks

Importar e exportar arquivos XMI Possibilidade de modelar em UML 2.0 Mecanismos de controle de concorrência Mecanismos que não destruam os

códigos-fonte

Page 21: Viabilidade de Construção de Software com MDD e MDA André Sandri Pesquisa em Ciência da Computação UNILASALLE – Canoas – RS Novembro de 2005.

Oracle JDeveloper 10g

Sincronização two-way XMI 1.1 com UML 1.3 a 1.5 Transformações feitas por

tecnologia proprietária Integração com AndroMDA

Interesse em adicionar futuramente mais recursos para MDA

Page 22: Viabilidade de Construção de Software com MDD e MDA André Sandri Pesquisa em Ciência da Computação UNILASALLE – Canoas – RS Novembro de 2005.

AndroMDA

Utiliza cartuchos (cartridges) Utiliza um mecanismo de script com

templates, extensível com implementações Java

Permite acessar todos os elementos UML

A entrada é um modelo PIM. A ferramenta transforma em PSM conforme a tecnologia escolhida.

Suporta a noção de "plataforma destino"

Page 23: Viabilidade de Construção de Software com MDD e MDA André Sandri Pesquisa em Ciência da Computação UNILASALLE – Canoas – RS Novembro de 2005.

IBM Rational

IBM Rational Software Architect UML 2.0 com meta-dados (MOF); Geração de código-fonte; Suporta OCL; Suporta a criação de meta-modelos.

Rational Rose XDE Developer Plus Integração com diversas IDEs; Protótipo da linguagem QVT.

Page 24: Viabilidade de Construção de Software com MDD e MDA André Sandri Pesquisa em Ciência da Computação UNILASALLE – Canoas – RS Novembro de 2005.

Borland Together Architect 2006 Distribuído com o Eclipse (e outros) Oferece todos os recursos necessários UML 2.0 Criação e utilização de profiles UML OCL 2.0 XMI 2.0 Recursos para trabalho em equipe Protótipo de QVT (depuração) Outros recursos

Page 25: Viabilidade de Construção de Software com MDD e MDA André Sandri Pesquisa em Ciência da Computação UNILASALLE – Canoas – RS Novembro de 2005.

ArcStyler 5.1

Todos os diagramas do UML 1.4 XMI 1.1, MOF 1.4, JMI 1.0 e QVT Colaboração em equipe, inclusive

dispersas geograficamente Recursos para gerência de projeto Utiliza Cartuchos, com um bom

número de transformações pré-definidas

Integra-se ao Borland CaliberRM e ferramentas da IBM Rational

Page 26: Viabilidade de Construção de Software com MDD e MDA André Sandri Pesquisa em Ciência da Computação UNILASALLE – Canoas – RS Novembro de 2005.

Compuware OptimalJ 4.0

Especializada para J2EE, possibilidade de geração de código para outras linguagens/tecnologias

Possui MOF, UML, CWM, XMI As transformações utilizam a Technology Patterns

(escritos em Java) para transformações do PIM para PSM e TPL - Template Pattern Language, para geração de código a partir do PSM

PIM (Domain Model), PSM (Application Model) e código (Code Model)

Possui active synchronization e tecnologia Guarded/Free Blocks

Integra-se ao Borland JBuilder e Macromedia Dreamweaver (compartilha códigos-fonte)

Page 27: Viabilidade de Construção de Software com MDD e MDA André Sandri Pesquisa em Ciência da Computação UNILASALLE – Canoas – RS Novembro de 2005.

Comparação das Ferramentas

UML: Qual versão? XMI: Qual a versão? Transformações: Quais as

linguagens? Re-geração sem destruir artefatos ou

trechos de código introduzidos manualmente?

Colaboração para trabalho em equipe?

Page 28: Viabilidade de Construção de Software com MDD e MDA André Sandri Pesquisa em Ciência da Computação UNILASALLE – Canoas – RS Novembro de 2005.

Comparação das Ferramentas

Ferramenta UML XMI Transformações Re-geração Colaboração

JDeveloper 1.5 1.1 Java Sim Não

AndroMDA - 1.1 Script, Java Não Não

IBM Rational

2.0 1.1 QVT, Java Sim Não

Together 2.0 2.0 QVT, Java Não Sim

ArcStyler 1.4 1.0 QVT, Java Sim Sim

OptimalJ 2.0 1.2 Java, TPL Sim Sim

Page 29: Viabilidade de Construção de Software com MDD e MDA André Sandri Pesquisa em Ciência da Computação UNILASALLE – Canoas – RS Novembro de 2005.

Conclusão

A escolha da ferramenta normalmente é influenciada por questões culturais e técnicas

Já existem ferramentas completas disponíveis para estabelecer um processo MDA

Basta conhecer MDA, conhecer os papéis, escolher a ferramenta, e capacitar os profissionais.

Page 30: Viabilidade de Construção de Software com MDD e MDA André Sandri Pesquisa em Ciência da Computação UNILASALLE – Canoas – RS Novembro de 2005.

Leiam o artigo!

Muito obrigado!

André Sandriwww.sandri.cjb.net