documento del proyecto de grado

29
UNIVERSIDAD DE LOS ANDES Documento del Proyecto de Grado Recolección de Información en Proyectos de Arquitectura Empresarial Bernardo Mohnblatt Linsker 200722680 [email protected] 24/06/2013

Upload: others

Post on 02-Jan-2022

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Documento del Proyecto de Grado

UNIVERSIDAD DE LOS ANDES

Documento del Proyecto de Grado

Recolección de Información en Proyectos de Arquitectura Empresarial

Bernardo Mohnblatt Linsker – 200722680 – [email protected]

24/06/2013

Page 2: Documento del Proyecto de Grado

2

Contenido 1. Introducción .................................................................................................................................... 3

1.1. Contexto .............................................................................................................................. 3

1.2. Problemática ....................................................................................................................... 4

1.3. Motivación .......................................................................................................................... 5

1.4. Solución (Alto Nivel) ............................................................................................................ 5

1.5. Resumen de la operación de la solución ............................................................................. 7

2. Tecnologías Involucradas ............................................................................................................ 7

2.1. XTEXT ................................................................................................................................... 7

2.2. EMF (PlugIn para Eclipse) .................................................................................................... 8

2.3. Eclipse .................................................................................................................................. 8

2.4. Java SWING ......................................................................................................................... 9

2.5. MySQL ................................................................................................................................. 9

2.6. Java JSF ................................................................................................................................ 9

2.7. NetBeans ............................................................................................................................. 9

2.8. PrimeFaces ........................................................................................................................ 10

2.9. HTML, JavaScript y XML Files ............................................................................................ 10

3. Estado del Arte .......................................................................................................................... 11

3.1. Oracle Forms 11g .............................................................................................................. 11

3.2. WinForms .......................................................................................................................... 11

3.3. WebForm ........................................................................................................................... 12

3.4. JOOMLA ............................................................................................................................. 12

3.5. Magento Web Forms Community Edition ........................................................................ 12

4. Arquitectura .............................................................................................................................. 13

4.1. Arquitectura de Solución ................................................................................................... 13

4.2. Casos de Uso ..................................................................................................................... 15

4.3. Arquitectura de Información ............................................................................................. 16

5. Lenguaje de Dominio específico para Formularios ................................................................... 18

6. Conclusiones.............................................................................................................................. 22

7. Referencias ................................................................................................................................ 24

8. Anexos ....................................................................................................................................... 25

8.1. Gramática .......................................................................................................................... 25

Page 3: Documento del Proyecto de Grado

3

1. Introducción

En esta sección se establecerá el contexto del proyecto de grado para poder

entrar a describirlo detalladamente en todas sus perspectivas, después se hablará

de la problemática que se quiere solucionar explicando por qué el proyecto es útil

para un contexto genérico y puede manejar casos específicos. En la motivación se

introducirá una breve descripción de cómo encaja el proyecto dentro de los

procesos que se llevan a cabo en las empresas de hoy y la solución mirada desde

una perspectiva de alto nivel introducirá abstractamente el funcionamiento del

proyecto y la operación de la herramienta propuesta.

1.1. Contexto

Se pretende apoyar la solución de un problema que tienen las empresas de hoy

en día cuando se trata de recolectar información de diferentes áreas/personas con

el fin de usarla en pro de un proyecto (interno o externo). En este caso específico

se utilizará para apoyar la recolección de información a través del uso de

formularios digitales con la diferencia que usando esta herramienta podrán definir

y estructurar estos formularios desde la base por un área que administre el

sistema (ej. IT), adicionalmente los entrevistadores (Personas que recolectan la

información) podrán proveer retroalimentación al diseño de los mismos.

La situación actual del problema a abordar esta centrada en un mercado que

cobra montos bastante altos por herramientas similares y un acceso limitado a

estas por parte de comunidades abiertas y/o estudiantiles que las obliga a acudir a

métodos rústicos para llevar a cabo tareas de recolección de información a través

de formularios.

Una vez terminado el proyecto, se pretende fundar una base sólida para dejar

funcionando una herramienta que permita la creación flexible de formularios y la

ejecución de proyectos de recolección de información haciendo uso de estos y que

de tal manera los segmentos ya señalados estén en capacidad de hacer uso de

ella.

Page 4: Documento del Proyecto de Grado

4

1.2. Problemática

Como ya fue descrito anteriormente, la problemática radica en la falta de

