[Pesquisar este blog]

quinta-feira, 2 de fevereiro de 2017

MDA::Uma visão geral::Apresentação (parte I)

Parte I::Apresentação | Parte II::Desenvolvimento | Parte III::Vantagens&Desvantagens
Dentro do cenário corporativo existe uma grande preocupação quanto a preservação dos investimentos feitos no desenvolvimento do software, ou seja, a utilização de estratégias que garantam a integração dos sistemas existentes com aqueles que serão construídos; que sejam flexíveis quanto a mudanças necessárias na infra-estrutura utilizada; e que estendam o ciclo de vida das aplicações construídas, reduzindo retrabalho, custos de manutenção e aumentando o retorno dos investimentos realizados [1][2][13].
http://www.omg.org/mda/mda_audio/mda_rollovers/mda_left_new2.gif

Apresentando a Model Driven Architecture (MDA)

Projetistas experientes de aplicações usualmente investem mais tempo na construção de modelos do que em atividades de programação, pois a definição e uso de modelos precisos e completos facilitam o desenvolvimento de sistemas corporativos dentro dos prazos e custos previstos, mesmo quando tais sistemas são grandes e complexos [3]. Considerando a demanda contínua das mudanças necessárias nas aplicações corporativas e a rapidez da evolução da tecnologia, temos que o cenário de desenvolvimento de soluções de TI corporativas é bastante complicado e dinâmico, dificultando a definição de modelos abrangentes e duradouros para os sistemas necessários.

Dentro deste panorama, a OMG (Object Management Group) propôs a Model Driven Architecture (MDA), uma estratégia para a construção de sistemas de TI onde são separadas as especificação das funcionalidades do sistema da especificação da implementação destas funcionalidades em uma plataforma de tecnologia particular [5]. Segundo a OMG [11], a MDA provê uma aproximação aberta, neutra em relação ao fornecedor, para os desafios das mudanças nos negócios e nas tecnologias.

Deseja-se que a MDA seja capaz de [6]: especificar um sistema de modo independente da plataforma a ser adotada; especificar características das várias plataformas; permitir a escolha de uma plataforma particular; e permitir a transformação da especificação deste sistema numa implementação para a plataforma escolhida.

A MDA representa uma visão das necessidades de interoperabilidade expandida para abranger completamente o ciclo de desenvolvimento de aplicações [5]; e permite que os desenvolvedores construam sistemas de acordo com a lógica de negócios e os dados existentes, independentemente de qualquer plataforma particular [3], cujos detalhes tecnológicos são considerados irrelevantes na definição dos aspectos essenciais da funcionalidade desejada [4].

Como as novas tecnologias vêm oferecer benefícios tangíveis para as companhias, muitas destas não podem “se dar ao luxo” de não empregar as inovações disponíveis [3], assim a MDA foi concebida para auxiliar tais organizações na adoção rápida de novos conceitos e soluções tecnológicas, sem necessitar reconstruir inteiramente seus sistemas, pois é neutra em termos de linguagem, plataforma e fornecedor [1][2]. Novos sistemas podem então ser construídos com middlewares mais atuais, sem comprometer sua interoperabilidade com sistemas existentes [6].

A MDA é um framework para desenvolvimento de software centrado na definição de modelos formais, cuja chave de sua compreensão e utilização é a importância dos modelos durante o processo de desenvolvimento de software. Dentro da arquitetura proposta pela MDA o processo de desenvolvimento de software é dirigido completamente pelas atividades de modelagem do sistema em diferentes níveis de abstração [3][7].

O framework MDA é baseado grandemente na Unified Modeling Language (UML) e também em outros padrões adotados pela indústria de software, tais como a Meta-Object Facility (MOF), Common Warehouse Meta-model (CWM) e XML Metadata Interchange (XMI). A UML é uma linguagem de modelagem de sistemas, cujo padrão é composto por uma linguagem gráfica e textual bem definida, adotado de fato pela indústria. O papel da UML é especificar a estrutura, funcionalidade e comportamento dos sistemas. A MOF também tem papel central na MDA, pois unifica a notação da UML [8][9], além de especificar a gerência dos modelos nos repositórios. A CWM padroniza a representação de modelos de bancos de dados (schemas) e suas transformações, bem como modelos para On-Line Analytical Processing (OLAP) ou mineração de dados (data mining). Já a XMI corresponde a um formato de troca para modelos baseado na MOF e também no XML. Tais padrões permitem a visualização, o armazenamento e a troca de projetos de software e modelos [1][3][6].

