Desenvolvimento de Software Dirigido a Modelos

Document Sample
Desenvolvimento de Software Dirigido a Modelos Powered By Docstoc
					   Desenvolvimento de Software
Agenda:
        Dirigido a Modelos
Benefícios
Conceitos
Pontos de Vistas MDA : CIM,PIM, PSM
Transformações e Mapeamentos em MDA
Transformações por Metamodelos
Transformações com UML Profile
Metamodelo MDA
Padrões OMG e a Arquitetura MDA
Abordagens MDD: OO-Method e AndroMDA
O Programa FastStart da OMG
Problemas e Desafios dos Processos MDD

                Almir Buarque
              Conceitos Iniciais
• Modelo
 Um modelo de um sistema é a sua representação
 ( especificação) funcional, estrutural e comportamental.
• Dirigido a Modelos
 Porque provê meios de usar modelos para direcionar o curso
 de entendimento, projeto, construção, distribuição, operação,
 manutenção e modificação de um sistema.
• Arquitetura
 Arquitetura de um sistema é a especificação de suas partes e
 conectores, além das regras de interação dessas partes
 usando os conectores.
               Conceitos Iniciais
• Plataforma
  Uma plataforma é um conjunto de subsistemas e tecnologias
  que provê um conjunto coerente de funcionalidade através de
  interfaces e padrões de uso especificados, que qualquer
  aplicação (sistema) suportada por essa plataforma pode usar,
  sem ter que saber detalhes de como essa funcionalidade
  provida pela plataforma é implementada.
• Ponto de Vista
  Um ponto de vista de um sistema é uma técnica de abstração,
  usando um conjunto selecionado de conceitos arquiteturais e
  regras de estruturação que visa focar ou representar um
  aspecto (característica) dentro desse sistema.
                 Conceitos Iniciais
• Arquitetura Dirigida a Modelos (MDA)
    Arquitetura anunciada pelo grupo OMG em 2001 com o
    propósito de especificar sistemas através de Modelos e
    atender, de modo satisfatório, a necessidade cada vez mais
    emergente de:
 realizar manutenções em     aplicações
   integrá-las com outros sistemas
   mudar suas infra-estruturas
   alterar seus requisitos
   lidar com a frequente evolução e criação de novas tecnologias
    Benefícios do Desenvolvimento de
      Software Dirigido por Modelos
•   Interoperabilidade
•   Portabilidade
•   Produtividade - Automatização
•   Facilita Manutenção
•   Validação/Verificação
•   Melhor Qualidade do Produto
•   Redução de Custo e Esforço Desenvolvimento
            Pontos de Vista MDA
• CIM – Modelo Independente de Computação
  -  É uma visão do sistema a partir de um ponto de vista
  (viewpoint) independente de computação. O CIM não mostra
  detalhes da estrutura dos sistemas, sendo usualmente
  chamado de modelo de domínio ou modelo de negócio e usa,
  em sua especificação, um vocabulário familiar aos usuários do
  domínio (problema) em questão.
• PIM – Modelo Independente de Plataforma
  - Foca na operação do sistema (modelo computacional), mas
  escondendo os detalhes necessários para implantar esse
  modelo numa plataforma específica. O PIM é único para o
  sistema e não muda quando se varia de uma plataforma para
  outra.
            Pontos de Vista MDA
• PSM – Modelo Específico de Plataforma
 Este modelo é uma visão do sistema que agrega
  características e elementos constituintes de uma plataforma
  específica, contendo informações da tecnologia utilizada na
  aplicação como a linguagem de programação, os
  componentes de middleware, a arquitetura de hardware e de
  software.
 Para que isso seja possível é necessário o suporte de
  ferramentas que façam o mapeamendo adequado de uma
  especificação abstrata (PIM) para uma determinada
  plataforma.
Transformações e Mapeamentos em
              MDA
                Outras Transformações
                  Possíveis:
                 PSM => PIM (Engenharia
                  Reversa)
                 PIM => PIM, PSM => PSM
                  (Modelos de mesmo nível )
                 Implementação => PSM
                  (Engenharia Reversa)
                 PIM => Implementação
                 PIM => CIM ( Eng. Reversa)