herramientas flexibles de creación de formularios para recolección de información

utilizada en proyectos tanto empresariales como académicos y que las existentes

(similares) no son accesibles para segmentos de comunidades abiertas y

estudiantiles entre otras.

Es común ver en los contextos de los segmentos señalados, que cuando se hace

la recolección de información para proyectos y se utilizan formularios, se dan

varios tipos de informalidades cuando se trata de manejar la información:

Se utilizan herramientas rústicas que no dan ningún tipo de estructura a la

información recolectada y por lo tanto lo valioso que se puede encontrar en

ella tiene una probabilidad alta de ser desechado.

No hay control desde niveles altos del proyecto sobre la recolección de la

información, pues para grandes volúmenes de datos la administración de

los mismos se complica de una manera exponencial.

No hay espacio para la proactividad en la recolección de información por

parte de las personas que la recolectan, pues el acceso a la estructura del

formulario está limitado para retroalimentaciones.

No existe una entidad centralizadora de la información recolectada en el

proyecto, lo que puede llevar a que la calidad de los datos y la información

sea bastante baja.

Realmente la problemática radica en que el planteamiento de los formularios para

recolectar información es complicado, la calidad de los datos recolectados puede

verse afectada por la falta de centralización de la información y la administración

del proyecto se puede ver drásticamente dañada por las complicaciones que

implican los procesos de recolección de información utilizando metodologías

rústicas.

Page 5: Documento del Proyecto de Grado

5

1.3. Motivación

La motivación parte de lograr que un proyecto que comience en la Universidad de

los Andes, pueda fundar una base para la creación de una herramienta que

permita hacer más eficiente y estructurado el proceso de recolección de

información en diferentes tipos de instituciones con diferentes tipos de proyectos.

La idea es lograr esto a través de una herramienta que por sus características

genéricas permita un diseño flexible y una ejecución eficiente de este tipo de

procesos.

1.4. Solución (Alto Nivel)

1. Aplicativo de Administración de la Herramienta: Aplicativo Desarrollado

en Java que permite al administrador del sistema plantear la estructura de

usuarios y proyectos que se usará para la institución y asimismo validará

los formatos que se plantean (validará los Lenguajes de Dominio específico

con lo definido en EMF) para estructurar el plan de entrevistas basado en

formularios que ejecutarán posteriormente los entrevistador en las

empresas.

2. Modelos y Lenguaje de Dominio Específico: Desarrollo de la definición

de lo modelos que soportarán la estructura de los formularios con una

1

2

3

4

5

Page 6: Documento del Proyecto de Grado

6

herramienta desarrollada por Estudiantes de Maestria de los Andes que

permite editar los modelos base y los metamodelos paralelamente y de tal

manera hacer que logren autovalidarsen uno con el otro. Definición de la

estructura soportada usando un lenguaje de dominio específico que hace

referencia a una gramática construida con un desarrollado en XTEXT.

3. Lenguajes Resultantes y formatos .xmi: Formatos .xmi y lenguajes de

dominio resultantes de la etapa de diseño de los formularios que serán

validados y almacenados en una base de datos que centralizará la

información y apoyará la interpretación del diseño y de los resultados.

4. Base de Datos Centralizadora: Base de Datos que centralizará los

resultados de la ejecución de las entrevistas basándose en el diseño

previamente realizado por el administrador y que de tal manera apoyará la

interpretación de los formularios. Todo esto se logra con la definición de un

modelo de datos genérico que permite el almacenamiento de las diferentes

definiciones de formularios resultantes del diseño por parte del

administrador así como las instancias de los mismos, resultado de las

entrevistas.

5. Aplicativo de Entrevistas: Aplicativo web que permite a los

entrevistadores (Personas que recolectan la información en el proyecto)

realizar las entrevistas de una forma estructurada y de navegación flexible

por los diferentes formularios asignados a los proyectos que están siendo

llevados a cabo. Adicionalmente permite contribuir con retroalimentación a

la estructura de los formularios y llevar registro (en formatos .xml) de las

sesiones que se han llevado a cabo con cada una de las personas a

entrevistar.

Page 7: Documento del Proyecto de Grado

7

1.5. Resumen de la operación de la solución

2. Tecnologías Involucradas

Esta sección describirá las herramientas involucradas en el proyecto, explicará de

qué forma se están utilizando en el mismo y cuál fue la metodología de desarrollo