Mas diferentemente dos modelos puramente UML, a proposta da MDA é promover a criação de modelos abstratos que possam ser processados automaticamente (machine-readable models), desenvolvidos independentemente das tecnologias de implementação e também armazenados em repositórios padronizados. Ferramentas apropriadas (MDA tools) poderiam acessar tais modelos, transformando-os automaticamente em esquemas, esqueletos de código, código integrável, scripts de implantação, entre outros elementos [3].

Um dos caminhos possíveis de evolução tecnológica a partir da orientação a objetos é o que poderia ser chamado “engenharia de modelagem” [10], que dá aos modelos o status máximo, tal como anteriormente feito para as classes e objetos. A mudança essencial reside no fato de tais modelos deixarem de ser apenas peças de documentação, passando a ser usados diretamente para conduzir uma nova geração de ferramentas. A “engenharia de modelagem” trata o desenvolvimento de software como um conjunto de transformações sobre uma sucessão de modelos, partindo do levantamento de requisitos até a implementação e distribuição [9]. O argumento de que estas tarefas poderiam ser completamente automatizadas é sustentado por muitos daqueles que contribuíram com a definição da MDA [5].

Conceitualmente a MDA unifica e simplifica a quase totalidade das etapas do processo de desenvolvimento de software, principalmente aquelas relacionadas a modelagem, projeto, implementação e integração de aplicações, pois a definição do software se dá como um modelo funcional e comportamental separado dos elementos tecnológicos que serão posteriormente utilizados [11][12].

MDA::Uma visão geral

Versão adaptada do artigo de JANDL JUNIOR, P.. Uma análise da OMG Model Driven Architecture. Análise (Jundiaí), v. 11, p. 35­49, 2005.

Para Saber Mais

(A numeração dos itens não é sequencial, pois só constam os elementos citados.)

  • [1] SOLEY, Richard. & OMG Staff Strategy Group. Model Driven Architecture. Object Management Group White Paper, 2000. Disponível em: http://www.omg.org/mda/mda_files/model_driven_architecture.htm, recuperado em 02/01/2017.
  • [2] FRANK, Karl. Keeping your business relevant with Model Driven Architecture (MDA). Borland White Paper. 2004. Disponível em: http://www.omg.org/borland-mda-wp, recuperado em 02/01/2017.
  • [3] KLEPPE, Anneke, WARMER , Jos & BAST, Wim. MDA Explained: The Model Driven Architecture - Practice and Promise. Addison-Wesley, Reading, MA, 2003.
  • [4] MILLER, Joaquin & MUKERJI, Jishnu. Model Driven Architecture (MDA). Object Management Group Architecture Board ORMSC. 2001. Disponível em: https://pdfs.semanticscholar.org/fab3/6d29bd18fe7743ab710caf9faacb495f10d7.pdf, recuperado em 26/10/2004.
  • [5] MILLER, Joaquin & MUKERJI, Jishnu (eds). MDA Guide Version 1.0.1. Objetc Management Group. 2003-05-01. Disponível em: http://www.omg.org/mda/mda_files/MDA_Guide_Version1-0.pdf, recuperado em 02/01/2017.
  • [6] SIEGEL, Jon. Developing in OMG’s New Model-Driven Architecture. Object Management Group White Paper, 2001. Disponível em: https://www.icmgworld.com/corp/developer/whitepapers/UsingMDA.pdf, recuperado em 02/01/2017.
  • [7] MELLOR, S., SCOTT, K., UHL, A., WEISE, D.. MDA Distilled. Addison-Wesley, Reading, MA, 2004.
  • [8] BOOCH, Grady. MDA: A motivated manifesto IN Dr. Dobb's Magazine. 2004-08-01. Disponível em: http://www.drdobbs.com/architecture-and-design/mda-a-motivated-manifesto/184415169, recuperado em 02/01/2017.
  • [9] THOMAS, D.. MDA: Revenge of the modelers or UML utopia? IN IEEE Software, pages 22–24, May-Jun 2004.
  • [10] BÉZIVIN, J.. From Object Composition to Model Transformation with the MDA. IN Proceedings of TOOLS’USA. IEEE Press, 2001. Disponível em: http://users.dsic.upv.es/~einsfran/mda/TOOLS.USABezivin.pdf, recuperado em 02/01/2017.
  • [11] OMG. MDA (Model-Driven Architecture) Executive Overview. On-line: http://www.omg.org/mda/executive_overview.htm, recuperado em 02/01/2017. 
  • [12] SIEGEL, J.. Using OMG’s Model-Driven Architecture (MDA) to integrate Web Services. Object Management Group White Paper, 2004. Disponível em: http://www.omg.org/mda/, recuperado em 26/10/2004. Object Management Group White Paper, 2002.
  • [13] HART, J.. Connecting your applications without complex programming. On-line: http://www.ibm.com/software/integration/wmq/, recuperado em 30/10/2004., Sep 2003. IBM White Paper.