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].
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
- Apresentação (parte I – este artigo)
- Desenvolvimento (parte II)
- Vantagens & Desvantagens (parte III)
Versão adaptada do artigo de JANDL JUNIOR, P.. Uma análise da OMG Model Driven Architecture. Análise (Jundiaí), v. 11, p. 3549, 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.