utilizada en el proyecto con dicha herramienta.

2.1. XTEXT

XTEXT es una herramienta que permite y facilita la construcción de lenguajes de

dominio específico propios de una situación con los beneficios de ajustar una

gramática a necesidades específicas y tener un parser de la misma trabajando en

pro de los desarrollos con este leguaje. Adicionalmente está soportada para

trabajar sobre eclipse. XTEXT cubre todos los aspectos de la infraestructura

completa de un lenguaje de domino específico desde los parsers hasta los

enlazadores, pasando por compiladores e interpretadores que se integran con el

IDE (Eclipse). (XTEXT, 2013)

En el proyecto, XTEXT es utilizado como la herramienta que se usó para definir la

gramática del lenguaje de dominio específico que se utiliza para definir la

Page 8: Documento del Proyecto de Grado

8

estructura de los formularios en los proyectos de recolección de información.

Gracias a su integración con Eclipse se facilitó la generación de compiladores y

los administradores (IT) en las empresas solo requerirán de este para desarrollar

la definición de la estructura de sus formularios.

2.2. EMF (PlugIn para Eclipse)

El proyecto EMF es un framework de modelado y generación de código para la

construcción de herramientas y otras aplicaciones basadas en un modelo de datos

estructurado. A partir de la especificación de un modelo descrito en XMI. EMF

proporciona herramientas y soporte de tiempo de ejecución para producir un

conjunto de clases Java para el modelo, junto con un conjunto de clases de

adaptadores que permiten la visualización y comando de edición basada en el

modelo, y un editor básico para el mismo. (Eclipse)

En este proyecto específico se utilizará un PlugIn desarrollado dentro de la

Universidad de los Andes para la edición de modelos y metamodelos

paralelamente en EMF.

2.3. Eclipse

Además de ser utilizado como IDE para lograr el desarrollo de algunos de los

componentes, Eclipse sirvió como plataforma de despliegue para:

La instalación de XTEXT y posterior plataforma de desarrollo de la

gramática que dio lugar a la definición del lenguaje de dominio específico

que se creó para los formularios.

El compilador del lenguaje de dominio específico definido para la creación

de los formularios. Esto significa que Eclipse es parte de la interfaz que

maneja el administrador del sistema (en IT) para su gestión con la

herramienta.

El PlugIn desarrollado por Estudiantes de Maestría de los Andes para la

edición paralela de modelos y metamodelos es también en PlugIn para

Eclipse, lo que significa que en este segundo caso el administrador del

sistema estará usándolo.

Visto lo anterior y para la implantación de la herramienta en una empresa, se

necesita que la máquina del administrador del sistema tenga Eclipse con los dos

PlugIns instalado.

Page 9: Documento del Proyecto de Grado

9

2.4. Java SWING

Java SWING es en la herramienta la encargada de hacer el papel de interfaz

gráfica para el aplicativo del administrador del sistema. La decisión fue tomada por

que en una primera etapa del ciclo de vida de la herramienta, este aplicativo será

local. Aún así está planteado que en un futuro la interfaz de este aplicativo sea

también WEB.

2.5. MySQL

MySQL es la base de datos elegida para soportar la persistencia de los datos en la

herramienta. La elección se hace por en es una base de datos que conoce la

gente que trabaja y trabajará en el proyecto y tiene los suficientes atributos para

soportar la operación de una herramienta como la planteada.

2.6. Java JSF

Un conjunto de APIs para representar componentes de interfaz de usuario y la

gestión de su estado, de sus eventos y la validación de entrada, así como la

definición de la navegación de sus páginas y el apoyo a la internacionalización y

accesibilidad. Una biblioteca de etiquetas (tags) personalizadas para JavaServer

Pages (JSP) en donde se puede expresar una interfaz JavaServer Faces dentro

de una página JSP. (OTN)

JSF es la librería utilizada para el desarrollo web de la herramienta del aplicativo

para los entrevistadores.

2.7. NetBeans

Netbeans es el IDE que se utilizó para desarrollar todo lo involucrado con el

aplicativo web que utilizan los entrevistadores dentro de la herramienta.

Esencialmente se elige por su facilidad para desarrollar aplicaciones WEB java y

su apoyo en el uso de librerías y herramientas internas usadas para desarrollar

herramientas como la planteada.

Page 10: Documento del Proyecto de Grado

