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

Post on 17-Apr-2015

119 views 14 download

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

Viabilidade de Construção de

Software com MDD e MDA

André Sandri

Pesquisa em Ciência da ComputaçãoUNILASALLE – 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

Principais Conceitos

MDD

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

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

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.

MDA – Model Driven Architecture

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

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

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

MOF – Meta-object Facility

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.

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); }}

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

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.

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.

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

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

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.

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

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

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

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"

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.

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

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

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)

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?

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

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.

Leiam o artigo!

Muito obrigado!

André Sandriwww.sandri.cjb.net