1. Generación automática de sitios Web para
conferencias y congresos científicos
Autor: Mónica Quirós Alonso
Directora: B. Cristina Pelayo García-Bustelo
Codirector: Vicente García Díaz
Escuela de Ingeniería Informática Universidad de Oviedo
2. Índice
1. Introducción
2. Herramientas escogidas
3. Diseño
4. Tecnologías
5. Pruebas
6. Conclusiones
7. Ampliaciones
8. Demostración Práctica
Proyecto fin de carrera Mónica Quirós Alonso
3. Proyecto fin de carrera Mónica Quirós Alonso
Introducción
Alto coste en tiempo y esfuerzo
Proceso de creación de un sitio Web
4. Justificación proyecto
• Evitar el proceso de análisis, diseño y desarrollo, lo que
implicaría un ahorro de tiempo, coste y esfuerzo
• Automatizar el proceso
• Lenguaje sencillo adaptado al problema - DSL
DSL : Domain Specific Language
Lenguaje de programación, dentro de un dominio específico,
dotado de gran expresividad y orientado a resolver un
problema particular.
MDA (Arquitectura Dirigida por modelos)
Proyecto fin de carrera Mónica Quirós Alonso
5. Objetivos
• Desarrollo de un lenguaje de dominio específico
• Generación automática de código
• Uso de tecnologías de software libre
• Creación de un entorno de desarrollo para facilitar
al usuario la introducción de los datos de los
congresos y conferencias
• Proporcionar un editor amigable y fácil de usar,
que además permita la validación y verificación de
datos en tiempo real
Proyecto fin de carrera Mónica Quirós Alonso
6. Índice
1. Introducción
2. Herramientas escogidas
3. Diseño
4. Tecnologías
5. Pruebas
6. Conclusiones
7. Ampliaciones
8. Demostración Práctica
Proyecto fin de carrera Mónica Quirós Alonso
7. Herramientas para creación de sitios
Web de conferencias y congresos
• OCS (Open Conference System)
• Herramientas genéricas para crear sitios Web (no
especializados)
– wordpress
– Herramienta Open Site Builder Tools
• Aplicaciones comerciales
• Aplicaciones internas dentro de algunos
organismos oficiales (por ejemplo, Universidades)
• Aplicaciones que toman como referencia OCS
(módulos en Drupal, ISLSOFT …)
Proyecto fin de carrera Mónica Quirós Alonso
8. Herramientas para creación de DSLs
Gran variedad de herramientas para la creación de DSLs:
• Metacase – Metaedit+
• DSL Tools
• JetBrains – MPS
• Oslo (Microsoft)
• Xtext (Itemis)
Proyecto fin de carrera Mónica Quirós Alonso
10. Justificación de las herramientas
escogidas
• XTEXT (2.0) :
– Más utilizado Estabilidad Mejor documentación
– Muy potente (analizador léxico y sintáctico, integración
con Java … )
– Editor textual: resaltado de código, autocompletado de
texto, validación, elementos visuales de apoyo …
• OCS
– Mejor herramienta en su categoría
– Amplia funcionalidad
– Gestión de usuarios, buscador, gestión de material…
Proyecto fin de carrera Mónica Quirós Alonso
Herramientas de software libre
11. Índice
1. Introducción
2. Herramientas escogidas
3. Diseño del sistema
4. Tecnologías
5. Pruebas
6. Conclusiones
7. Ampliaciones
8. Demostración Práctica
Proyecto fin de carrera Mónica Quirós Alonso
12. Diseño del sistema
• Integración de ambas herramientas
– OCS: PHP, BD MySQL
– Xtext
• Gramática textual
• Procesado del model semántico generado a partir de la
gramática
• Enfoque utilizado:
– Procesado del modelo utilizando Java
– Generación de script de consultas SQL de inserción a
partir de la información contenida en el árbol
– Dichas consultas van contra la BD del sistema OCS
Proyecto fin de carrera Mónica Quirós Alonso
13. Diseño del sistema – Jerarquía creada
• Tres paquetes
– Ocsdsl
– Tests (pruebas)
– UI (User Interface)
• Procesado del modelo
mediante Patrón
chainOfResponsability
Proyecto fin de carrera Mónica Quirós Alonso
14. Visión general del sistema
• Paquete ocsdsl: Lógica de la aplicación
– Gramática .xtext
– Fichero mwe2 de generación
– Método principal para lanzar la generación y ejecución de
código
– Reglas de validación (OcsDslJavaValidator.java)
• Paquete tests: Pruebas
– Utiliza plugin Unit Testing (Junit)
• Paquete ui :Interfaz de usuario
– Formato de la sintaxis, mensajes de información, quick
fixes para errores, representación visual de la estructura
…
Proyecto fin de carrera Mónica Quirós Alonso
15. Patrón chainOfResponsability
Proyecto fin de carrera Mónica Quirós Alonso
• Permite establecer una cadena de objetos receptores a
través de los cuales se pasa una petición formulada por
un objeto emisor.
• Dispondremos de un nodo raíz, el cual contendrá a las
entidades del modelo que representarán las
conferencias y congresos:
– Contacto Principal, Configuración de una conferencia,
Calendario, Proceso de envío de material…
• La petición (procesado de la entidad) se pasará a través
de los elementos de la cadena, y se realizará el
procesado cuando se alcance el emisor que ha de
procesarla.
16. Índice
1. Introducción
2. Herramientas escogidas
3. Diseño del sistema
4. Tecnologías
5. Pruebas
6. Conclusiones
7. Ampliaciones
8. Demostración Práctica
Proyecto fin de carrera Mónica Quirós Alonso
17. Funcionamiento de Xtext
• Gramática textual (libre
de contexto) Modelo
semántico (AST) en
memoria Analizador
sintáctico
• Google Guice
• Java 5.0 (Annotations,
Generics)
• Xtend, Xpand, Xbase
Proyecto fin de carrera Mónica Quirós Alonso
DomainModel:
congresos+=SitioCongreso*;
SitioCongreso:
'DATOS BASICOS DEL CONGRESO{'
'Ruta:' name=ID
'Título:' titulo=STRING
('Idioma secundario:' local=idiomas)?
'Descripcion:' descripcion=STRING
'Titulo de la cabecera:'
tituloCabecera=STRING
'Texto introductorio del congreso:'
textoIntroduccion=STRING
'}'
ConfiguracionCongreso+=Configuracion
Congreso;
18. IDE creado mediante Xtext
• Xtext proporciona un IDE interno, invocado
desde el entorno Eclipse
– Editor textual
– Resaltado de sintaxis
– Interacción con el código creado
– Representación gráfica de la estructura creada
(Ayuda visual)
– Mensajes de error y advertencia
Proyecto fin de carrera Mónica Quirós Alonso
19. IDE creado mediante Xtext
• Editor textual. Resaltado de código, autocompletado
22. Índice
1. Introducción
2. Herramientas escogidas
3. Diseño del sistema
4. Tecnologías
5. Pruebas
6. Conclusiones
7. Ampliaciones
8. Demostración Práctica
Proyecto fin de carrera Mónica Quirós Alonso
23. Pruebas
• Pruebas unitarias: Unit Testing (Xtext Utilities)
• Pruebas de integración y del sistema
• Usabilidad: Heurísticas + Usuarios en ambos
sistemas
• Accesibilidad: AA + Varias pautas AAA (sitios Web
creados)
• Pruebas de rendimiento en ambos sistemas
Proyecto fin de carrera Mónica Quirós Alonso
24. Índice
1. Introducción
2. Herramientas escogidas
3. Diseño del sistema
4. Tecnologías
5. Pruebas
6. Conclusiones
7. Ampliaciones
8. Demostración Práctica
Proyecto fin de carrera Mónica Quirós Alonso
25. Conclusiones
• Los objetivos marcados al principio del proyecto se
han cumplido
– Crear un DSL dentro del dominio de congresos y
conferencias. Lenguaje simple y cercano.
– Proporcionar un IDE completo
– Validación y verificación de datos en tiempo real
• Uso de tecnologías de software libre y emergentes
Proyecto fin de carrera Mónica Quirós Alonso
Objetivo principal : Automatizar y simplificar el
proceso de creación de sitios Web
26. Índice
1. Introducción
2. Herramientas escogidas
3. Diseño del sistema
4. Tecnologías
5. Pruebas
6. Conclusiones
7. Ampliaciones
8. Demostración Práctica
Proyecto fin de carrera Mónica Quirós Alonso
27. Ampliaciones
• Incluir la gestión de usuarios en el DSL creado
– Aumento de complejidad
– Sólo permitir la creación de usuarios
– Nuevas validaciones contra la BD
• Internacionalización del DSL
• Nuevos temas para los sitios Web (CSS3)
• Adaptación para dispositivos móviles
• Redes sociales
Proyecto fin de carrera Mónica Quirós Alonso
28. Índice
1. Introducción
2. Herramientas escogidas
3. Diseño del sistema
4. Tecnologías
5. Pruebas
6. Conclusiones
7. Ampliaciones
8. Demostración Práctica
Proyecto fin de carrera Mónica Quirós Alonso
30. Generación automática de sitios Web para
conferencias y congresos científicos
Autor: Mónica Quirós Alonso
Directora: B. Cristina Pelayo García-Bustelo
Codirector: Vicente García Díaz
Escuela de Ingeniería Informática Universidad de Oviedo
Notas del editor
El principal motivo por el que nace este proyecto es para agilizar el proceso de creación de páginas Web orientadas a la gestión de congresos y conferencias. El proceso de creación de un sitio Web implica una serie de fases que suponen un alto coste en tiempo y esfuerzo.
-Análisis de requisitos
-Diseño – Implementar una tecnología determinada.
-Desarrollo
-Carga
-Puesta en explotación
-Mantenimiento
Mediante la realización de este proyecto, se evitarían las fases del proceso anterior.
La creación de los sitios sería asequible para usuarios que conozcan el dominio.
Lenguaje adaptado al problema, con una sintaxis sencilla y una funcionalidad lo más amplia posible
El proceso de generación de código sería automático y sencillo
Se ahorraría tiempo, coste y esfuerzo.
El enfoque utilizado sería el de una arquitectura dirigida por modelos
El objetivo principal es facilitar y agilizar el proceso de creación de los sitios Web mediante un editor simple de código, de manera que la creación se automatice y resulte sencilla e intuitiva para cualquier tipo de usuario.
Otros objetivos:
Crear un DSL dentro del dominio de conocimiento de congresos y conferencias para que los expertos en dicho dominio puedan crear, de forma autónoma, aplicaciones personalizadas.
Definir una sintaxis abstracta basada en el sistema OCS que permita generar un script completo en SQL de manera automática para la generación de los sitios Web finales.
Crear un AST a partir del metamodelo inicial que contenga toda la información referida a los congresos y conferencias.
Proporcionar un editor amigable y fácil de usar para el usuario final.
Utilizar la expresividad del lenguaje creado para utilizar al máximo las capacidades que proporciona el sistema OCS.
Permitir la validación y verificación de datos en tiempo de ejecución.
Creación de un entorno de desarrollo para facilitar al usuario la introducción de los datos de los congresos y conferencias
Desarrollo de un lenguaje de dominio específico para congresos y conferencias
Generación automática de sitios Web
Uso de tecnologías de software libre
Muchas de las personas que necesitan sitios de conferencias acaban dirigiéndose a páginas del estilo de wordpress.org o la herramienta Open Site Builder Tools [ObsTools] como herramientas genéricas para crear los sitios Web, pero en ningún caso orientadas específicamente a la gestión de congresos y conferencias, y con una funcionalidad mínima.
Primordialmente, este proyecto utiliza dos herramientas, con lo cual el estudio de la situación actual se enfoca hacia:
Sistemas que proporcionan una funcionalidad similar a OCS, o que cuando menos permitan la generación automática de sitios Web.
Frameworks y herramientas dirigidas a la creación y desarrollo de DSLs.
-Xtext 2.0
Patrón Data Access Object
Se sigue el mismo esquema para cada entidad: entidadDataService (interfaz de fachada), EntidadDataSimpleService (implementación de la fachada), EntidadDAO (DAO de la entidad).
Algunos DAOs pueden necesitar la colaboración de otros. Como es interno al módulo los usan directamente.
Google Guice es un Framework para la inyección de dependencias utilizado en aplicaciones en las que relaciones entre objetos de negocio han de mantenerse manualmente dentro del propio código de la aplicación. Soporta Java 5.0, por lo que se beneficia de las denominadas Annotations y Generics.
Por otra parte su analizador sintáctico está basado en ANTLR a bajo nivel, lo cual significa que las gramáticas, y por tanto la creación de lenguajes, está limitada (utiliza un algoritmo LL para gramáticas libres de contexto en el que las entradas son de izquierda a derecha; así pues, no se permitirían gramáticas recursivas por la izquierda). Para nuestro proyecto, sin embargo, la idea primordial es generar un DSL y a partir del modelo generado (programa desarrollado con el lenguaje) gracias a Xtext, leer la información introducida por el usuario (en Xtext se edita la sintaxis y a partir de ahí se genera el modelo), con lo cual dicha limitación no es muy remarcable.
mbiar, probar y reutilizar en otros contextos, y está enfocado a permitir que el desarrollo y depuración sea más fácil y rápido.
Crear un lenguaje de dominio específico para congresos y conferencias
Definir una sintaxis abstracta que permita generar un script ejecutable para crear sitios Web automáticamente
Proporcionar un editor amigable y fácil de usar
Permitir la validación y verificación de datos en tiempo real