Arquitetura orientada a modelo

Model Driven Architecture ( MDA ) é uma abordagem de design de software para o desenvolvimento de sistemas de software. Ele fornece um conjunto de diretrizes para a estruturação de especificações, que são expressas em modelos . A Model Driven Architecture é um tipo de engenharia de domínio e suporta a engenharia orientada a modelos de sistemas de software. Foi lançado pelo Object Management Group (OMG) em 2001. [1]

Visão geral

Model Driven Architecture® (MDA®) "fornece uma abordagem para derivar valor de modelos e arquitetura em suporte ao ciclo de vida completo de sistemas físicos, organizacionais e de TI". Um modelo é uma (representação de) uma abstração de um sistema. O MDA® fornece valor ao produzir modelos em vários níveis de abstração, desde uma visão conceitual até o menor detalhe de implementação. A literatura OMG fala de três desses níveis de abstração, ou pontos de vista arquitetônicos: o modelo independente de computação (CIM), o modelo independente de plataforma (PIM) e o modelo específico da plataforma(PSM). O CIM descreve um sistema conceitualmente, o PIM descreve os aspectos computacionais de um sistema sem referência às tecnologias que podem ser usadas para implementá-lo e o PSM fornece os detalhes técnicos necessários para implementar o sistema. O Guia OMG observa, no entanto, que esses três pontos de vista arquitetônicos são úteis, mas são apenas três dos muitos pontos de vista possíveis. [2]

A organização OMG fornece especificações em vez de implementações, geralmente como respostas a solicitações de propostas (RFPs). As implementações vêm de empresas privadas ou grupos de código aberto.

Padrões relacionados

O modelo MDA está relacionado a vários padrões, incluindo Unified Modeling Language (UML), Meta-Object Facility (MOF), XML Metadata Interchange (XMI), Enterprise Distributed Object Computing (EDOC), Software Process Engineering Metamodel (SPEM). , e o Common Warehouse Metamodel (CWM). Observe que o termo “arquitetura” em Model Driven Architecture não se refere à arquitetura do sistema que está sendo modelado, mas sim à arquitetura dos vários padrões e formas de modelo que servem como base tecnológica para o MDA. [ citação necessária ]

UML executável foi o perfil UML usado quando o MDA nasceu. Agora, o OMG está promovendo o fUML . (A linguagem de ação para fUML é ALF.)

Marca comercial

O Object Management Group detém marcas registradas no termo Model Driven Architecture e seu acrônimo MDA, bem como marcas registradas para termos como: Model Based Application Development, Model Driven Application Development, Model Based Application Development, Model Based Programming, Model Driven Systems, e outros. [3]

Tópicos de Arquitetura Orientada a Modelos

Abordagem MDA

A OMG enfoca a Model Driven Architecture® na engenharia avançada, ou seja, produzindo código a partir de diagramas de modelagem abstratos e elaborados por humanos (por exemplo, diagramas de classe) [ citação necessária ] . O grupo ADTF (Analysis and Design Task Force) da OMG lidera esse esforço. Com algum humor, o grupo escolheu ADM (MDA ao contrário) para nomear o estudo de engenharia reversa. O ADM decodifica para a modernização orientada pela arquitetura. O objetivo do ADM é produzir padrões para engenharia reversa baseada em modelo de sistemas legados. [4] Knowledge Discovery Metamodel (KDM) é o mais avançado desses esforços e descreve os sistemas de informação em termos de vários ativos (programas, especificações, dados, arquivos de teste, esquemas de banco de dados, etc.).

Como os conceitos e tecnologias usados ​​para realizar projetos e os conceitos e tecnologias usados ​​para realizar arquiteturas mudaram em seu próprio ritmo, desacoplá-los permite que os desenvolvedores de sistemas escolham o melhor e mais adequado em ambos os domínios. O design aborda os requisitos funcionais ( casos de uso ), enquanto a arquitetura fornece a infraestrutura por meio da qual os requisitos não funcionais, como escalabilidade, confiabilidade e desempenho, são realizados. A MDA prevê que o modelo independente de plataforma (PIM), que representa um projeto conceitual que realiza os requisitos funcionais, sobreviverá às mudanças nas tecnologias de realização e arquiteturas de software .

De particular importância para a Model Driven Architecture é a noção de transformação do modelo . Uma linguagem padrão específica para transformação de modelos foi definida pela OMG chamada QVT .