10

2.8. PrimeFaces

PrimeFaces es la librería gráfica utilizada para soportar las exigencias de interfaz

necesitadas en el aplicativo web que usa el entrevistador. Primefaces hace

armonía con JSF y fue elegida por permitir que los elementos gráficos de una

aplicación sean flexibles y fáciles de implementar.

2.9. HTML, JavaScript y XML Files

Estas son algunas tecnologías adicionales necesarias para soportar la operación

de las herramientas web utilizadas para el desarrollo del aplicativo del

entrevistador.

Page 11: Documento del Proyecto de Grado

11

3. Estado del Arte

3.1. Oracle Forms 11g

Oracle Forms, un componente de Oracle Fusion Middleware, es la tecnología de

larga data de Oracle para diseñar y construir aplicaciones empresariales de forma

rápida y eficiente. Oracle mantiene su compromiso con el desarrollo de esta

tecnología, y para la liberación continua como un componente de la plataforma

Oracle. Este continuo compromiso con la tecnología de formularios le permite

aprovechar su inversión existente al permitir el perfeccionamiento y la integración

de aplicaciones Oracle Forms existentes para aprovechar las tecnologías web y

las arquitecturas orientadas a servicios (SOA). (OTN)

Oracle Forms es el componente actual de lo que venía siendo anteriormente

Oracle Forms & Reports. Esta tecnología es bastante costosa y poco accesible

para comunidades abiertas/estudiantiles. Si bien Forms permite la integración de

los formularios con aplicaciones construidas con SOA, es complicado el gobierno

de la misma y además poco flexible.

3.2. WinForms

WinForms o Widows Forms es un API Perteneciente al Framework de .NET de

Microsoft. WinForms es el componente de .NET que permite diseñar formularios

con facilidad como parte de las aplicaciones web que se construyen con el mismo.

La integración con el resto del Framework hace que la funcionalidad de WinForms

sea extendida a una arquitectura completa de una solución. (Microsoft) Con

WinForms es posible que un proyecto dedicado únicamente a la recolección de

información sea complicado, dado que su diseño está hecho para interactuar

como componente complementario a otras partes del Framework que serían en

dado caso el Core de un aplicativo.

Page 12: Documento del Proyecto de Grado

12

3.3. WebForm

WebForm es el módulo para ejecutar encuestas basadas en formularios que

ofrece Drupal. Está basada en una metodología de encuestas “Self-Serviice” que

solo requiere de la presencia de quien la contesta. Una vez acabada la encuesta,

el usuario enviará vía mail una notificación a los administradores (con copia a

quien quiera) informando que ya acabó y claro está, el contenido de la misma. Los

resultados finales serán exportados a Excel por parte del Administrador y los

usuarios. Esta aplicación es sugerida para ser usada en ocasiones como:

Concursos, recolección de información personal en organizaciones, pedidos

OnLine, entre otras de carácter sencillo. Requiere de PHP 5 o adelante, Drupal

6.16 o 7 y puede correr sobre MySQL 4.1 y mayor o PostGres SQL. (Drupal)

Existen extensiones de Drupal teles como EntityForms que tienen resultados

similares bajo metodologías similares.

3.4. JOOMLA

Joomla es una de las plataformas de administración de contenido más populares

en el mundo, adicionalmente dentro de sus funcionalidades permite la creación de

formularios para recolección de información. Es orientado a la comunidad de

Software Abierto y estructura sus desarrollos y nuevos Releases de acuerdo a

ella. Los estándares de definición de formularios de Joomla están estructurados

con programación orientada a objetos y diseñado con el patrón MVC (Modelo

Vista Controlador). Soporta más de 60 idiomas y tiene más de 9400 extensiones

basadas en los desarrollos de la comunidad. (JOOMLA)

3.5. Magento Web Forms Community Edition

Esta es una aplicación web de código abierto basada en desarrollos WEB. Es un

módulo de Magento que permite crear formularios a la medida para las

necesidades del desarrollador. Tiene múltiples componentes para la creación de

formularios como: Diseñador de Formularios, Validación automática de campos,

Administración simple de contenido, Google ReCaptcha, Notificaciones por correo

electrónico, entrevistas interactivas y desarrollo declarativo. (Magento)

Page 13: Documento del Proyecto de Grado

13

4. Arquitectura

En esta sección serán ilustradas las arquitecturas de solución e información de la

