• No se han encontrado resultados

2. Marco Referencial

3.2. Especificación funcional del producto

3.2.3. Requerimientos específicos de interfaces

Debido a que el prototipo propuesto en este trabajo se trata de una extensión (plugin, add-on) de una plataforma como DSpace, existen unas interfaces con esta última a través de las API pública y de almacenamiento. Además, por tener interacción directa con los usuarios también se requiere de una interfaz gráfica de usuario (IGU). Estas interfaces se describen a continuación.

3.2.3.1. Interfaz gráfica de usuario

En esta sección se presentan los bocetos que dan una idea de las pantallas con las que podrá interactuar el usuario del prototipo propuesto.

Figura 9: Pantalla de ponderación de los criterios de evaluación

Figura 11: Pantalla de evaluación de expertos

Figura 13: Pantalla de reporte de resultados de la evaluación

3.2.3.2. Interfaz de aplicación

El módulo de evaluación de objetos de aprendizaje hace uso de otras funcionalidades nativas de DSpace tales como: autorización, manejo de contenidos, persistencia e índice de estadísticas SOLR por medio de la API de almacenamiento y algunas API´s de la capa de lógica de negocio. Estas API’s, de gran utilidad durante el desarrollo, se describen brevemente a continuación.

Paquete org.dspace.authorize

Maneja todos los permisos para los contenidos en DSpace. El sistema de autorizaciones de DSpace sigue la filosofía clásica de seguridad del “estado policial”: el usuario no puede hacer nada, a menos que esté específicamente permitido. Esos permisos se explican con

los objetos de tipo ResourcePolicy, almacenados en la tabla homónima en la Base de Datos.

Las políticas de recursos se asignan a todos los objetos de contenido de DSpace: colecciones, comunidades, elementos, paquetes y flujos de bits, por ende resuelve si un usuario tiene o no privilegios para realizar una acción concreta sobre un objeto concreto de acuerdo al grupo al que pertenece.

El proceso de instalación debe crear dos grupos especiales: grupo 0, para acceso anónimo/público y grupo 1 para administradores. El grupo 0 (público/anónimo) permite que cualquier usuario acceda, incluso si no están autenticados. Los miembros del grupo 1 (admin) tienen derechos de superusuario, y se les permite cualquier acción sobre cualquier objeto. Para el correcto funcionamiento del módulo propuesto, se crearon dos grupos adicionales en la Base de Datos (expertos 2 y estudiantes 3) que permiten acceder a evaluaciones del objeto de aprendizaje desde perspectivas distintas.

Paquete org.dspace.content

Proporciona una API para leer y manipular contenido en el sistema DSpace. Los datos en DSpace se almacenan según el siguiente modelo.

Clase Descripción Comunidad

Community

Las comunidades corresponden a unidades organizacionales dentro de una institución. Por ejemplo, un departamento, centro de investigación o laboratorio dentro de una Universidad.

Colección Collection

Las colecciones son agrupaciones de contenido relacionado. Una colección puede aparecer en más de una comunidad. Por ejemplo, un curso de cálculo integral, física mecánica, literatura clásica, etc...

Elemento Item

Los elementos son las unidades básicas de archivo. Un elemento corresponde a una sola pieza lógica de contenido y metadatos asociados. Un elemento puede aparecer en varias colecciones pero tiene una única colección propietaria. Por ejemplo, un objeto de aprendizaje, un capítulo de un libro, un video, una presentación por diapositivas, etc.

Paquete Bundle

Los paquetes son agrupaciones de flujos de bits que no tienen sentido por si solos. Por ejemplo, los archivos que componen un documento HTML irían todos en un mismo paquete. Una versión en PDF del mismo elemento, o un conjunto de datos almacenados con el el elemento, iría en un paquete independiente.

Flujo de bits Bitstream

Son secuencias de bits, normalmente archivos, que forman el contenido bruto de los elementos. Además, cada flujo de bits esta asociado con un formato; esto describe información sobre el formato y la codificación del flujo de bits, incluyendo un nombre (por ejemplo, “Adobe PDF”), un tipo MIME y un nivel de soporte.

Tabla 2: Clases de contenidos en DSpace

Las diferentes clases de contenidos presentados en la Tabla 2 son muy importantes para el propósito del módulo propuesto en este trabajo. Estas clases, disponibles en el API de contenido, son utilizadas para obtener los metadatos que servirán para calcular las diferentes métricas de calidad de la capa de gestión.

Paquete org.dspace.eperson