Transformações por metamodelos
               • Transformações podem usar
                 diferentes técnicas:
                UML Profiles, uso de padrões (patterns),
                 marcas (markings), metamodelos e
                 transformações automáticas( algoritmos )
                Numa transformação por Metamodelos,
                 como ilustrado na figura, modelo 1 é
                 transformado num modelo 2, usando
                 como entrada do processo o metamodelo
                 A do modelo 1 e produzindo o modelo 2
                 expresso em seu metamodelo B
                Regras de mapeamentos precisas devem
                 ser de definidas para que essa
                 transformação seja possível.
Transformações com UML Profile
             • Em 2001, o OMG publicou a
               UML 2.0:
               – Action Semantics
               – Modelagem de processos de negócios,
                 , arquiteturas distribuídas e sistemas
                 heterogêneos
               – UML Profiles

                UML Profile é um mecanismo de
                 extensão    UML     que    auxilia   a
                 transformação de modelos , por
                 exemplo , de PIM para PSM específicos
        UML Profiles da OMG
Atualmente muitas extensões já estão padronizadas pela OMG,
algumas estão em processo de padronização e outras ainda em
discussão
O Metamodelo MDA
Padrões OMG e a Arquitetura MDA
      Camada Núcleo MDA - PIM
• Unified Modeling Language (UML): padrão que define uma
  linguagem de modelagem geral orientada a objetos para
  especificação, construção e documentação de artefatos de
  sistemas complexos de software.
• Common Warehouse Metamodel (CWM): padrão para
  armazenamento de dados que permite fácil manipulação
  dos mesmos entre ferramentas e plataformas de
  armazenamento em ambientes heterogêneos distribuídos.
• Meta Object Facility (MOF): padrão que define uma
  linguagem abstrata para definição de linguagens de
  modelagem (metamodelos). Ela é utilizada para descrever
  modelos da UML, CWM e do próprio MOF, além de definir
  o formato de intercâmbio para modelos, base do padrão
  XMI (XML Metadata Interchange).
        2ª Camada MDA - PSM
• XML Metadata Interchange (XMI): padrão para o
  intercâmbio de modelos através do mapeamento
  da linguagem definida pelo padrão MOF para o
  padrão XML do World Wide Web Consortium
  (W3C).
• Common Object Request Broker Architecture
  (CORBA): arquitetura que estabelece e simplifica
  a troca de dados entre sistemas distribuídos.

• Na camada PSM, pode-se ter também outros
  padrões como JAVA EJB, Microsoft . NET, etc.
      3ª Camada MDA - Serviços
• Na camada mais externa, são exibidos os
  serviços que a maioria dos domínios de
  aplicações necessitam:
  – Sistemas críticos de segurança, E-commerce,
    Financeiro, Saúde, Educação,etc...
• Esses serviços podem ser de segurança,
  persistência,  controle     de     transações,
  tratamentos de eventos, diretórios, etc.
       Abordagens MDD

• OO-Method
• AndroMDA
                    OO-Method
  Breve Histórico
• A primeira versão do OO-Method foi introduzida em 1992
  através da tese de PhD de Oscar Pastor, juntamente com a
  da linguagem formal de especificação de sistemas de
  informação – OASIS
• O método cobre todas a fases do processo de
  desenvolvimento de software, das fases iniciais de obtenção
  de requisitos, projeto e geração do produto final de software
  numa plataforma específica.
• O centro do desenvolvimento do software dirigido por
  modelos do OO-Method é o Esquema (Modelo) Conceitual ,
  conforme afirmação do Prof. Antoni Olivé (2005)
 “Para desenvolver um sistema de informação é necessário e
           suficiente definir seu esquema conceitual”
                     OO-Method
• Toni Morgan, defende a idéia de usar “ Extreme Non-
  Programing”      como argumento de que a principal
  atividade no desenvolvimento de software é modelagem, e
  não programação, pois modelagem está no espaço do
  problema, enquanto programar está no espaço da solução.

•    O objetivo final é tornar verdadeira a sentença:
    “ Modelo é o Código“, ao invés de “ o Código é o Modelo “