herramienta y adicionalmente se mostrarán los principales casos de uso de

interacción con el sistema.

4.1. Arquitectura de Solución

Esta es la arquitectura planteada para la herramienta y tiene las siguientes

características:

El aplicativo del administrador es únicamente accesible por el mismo

administrador (Generalmente relacionado con IT o administración del proyecto),

está instalado únicamente en su/s máquina/s e interactúa a través de dos tres

tipos de interfaz:

Para acceder al aplicativo propio de administración del sistema que actúa como

componente global, el administrador ejecuta un aplicativo SWING que le permite

administrar roles, usuarios, permisos y proyectos de la institución y que además le

da la opción de hacer un “preview” de las HTML pages que generaría el lenguaje

de dominio específico y como este se valida con el modelo base (Soportado por el

metamodelo).

Page 14: Documento del Proyecto de Grado

14

Para definir el lenguaje de dominio específico el administrador debe ejecutar una

instancia de eclipse generada por XTEXT que contiene el compilador y parser de

la gramática definida para esta función.

Para crear el modelo base/metamodelo también interactuará a través de eclipse,

pues el editor es un plugIn desarrollado para este IDE.

Entendiendo el funcionamiento del aplicativo del administrador, su output son los

dos archivos de los modelos generados con el plugIn(Modelo base y metamodelo)

y el resultado del desarrollo del lenguaje de creación de los formularios.

Adicionalmente el administrador tiene un output que son los HTML files del

preview que le genera su aplicativo.

Estos mismos outputs sirven también como inputs de los aplicativos para

entrevistadores:

El lenguaje de dominio específico es importado por un componente en el aplicativo

del entrevistador y almacena el resultado en la base de datos centralizadora.

Posteriormente el aplicativo usará la información almacenada para generar los

formularios de entrevistas.

Adicionalmente el aplicativo del entrevistador tiene una arquitectura sencilla que

contiene:

Un componente de control de la base de datos que se encarga de hacer todas las

operaciones relacionadas a ella.

Un componente manejador de la lógica en donde se encuentran las clases .java

con operaciones de apoyo y los beans que manejan las páginas JSF.

Un componente de fachada o “WEB” que tiene todo el contenido de las librerías de

JSF y PrimeFaces sobre páginas .xhtml en donde se construye la interfaz y se

define la navegación (Nota: Solamente en una de las páginas .xhtml se usa Java

Script).

Page 15: Documento del Proyecto de Grado

15

4.2. Casos de Uso

Caso de Uso Permiso Descripción

Administración de Roles e identidades de usuarios.

Administrador El administrador es el encargado de agregar, eliminar y modificar el los usuarios (Entrevistadores) del sistema y administra su información personal.

Administración de Proyectos

Administrador Para la institución, el administrador tiene la potestad de agregar y definir nuevos proyectos de recolección de información a través de formularios que utilizaran la herramienta.

Administración de Permisos

Administrador El administrador puede definir que usuarios podrán tener acceso a los formularios definidos para diferentes proyectos.

Creación de formularios con LDE

Administrador El administrador ( o su representación en IT) es quien usa la instancia de compilación de la gramática definida para el lenguaje de dominio específico de los formularios y de esta forma define la estructura de los mismos

Creación del Modelo base y Metamodelo

Administrador El administrador ( o su representación en IT) es quien define el modelo base para los formularios y paralelamente su metamodelo

Verificación de páginas HTML

Administrador El administrador podrá validar como quedan las páginas HTML con su aplicativo que puede leer el resultado de la definición de los formularios.

Validación de LDE con Administrador Teniendo la definición de los

Page 16: Documento del Proyecto de Grado

16

Modelo Base formularios con el lenguaje de dominio específico, el administrador podrá preguntarle a su aplicativo si su modelo base es coherente con el mismo (Tema que se tiene que fijar mientras lo construye), en caso contrario el aplicativo le sugiere modificarlo.

Ejecución de Entrevistas

Entrevistador Con toda la base lista, el entrevistador puede ejecutar la entrevista (partida por sesiones) con la herramienta de entrevistas.

FeedBack Entrevistador El Entrevistador puede dar feedback sobre los formularios y recibirlo inmediatamente en instancias propias de los formularios.

4.3. Arquitectura de Información

A continuación será ilustrada la arquitectura de información que se utiliza en la

base de datos centralizadora. El modelo de datos está diseñado para:

