Upload
elliando-dias
View
1.319
Download
0
Embed Size (px)
DESCRIPTION
Citation preview
Model Driven ArchitectureAndreano Lanusse
2
Conteúdo
Problemas comuns O que é a MDA? Quais os benefícios? Exemplos práticos Conclusão
3
Problemas Comuns
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
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, ...
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á
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!
8
Exemplo: Web Services
ebXML compliantsystem
Business ProfilesBusiness Scenarios
ebXMLRegistry
XML
Request Business Details1
Build Local SystemImplementation
Register Implementation DetailsRegister COMPANY A Profile
3
2
5Agree on Business Arrangement4
Query about COMPANY A profile
Download Scenarios and Profiles
DO BUSINESS TRANSACTIONS
6
COMPANY A
COMPANY BebXML compliant
system
Business ProfilesBusiness Scenarios
ebXMLRegistry
XML
Request Business Details1
Build Local SystemImplementation
Register Implementation DetailsRegister COMPANY A Profile
3
2
5Agree on Business Arrangement4
Query about COMPANY A profile
Download Scenarios and Profiles
DO BUSINESS TRANSACTIONS
6
COMPANY A
COMPANY BebXML compliant
system
Business ProfilesBusiness Scenarios
ebXMLRegistry
XML
Request Business Details1
Build Local SystemImplementation
Register Implementation DetailsRegister COMPANY A Profile
3
2
5Agree on Business Arrangement4
Query about COMPANY A profile
Download Scenarios and Profiles
DO BUSINESS TRANSACTIONS
6
COMPANY A
COMPANY B
9
O que é MDA?
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
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, ...
12
Model Driven Architecture
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
14
Construindo uma Aplicação MDA
Inicie com um Platform-Independent Model (PIM), representando a funcionalidade e o comportamento do negócio, sem influência dos detalhes tecnológicos.
Platform-Independent
Model
Um modelo detalhado, declarando pré e pós-condições em OCL e a semântica em Action
Language
15
Gerando o Modelo Específico para a Plataforma
Platform-Independent
Model
Mapear um PIM para o(s) Middleware(s) específico(s)
através de mapeamentos padronizados do OMG
A ferramenta MDA aplica um mapeamento para gerar o Platform-Specific Model (PSM) a partir do PIM. O código é parte automático e parte escrito à mão.
ModeloCORBA
ModeloJava/EJB
ModeloXML/SOAP
OutroModelo
16
Gerando as Implementações
Platform-Independent
Model
ModeloCORBA
A ferramenta MDA gera todo ou a maioria do código da implementação para a tecnologia selecionada pelo desenvolvedor.Modelo
Java/EJB
CORBA
ModeloXML/SOAP
Java/EJB XML/SOAP Outro
OutroModelo
Mapear o PSM para interfaces, código,
descritores de GUI, SQL queries, etc.
17
MDA: Ciclo Completo
CIMComputation
Independent Model
PIMPlatform
Independent Model
PSMPlatform
Specific Model
Transformação
Transformação
Código Fonte
Geração automática
18
Quais os Benefícios da MDA?
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”
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
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
22
Por que a ênfase no modelo?
“As ferramentas de modelagem visual reduzirãoa codificação ‘em cinco vezes’ nos
próximos dez anos.”— Simpósio do Gartner, março/2004
QVT Overview
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
25
Example Transformation
26
UML to RDB Example
UML Class model Relational Data Model
Model Query Viewtransformation
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
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)
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
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
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
Together 2006 - QVT by ExampleA few example QVTs
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.
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)
35
Exemplo Prático
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#
37
Como Funciona?
PIM
Delphi/C#
Executável .NETcom o modelo
Modelagem com UML e expressões OCL
Geração automática do códigoe do banco de dados
Utilização do modelo em tempo de execuçãopara realizar consultas e validações.Persistência, transações, versionamento, ...
38
Desenvolvimento com ECOPersistênciaPersistência
Plataforma .NET
IDE Delphi
Ferramentas ECOEditor OCL
UI
order = true;order = true;
Modelo:Modelo:UML & OCLUML & OCL
Lógica: C# / DelphiLógica: C# / Delphi
ECO Space Tools
Geração SchemaEvolução de SchemaValidação de ModelosConfiguração Bco Dados
Cliente.allInstances
TogetherTogetherRose Rose XMIXMI
39
ECO em Execução
order = true;order = true;
Plataforma .NET
Aplicação
ECO Space UI ECO Framework Mapeam
ento OR
PersistênciaRelacionamentoTransaçõesQuery OCL
Modelo:Modelo:UML & OCLUML & OCL
Lógica: C# / DelphiLógica: C# / Delphi
PersistênciaPersistência
40
Conclusão
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)
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
43
A Solução BorlandConstruída com a excelência e experiência de 22 anos
Valo
r par
a o
Neg
ócio
Evolução na entrega do Software
Ambientes de DesenvolvimentoProdutividade Pessoal do Desenvolvedor
Application Lifecycle Management Produtividade na equipe para diversos papéis
Software Delivery OptimizationProdutividade Organizacional através de Processos de Negócios Gerenciados
IDEs
ALM
44
Gartner espera que até 90% de projetos de software terão integração entre plataforma até 2009.
Posicionamento único no mercado de ALM
JavaApplication Lifecycle Management (ALM).NET
Microsoft IBM
IT Mgt → Requirements Mgt → Modeling → Development → Change/Configuration Mgt → Testing → Deployment
Borland
45
Soluções
Soluções, Tecnologia e Serviços disponíveis Hoje
Produtos
IT Management & Governance Requirements Definition & Management Change Management
Serviços
Borland Accelerate Consultoria em
Processos Implementação em
Tecnologia Treinamento
Suporte
Plan – Tempo Define – CaliberRM Design – Together Develop – JBuilder Test – Optimizeit Manage – StarTeam Platform – Core SDP Borland Developer Studio
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