Antes de iniciar o ultimo post sobre MDA, gostaria de informar a todos que chegamos a um número expressivo de mais de 500 “page views” (e contanto…)do nosso blog no período de 30 dias. Isso me deixou muito satisfeito e também me deu uma carga maior de responsabilidade, pois não imaginaria que tanta gente tivesse interesse nos assuntos que tenho colocado aqui. Tenho tentado postar os assuntos pelo menos duas vezes por semana, mas sinto que as vezes isso não tem sido suficiente, vou organizar melhor o meu tempo !
Dando continuidade ao tema MDA, vou falar rapidamente sobre algumas das ferramentas que implementam o MDA de forma completa (quero dizer, utilizando todos os conceitos que o MDA aborda), e uma breve descrição sobre elas, traçando um perfil de suas principais funcionalidades e comparando-as entre si, baseado num estudo de caso que fiz como parte do trabalho de conclusão da minha graduação, no qual alguns casos de uso de um projeto foram implementados.
ArcStyler 4.0
O ArcStyler 4.0 foi desenvolvido pela empresa Interactive Objects Software GmbH , sediada em Freiburg na Alemanha. Tal empresa destaca-se no meio internacional de engenharia de software como vencedora de prêmios em diversas competições de desenvolvimento de software com a utilização de MDA entre eles, Crossroads A-List Awards 2001, IBM Solution Excellence Award 2002, OMG MDA Application award winner and runner-up 2002 e Europe Information Society Tecnology Prize Award 2003 dentre outros e também fazendo parte da OMG desde 1993.
Possui suporte às principais tecnologias de mercado possibilitando a modelagem de aplicações independentes de plataforma e posteriormente a geração dos códigos fontes específicos para uma plataforma. Entre as tecnologias suportadas para geração do PSM a partir do modelo PIM estão:
· J2EE – Java 2 Enterprise Edition, exigindo o JDK 1.3 ou JDK 1.4
· EJB – Enterprise Java Beans
· Servlet 2.2 ou 2.3
· Web Services exigindo Jakarta Tomcat 4.0
· C# exigindo o .NET Framework 1.0 ou superior,
· IDL CORBA.
Os padrões do MDA estabelecidos pela OMG são utilizados em sua plenitude para possibilitar o ganho de produtividade no desenvolvimento das aplicações. Porém um item não especificado pela OMG é utilizado para possibilitar a integração e troca de informações entre os metamodelos MOF em Java, semelhante ao XMI. O JMI – Java Metadata Interface, padronizado pela Java Communit Process (JCP), possibilita o acesso e a manipulação de modelos de metadados em Java garantindo a criação e deleção de elementos nos modelos.
MDA-Cartridges são ferramentas de transformação que possibilitam a geração automática dos PSM´s e código fonte a partir dos modelos PIM. O principal benefício da utilização desta funcionalidade é a capacidade de trabalhar com diversas ferramentas de transformação para tecnologias distintas permitindo a seleção de classes de um mesmo modelo PIM para a geração de PSM´s para Java ou para C#, por exemplo.
OptimalJ 3.0
O OptimalJ 3.0 foi desenvolvido pela empresa Compuware Corporation. Destaca-se principalmente pela forte aplicação de padrões para J2EE (Java 2 Enterprise Edition) utilizando todos os conceitos de independência de plataforma que o MDA aborda. Dentre suas principais características se destacam os seguintes usos:
Modelo de Domínio para Classes (Domain Class Model) utilizando os padrões da UML para modelagem de classes;
Modelo de Domínio para Serviços (Domain Service Model) para modelagem de serviços;
Modelo para Persistência de Dados (DAO,EJB) e ferramentas de integração com outras plataformas entre as quais estão CORBA, JCA(Java Connector Architecture) e Web services, entre outras.
Outra característica muito importante que a diferencia de outras ferramentas é a utilização de um editor de regras de negócio (Business Rules Editor) que permitem o registro de regras estáticas e dinâmicas.
Todos os padrões do MDA estabelecidos pela OMG são utilizados em sua plenitude para possibilitar o ganho de produtividade no desenvolvimento das aplicações. Porém como o foco da ferramenta está em atender as especificações para J2EE, uma adaptação aos padrões do MDA foi exercida no intuito de agilizar e tornar mais fácil a modelagem de software.

