slides da apresentação do artigo

Propaganda
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
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.
2.
3.



Construir o PIM;
Transformar o PIM em PSMs;
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é Sandri
www.sandri.cjb.net
Download