ferramentas MDA

A organização OMG fornece especificações aproximadas em vez de implementações, geralmente como respostas a Solicitações de Propostas (RFPs). O OMG documenta o processo geral em um documento chamado Guia do MDA.

Basicamente, uma ferramenta MDA é uma ferramenta utilizada para desenvolver, interpretar, comparar, alinhar, medir, verificar, transformar, etc. modelos ou metamodelos. [5] Na seção seguinte, "modelo" é interpretado como significando qualquer tipo de modelo (por exemplo, um modelo UML) ou metamodelo (por exemplo, o metamodelo CWM). Em qualquer abordagem MDA, temos essencialmente dois tipos de modelos: os modelos iniciais são criados manualmente por agentes humanos, enquanto os modelos derivados são criados automaticamente por programas. Por exemplo, um analista pode criar um modelo inicial UML a partir de sua observação de alguma situação de negócios solta, enquanto um modelo Java pode ser derivado automaticamente desse modelo UML por uma operação de transformação de modelo .

Uma ferramenta MDA pode ser uma ferramenta usada para verificar modelos quanto à integridade, inconsistências ou condições de erro e aviso.

Algumas ferramentas executam mais de uma das funções listadas acima. Por exemplo, algumas ferramentas de criação também podem ter recursos de transformação e teste. Existem outras ferramentas que são só de criação, só de apresentação gráfica, só de transformação, etc.

As implementações das especificações OMG vêm de empresas privadas ou grupos de código aberto . Uma fonte importante de implementações para especificações OMG é a Eclipse Foundation (EF). Muitas implementações dos padrões de modelagem OMG podem ser encontradas no Eclipse Modeling Framework (EMF) ou Graphical Modeling Framework (GMF), a Fundação Eclipse também está desenvolvendo outras ferramentas de vários perfis como GMT. A conformidade do Eclipse com as especificações OMG geralmente não é rígida. Isso é verdade, por exemplo, para o padrão EMOF da OMG, que a EMF aproxima com sua implementação Ecore. Mais exemplos podem ser encontrados no projeto M2M implementando o padrão QVT ou no projeto M2T implementando o padrão MOF2Text.

Deve-se ter cuidado para não confundir a Lista de ferramentas MDA e a Lista de ferramentas UML , sendo a primeira muito mais ampla. Esta distinção pode ser feita de forma mais geral, distinguindo 'ferramentas de metamodelo variável' e 'ferramentas de metamodelo fixo'. Uma ferramenta UML CASE é tipicamente uma 'ferramenta de metamodelo fixa', pois foi programada para funcionar apenas com uma determinada versão do metamodelo UML (por exemplo, UML 2.1). Pelo contrário, outras ferramentas têm capacidades genéricas internas que lhes permitem adaptar-se a metamodelos arbitrários ou a um tipo particular de metamodelos.

Normalmente, as ferramentas MDA concentram-se na especificação de arquitetura rudimentar, embora em alguns casos as ferramentas sejam independentes de arquitetura (ou independentes de plataforma).

Exemplos simples de especificações de arquitetura incluem:

  • Selecionando uma das várias arquiteturas de referência suportadas, como Java EE ou Microsoft .NET ,
  • Especificar a arquitetura em um nível mais refinado, incluindo a escolha da tecnologia de camada de apresentação, tecnologia de camada de lógica de negócios, tecnologia de persistência e tecnologia de mapeamento de persistência (por exemplo, mapeador objeto-relacional).
  • Metadados: informações sobre os dados.

Preocupações MDA

