De acuerdo con el modelo conceptual descrito anteriormente, de las consideraciones presentadas respecto a la implementación de las evaluaciones de cada una de las capas, y de la integración de estas para calcular un índice total y dar un puntaje al objeto de aprendizaje, se planteó el siguinete diagrama de clases y su respectivo diccionario. 3.3.2.1. Diagrama de clases
A continuación se presenta el diagrama de clases de la solución desarrollada. Es importante aclarar que las clases consideradas fueron las del núcleo de la solución, es decir, el modelo en una arquitectura MVC, y son las que hacen parte del proyecto additions, mientras que las clases y artefactos que hacen parte de jspui, y que constituye la vista y el controlador en MVC, no se incluyen en este diagrama.
Dentro del diagrama se puede observar una relación jerárquica para la realización de evaluaciones administrativas que está basada en el patrón comando, constituido por una interfaz comando y seis implementaciones o comandos concretos que representan cada una de las seis métricas que se pueden evaluar por parte del administrador, esta decisión de diseño permite agregar, eliminar o remplazar las métricas administrativas, más concretamente la forma como estas se realizan, de forma transparente fomentando la extensión sobre la modificación (principio open-close). Aunque la estructura difiere respecto a la de un patrón comando convencional, especialmente porque el comando concreto y el realizador de la operación son el mismo objeto, fue una adaptación a las necesidades del proyecto.
Por otro lado, las operaciones a base de datos se hacen a través de una serie de clases utilitarias (Layer, Dimension, Metric, AssessParam), que además de representar relaciones del modelo de datos descrito anteriormente, contienen una serie de métodos estáticos para recuperar, eliminar, actualizar y crear (operaciones CRUD) dichas relaciones en base de datos. Estas clases son utilizadas principalmente por las clases denominadas “helpers” en el modelo. Éstas últimas constituyen el punto de acceso al módulo de evaluación.
En el diagrama se omiten los métodos accesores y modificadores (setters y getters) convencionales de los atributos de las clases, a no ser que incluyan alguna lógica adicional a la usual; en el caso de la interfaz del patrón comando se da por sentado que cada una de las clases concretas (comandos concretos) implementa el método y se omite. Además el modelo no muestra las interacciones con DSpace, pero el uso del API de DSpace fue esencial en la elaboración de esta solución, especialmente el API de persistencia y de contenido.
Ver anexo SalazarRinconAndresAlexis-3.jpg
3.3.2.2. Diccionario de Clases
A continuación se presenta descripción de las características lógicas de atributos y métodos, con el fin de dar precisión sobre los datos que se manejan en el sistema evitando malas interpretaciones o ambigüedades, además una descripción de la razón de existencia de la clase. En algunas descripciones de este diccionario, se hace mención a entidades del modelo de datos que se describe en la sección siguiente.
Nombre: StartAssessHelper
Descripción: Está clase contiene métodos utilitarios para iniciar la evaluación y realizar la parametrización de la evaluación.
Capa de métodos
Visibilidad Nombre Tipo
Parámetros
Semántica Retorno
public getDimensions -Context: contexto Dspace.
-List: Lista AssessParams -int: identificador de la capa.
Devuelve lista con los nombres de las dimensiones que se encuentran en la lista de AssessParam para la capa dada Vector: Lista de Strings con los nombres de las dimensiones
public getDimensions -Context: contexto Dspace. Recupera la lista de dimensiones de la base de datos Vector: Lista de objetos tipo Dimension
public getMetrics -Context: contexto Dspace.
-List: Lista AssessParams -int: identificador de la capa
Devuelve lista con los nombres de las métricas que se encuentran en la lista de AssessParam para la capa dada
Vector: Lista de Strings con los nombres de las métricas
public getLayers -Context: contexto de Dspace
Recupera las capas de la base de datos.
Vector: Lista de String con los nombres de las capas public verifyCheckedDi mensions -Context: contexto Dspace. -Vector: Lista de de valores separados por coma con información de la capa, la dimensión y la métrica. -int: identificador de la capa.
Retorna lista de Strings con los nombres de las dimensiones en la lista de valores separados por comas Vector: Lista de Strings con nombre de las dimensiones.
Nombre: AdminAssessHelper
Descripción: Realiza las operaciones del módulo de evaluación relacionadas con la capa administrativa, dentro de las que se encuentra visualización de resultados globales, evaluación de las métricas propias de la capa.
Capa de atributos
Visibilidad Nombre Tipo Semántica Dominio de
valores
private criteriaCommand AdminAssessment CommandInterface
Almacena una instancia de un comando concreto, es decir, de una instancia de una clase que implementa la interfaz Posibles objetos de tipo AdminAssessmen tCommandInterfac e Capa de métodos
Visibilidad Nombre Tipo Parámetros Semántica Retorno
public assess - String: nombre de la evaluación que se va a realizar - DSpaceObject: ítem del repositorio - Context: contexto DSpace
Realiza la evaluación indicada sobre el ítem que se pasa AssessResult: Objeto con la información resultado de la evaluación public getAssessmentRe sults
- Int: id del item - Context: contexto de DSpace Retorna la información sobre el resultado de la evaluación. Vector: Lista de Strings con valores separados por coma public calculateLayerInde x - Vector: Lista de AssessParam del ítem - int: identificador capa Calcula el índice o valor ponderado de un ítem para una capa dada.
double: el puntaje final para la capa.
public calculateTotalIndex - double: índice capa administrativa - double: índice capa expertos - double: índice capa estudiantes Calcula el índice o valor final de un objeto
double: puntaje final.
Nombre: ExpertAssessHelper
Descripción: Contiene operaciones necesarias para realizar las acciones relacionadas con la evaluación de la capa de expertos.
Capa de atributos
Visibilidad Nombre Tipo Semántica Dominio de
valores
private itemId int Identificador del ítem que se evalúa
Valores enteros positivos
private oldDimWeights Map Mapa con información de las dimensiones y el peso dado por el experto antes de que se actualice Pares, compuestos por identificador de la dimensión y el peso, un valor entero entre 1 y 5 private dimWeights Map Mapa con información
de las dimensiones y el peso dado por el experto después de que se actualice Pares, compuestos por identificador de la dimensión y el peso, un valor entero entre 1 y 5 private metricsValues Map Mapa para mantener en
memoria valores de las métricas antes de la actualización Pares, compuestos por identificador de la métrica y su puntaje, un decimal entre 0 y 1. Capa de métodos
Visibilidad Nombre Tipo
Parámetros
Semántica Retorno
public ExpertAssessHe lper
int: identificador del ítem que se evalúa Constructor encargado de iniciar variables antes de realizar la evaluación NA
public setExpertWeight - Context: contexto Dspace
Map: mapa de dimensiones y peso dado a cada dimension
Actualiza o agrega el peso dado por un expertos a las dimensiones
Nombre: ExpertAssessHelper public setExpertAsses sment - Context: contexto Dspace - Map: mapa de métricas y lista de valores dado para cada métrica
Actualiza o agrega el puntaje dado por un experto a las métricas
void
* Esta clase también incluye los métodos accesores y modificadores para cada uno de los atributos
Nombre: StudentAssessHelper
Descripción: Contiene operaciones necesarias para realizar las acciones relacionadas con la evaluación de la capa de estudiantes.
Capa de métodos
Visibilidad Nombre Tipo Parámetros Semántica Retorno
public setExpertAssessm ent Context: contexto Dspace Map: mapa de métricas y lista de valores dado para cada métrica
Actualiza o agrega el puntaje dado por un estudiante a las métricas
void
Nombre: AdminAssessmentCommandInterface
Descripción: Interfaz para la evaluación de métricas de la capa de administradores. Hace el papel de interfaz del patrón comando.
Capa de métodos
Visibilidad Nombre Tipo Parámetros Semántica Retorno
public executeAssess ment
- DSpaceObject: objeto dspace sobre el que se aplica la evaluación - Context: contexto Dspace
Ejecuta la evaluación sobre el objeto dado. Puede arrojar una excepción de tipo AdminAssessmentE xception cuando algo sale mal en la ejecución de la evaluación. AssessParam: objeto con información del resultado de la evaluación administrativa
Nombre: AssessResult
Descripción: Encapsular información sobre el resultado de una evaluación administrativa
Capa de atributos
Visibilidad Nombre Tipo Semántica Dominio de
valores
private task String Nombre de la métrica “Coherence”, “Availability”, etc private score double Puntaje obtenido Valor decimal
entre 0 y 1 private handle String Identificador del ítem
evaluado
Cadena de texto private status String Identificador del resultado “Success”,
“Failed” private result String Descripción del resultado
obtenido
Cadena de texto private isSuccess boolean Sí se logró o no efectuar
la evaluación
true, false
Capa de métodos
Visibilidad Nombre Tipo Parámetros Semántica Retorno
public AssessResult String: task double: score String: habdle String: status String: result boolean: isSuccess
Constructor que crea un nuevo objeto asignando los valores dados a los correspondientes
atributos de la clase
NA
* Esta clase también incluye los métodos accesores y modificadores para cada uno de los atributos
Nombre: AdminAssessmentException
Descripción: Excepción personalizada que se utiliza para indicar que algo fue mal con la evaluación administrativa
Capa de métodos
Visibilidad Nombre Tipo
Parámetros Semántica Retorno public AdminAssessmentEx ception String: mensaje personalizado Constructor que permite agregar un mensaje personalizado, a la excepción NA Nombre: ReusabilityAssessCommand
Descripción: Comando concreto que se encarga de realizar la evaluación administrativa de la métrica de reusabilidad
Capa de atributos
Visibilidad Nombre Tipo Semántica Dominio de
valores
private HIGHT double Constante con valor que se le deben asignar a objetos con alta granularidad
0.1
private AVERAGE double Constante con valor que se le deben asignar a objetos con media granularidad
0.5
private LOW double Constante con valor que se le deben asignar a objetos con alta granularidad
0.9
private ATOMIC double Constante con el valor que se le deben asignar a objetos con estructura atómica
0.9
private COLLECTION double Constante con el valor que se le deben asignar a objetos con estructura de collección
Nombre: ReusabilityAssessCommand
private NETWORK double Constante con el valor que se le deben asignar a objetos con estructura de red
0.5
private HIERCAL double Constante con el valor que se le deben asignar a objetos con estructura jerárquica
0.25
private LINEAR double Constante con el valor que se le deben asignar a objetos con estructura leneal
0.1
Capa de métodos
Visibilidad Nombre Tipo Parámetros Semántica Retorno
public executeAssess ment
- DSpaceObject: objeto dspace sobre el que se aplica la evaluación - Context: contexto Dspace Implementación del método descrito en AdminAssessmentComm andInterface para la evaluación de reusabilidad AssessmentResul t private checkGranularit yRule String: tipo de contenido Determina la granularidad de acuerdo con el tipo de contenido pasado Double: valor representando la granularidad private checkStructure Rule String: tipo de contenido Determina la estructura de acuerdo con el tipo de contenido pasado
double: valor representando la estructura
Nombre: CompletenessAssessCommand
Descripción: Comando concreto que se encarga de realizar la evaluación administrativa de la métrica de completitud
Capa de atributos
Visibilidad Nombre Tipo Semántica Dominio de
valores
private TITLE double Constante con el valor que se le debe sumar si el objeto tiene título
0.17
private SUBJECT double Constante con el valor que se le debe sumar si el objeto tiene asignatura
Nombre: CompletenessAssessCommand
private ABSTRACT double Constante con el valor que se le debe sumar si el objeto tiene “abstract”
0.14
private AUTHOR double Constante con el valor que se le debe sumar si el objeto tiene autor
0.13
private DATE double Constante con el valor que se le debe sumar si el objeto tiene fecha
0.12
private TYPE double Constante con el valor que se le debe sumar si el objeto tiene tipo
0.11
private LANG double Constante con el valor que se le debe sumar si el objeto tiene lenguage
0.07
private DESCR double Constante con el valor que se le debe sumar si el objeto tiene descripción
0.05
private LOCATION double Constante con el valor que se le debe sumar si el objeto tiene identificador por URI
0.03
private STATUS double Constante con el valor que se le debe sumar si el objeto tiene procedencia
0.02
Capa de métodos
Visibilidad Nombre Tipo Parámetros Semántica Retorno
public executeAssess ment
- DSpaceObject: objeto dspace sobre el que se aplica la evaluación
- Context: contexto Dspace
Implementación del método descrito en AdminAssessmentComman dInterface para la evaluación de completitud AssessmentRe sult
Nombre: ConsistencyAssessCommand
Descripción: Comando concreto que se encarga de realizar la evaluación administrativa de la métrica de consistencia
Capa de atributos
Visibilidad Nombre Tipo Semántica Dominio de
valores
private log Logger Atributo que permite enviar mensajes usando el sistema de logs de la plataforma. Se utiliza porque la métrica implica el manejo de excepciones de las que se debe dejar traza en los logs
Posibles objetos de tipo Logger
Capa de métodos
Visibilidad Nombre Tipo Parámetros Semántica Retorno
public executeAssess ment - DSpaceObject: objeto dspace sobre el que se aplica la evaluación - Context: contexto Dspace Implementación del método descrito en AdminAssessmentComm andInterface para la evaluación de consistencia AssessmentResul t private compareCSVal ues String: ruta al archivo con los registros de comparación String: valor que se desea comparar
Compara el registro con valores en el archivo CSV pasado, buscando un registro igual para validar el valor.
boolean: si el campo tiene un igual en el archivo o no
Nombre: VisibilityAssessCommand
Descripción: Comando concreto que se encarga de realizar la evaluación administrativa de la métrica de visibilidad
Capa de atributos
Visibilidad Nombre Tipo Semántica Dominio de
valores
private log Logger Atributo que permite enviar mensajes usando el sistema de logs de la plataforma. Se utiliza porque la métrica implica el manejo de excepciones de las que se debe dejar traza en los logs
Posibles objetos de tipo Logger
Capa de métodos
Visibilidad Nombre Tipo Parámetros Semántica Retorno
public executeAssess ment - DSpaceObject: objeto dspace sobre el que se aplica la evaluación - Context: contexto Dspace Implementación del método descrito en AdminAssessmentComma ndInterface para la evaluación de visibilidad AssessmentRes ult Nombre: AvailabilityAssessCommand
Descripción: Comando concreto que se encarga de realizar la evaluación administrativa de la métrica de disponibilidad
Capa de métodos
Visibilidad Nombre Tipo Parámetros Semántica Retorno
public executeAssess ment
- DSpaceObject: objeto DSpace sobre el que se aplica la evaluación - Context: contexto DSpace Implementación del método descrito en AdminAssessmentCom mandInterface para la evaluación de disponibilidad AssessmentRes ult
private getURLs -Item: Objeto de DSpace
Obtiene las URLs que el objeto pueda obtener en sus metadatos
List: lista de strings con las URLs
Nombre: AvailabilityAssessCommand
private checkURL -String: URL Obtiene la respuesta HTTP de la URL dada, y con base a esto determina si la URL responde o no. boolean: devuelve si la URL responde o no. private getResponseSt atus
-String: URL Devuelve el código de estado HTTP
String: código respuesta
Nombre: CoherenceAssessCommand
Descripción: Comando concreto que se encarga de realizar la evaluación administrativa de la métrica de coherencia
Capa de atributos
Visibilidad Nombre Tipo Semántica Dominio de
valores
private log Logger Atributo que permite enviar mensajes usando el sistema de logs de la plataforma. Se utiliza porque la métrica implica el manejo de excepciones de las que se debe dejar traza en los logs
Posibles objetos de tipo Logger
Capa de métodos
Visibilidad Nombre Tipo Parámetros Semántica Retorno
public executeAssess ment
- DSpaceObject: objeto dSpace sobre el que se aplica la evaluación - Context: contexto DSpace Implementación del método descrito en AdminAssessmentCom mandInterface para la evaluación de coherencia AssessmentResu lt
private init Carga los archivos que necesita la librería utilizada para detectar idiomas en mensajes
Nombre: CoherenceAssessCommand
private detect String: texto que se desea analizar
Haciendo uso del API de la librería externa para la detección de idiomas, determina el idioma del mensaje dado.
String: idioma del mensaje dado
private searchFormaTy pe
String: campo metadatos con el tipo MIME
Revisa por el formato multimedia del campo dado, haciendo uso de archivo CSV con tipos MIME válidos y sus respectivos formatos
String: formato del tipo MIME
Nombre: Layer
Descripción: Representa una capa del modelo, y agrupa métodos estáticos para realizar operaciones a base de datos relacionadas con las capas y los índices (resultados consolidados de las evaluaciones ) del modelo
Capa de atributos
Visibilidad Nombre Tipo Semántica Dominio de
valores
private id int Identificador de la capa Valores enteros positivos
private name String Nombre de la capa “Administrator”, “Expert”, “Student”
Capa de métodos
Visibilidad Nombre Tipo
Parámetros
Semántica Retorno
public Layer - Context: contexto DSpace
- TableRow: Fila del API de persistencia de DSpace
Constructor que crea un nuevo objeto a partir del objeto TableRow otorgado
NA
public findAllLayers - Context: contexto DSpace
Recupera las capas de la base de datos
Layer[]: Arreglo de capas
Nombre: Layer public addAssessmentIn dexes - Context: contexto DSpace - int: identificador del ítem - double: índice de la capa de administradores - double: índice de la capa de expertos - double: índice de la capa de estudiantes - double: índice total
Agrega los índices consolidados por capa, y el índice total para el ítem dado en la base de datos void public updateAssessInde xes - Context: contexto DSpace - double: índice de la capa de administradores - double: índice de la capa de expertos - double: índice de la capa de estudiantes - double: índice total - int: identificador del ítem
Actualiza los índices consolidados por capa, y el índice total para el ítem dado en la base de datos void public deleteAssessInde xes - Context: contexto DSpace - int: identificador del ítem Elimina el registro en la relación Assessment_History para el ítem dado, es decir, elimina los índices consolidados de la base de datos
int: número de filas afectadas (0 o 1)
public findIndexByItem - Context: contexto DSpace - int: identificador del ítem Recupera el identificador de la entidad Assessment_History para el ítem dado
Int: identificador del registro de los índices para el ítem
* Esta clase también incluye los métodos accesores y modificadores para cada uno de los atributos
Nombre: Dimension
Descripción: Representa una dimensión del modelo, y agrupa métodos estáticos para realizar operaciones a base de datos relacionadas con las dimensiones del modelo y los pesos que los administradores y expertos le dan a estas (parametrización).
Capa de atributos
Visibilidad Nombre Tipo Semántica Dominio de
valores
private id int Identificador de la dimensión
Enteros positivos private name String Nombre de la dimensión “Content”,
“Contextual”, “Educational” , “Esthetic”,
“Functional”, “Metadata” private layerId int Identificador de la capa a
la que pertenece la dimensión
Entero positivo
Capa de métodos
Visibilidad Nombre Tipo Parámetros Semántica Retorno
public Dimension - Context: contexto DSpace
- TableRow: Fila del API de persistencia de DSpace
Constructor que crea un nuevo objeto a partir del objeto TableRow otorgado
NA
public findByLayer Context: contexto de DSpace String: nombre de la capa Recupera las dimensiones asociadas a una capa Dimension[]: Colección de dimensiones pertenecientes a la capa.
public findNameByID - Context: contexto DSpace - int: identificador de la dimensión Recupera de base de datos el nombre de la dimensión cuyo identificador es dado. String: nombre dimensión. public addDimension Weight - Context: contexto DSpace - int: identificador de la dimensión - int: identificador de la capa