Ser genérico y lograr administrar la información de diferentes definiciones

de recolección de información.

Ser independiente de la definición de los modelos (una vez su información

sea almacenada) para lograr apoyar la creación de diferentes instancias de

entrevistas.

Permitir la administración y gobierno de los proyectos y usuarios del

sistema.

Page 17: Documento del Proyecto de Grado

17

Nota: Existen algunos cambios del modelo de datos a medida que se lleva a cabo el desarrollo.

Page 18: Documento del Proyecto de Grado

18

5. Lenguaje de Dominio específico para Formularios

El lenguaje de dominio específico para la definición de formularios está construido

en XTEXT y tiene las siguientes características para su uso:

Las entidades de información tienen varios formularios.

Cada formulario tiene un conjunto de atributos.

El atributo puede ser de diferentes tipos:

o Cadena: Campo de texto a llenar

o Número: Campo para ingresar un valor numérico

o Decimales: Campo para ingresar un valor de un número con

decimales

o Boleano: Campo para elegir una opción binaria representada por

VERDARERO y FALSO

o Referencia: Campo para elegir como referencia una instancia

existente de algún formulario

o Lista Cadena: Campo para elegir una opción entre varias

o Lista referencia: Campo para elegir varias instancias de algún

formulario existente

o CajaCheck: CheckBox

o RadioBotones: Listado de Radiobotones

o Archivo: Dialogo de búsqueda de un archivo adjunto

o URL: Ingreso de alguna URL útil para la recolección de la

información

La definición de los formularios será validada con constraints que permitirán

brindar una calidad de formularios acorde a los procesos planteados para la

recolección de la información.

A continuación un ejemplo de una página (.miFormulario) que servirá de guía

básica para aquellos que comenzarán a utilizar el compilador. Después del

ejemplo ( ya habiéndolo entendido) se realizarán comentarios sobre el mismo.

Ejemplo de la definición de formularios para un proyecto de AE:

/**

* formulario aplicaciones

Page 19: Documento del Proyecto de Grado

19

*/

formulario aplicaciones ?

"APPS" ! {

atributo nombre_aplicacion -- cadena "AppDefault default

nombre" --

atributo numero_lineas_codigo -- numero 12 --

atributo vesrion_aplicativo -- decimal 15,65 --

atributo compatible_windows -- boleano verdadero --

atributo proceso_1 -- referencia procesos ! "Ninguno" --

atributo identificadores_externos -- listaCadena (

cadena "Identificador 1"

cadena "Identificador 2"

cadena "Identificador 3"

cadena "nombre varios"

cadena "que se puedan poner"

cadena "Identificador 4"

) --

atributo sistemas_operativos_validos -- listaReferencia

SOs ! "Ninguno" --

}

?

// Procesos

formulario procesos ?

"PROC" ! {

atributo nombre_proceso -- cadena "AppDefault default

proccc" --

atributo actividades -- listaCadena (

cadena "Inicio"

Page 20: Documento del Proyecto de Grado

20

cadena "registro"

cadena "vender"

cadena "añadir"

cadena "adquirir"

cadena "Entregar"

) --

atributo maximo_personas_accesibles -- numero 15 --

atributo radioBotones_Terminacion_proceso -- radios (

cadena "Múltiple"

cadena "Única"

cadena "Opcional"

cadena "Custom Made"

) --

atributo archivo_imagen_diagrama_X -- archivo

"ElijaRuta" --

atributo URL_Website_Interno_aplicativo -- URL "Escriba su

URL Disponible" --

}

?

//SOs

formulario SOs?

"SOS" ! {

atributo nombre_Sistema_Operativo -- cadena "Escriba el

Nombre de su SO" --

atributo decimal_Cualquiera -- decimal 2345,7643 --

atributo vendible -- boleano verdadero --

atributo versiones_disponibles -- cajas (

cadena "12.34jjd"

Page 21: Documento del Proyecto de Grado

21

cadena "jjjjj"

cadena "15"

) --

}

?

Comentarios:

Nota: las variables en los ejemplos serán encerradas con [Variable].

El cuerpo de la definición de formularios estará delimitado por la

instanciación del formularios apoyado por signos de interrogación(“?”)

representando el principio y el fin del cuerpo:

o formulario [NOMBRE DEL FORMULARIO] ? [CUERPO DE LA DEFINICIÓN

DEL FORMULARIO] ?