Proporciona clases que representan a usuarios y a los grupos de usuarios. En el caso del módulo propuesto en este trabajo, se utilizan métodos de la clase Group para determinar la pertenencia de los usuarios a uno de los grupos definidos por la aplicación para acceder a sus funcionalidades: 1-Administradores, 2-Expertos o 3-Estudiantes. En caso de que el usuario autenticado en el sistema DSpace no pertenezca a ninguno de estos grupos, no podrá acceder a ninguna de las funcionalidades del módulo de evaluación.

Paquete org.dspace.statistics

Proporciona clases y métodos para acceder al índice SOLR y a varios reportes estadísticos sobre los contenidos y uso del sistema que son generados automáticamente, esto se realiza analizando los archivos de registro de Dspace (Dspace's log files). Las estadísticas se pueden mostrar por periodos mensuales, algunas de estas estadísticas incluyen:

• Número de elementos guardados

• Número de vistas de bitstream

Número de vistas/descargas a la página de un elemento

Número de vistas a la página de una colección

Número de vistas a la página de una comunidad

• Número de accesos de usuario

• Número de búsquedas realizadas

• Número de rechzos de licencia

• Número de peticiones OAI, etc. Paquete org.dspace.storage.rdbms

Proporciona una API para acceder a un sistema de gestión de base de datos relacional (RDBMS). La clase principal es DatabaseManager, que ejecuta consultas SQL y retorna objetos de tipo TableRow (para un único resultado) o TableRowIterator (para varios resultados). La clase DatabaseUtils se utiliza para cargar SQL en el RDBMS a través del Flyway DB.

En la mayoría de los casos el uso de la API de almacenamiento se usa combinado con la API de contenido el cual encapsula el uso de la base de datos. Las clases de este paquete se utilizan para crear imágenes en memoria que representan los objetos lógicos correspondientes almacenados en Base de Datos. Cuando se realiza la lectura o manipulación, el Contexto puede ser abortado, en cuyo caso se descartan los cambios, o puede ser completado, en cuyo caso los cambios realizados son confirmados en la Base de Datos.

Si se produce algún error mientras se producen cambios, se debería abortar el contexto actual, ya que las imágenes en memoria podrían estar en un estado inconsistente.

Normalmente, al cambiar un objeto particular en el sistema, los cambios no se escribirán en el almacenamiento principal de DSpace a menos que se realice la actualización en el objeto antes de completar el Contexto. Donde este caso no ocurre, se indica en la documentación del método.

Todas las tablas en el sistema DSpace tienen una única llave primaria, la cual es un entero. La columna de la llave primaria lleva el nombre de la tabla a la que pertenece, por

ejemplo, la tabla Eperson tiene la columna eperson_id.

Se pueden asignar ID’s de base de datos llamando la función SQL getnextid con el nombre de la tabla como único parámetro. El backend de la base de datos puede implementarlo de cualquier manera adecuada, debe ser robusto para el acceso a través de múltiples clientes simultáneos y transacciones.

El paradigma general para usar DSpace es crear un Contexto porque mantiene información relevante, realiza una serie de procesos, y está involucrado en un gran número de operaciones (muchos métodos lo requieren). Por ejemplo, el Contexto, contiene una referencia al usuario activo, abre una conexión con una Base de Datos o administra un caché de objetos instanciados, reduciendo la carga sobre la base de datos y evitando instancias múltiples de un mismo objeto. Las instancias de las clases en este paquete están vinculadas al Contexto; cuando el Contexto ha sido terminado, los objetos se vuelven inválidos.

3.2.3.3. Requerimientos de persistencia

DSpace utiliza una base de datos relacional para guardar toda la información acerca de la organización del contenido, metadatos de los contenidos, información sobre los usuarios y autorización, y el estado de los flujos de trabajo operando en el momento. El sistema DSpace también usa la base de datos para mantener índices que los usuarios pueden explorar.

La mayoría de las funcionalidades que utiliza DSpace pueden ser ofrecidas por cualquier base de datos SQL estándar que admita transacciones. Sin embargo, en este momento, las API’s de DSpace utilizan algunas características especificas de PostgreSQL y Oracle, por lo que sería necesario realizar modificaciones al código fuente antes de utilizar DSpace plenamente con una base de datos alternativa de fondo.

El paquete org.dspace.storage.rdbms proporciona acceso a una base de datos SQL de una manera más simple que utilizando el JDBC directamente. Por esto se decidió utilizar la API de almacenamiento descrita anteriormente para acceder a los datos correspondientes a los usuarios, ítems, colecciones, comunidades, etc... de la aplicación y, adicionalmente, a las tablas que se requiere adicionar a la Base de Datos Relacional utilizada por DSpace (PostgreSQL u Oracle) para almacenar los datos correspondientes a la parametrización de cada evaluación (capas, dimensiones, métricas) y los resultados de las mismas para la posterior generación de los respectivos reportes.

3.2.4. Especificación de casos de uso

Documento similar