
..: Descrição
A Ferramenta X-MDA foi o meu Projeto Final de Curso de Ciência da Computação – DCC – UFRJ, em parceria com o Raphael Siqueira Rodrigues sob orientação do Prof. Eber A. Schmitz (Engenharia de Software).
..: Resumo
Mediante a crescente complexidade dos sistemas de informação, que implica em uma série de problemas, como grande tempo de desenvolvimento e os erros de codificação, este trabalho apresenta uma ferramenta, a X-MDA, que executa um processo de transformação automática, baseada em templates, de código-fonte para sistemas baseados na Web. O processo baseia-se nos conceitos da Arquitetura Dirigida por Modelos (Model Driven Architecture, MDA) que indica que a geração de código deve ser realizada a partir de uma série de transformações de modelos, partindo de visões mais abstratas para modelos mais concretos usando a tecnologia especíca de implementação.
No entanto, o processo apresentado realiza a transformação a partir de um modelo abstrato conhecido na MDA como Modelo Independente de Plataforma (Platform Independent Model, PIM) em código-fonte para Java Server Faces (JSF), visando mostrar que os modelos independem da plataforma para a qual será gerado o código-fonte e apresentar as vantagens do uso de transformadores durante o desenvolvimento de um projeto.
..: Método e Resultados
A Ferramenta recebe como entrada um modelo UML desenhado na ferramenta case RAPDIS desenvolvida pelo GETI / UFRJ. Após um processamento da entrada pelo Transformador de Código, juntamente com os templates escritos em Velocity, teremos o projeto, código-fonte como saída.

Figura 1. Funcionamento de um Transformador baseado em templates.
O resultado gerado pela X-MDA é um projeto que pode ser importado para o Eclipse para que o código-fonte possa ser trabalhado, ou colocado diretamente em um servidor para apliacação Java tal como Tomcat ou JBoss.
O projeto inclui:
- Classes modeladas nos diagramas, sendo elas: classes Data Access Object (DAO) para o estereótipo Model, Managed Beans para o Controller e telas em eXtensible Hypertext Markup Language (XHTML) para a View;
- Tratamento do CRUD de cada Classe de estereótipo Model;
- Uso do Java Persistence API (JPA) Hibernate e Anottations para persistência de dados;
- Interface básica do sistema com autenticação de usuário e menu funcional;
- Possibilidade de internacionalização do sistema e modicação do visual.

Figura 2. Tela do CRUD da entidade Gerente
..: Tipo / Ano
Sistema Java Desktop, Transformador de código-fonte, geração de Sistemas Web / 2008
..: Tecnologias
JavaSE, XML, Apache Velocity, JSF/Jboss Rich-Faces, XHTML, AJAX, Javascript, JPA/Hibernate, MDA.