Antes de comenzar a listar los atributos (Pero ya dentro del cuerpo de la

definición de dicho formulario) y con fines de asegurar la calidad de la

información, quien define el formulario deberá darle un ID único al mismo.

Una vez planteado el ID, se procederá a definir los campos de los

formularios encerrados por los corchetes (“{ }”). Para simbolizar la

terminación de la definición del ID del formulario se debe poner un signo de

admiración (“!”). El ID único del formulario será encerrado en comillas

dobles (“ ” ” ”):

o "[ID ÚNICO DEL FORMULARIO QUE ESTÁ SIENDO DEFINIDO]" ! { [ESPACIO

PARA DEFINIR LOS ATRIBUTOS DEL FROMULARIO QUE SE VERÁN

REFLEJADOS COMO CAMPOS DEL MISMO] }

Para la definición de un atributo (Campo), se maneja una estructura sencilla

que aplica para todos los tipos de campo de un formulario (véanse en

anexos en la definición de la gramática). Primero, para definir cada atributo

se comienza escribiendo la palabra “atributo”, a continuación se escribe el

nombre del atributo y para terminar se define el atributo según su tipo. La

definición del atributo será delimitada por doble guión medio al comienzo y

al final (“ -- ”):

Page 22: Documento del Proyecto de Grado

22

o atributo [NOMBRE DEL ATRIBUTO/CAMPO] – [TIPO DEL ATRIBUTO +

DEFINICIÓN DEL ATRIBUTO DEPENDIENDO DE SU TIPO] --

6. Conclusiones

Los beneficios que tiene una empresa/institución al usar esta herramienta

van desde la simplicidad y flexibilidad de la misma para ejecutar entrevistas,

pasan por la facilidad de definición, administración y gobierno de un

proyecto de este tipo y llegan hasta la posibilidad de tener la información

centralizada de una forma genérica para poder llevar a cabo múltiples

proyectos sin modificaciones a un modelo de datos único.

El gobierno de un proyecto de recolección de información a través de

formularios se ve facilitado por la posibilidad de ejecutar la administración

del proyecto de una forma desligada de la ejecución de las entrevistas. Lo

anterior permite al administrador un planteamiento independiente de

proyectos sin necesidad de afectar los que están siendo ejecutados.

Los entrevistadores que hacen uso del aplicativo WEB, podrán ejecutar sus

entrevistas partidas en diferentes sesiones y ofreciendo retroalimentación

sobre los formularios que usan. Dicha retroalimentación podrá ser reflejada

inmediatamente y anunciada en administración.

Definir un lenguaje de dominio específico para ser usado en la definición de

la estructura de los formularios trae consigo la ventaja de formalizar las

metodologías que se llevarán a cabo en los proyectos que usen dichos

formularios y de tal manera permitir que exista una buena calidad en la

Page 23: Documento del Proyecto de Grado

23

información resultante del proyecto así como la ejecución cómoda y

estructurada del mismo.

Tener una base de datos que centralice la información a través de una

estructura genérica, permite al proyecto asegurar consistencia en los

procesos de recolección de información así como diversidad para

plantearlos.

La posibilidad de los entrevistadores para brindar retroalimentación sobre

los formularios que están usando para recolectar la información, perite a los

mismos lograr una recolección de información completa así como permite a

los administradores una visión gerencial de los proyectos a través de estas

sugerencias.

Una herramienta construida con diferentes tecnologías permite apalancar

los beneficios de cada una de ellas para el proceso de desarrollo de la

misma.

Con la culminación de este proyecto, se podrá ofrecer al mercado una

herramienta abierta con características óptimas que en este momento es

complicada de encontrar.

Las etapas del desarrollo de la herramienta permitieron brindar una visión

más amplia de la problemática en proyectos de recolección de información

(Problema a solucionar) a través de metodologías que involucraban

pruebas sobre ejemplos variados.

Page 24: Documento del Proyecto de Grado

24

7. Referencias

Drupal. (s.f.). Drupal Projects. Obtenido de Drupal WebForms: https://drupal.org/project/webform

Eclipse. (s.f.). Eclipse for EMF. Recuperado el 02 de 06 de 2013, de Eclipse Modelig Framework:

http://www.eclipse.org/modeling/emf/

JOOMLA. (s.f.). JOOMLA. Obtenido de JOOMLA ORG: http://extensions.joomla.org/

