Table Of ContentUNIVERSIDAD NACIONAL DE EDUCACIÓN
A DISTANCIA
INGENIERÍA DIRIGIDA POR MODELOS
APLICADA AL INTERCAMBIO
ELECTRÓNICO DE DATOS
Realizado por: Directora:
Daniel Pérez Berenguer Dra. Elena Ruiz Larrocha
Itinerario de Ingeniería de Software
Trabajo Fin de Máster. Código 105128
MÁSTER EN INVESTIGACIÓN EN
INGENIERÍA DE SOFTWARE Y SISTEMAS
INFORMÁTICOS
Junio 2012
UNIVERSIDAD NACIONAL DE EDUCACIÓN
A DISTANCIA
INGENIERÍA DIRIGIDA POR MODELOS
APLICADA AL INTERCAMBIO
ELECTRÓNICO DE DATOS
Realizado por: Directora:
Daniel Pérez Berenguer Dra. Elena Ruiz Larrocha
Ingeniería Dirigida por Modelos
Itinerario de Ingeniería de Software
Trabajo Fin de Máster. Código 105128
MÁSTER EN INVESTIGACIÓN EN
INGENIERÍA DE SOFTWARE Y SISTEMAS
INFORMÁTICOS
Autorización
Autorizo a la Universidad Nacional de Educación a Distancia a difundir y
utilizar, con fines académicos, no comerciales y mencionando expresamente a
sus autores, tanto la memoria de este Trabajo Fin de Máster, como el código, la
documentación y/o el prototipo desarrollado.
Firma del Autor
Resumen
El intercambio electrónico de datos (EDI) es una técnica muy usada por las
empresas desde su aparición a mediados de los noventa, como forma de
transferir documentos e información entre las empresas. EDI, por tanto, ha
contribuido a automatizar la transferencia de documentos como pedidos o
facturas, que puede ser realizada sin intervención humana.
La Ingeniería de Modelos (MDE) surge como el área de la Ingeniería del
Software centrada en el uso sistemático de los modelos para la construcción de
software. Los modelos han mostrado su potencial para aumentar el nivel de
abstracción y automatización, y de este modo mejorar diferentes aspectos de la
calidad del software.
En el contexto de aplicación del EDI, este proyecto plantea el uso de las
técnicas MDE para el manejo de los datos o ficheros electrónicos en formato
EDI. Para ello se ha creado una infraestructura que permite la generación
automática de los ficheros electrónicos de facturas a partir de los datos
existentes en la base de datos.
Palabras clave: Ingeniería de Modelos (MDE), Desarrollo de Software
Dirigido por Modelos (MDD), Electronic Data Interchange For Administration,
Commerce and Transport (EDIFACT).
Agradecimientos
A mí directora de proyecto, Dra. Dña. Elena Ruiz Larrocha, por la confianza
depositada, por su apoyo y por guiarme en este proyecto.
Al Dr. D. Jesús García Molina, por su apoyo y ayuda prestada. Persona que ha
confiado siempre en mí y que ha sido un referente a seguir a lo largo de toda
mi carrera profesional.
A D. Javier Luis Cánovas Izquierdo, por su ayuda prestada con el entorno
Schemol.
A mi mujer y mi hija, un apoyo fundamental en mi vida. Sufridoras de la
dedicación en exclusiva a este proyecto.
En general a toda mi familia.
Muchas gracias.
El agradecimiento es la memoria del corazón
Lao-tsé
Índice
1 Introducción ................................................................................................... 12
2 La Factura Electrónica .................................................................................. 17
2.1 Introducción ............................................................................................ 17
2.2 Formatos de Factura Electrónica ............................................................ 22
2.3 Sistema EDI ............................................................................................ 24
2.4 Gramática UN/EDIFACT ......................................................................... 25
2.5 Mensajes EDI .......................................................................................... 29
3 Fundamentos de la Ingeniería Dirigida por Modelos .................................... 30
3.1 Principios básicos del MDE ..................................................................... 31
3.2 Arquitectura de cuatro niveles ................................................................. 34
3.3 Arquitectura de metamodelado ............................................................... 38
3.4 Tecnología MDE en el proyecto .............................................................. 39
3.4.1 Eclipse .............................................................................................. 39
3.4.2 Eclipse Modeling Framework (EMF) ................................................. 42
3.4.3 Emfatic .............................................................................................. 46
3.4.4 EMFText y XText .............................................................................. 48
3.4.5 RubyTL ............................................................................................. 54
3.4.6 Schemol ............................................................................................ 60
3.4.7 Mofscript ........................................................................................... 64
4 MDE aplicada al formato EDIFACT ............................................................... 69
4.1 Introducción ............................................................................................ 69
4.2 Solución MDE propuesta ........................................................................ 70
4.2.1 Metamodelo Invoic ............................................................................ 70
4.2.2 Sintaxis Concreta del metamodelo Invoic con EMFText ................... 74
4.2.3 Transformación de datos a modelo con Schemol ............................. 76
4.2.4 Metamodelo Edifact .......................................................................... 79
4.2.5 Sintaxis Concreta del metamodelo Edifact con EMFText ................. 81
4.2.6 Transformación de modelos Invoic a modelos EDIFACT ................. 83
4.2.7 Transformación de modelos EDIFACT a documentos EDIFACT ..... 88
4 Conclusiones y Trabajos Futuros .............................................................. 92
5.1 Conclusiones........................................................................................... 92
5.2 Trabajos Futuros ..................................................................................... 95
Anexo A. Estructura mensaje EDIFACT D93A/INVOIC ................................... 97
Anexo B. Modelo que conforma con el metamodelo Edifact ......................... 105
Anexo C. Configuración Schemol ................................................................... 108
Anexo D. Configuración de RubyTL ............................................................... 110
Anexo E. Transformación de modelos Invoic a modelos EDIFACT. .............. 112
Anexo F. Configuración MOFScript ................................................................ 117
Lista de acrónimos ......................................................................................... 119
Referencias .................................................................................................... 121
Índice de Figuras
Figura 1. Beneficios derivados de la factura electrónica. ................................. 13
Figura 2.Estructura MDE aplicada a ficheros electrónicos. .............................. 15
Figura 3. Workflow del proceso de compras .................................................... 18
Figura 4. Beneficios de la facturación electrónica. AECOC. ............................ 20
Figura 5. Proceso de envío de factura electrónica. .......................................... 21
Figura 6. Proceso de recepción de factura electrónica. ................................... 21
Figura 7. Estructura de Intercambio en EDI. .................................................... 26
Figura 8. Ejemplo de factura. ........................................................................... 27
Figura 9. Marcado segmentos EDIFACT. ........................................................ 27
Figura 10. Segmentos EDIFACT. ..................................................................... 28
Figura 11. Paradigmas MDE y terminología ..................................................... 31
Figura 12. Relaciones entre modelo, metamodelo y meta-metamodelo. ......... 34
Figura 13. Arquitectura de cuatro niveles en diferentes dominios. ................... 36
Figura 14. Arquitectura para el ejemplo de modelo de máquina de estados. ... 36
Figura 15. Arquitectura de cuatro niveles: relación “descrito por” .................... 37
Figura 16. Estructura plataforma Eclipse. ........................................................ 40
Figura 17. Unificación de XML, UML y Java mediante EMF. ........................... 43
Figura 18. Subconjunto del metamodelo Ecore. ............................................... 44
Figura 19. Ejemplo de metamodelo. ................................................................. 48
Figura 20. Sintaxis concreta del metamodelo de la Figura 19. ......................... 48
Figura 21. Herramientas para definir DSLs. ..................................................... 49
Figura 22. Comparación de Inyector y un Extractor. ........................................ 49
Figura 23. Estructura de xText ......................................................................... 50
Figura 24. Estructura de EMFText ................................................................... 51
Figura 25. Sintaxis concreta RubyTL. .............................................................. 56
Figura 26. Metamodelo de clases .................................................................... 58
Figura 27. Metamodelo de Java ....................................................................... 58
Figura 28. Ejemplo de regla de transformación con RubyTL ........................... 59
Figura 29. Ejemplo de transformación con ScheMOL ...................................... 61
Figura 30. Metamodelo de ejemplo para MOFScript ........................................ 68
Figura 31. Estructura MDE aplicada a Ficheros Electrónicos. ......................... 69
Figura 32. Metamodelo Invoic. ......................................................................... 72
Description:la principal plataforma para aplicar la Ingeniería Dirigida por Modelos (Model-. Driven Engineering, MDE). Eclipse Modeling Framework (EMF)