La ingeniería de Software sigue en constante evolución, y con ella se van introduciendo nuevos conceptos los cuales logran obtener una programación de más alto nivel. La Programación Orientada a Objetos (POO) ha sido uno de los avances más importantes en ha tenido la ingeniería de software. Sin embargo existen aspectos que entrecruzan y atraviesan todo el sistema (crosscutting concern) y que no pueden ser totalmente separados con esta técnica. En consecuencia, nace la Programación Orientada a Aspectos (POA), programación basada en la POO, la cual brinda un soporte explícito para tratar estos aspectos.
Actualmente no existe un estándar para la construcción de diseños Orientado a Aspecto (OA) ocasionando que cada ingeniero construya su propio diseño.
Acorde a esto, nuestra investigación se centra en la definición de un diseño OA basado en el metamodelo de la OMG utilizando los mecanismos de extensión que provee UML. Siendo este, un aporte agilizando el proceso de desarrollo de software automatizando la construcción del mismo, a través de la elaboración de una herramienta que genere código OA partiendo de un diseño OA.
A partir de esta herramienta es posible construir transformaciones entre modelos. Una de las transformaciones logradas en esta línea de investigación es la generación de código OA AspectJ partiendo de un diseño OA. Extendiendo el trabajo, se busca lograr construir distintos tipos de transformaciones desde distintas herramientas de diseño OA basados en perfiles hacia distintos códigos OA.
Por otro lado se buscó definir un metamodelo en XML con la finalidad de que distintas herramientas, ya sea tanto para el modelado como para la generación de código, puedan interactuar.