Java Expert....Java/Open Source Addict

Redes Sociales

twitterlinkedinrss feedemail youtube

martes, 10 de marzo de 2009

EVAAB: Módulo para Moodle para el aprendizaje a través de la retroalimentación


EVAAB es módulo que nació como proyecto de grado en la Escuela Politécnica Nacional E.P.N el cual permite realizar evaluaciones basadas en la retroalimentación para lo cual utiliza elementos como pistas y referencias para ayudar al usuario en su resolución.

Por alrededor de 8 meses por motivos de tiempo no me permitieron seguir trabajando en el mismo, a pesar de haber conseguido el seguimiento por el mismo dentro de Moodle, ahora que estoy un poquito más libre se podría decir...he decidido levantar el proyecto.

Características:
Entre las características que tiene podemos mencionar las siguientes:

  • Es un módulo que mantiene los estándares de Moodle hasta la distribución 1.8 (Realmente tengo que revisar para ver en que a cambiado la actual)
  • Utiliza AJAX en su core para su funcionamiento.
  • Permite generar reportes acerca de la resolución del Cuestionario por estudiante.
  • Se puede utilizar todos los recursos disponibles en Moodle para los elementos de ayuda en cuanto a las referencias.
  • Soporta las plataformas de Windows y GNU-Linux.

Fuentes:

Toda la información respectiva puede ser descargado de los links del tracker de Moodle (Ya que estoy en espera de que se apruebe el proyecto en la sourceforge). Aqui les dejo los links
:

evaab1.0


Documentación

Manual de Usuario




Mayor Información:

Para mayor información pueden visitar los siguientes enlaces:


Video Demostrativo

jueves, 8 de enero de 2009

Herencia en TopLink III Parte


Lamentó por la demora amigos(as)....tantas cosas pero bueno sigamos con el post...

Configurando la Herencia

Procedemos a configurar primero la clase padre para lo cual debemos configurar su descriptor, lo cual implica conocer cuáles subclases deben instanciarse deacuerdo a algún parámetro. Se puede optar por dos opciones:
  • La primera es utilizar campos indicadores en la clase descriptora padre, los cuales pueden ser números o cadenas que no deben mapearse a un atributo de la tabla a menos que sea solo de lectura ya que estos serán los encargados de determinar si una subclase es instanciada o no, para lo que se debe emplear un mecanismo de pareja clave - valor como se muestra en la figura a continuación:
  • La otra opción es utilizar un campo indicador con el nombre completo de la clase hija o padre como valor, dependiendo de que necesitemos instanciar, lo cual colocamos en una columna que sirve como campo indicador para saber que subclase se instanciara. Cabe aclarar que este campo indicador es un atributo de la clase padre (Tabla Padre) como se muestra a continuación:


  • La última opciónes utilizar métodos de extracción lo cual no abundaremos en este post.
En mi caso utilice la segunda opción a través del campo indicador tipoObjeto el cual me permitirá saber que clase hija debo instanciar. Con este preámbulo en mano comencemos la configuración de la clase Padre.


Configurando la clase Padre (Entidad)
Para configurar la clase padre lo primero que debemos hacer es activar la pestaña de Inherence , para lo cual nos colocamos sobre la ventana Structure seleccionamos nuestra clase Entidad y activamos la opción como se muestra en la figura(Lo mismo debemos realizarlo para los clases hijas):



Una vez activada la pestaña de Inherence se debe marcar la opción Is Root Descriptor (si no está activada) para indicar que esta será la clase padre, como voy a utilizar un campo indicador seleccionamos la opción Use Class Indicator Field y elegimos el campo respectivo que en nuestro caso es TipoObjeto quedando la configuración queda de la siguiente manera:


Configurando Clases Hijas

Teniendo ya configurada la clase padre es momento de configurar las clases hijas para lo cual realizamos tanto en la clase Empresa como Persona la activación de la opción Inherence (Como se menciono anteriormente).

En la clase hija tanto Empresa como Persona se tiene que desactivar la opción Is Root Descriptor para asegurar que estás serán tratadas como clases hijas, además se debe colocar el respectivo que es el Parent Descriptordescriptor padre Entidad como se muestra en la figura a continuación:

Luego de esto debemos modificar el campo indicador en la clase padre para que sea solo de lectura, para lo que seleccionamos el atributo tipoObjeto dentro de la clase Entidad en la ventana de Structure y marcamos la opción read only como se muestra en la figura a continuación:


Una vez realizado la configuración de los descriptores se debe modificar las clases hija Empresa y Persona para que extiendan de la clase Entidad lo cual involucra realizar las siguientes acciones:
  • Todas las clases hijas (Empresa, Persona) deben extender de su clase padre (Entidad).


  • El atributo que define la clave primaria en las tablas hijas debe ser omitido o borrado junto con sus métodos de acceso setter y getter, ya que las tablas hijas utilizarán como identificador al identificador del padre.
  • Las relaciones de las tablas hijas con las tabla padre ya no son necesarias ya no que devuelven ningún dato (pueden comprobarla y verán que su resultado es objeto nulo) por lo que en mi caso el atributo que define las relaciones con entidad y todo sus referencias fueron comentadas.


  • Para terminar se debe aclarar que no es necesario modificar los descriptores de cada clase eliminando o comentando las relaciones y atributos mencionados anteriormente para que funcione( eliminando la relación de entidad en cada clase hija por ejemplo), TopLink los omite. Pero sería conveniente hacerlo para ganar un poco de experiencia en el manejo de estos.