• Modelo Conceitual Executável: representa de modo
  completo e consistente todos os aspectos estáticos,
  dinânicos e de interação (interface usuário) de um sistema
    – é compilado através de um compilador de Modelos.
              XP versus XNP(MDD)
                          XP                        XNP
  Key skill           programming                 analysis

Rapid delivery   increment every 2 weeks    complete system in 2
                                                   hours
Maintenance           change code,             change model,
                         re-test                 regenerate
  Quality         repeated test/debug,     architecture, automation
 assurance        skilled programmers
Human view            program code             model extracts
                          (only)              (various formats)
   Motto         The code is the model     The model is the code
O processo básico de transformação
Trasnformações e Mapeamentos
MDA X OO-Method
                 Modelos OO-Method
 Modelo Objeto: Diagrama de Classes:
• Classes
     – Atributos
     – Precondições e Serviços
     – Restrições de Integridade
•   Relacionamento entre as Classes
     – Associação, Agregação e Composição
     – Herança
•   Agentes

 Modelo Dinâmico:
•   Diagrama de Transição de Estado – Ciclo de vida dos objetos
•   Diagrama de Interação de Objeto
    - Especifica as interações válidas entre os objetos através das transações,
    operações e gatilhos
          Modelos OO-Method
• Modelo Funcional
 O modelo funcional especifica os aspectos funcionais do
 sistema através de:
  – Descrição de como a execução dos eventos mudam o valor
     dos atributos das classes.
  – Acesso a dados de acordo com o Modelo Objeto
  – Definição de lógica seqüencial, Manipulação de classes,
     objetos e relacionamentos
  – Uso de operadores lógicos, aritméticos
• Modelo de Apresentação
 O modelo da apresentação especifica os requisitos de
 Interface de Usuário, modelando uma interface abstrata que é
 independente de plataforma ou dispositivo.
Modelo de Apresentação
                           OLIVANOVA
• OO-Method é implementado através do produto
  OlivaNova da Care Technologies, composto de duas
  ferramentas:
 O modelador que permite:
   –   Modelar objetos e negócios;
   –   Modelar dados;
   –   Modelar integração;
   –   Modelar sistemas legados;
   –   Modelar regras e limitações;
   –   Definir conceitualmente interfaces do usuário;
 A máquina de transformação que implementa todo o
  processo de compilação de modelos do OO-Method, gerando
  código fonte na plataforma de destino.
OLIVANOVA x Outras Ferramentas MDD
                                   Borland   Compuware      IBM         Sparx       OLIVANOVA
                                  Together    OptimalJ®   Rational     Systems          The
                                                          Software    Enterprise   Programming
                                                          Architect    Architect     Machine
      .NET® 1.1/2.0 Target          yes          no          yes          yes           yes
           Platform
      J2EE™ Target Platform         yes         yes         yes          yes           yes
      COM+ Target Platform        to some       no          no         to some         yes
                                  extent*                              extent*
         Multi Database             yes         yes         yes          yes           yes
          (any RDBMS)
     Bussines Logic in Model         no          no          no          no            yes
     Model Driven Application        no          no          no          no            yes
         generation 100%:
       Complete Application
      source code, Database
    Script, Full Documentation,
            On-Line Help
         Model Driven GUI            no          no          no          no            yes
      Generation: Rich Client
         and/or Web Client
    Model Driven Generation of       no          no          no          no            yes
         Data Access Layer
    Model Driven Generation of       no          no          no          no            yes
          User Roles, User
    Authentication and Access
                Rights
    Model Driven Generation of       no          no          no          no            yes
       Role specific Views
       3rd Party / Legacy            no          no          no          no            yes
      Systems Integration
            (e.g. SAP)
       XMI import/export            yes         yes         yes          yes           yes
        Eclipse® support            yes         yes         yes          yes           yes
       Visual Studio 2005®          yes          no         yes          yes           yes
              support
                    AndroMDA
• Ferramenta MDA Open Source (www.andromda.org/ )
• Está desenvolvida sobre Eclipse.
• Suporta arquiteturas como Spring, EJB, .Net, Hibernate,
  Struts, WebServices.
• É possível gerar componentes para qualquer linguagem: Java,
  .Net, HTML, PHP, C++, etc
• Pode ser utilizada pelos servidores de aplicação Jboss e
  TomCat.