São utilizados diferentes tipos de padrões: padrões de transformação e padrões funcionais. Os padrões de transformação são aplicados nos modelos PIM para gerar os PSM´s e também para converter os PSM´s em código fonte. Também compõem os padrões de transformação os padrões de tecnologia e implementação.
Os padrões funcionais de tecnologia, transformam o modelo de domínio (PIM) em um modelo de aplicação PSM (EJB,WEB,DMBS). Os padrões de implementação, por sua vez, exercem a função de transformação dos PSM´s em código fonte.
O OptimalJ permite a integração com aplicações externas entre elas JCA (Java Connector Architecture) possibilitando o acesso a aplicações distribuídas, baseadas no padrão supra citado. Também permite integração com CORBA Connector, promovendo acesso às aplicações baseadas nas compilações das versões 2.0 e 3.0 do CORBA. Por último integra-se com Web services permitindo a conexão com qualquer Web service disponível e publicado com suporte às camadas de protocolo XML Document, SOAP e HTTP.
Codagen Architect 3.2
O Codagen Architect 3.2 foi desenvolvido pela empresa Codagen Technologies Corp. em 1999, no Canadá. É membro da OMG possuindo parcerias com as principais empresas de software de mercado como Microsoft, IBM, Borland entre outras, nos esforços de implementação do MDA.
Essencialmente é uma ferramenta de transformação divida em três módulos: Codagem Architect Implement, Codagem Architect Launch from XMI e Codagem Architect Specify. Estes módulos não possuem ambiente de modelagem, mas sim, ferramentas que importam os metamodelos das principais ferramentas de modelagem do mercado, através do uso XMI e a partir disso possibilita a geração dos PSM´s para C++, J2EE e .NET( C#, VB.NET, ADO.NET, ASP.NET).
Conforme especificado na documentação do fabricante, as características de transformação a partir da leitura de modelos externos, através do uso do XMI, possibilitam integração com qualquer ferramenta de modelagem que suporte tais padrões. Essa integração foi testada com a tentativa de importação de um modelo simples com três classes de herança simples geradas nas ferramentas Magic Draw 7.5 e PoseidonEE. O resultado obtido foi satisfatório no que tange a integralidade dos atributos e métodos dos modelos. Também é possível gerar PIM´s a partir de templates adotados pela aplicação mas que são de difícil entendimento dada à notação utilizada.
Quadro Comparativo entre as Ferramentas
Na Tabela abaixo estão relacionadas às ferramentas avaliadas e as principais características e similaridades que as tornam aderentes aos padrões estabelecidos pelo MDA. A coluna marcada com “C” contempla e apresenta suporte as características e a coluna marcada com “NC” não contempla e não apresentam suporte as características.

Para concluir esse tema, acho que alguém deve está se perguntando se essa tecnologia é aplicável e se realmente pode ser utilizada no mundo real?! Não existiam muitas iniciativas em relação ao uso do MDA na época que estudei o assunto(2004), porém em Pernambuco encontramos uma iniciativa pioneira nesse sentido capitaneada pela empresa In Forma Ltda, que concluiu um projeto para uma empresa de grande porte adotando, com sucesso, todos os conceitos do MDA.
Atualmente os conceitos de transformação são utilizados por diversas ferramentas de mercado, mas são poucas as que implementam o MDA puramente.
26 Junho, 2007 at 9:05 pm
Parabéns Berg, realmente uma série de publicações muito completa em conteúdo e informação. Praticamente um guia sobre a grande tendência em desenvolvimento. MDA realmente é uma grande tendência!
9 Julho, 2007 at 10:53 pm
Muito bom esses artigos. Voce tem algo que possa compartilhar sobre o AndroMDA, Odyssey e UMT ? Obrigado!
10 Julho, 2007 at 11:21 am
Caro Guilherme,
Acho que tenho algo sobre AndroMDA, mas o problema é que meu PC quebrou e não tenho como recuperar isso agora pra você. Mas certamente assim que eu puder entrarei em contato.
Obrigado.
20 Setembro, 2007 at 6:07 pm
Jonysberg,
O artigo é bastante interessante. Gostaria de saber se seu trabalho de graduação estaria disponível para estudos. Gostaria de vê-lo! Mais uma vez, ótimo artigo, esclarece bem o assunto!
25 Novembro, 2007 at 11:13 pm
Gostei do tema, porém acho que faltou o referencial bibliográfico para o completar. Encontrei gráficos e imagens ótimas, porém não sei de onde você as tirou.
parabéns pelo blog.
26 Novembro, 2007 at 12:17 pm
Caro Helsen,
Concordo com você sobre a ausência de referencia bibliografica, porém não é muito comum o seu uso em blogs…em todo caso minha principal fonte em relação a esse post foi o próprio site da sun e alguns artigos que li pela web.
Espero ter ajudado!
Ando meio sem tempo para escrever no blog, mas logo-logo retornarei à toda !