O documento discute a Model Driven Architecture (MDA), incluindo seus benefícios como redução de custos, reutilização de código e independência de plataforma. A MDA usa modelos para gerar automaticamente código e artefatos específicos de plataforma a partir de modelos independentes de plataforma. O documento fornece exemplos de como a MDA pode ser aplicada usando UML, MOF e QVT.
4. Aplicações e o Ambiente
Desde o projeto (e às vezes até mesmo na análise) algumas
decisões são baseadas no ambiente onde a aplicação será
implantada e utilizada
Qualquer alteração nesse ambiente impacta diretamente,
podendo mesmo inviabilizar melhorias e atualizações
Muitas vezes é necessário alterar o código da aplicação para
acomodar as mudanças na tecnologia
Dificuldade em reutilizar componentes dependentes da
tecnologia anterior e incompatíveis com a nova
Resultado: altos custos e perda de oportunidades
4
5. Ambiente Heterogêneo
Linguagens de Programação
~3 milhões de programadores COBOL
~1 milhão de programadores C/C++
Java está crescendo bastante
.Net vem com toda a força
Sistemas Operacionais
Unix, VMS, MacOS, Windows (todos), PalmOS, ...
Dispositivos móveis e embutidos
Redes
Ethernet, ATM, IP, USB, ...
BlueTooth, 802.11b, ...
5
6. Principais Desafios
Preservar o investimento feito em software à medida em que o
panorama da infraestrutura muda ao redor
Monitorar a “próxima onda”
Reter profissionais qualificados
Manter a base de código existente
Integrar o que está sendo construído
Com o que já existe
E com o que virá
6
7. Onde pode haver consenso?
Não em hardware
Não em sistemas operacionais
Não em protocolos de rede
Não em linguagens de programação
Mas deve haver consenso nas interfaces e na
interoperabilidade!
7
8. Exemplo: Web Services
XML
Business Scenarios 1
Business Profiles
Request Business Details
COMPANY A
2
Build Local System
ebXML 3 Implementation
Register Implementation Details
Registry
Register COMPANY A Profile
Do
Qu
Qu
Qu
wn
e
e
er
4
y
y
y
nt
lo
o
o
ab
e
ad
b
b
em
ou
ou
ou
ang
Sc
Sc
Sc
tC
Arr
en
OM
ess
ar
rio
ro
s in
PA
oss
s
u
NY
nB S
an
an
an
eo ON
d
A
A
A
5 re TI
Pr
Pr
Pr
pr
Ag
r
r
AC
offf
of
illle
iiile
S
e
e
AN
s
s
s
TR 6
S
N ES
COMPANY B SI
BU
DO
ebXML compliant
system
8
10. O Que é MDA?
Uma nova maneira de especificar e construir sistemas
Baseada na modelagem em UML
Suporta o ciclo de vida completo: análise, projeto,
implementação, implantação, manutenção, evolução e integração
com sistemas posteriores
Construída para interoperabilidade e portabilidade
Minimiza os custos iniciais e maximiza o RSI
Aplica-se diretamente ao ambiente misto atual:
Linguagens de Programação
Sistemas Operacionais
Rede
Middleware
10
11. Quem Cuida da MDA?
OMG – Object Management Group
Organização sem fins lucrativos, controlada pelos membros
Borland, Microsoft, Boeing, HP, Ford, Fujitsu, Pfizer, Siemens...
Responsável pela padronização da UML, CORBA, ...
Disponibiliza as especificações gratuitamente
Promove palestras, seminários, artigos, produtos, cursos,
certificações, ...
11
13. Principais Tecnologias da MDA
UML (Unified Modeling Language)
Notação padronizada mundialmente
Inclui a OCL (Object Constraint Language)
XMI (XML Metadata Interchange)
Padrão para troca de informações de modelos UML
CWM (Common Warehouse Metamodel)
Integração das últimas iniciativas de Data Warehouse
MOF (Meta-Object Facility)
Repositório padronizado
13
14. Construindo uma Aplicação MDA
Um modelo detalhado, Inicie com um
Platform- declarando pré e pós- Platform-Independent
Independent condições em OCL e a Model (PIM),
Model semântica em Action
representando a
Language
funcionalidade e o
comportamento do
negócio, sem
influência dos
detalhes tecnológicos.
14
15. Gerando o Modelo Específico para a Plataforma
Mapear um PIM para o(s) A ferramenta MDA
Middleware(s) específico(s)
Platform- através de mapeamentos
aplica um
Independent
padronizados do OMG mapeamento para
Model gerar o Platform-
Specific Model (PSM) a
partir do PIM.
Modelo Modelo Modelo Outro
CORBA Java/EJB XML/SOAP Modelo O código é parte
automático e parte
escrito à mão.
15
16. Gerando as Implementações
Mapear o PSM para A ferramenta MDA
Platform- interfaces, código, gera todo ou a maioria
Independent descritores de GUI, SQL do código da
Model queries, etc.
implementação para a
tecnologia
selecionada pelo
Modelo Modelo Modelo Outro desenvolvedor.
CORBA Java/EJB XML/SOAP Modelo
CORBA Java/EJB XML/SOAP Outro
16
17. MDA: Ciclo Completo
CIM
Computation
Independent Model Transformação
PIM
Platform Transformação
Independent Model
Geração automática
PSM
Platform
Specific Model
Código Fonte
17
19. Benefícios da MDA
Suporte total para uma “arquitetura de 20 anos” por todo o
ciclo de vida da aplicação
Integração suave através das fronteiras intra- e inter-negócios
e entre tecnologias de infra-estrutura
Custos reduzidos do início ao fim
Reutilização de aplicações, código, treinamento e pessoas
Representação do negócio independente da tecnologia
Escalabilidade, robustez e segurança via código gerado
Abordagem estável baseada no modelo maximiza o RSI
Inclusão rápida na “próxima onda”
19
20. Benefícios da MDA
Redução de erros
Disciplina arquitetural
Reusabilidade
Redução no prazo de entrega
Portabilidade
Interoperabilidade
Documentação
Manutenção
Dirigida pelo modelo
20
21. E o Desenvolvedor?
Atua na personalização das transformações PIM PSM
Por causa da geração automática de código (parcial ou total),
fica livre de muitos detalhes de baixo nível, relacionados à
implementação específica para a tecnologia envolvida
Pode dedicar mais tempo aos requisitos de negócio, interface
com o usuário, testes, documentação
Reaproveita melhor os componentes
Viabiliza muitas integrações com menor esforço
Observa facilidades na manutenção evolutiva das aplicações
21
22. Por que a ênfase no modelo?
“As ferramentas de modelagem visual reduzirão
a codificação ‘em cinco vezes’ nos
próximos dez anos.”
— Simpósio do Gartner, março/2004
22
24. Query-View-Transformation
QVT specification is the heart of Model Driven Architecture
Queries take a model as input and select specific elements
from that model
Views are models that are derived from other models
Transformations take a model as input and update it or create
a new model
24
26. UML to RDB Example
UML Class model Relational Data Model
Model Query View
transformation
26
27. Key Benefits of QVT
Core benefit of MDA
Smaller, manageable models operating in concert versus huge, monolithic
models
Models become “usable” development artifact
avoid intermediate work products
Enables intelligent code generation
Insulate models and applications from deployment platform technology
reuse made into reality
27
28. QVT in context
QVT might be used to:
Transform
business process model object model (PIM to PIM)
Analysis object model into Business Object model (PIM to PIM)
Object model to data model (PIM to PIM or PIM to PSM)
Object model to detailed object model (PIM to PSM)
28
29. Applicable Benefits
Intermediate work products vanish due to clear value of all
models
Repeatable, high-quality approach to software
design/development
Automated traceability between models, queries,
transformations and views
29
30. Transformations
QVT provides language to implement model-to-model transformations
QVT fully supports OCL 2.0 expressions
Query libraries
• Reusable libraries of QVT mappings
• Traceability
• Automated traceability when executing mapping
• Extensible
• QVT can call custom Java methods
30
31. QVT Language Overview
Together® Architect 2006 implementation based on the
revised submission for MOF 2.0 Query/View/Transformation
RFP (OMG document ad/05-03-02)
Supports operational transformations
Two types of transformation methods: Mappings and Queries
31
33. Transforming a Use Case Model to a Class Model
This transformation automates the construction of a set of use
case realization classes
It is rather simple: a 1-to-1 mapping from Actor to Class. Use
Cases owned by the Actor are created as Operations within the
Class.
33
34. Transforming a PIM to a PSM
As a basic step toward elaborating the PSM, this QVT simply
adds scaffolding code (e.g., getters and setters)
34
36. Delphi 2006 e o ECO III
Enterprise Core Objects
Ambiente de modelagem integrado (Together)
Geração automática de código
Geração automática do esquema do banco de dados
Engenharia reversa do banco de dados
Gerenciamento do espaço de objetos em tempo de execução
Persistência automática dos objetos
Versionamento de objetos
Transações
Suporte a aplicações cliente/servidor, Web e distribuídas
Disponível para Delphi.Net e C#
36
37. Como Funciona?
PIM Modelagem com UML e expressões OCL
Geração automática do código
Delphi/C#
e do banco de dados
Utilização do modelo em tempo de execução
Executável .NET para realizar consultas e validações.
com o modelo
Persistência, transações, versionamento, ...
37
38. Desenvolvimento com ECO
IDE Delphi Together
Modelo:
Rose
UML & OCL XMI
Lógica: C# / Delphi order = true; order = true;
UI Ferramentas ECO Space Tools
ECO
Geração Schema
Persistência
Persistência
Editor OCL
Cliente.allInstances
Evolução de Schema
Validação de Modelos
Configuração Bco Dados
Plataforma .NET
38
39. ECO em Execução
Aplicação Modelo:
UML & OCL
Lógica: C# / Delphi order = true; order = true;
UI ECO Framework ECO Space
Mapeamento OR
Persistência
Persistência
Persistência
Relacionamento
Transações
Query OCL
Plataforma .NET
39
41. Conclusão
A MDA é uma proposta interessante para resolver muitos
problemas enfrentados hoje
Por ser uma iniciativa independente de fornecedor assegura a
continuidade, objetividade e compatibilidade
Já existem diversas ferramentas que implementam
parcialmente
A Borland tem um forte envolvimento no OMG
Podemos esperar maior suporte à MDA no futuro próximo
Não esquecer dos processos e conhecimentos necessários
(UML, OOAD, metodologia e ferramentas adequadas)
41
42. Glossário
BPM – Business process Modeling
SOA – Service Oriented Architecture
CORBA – Common Object Request Broker Architecture
J2EE – Java 2 Enterprise Edition
MDA – Model Driven Architecture
MOF – Meta Object Facility
EMOF – Essential MOF
CMOF – Complete MOF
OCL – Object Constraint Language
PIM – Platform Independent Model
PSM – Platform Specific Model
QVT – Query View Transformation
UML - Unified Modeling Language
XMI – XML Model Interchange
42
43. A Solução Borland
Construída com a excelência e experiência de 22 anos
Software Delivery Optimization
Produtividade Organizacional através
Valor para o Negócio
de Processos de Negócios
Gerenciados
Application Lifecycle Management
Produtividade na equipe para diversos papéis
ALM
Ambientes de Desenvolvimento
Produtividade Pessoal do Desenvolvedor
IDEs
Evolução na entrega do Software
43
44. Posicionamento único no mercado de ALM
IT Mgt → Requirements Mgt → Modeling → Development → Change/Configuration Mgt → Testing → Deployment
Application Lifecycle Management (ALM)
.NET Java
Microsoft Borland IBM
Gartner espera que até 90% de projetos de software terão integração entre
plataforma até 2009.
44
45. Soluções, Tecnologia e Serviços disponíveis Hoje
Soluções
IT Management & Governance
Requirements Definition & Management
Change Management
Produtos Serviços
Plan – Tempo Borland Accelerate
Define – CaliberRM Consultoria em
Design – Together Processos
Implementação em
Develop – JBuilder
Tecnologia
Test – Optimizeit
Treinamento
Manage – StarTeam
Suporte
Platform – Core SDP
Borland Developer Studio
45
46. Para Saber Mais
www.omg.org/mda
Site oficial da MDA
www.pcoad.com
Site pessoal do Dr. Peter Coad, onde podem ser encontrado
material sobre OOAD, arquétipos, UML em cores, FDD, ...
www.featuredrivendevelopment.com
Site oficial da FDD
bdn.borland.com
Borland Developer Network, com artigos e apresentações
46