SlideShare uma empresa Scribd logo
1 de 48
Baixar para ler offline
Model Driven Architecture
        Andreano Lanusse
    andreano.lanusse@borland.com
Conteúdo

       Problemas comuns
       O que é a MDA?
       Quais os benefícios?
       Exemplos práticos
       Conclusão




2
Problemas Comuns




3
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
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
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
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
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
O que é MDA?




9
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
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
Model Driven Architecture




12
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
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
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
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
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
Quais os Benefícios da MDA?




18
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
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
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
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
QVT Overview
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
Example Transformation




25
UML to RDB Example

      UML Class model  Relational Data Model




          Model               Query                    View
                                      transformation


26
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
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
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
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
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
Together 2006 - QVT by Example
         A few example QVTs
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
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
Exemplo Prático




35
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
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
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
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
Conclusão




40
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
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
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
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
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
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
Perguntas!




                    Andreano Lanusse
              andreano.lanusse@borland.com




47
Obrigado!




                   Andreano Lanusse
             andreano.lanusse@borland.com




48

Mais conteúdo relacionado

Semelhante a Borland-Model Driven Architecture

Semelhante a Borland-Model Driven Architecture (20)

Ferramentas de análise e resolução de problemas na
Ferramentas de análise e resolução de problemas naFerramentas de análise e resolução de problemas na
Ferramentas de análise e resolução de problemas na
 
Apresentação Diferencia
Apresentação DiferenciaApresentação Diferencia
Apresentação Diferencia
 
Apresentação 4 t03
Apresentação 4 t03Apresentação 4 t03
Apresentação 4 t03
 
Apresentação 4T03
Apresentação 4T03Apresentação 4T03
Apresentação 4T03
 
Rh rio2012 flavio mendes ibm
Rh rio2012 flavio mendes ibmRh rio2012 flavio mendes ibm
Rh rio2012 flavio mendes ibm
 
Itamaraty
ItamaratyItamaraty
Itamaraty
 
2 ll 28
2 ll 282 ll 28
2 ll 28
 
Apresentacao rio+20
Apresentacao rio+20Apresentacao rio+20
Apresentacao rio+20
 
SegurançA E Ruby On Rails
SegurançA E Ruby On RailsSegurançA E Ruby On Rails
SegurançA E Ruby On Rails
 
Reserva técnica iel teste pdf
Reserva técnica iel teste pdfReserva técnica iel teste pdf
Reserva técnica iel teste pdf
 
Plano de Negócios e Gestão 2012-2016
Plano de Negócios e Gestão 2012-2016Plano de Negócios e Gestão 2012-2016
Plano de Negócios e Gestão 2012-2016
 
2010 01 27 Como Colaborar Com Projetos Opensource Com O Git Hub
2010 01 27 Como Colaborar Com Projetos Opensource Com O Git Hub2010 01 27 Como Colaborar Com Projetos Opensource Com O Git Hub
2010 01 27 Como Colaborar Com Projetos Opensource Com O Git Hub
 
Pontualidade
PontualidadePontualidade
Pontualidade
 
ApresentaçãO Vai
ApresentaçãO VaiApresentaçãO Vai
ApresentaçãO Vai
 
Cartilha sobre Cadastramento de usuários de água produzida pelo IGAM
Cartilha sobre Cadastramento de usuários de água produzida pelo IGAMCartilha sobre Cadastramento de usuários de água produzida pelo IGAM
Cartilha sobre Cadastramento de usuários de água produzida pelo IGAM
 
Geo go
Geo goGeo go
Geo go
 
Reserva técnica iel
Reserva técnica ielReserva técnica iel
Reserva técnica iel
 
Reserva técnica iel 22222
Reserva técnica iel 22222Reserva técnica iel 22222
Reserva técnica iel 22222
 
Cobit 4.1 - PO10
Cobit 4.1 - PO10Cobit 4.1 - PO10
Cobit 4.1 - PO10
 
DUO
DUODUO
DUO
 

Mais de elliando dias

Clojurescript slides
Clojurescript slidesClojurescript slides
Clojurescript slideselliando dias
 
Why you should be excited about ClojureScript
Why you should be excited about ClojureScriptWhy you should be excited about ClojureScript
Why you should be excited about ClojureScriptelliando dias
 
Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data StructuresFunctional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structureselliando dias
 
Nomenclatura e peças de container
Nomenclatura  e peças de containerNomenclatura  e peças de container
Nomenclatura e peças de containerelliando dias
 
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better AgilityPolyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agilityelliando dias
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Librarieselliando dias
 
How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!elliando dias
 
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the WebA Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Webelliando dias
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduinoelliando dias
 
Incanter Data Sorcery
Incanter Data SorceryIncanter Data Sorcery
Incanter Data Sorceryelliando dias
 
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine DesignFab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine Designelliando dias
 
The Digital Revolution: Machines that makes
The Digital Revolution: Machines that makesThe Digital Revolution: Machines that makes
The Digital Revolution: Machines that makeselliando dias
 
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.elliando dias
 
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at FacebookHadoop and Hive Development at Facebook
Hadoop and Hive Development at Facebookelliando dias
 
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case StudyMulti-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Studyelliando dias
 

Mais de elliando dias (20)

Clojurescript slides
Clojurescript slidesClojurescript slides
Clojurescript slides
 
Why you should be excited about ClojureScript
Why you should be excited about ClojureScriptWhy you should be excited about ClojureScript
Why you should be excited about ClojureScript
 
Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data StructuresFunctional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structures
 
Nomenclatura e peças de container
Nomenclatura  e peças de containerNomenclatura  e peças de container
Nomenclatura e peças de container
 
Geometria Projetiva
Geometria ProjetivaGeometria Projetiva
Geometria Projetiva
 
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better AgilityPolyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agility
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Libraries
 
How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!
 
Ragel talk
Ragel talkRagel talk
Ragel talk
 
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the WebA Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Web
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduino
 
Minicurso arduino
Minicurso arduinoMinicurso arduino
Minicurso arduino
 
Incanter Data Sorcery
Incanter Data SorceryIncanter Data Sorcery
Incanter Data Sorcery
 
Rango
RangoRango
Rango
 
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine DesignFab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine Design
 
The Digital Revolution: Machines that makes
The Digital Revolution: Machines that makesThe Digital Revolution: Machines that makes
The Digital Revolution: Machines that makes
 
Hadoop + Clojure
Hadoop + ClojureHadoop + Clojure
Hadoop + Clojure
 
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.
 
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at FacebookHadoop and Hive Development at Facebook
Hadoop and Hive Development at Facebook
 
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case StudyMulti-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Study
 

Borland-Model Driven Architecture

  • 1. Model Driven Architecture Andreano Lanusse andreano.lanusse@borland.com
  • 2. Conteúdo  Problemas comuns  O que é a MDA?  Quais os benefícios?  Exemplos práticos  Conclusão 2
  • 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
  • 9. O que é MDA? 9
  • 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
  • 18. Quais os Benefícios da MDA? 18
  • 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
  • 32. Together 2006 - QVT by Example A 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. 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
  • 47. Perguntas! Andreano Lanusse andreano.lanusse@borland.com 47
  • 48. Obrigado! Andreano Lanusse andreano.lanusse@borland.com 48