Magento. (s.f.). Magento WebForms Connect. Obtenido de Magento Web Forms Com E:

http://www.magentocommerce.com/magento-connect/rebimol/extension/7232/webforms

Microsoft. (s.f.). MSDN. Obtenido de Microsoft for WnForms / Windows Forms - .NET Framework:

http://www.microsoft.com/events/series/windowsforms.mspx

Oracle. (s.f.). OTN. Recuperado el 28 de 05 de 2013, de Oracle Technology Network - Forms 11g

Section: http://www.oracle.com/technetwork/developer-tools/forms/overview/index.html

OTN. (s.f.). Oracle Technology Network. Recuperado el 04 de 06 de 2013, de Oracle:

http://www.oracle.com/technetwork/java/javaee/overview-140548.html

XTEXT. (06 de 04 de 2013). Eclipse Org for XTEXT. Obtenido de XTEXT:

http://www.eclipse.org/Xtext/

Page 25: Documento del Proyecto de Grado

25

8. Anexos

8.1. Gramática

Ahora señalada con amarillo será visualizada la definición de la gramática del

lenguaje de dominio específico:

grammar org.xtext.example.formulario.MiFormulario with

org.eclipse.xtext.xbase.Xbase

generate miFormulario

"http://www.xtext.org/example/formulario/MiFormulario"

// Define el Modelo para empezar y dice que puede tener varios

formularios

// Siempre '!' Separa y '?' Finaliza

ModeloFormulario:

metaentidades += Formulario*;

// Da un nombre a un formulario y da el listado (En ese orden) de

sus atributos

// Ej:

// El valotID sera el titulo del formulario y su valor a referir

// formulario aplicaciones App1(Default "SE USA A MODO DE

REFERENCIA") ! {nombreAplicacion , version , instaladoEn}?

Formulario:

'formulario' name=ID '?' valorID=STRING '!' '{'atributos +=

Atributo*'}' '?'

;

// Define un atributo dando su :

// 1) Nombre : nombre del atributo y texto de visualización

// 2)Valor : Tipo de Valor que tendrá este atributo definido por

TipoValor que delega varias posibilidades

Page 26: Documento del Proyecto de Grado

26

// Ej:

//

Atributo:

'atributo' name=ID '--' valor=TipoValor '--'

;

//----------------------------------------------

// START CONTENIDO DEL ATRIBUTO

//----------------------------------------------

// Define el Tipo de Valor que delega a Cualquiera de los Tipos

de Valor Posibles

// El tipo valor contiene para cada tipo establecido lo

siguiente:

// 'Valor' ! {ReglasAplicables} ?

TipoValor:

Cadena | Numero | Decimales | Boleano | Referencia |

ListaCadena |

ListaReferencia | CajaCheck | RadioBotones | Archivo | URL

;

//----------------------------------------------

// START TIPOS DE VALOR

//----------------------------------------------

// Para el Tipo "Cadena" especifica si definición

// Ej:

Cadena:

'cadena' valorCadena=STRING

;

// Para el Tipo "Numero" especifica su definición

Page 27: Documento del Proyecto de Grado

27

// Ej:

// numero DEFAULT_VALUE

Numero:

'numero' valorNumero=INT

;

Decimales:

'decimal' valorDecimal=DOUBLE

;

terminal DOUBLE : INT','INT;

Boleano:

'boleano' valorBoleano=BINARIO

;

terminal BINARIO : 'verdadero' | 'falso' ;

Referencia:

'referencia' superType = [Formulario] '!' valorIDRef=STRING

;

ListaCadena:

'listaCadena'

'(' cadenas += Cadena* ')'

;

ListaReferencia:

'listaReferencia' superType = [Formulario] '!'

valorIDRef=STRING

;

CajaCheck:

'cajas' '('Cajas += Cadena*')'

;

Page 28: Documento del Proyecto de Grado

28

//terminal CADENA_CAJA : STRING 'seleccionada' BINARIO ;

RadioBotones:

'radios' '('Radios += Cadena*')'

;

Archivo:

'archivo' valorRuta=STRING

;

URL:

'URL' valorLink=STRING

;

//----------------------------------------------

// END TIPOS DE VALOR

//----------------------------------------------

//----------------------------------------------

// END CONTENIDO DEL ATRIBUTO

//----------------------------------------------

Page 29: Documento del Proyecto de Grado

29