• suporta UML2.0.
                           AndroMDA
 Cartuchos: São Plugins que AndroMDA utiliza para fazer a transformação de um
  modelo PIM > PSM em várias plataformas diferentes .
  - Para cada plataforma(tecnologia) PSM alvo é necessário o desenvolvimento de
  um cartucho que basicamente consiste na criação de um UML Profile .
 A ferramenta de melhor aceitação para modelar em UML e fazer a importação do
  metamodelo UML em XMI é a MagicDraw. Porém outras ferramentas podem ser
  utilizadas: Poseidon UML, Argo UML, Jude UML, Visual UML, etc.

 Versão 4.0 (Preview) do AndroMDA
   – permite a criação e utilização de metamodelos no padrão EMF (Eclipse Model
      Framework) , possibilitando transformação de modelos PIM( não apenas UML)
      para modelos PSM , além de geração de código fonte.
   – ATL ( Atlas Transformation Language) – Linguagem para transformações
      modelo-modelo (similar a QVT )
   – MOFScript para transformações model-text.
• OpenMDX( www.openmdx.org): principal concorrente open source do AndroMDA
 Lições Aprendidas na adoção de soluções MDA
 Muitas organizações que, nos últimos anos, vêm utilizando com sucesso
  soluções MDA, perceberam que um conjunto de práticas e passos
  consistentes devem ser levados em conta em se adotar um processo MDD
  automatizado:

1.   Examinar os modelos atualmente usados na empresa no seu processo de
     desenvolvimento e a conexão/correlação semântica entre os elementos
     desses modelos.
2.   Identificar as transformações candidatas para automação
3.   Especificar (documentar) os requisitos dessas transformações
4.    Criar os UML Profiles necessários
5.   Desenvolver o código da(s)s transformação(coes)
6.   Esboçar documentos de uso, empacotar e distribuir
            O Programa FastStart da OMG

• Recentemente, o grupo OMG lançou o programa “FastStart” para ajudar as
  organizações aprenderem sobre MDA e aplicar MDA nas arquiteturas de
  seus sistemas, na integração dos sistemas e nos seus processos de
  desenvolvimento de software.
• Durante programa FastStart , a organização recebe consultores da OMG
  para realizarem as seguintes atividades:
   – Análise inicial MDA
   – Revisão da Arquitetura Empresarial MDA
   – Plano de Transição MDA
   – Seminários Executivos MDA
   – Prática MDA
• Essas atividades geralmente duram 5 semanas e visam capacitar a
  empresa em MDA para que ela própria, sem ajuda de provedores externos,
  desenvolva seu processo MDA/MDD
  Problemas e Desafios dos Processos
                MDD
• Suporte a modelos orientados a “goals”, negócios, agentes e
  aspectos.
• Elevação dos níveis de abstrações dos modelos
• Melhor precisão semântica dos modelos em relação às
  características estáticas, dinâmicas e de apresentação (interação-
  usuário) dos sistemas;
• Melhores mapeamentos entre os modelos;
• Melhor transformação automática de modelos (automação);
• Melhor suporte à Validação de Modelos;
• Melhor integração com as plataformas específicas (PSM);
• Melhor e maior percentagem de código fonte gerado;
• Melhor suporte à rastreabilidade;
• Melhor suporte à engenharia reversa
• Suporte à computação autonômica
• Melhor Suporte a Testes Dirigido a Modelos
• Suporte a requisitos não-funcionais
                 Considerações Finais

• O Processo MDD ainda está na sua infância
   – Nem as linguagens (modelos) e nem as ferramentas se
     desenvolveram o suficiente para concretizar todas as suas
     promessas feitas.
   – O processo MDA, padronizado pela OMG, é apenas uma
     referência e pode suportar qualquer outro processo
     específico de desenvolvimento de software existente (RUP,
     XP, OPEN, Agentes, Aspectos, Formais, etc.) desde que se
     adapte e seja dado um foco especial em modelos e suas
     transformações.
   – Especialistas em Engenharia de Software e a própria
     OMG, apostam que MDD/MDA será o processo mais
     utilizado pelas Empresas nos próximos anos (futuro).
FIM

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:34
posted:11/16/2011
language:Portuguese
pages:35