# AndroMDA

AndroMDA (pronunciado "Andromeda") es un programa informático de tipo framework, de generación extensible de código, que se adhiere al paradigma de la arquitectura dirigida por modelos.

## Características

Los modelos de las herramientas de UML son transformados en componentes desplegables para su plataforma preferida (J2EE, Spring Framework, .NET). Al contrario de otros entornos de desarrollo MDA (Model Driven Architecture), incluye un conjunto de cartuchos enfocados a los kits de desarrollo actuales como son Apache Axis, jBPM, Apache Struts, JSF, Spring e Hibernate. También incluye un Kit para desarrollar tus propios cartuchos generadores de código o personalizar los existentes - el cartucho Meta. Utilizándolo, puedes construir tu propio generador de código empleando una herramienta de UML.
Es un proyecto de código abierto que está bajo la Licencia BSD. Debido a que su generador de código soporta plataformas actuales, se ha convertido en la principal herramienta de código abierto de MDA para el desarrollo de aplicaciones empresariales.

## Historia

El 3 de julio de 2002, Matthias fue el fundador y creador del proyecto UML2EJB, el cual fue el precursor de AndroMDA, ya que estaba basado en la generación de código para programar con EJB 2.0. Este proyecto o generador de código fue escrito para acompañar la publicación del libro "Enterprise JavaBeans GE-PACKT" (la última palabra tiene el significado de "zipped" o "distilled" en inglés). Durante el proyecto de UML2EJB, otros committers se fueron añadiendo a la comunidad: Stefan Kuehnel, Ralf Wirdemann.
El comienzo de AndroMDA fue el 3 de febrero de 2003. En esta fecha el proyecto fue aprobado en SourceForge teniendo en su arquitectura algunos cambios significativos para que pueda crecer con el futuro. El 23 de julio de 2003, se liberó AndroMDA 2.0.2final, con el core, los cartuchos para EJBs, Hibernate, Struts y plain Java, con un demo del sistema del alquiler de coches. Más contribuciones se unieron al proyecto: Richard Kunze y Harald Weyhing. En ese tiempo se escribió un plug-in de AndroMDA para Poseidón, el cual fue vendido con el mismo como extensión comercial.
Tres días después del 2.0.2final, AndroMDA comenzó a ganar ímpetu de una manera que no se había imaginado. Una comunidad comenzó a formarse alrededor de la fuente abierta MDA durante los siguientes meses. TheServerSide y otros tableros de noticias comenzaron a escribir artículos acerca de AndroMDA. El 27 de julio se publica un documento de la visión de AndroMDA para los siguientes meses llamado "AndroMDA 3.0, la siguiente generación", también se instaló un Wiki. Esto era un alza para el proyecto porque permitió discutir la arquitectura de AndroMDA más fácilmente y con eficacia.
El año 2004 trajo la madurez para AndroMDA. Se podía ahora generar casos de uso completos de J2EE de modelos de UML. Los usuarios de AndroMDA comenzaron a utilizar el generador para los proyectos serios del desarrollo. Las compañías tales como sistemas de Lufthansa saltaron en él y generaron la materia del mundo real con ella. Se liberaron tres lanzamientos 3.0M1 a 3.0M3 en mayo, agosto y diciembre para permitir a los usuarios mirar a escondidas en la nueva versión.
Mientras tanto, como el proyecto creció, los usuarios habían comenzado a quejarse por la documentación. La utilidad del producto ahora era una de las metas fundamentales: documentación y nuevas características de cartuchos.

### AndroMDA 3.0final

En la conferencia de JAX 2005 en mayo, se anunció el lanzamiento 3.0final que salió el 9 de mayo de 2005. AndroMDA 3.0 ahora era estable, usable y documentado.

## Desarrollo del proyecto

El proyecto AndroMDA tiene una comunidad alrededor del mundo que ayuda a su liberación rápida con una retroalimentación notable por parte de los usuarios. Este proyecto sigue el modelo bazar ya que sigue la principal premisa del mismo que sólo puede darse en un entorno de libertad, cooperación, comunidad y disponiendo del código abierto. La comunidad de desarrollo de este proyecto promueve el concienciar a la gente de que el software es un servicio y no un bien adquirible.

## Estructuras organizativas/asociativas o de decisión

Como un proyecto de código abierto AndroMDA cuenta en su desarrollo con gente alrededor de todo el mundo que dedican su tiempo libre a añadir nuevas características, corrección de errores, ayudar a usuarios en la lista de discusiones. La infraestructura con la que cuenta el proyecto es CVS, JIRA issue Traker y un Wiki.
El equipo está formado por miembros y contribuidores. Los miembros son pocos y tienen acceso directo a la fuente de un proyecto y desarrollan activamente el código-base. Los contribuidores mejoran el proyecto con la emisión de parches y de sugerencias a los miembros. El número de contribuidores al proyecto es ilimitado.

## Estado actual

La última versión liberada de AndroMDA es la 3.2Final la cual se encuentra desde el 10 de noviembre de 2006. Dicha versión como la mayoría de los proyectos de código abierto recibe una retroalimentación de la comunidad es decir de los committer, usuarios y documentadores que forma parte del desarrollo del mismo. Con la que van realizando parches de errores, se toman las nuevas necesidades de funcionalidad de la versión actual para trabajar en una versión beta de una nueva liberación.
Las mejoras más significativas de esta versión son las siguientes:
* Soporte para UML 2.0 y herramientas basadas en Eclipse EMF (MagicDraw 11.6, RSM, etc.).
* Integración con Maven 2.
* Generación de código para PSM metamodel classes.
* Soporte para el Freemarker template engine.
* Generación de código para Java Generics.
* Mejora en la documentación y nuevos tutoriales.
* Corrección de errores y pequeñas mejoras.