Alguns conceitos-chave que sustentam a abordagem MDA (lançada em 2001) foram elucidados pela primeira vez pelo método Shlaer-Mellor durante o final dos anos 1980. De fato, um padrão técnico ausente na abordagem MDA (o de uma sintaxe de linguagem de ação para UML executável ) foi superado por alguns fornecedores ao adaptar a Shlaer-Mellor Action Language original (modificada para UML) [ citação necessária ] . No entanto, durante este período, a abordagem MDA não ganhou aceitação da indústria; com o Gartner Group ainda identificando o MDA como uma tecnologia "em ascensão" em seu " Hype Cycle " de 2006, [6] e a Forrester Research declarando o MDA como "DOA" em 2006.[7] As preocupações potenciais que foram levantadas com a abordagem OMG MDA incluem:

  • Padrões Incompletos: A abordagem MDA é sustentada por uma variedade de padrões técnicos, alguns dos quais ainda não foram especificados (por exemplo, uma linguagem semântica de ação para xtUML ), ou ainda devem ser implementados de maneira padrão (por exemplo, um mecanismo de transformação QVT ou um PIM com um ambiente de execução virtual). [8] [9]
  • Fornecedor Lock-in: Embora o MDA tenha sido concebido como uma abordagem para alcançar a independência (técnica) da plataforma, os fornecedores atuais de MDA relutam em projetar seus conjuntos de ferramentas MDA para serem interoperáveis. Tal resultado pode resultar em bloqueio de fornecedor para aqueles que buscam uma abordagem MDA. [ citação necessária ]
  • Idealista: MDA é concebido como uma abordagem de engenharia avançada na qual os modelos que incorporam a programação Action Language são transformados em artefatos de implementação (por exemplo, código executável, esquema de banco de dados) em uma direção por meio de uma etapa de "geração" totalmente ou parcialmente automatizada. Isso se alinha com a visão da OMG de que o MDA deve permitir a modelagem da complexidade total de um domínio de problema em UML (e padrões relacionados) com transformação subsequente em um aplicativo completo (executável). [10]Essa abordagem, no entanto, implica que as alterações nos artefatos de implementação (por exemplo, ajuste do esquema do banco de dados) não são suportadas. Isso constitui um problema em situações em que tal "adaptação" pós-transformação de artefatos de implementação é considerada necessária. A evidência de que a abordagem MDA completa pode ser idealista demais para algumas implantações do mundo real foi vista no surgimento do chamado "MDA pragmático". [11] O MDA pragmático combina os padrões literais do MDA da OMG com mecanismos orientados a modelos mais tradicionais, como engenharia de ida e volta, que fornece suporte para adaptar artefatos de implementação.
  • Conjuntos de habilidades especializadas: Os praticantes de engenharia de software baseada em MDA são (como em outros conjuntos de ferramentas) obrigados a ter um alto nível de especialização em seu campo. Os atuais profissionais especialistas em MDA (muitas vezes referidos como Modeladores/Arquitetos) são escassos em relação à disponibilidade de desenvolvedores tradicionais. [12]
  • Histórico da OMG: O consórcio OMG que patrocina a abordagem MDA (e possui a marca registrada MDA) também introduziu e patrocinou o padrão CORBA, que falhou em se materializar como um padrão amplamente utilizado. [13]
  • Proposta de valor incerto (UVP): Conforme discutido, a visão do MDA permite a especificação de um sistema como um modelo abstrato, que pode ser realizado como uma implementação concreta (programa) para uma plataforma de computação específica (por exemplo, .NET). Assim, um aplicativo que foi desenvolvido com sucesso por meio de uma abordagem MDA pura poderia, teoricamente, ser portado para uma versão mais recente da plataforma .NET (ou mesmo uma plataforma Java) de maneira determinística - embora ainda restem questões significativas quanto aos aspectos práticos do mundo real durante a tradução (como como implementação da interface do usuário). Se esse recurso representa uma proposta de valor significativa, permanece uma questão para adotantes específicos. Independentemente disso, os adotantes do MDA que buscam valor por meio de uma "alternativa à programação" devem ter muito cuidado ao avaliar essa abordagem. A complexidade de qualquer domínio de problema sempre permanecerá, e a programação da lógica de negócios precisa ser realizada no MDA como em qualquer outra abordagem. A diferença com o MDA é que a linguagem de programação usada (por exemplo, xtUML) é mais abstrata (do que, digamos, Java ou C#) e existe entrelaçada com artefatos UML tradicionais (por exemplo, diagramas de classe). Seja programando em uma linguagem mais abstrata do que convencionalAs linguagens 3GL resultarão em sistemas de melhor qualidade, custo mais barato ou entrega mais rápida, é uma questão que ainda não foi respondida adequadamente.
  • O MDA foi reconhecido como uma maneira possível de reunir várias soluções padronizadas desenvolvidas independentemente. Para a comunidade de simulação, foi recomendado como uma alternativa baseada em negócios e indústria para outro padrão exigido pelo DoD dos EUA. [14]

Controvérsia da geração de código

Geração de código significa que o usuário modela soluções de forma abstrata, que são conotadas por alguns dados do modelo e, em seguida, uma ferramenta automatizada deriva das partes dos modelos ou de todo o código-fonte do sistema de software. Em algumas ferramentas, o usuário pode fornecer um esqueleto do código-fonte do programa, na forma de um modelo de código-fonte em que tokens predefinidos são substituídos por partes do código-fonte do programa durante o processo de geração do código.

Uma crítica freqüentemente citada é que os diagramas UML simplesmente carecem dos detalhes necessários para conter as mesmas informações que são cobertas pelo código-fonte do programa. Alguns desenvolvedores até afirmam que "o código é o design". [15] [16]

Veja também

Referências

  1. ^ "OMG busca uma nova direção estratégica para construir sobre o sucesso de esforços anteriores" Arquivado em 24/09/2006 no Wayback Machine
  2. ^ "Guia OMG MDA rev. 2.0". meu Deus | Grupo de gerenciamento de objetos . O grupo de gerenciamento de objetos . Recuperado em 4 de setembro de 2021 .
  3. ^ "OMG Trademarks | Object Management Group" .
  4. ^ site adm http://adm.omg.org
  5. ^ Bézivin, J, Gérard, S, Muller, PA e Rioux, L (2003). "Componentes MDA: Desafios e Oportunidades" (PDF) . In: Metamodelagem para MDA. Arquivado do original (PDF) em 2006-12-06. {{cite journal}}: Citar periódico requer |journal=( ajuda ) Manutenção do CS1: vários nomes: lista de autores ( link )
  6. ^ "Hype Cycle for Emerging Technologies, 2006" $ 495,00
  7. ^ "MDA é DOA, em parte graças ao SOA" Arquivado em 13/10/2007 no Wayback Machine
  8. ^ "UML - Linguagem de modelagem unificada ou universal? UML2, OCL, MOF, EDOC - O imperador tem roupas demais"
  9. ^ "MDA: Boa ideia. Pena que..."
  10. ^ "Trazendo MDA para Eclipse, usando uma abordagem pragmática"
  11. ^ "Uma resposta a Forrester"
  12. ^ "Você está pronto para o MDA?"
  13. ^ "The Rise and Fall of CORBA" Arquivado em 2008-12-02 no Wayback Machine
  14. ^ "Evitando outro elefante verde"
  15. ^ http://www.developerdotstar.com/mag/articles/reeves_design_main.html por Jack W. Reeves
  16. ^ Bleading-Edge

Leitura adicional

  • Kevin Leno. "Desenvolvimento de software orientado a modelo com UML e Java". CENGAGE Learning, ISBN 978-1-84480-952-3 
  • David S. Frankel . Arquitetura Orientada a Modelos: Aplicando MDA à Computação Corporativa . John Wiley & Sons, ISBN 0-471-31920-1 
  • Meghan Kiffer The MDA Journal: Model Driven Architecture Straight From The Masters . ISBN 0-929652-25-8 
  • Anneke Kleppe (2003). Explicação do MDA, A Arquitetura Orientada a Modelo: Prática e Promessa . Addison-Wesley. ISBN 0-321-19442-X 
  • Stephen J. Mellor (2004). MDA Distilled, Princípios de Model Driven Architecture . Profissional Addison-Wesley. ISBN 0-201-78891-8 
  • Chris Raistrick. Arquitetura orientada a modelo com UML executável . Cambridge University Press, ISBN 0-521-53771-1 
  • Marco Brambilla, Jordi Cabot, Manuel Wimmer, Model Driven Software Engineering in Practice , prefácio de Richard Soley ( presidente da OMG ), Morgan & Claypool, EUA, 2012, Synthesis Lectures on Software Engineering #1. 182 páginas. ISBN 9781608458820 (brochura), ISBN 9781608458837 (ebook). http://www.mdse-book.com  
  • Stanley J. Sewall. Justificativa Executiva para MDA
  • Soylu A., De Causmaecker Patrick. Mesclando abordagens de desenvolvimento de sistemas orientados por modelos e orientados por ontologias, perspectiva de computação pervasiva , no Proc 24º Simpósio Internacional de Ciências da Computação e da Informação. 2009, páginas 730–735.

links externos

  • Site MDA da OMG
  • Curso de Desenvolvimento de Software Orientado a Modelos, B. Tekinerdogan, Bilkent University