• No se han encontrado resultados

Primera descomposición del sistema en partes

7. Generar estadísticas Exclusivamente para el juego desarrollado, se desea adicionalmente que el Analizador pueda generar estadísticas sobre los jugadores

5.2.  Planteo de la solución

5.2.1.  Primera descomposición del sistema en partes

Contando con esta información, se puede comenzar a desmenuzar el problema para        arribar a un diseño que cumpla con los requisitos. 

Como ya se ha anticipado, estos requisitos pueden resolverse a través de una aplicación        simple constante de un ejecutable, distribuida a las personas responsables del análisis de        los datos, permita dar respuesta a las necesidades de funcionalidad. 

Para el desarrollo de esta aplicación, se tomó como decisión emplear       Java . Esta    decisión, además del factor de la familiaridad que ya se posee con dicho lenguaje, responde       

el paradigma orientado a objetos resulta conveniente para el desarrollo de una aplicación        con los requerimientos planteados, en la cual la abstracción y la extensión deberán jugar        papeles claves. También fueron factores de peso la portabilidad que Java provee, y la        existencia de drivers para Java del DBMS MongoDB, que es el utilizado en el caso        particular de la persistencia de la información para el caso particular del juego desarrollado. 

Un punto central de cara al desarrollo de la aplicación es, como se ha mencionado, que        debe ser extensible para su uso en otros juegos, además de contener, naturalmente, la        especificación de los elementos necesarios para su uso en el juego desarrollado para este        trabajo. Entonces, como primer elemento, se observa la necesidad de reconocer y abstraer        tanto como sea posible los elementos precisos en en análisis que son comunes para éste,        independientemente del juego para el cual pretenda utilizarse. Algunos de estos elementos        son: 

Una fuente de información      . Puede tratarse de un archivo, base de datos o        cualquier otro elemento que brinde persistencia a la información almacenada del        juego. En el caso de una fuente de información compleja, como una base de datos,        debe permitirse también la provisión de toda la información que sea necesaria para        que el sistema pueda conectarse con esta fuente de datos. 

Un esquema de usuarios      . Para generar los perfiles SYMLOG y asociarlos a        usuarios, es preciso tener una estructura que represente a un usuario, con toda la        información y métodos que sean precisos. 

Un esquema de partidas      . Sea cual sea el juego empleado, se debe poseer una        estructura que represente a una partida de dicho juego, que será el objeto general        de análisis por parte del Analizador, y ha de contener toda la información referente a        usuarios participantes, acciones de juego a analizar, y variables del estado de juego,        para recuperar la información del contexto en el cual cada acción de juego fue        tomada, al fin de evaluar más precisamente su significado. 

Un esquema de acciones de juego          . Las acciones de juego son las unidades        mínimas de acción de los usuarios participantes de una partida, que permiten        determinar qué decisión ha tomado cada uno en cada contexto. El análisis de las        acciones de juego es la clave de la construcción del perfil SYMLOG de cada jugador,        y por eso es vital poseer una estructura que las represente. 

Un esquema de perfil SYMLOG        . Siendo que el objetivo del análisis es la        construcción de perfiles SYMLOG, y estos pueden representarse a través de un        conjunto de variables que representan la ubicación en la escala anteriormente        descripta, será preciso tener una estructura que represente este perfil. El análisis        consiste en mapear acciones de juegos a trinomios de valores para las 3        dimensiones de Symlog (Up/Down, Positive/Negative, Forward/Backwards) y        agregarlas incrementalmente a los perfiles de cada jugador. Al final del análisis, se        normalizan estos valores en función a los rangos dados por todas las alternativas        que fueron posibles para cada jugador en cada decisión tomada (información que        también debe guardarse aquí), y se producen los resultados normalizados para cada        usuario. 

Un esquema de conflicto IPA        . Para el análisis de chats a través del modelo IPA,        que cuenta con diferentes conflictos en función de las categorías de mensajes,        habrá que contar con un elemento que represente a un conflicto en este modelo,        para poder instanciar los distintos tipos de conflicto en el sistema, 

Un modelo de análisis      . Una parte clave del análisis consiste en especificar el        modelo que se utilizará para llevar a cabo el mismo. El modelo de análisis consiste        de todo el código que se ejecutará ante la necesidad de evaluar una partida para        producir los resultados; además de la especificación de código, algunos elementos        varibles del modelo deben poder ser cargados para permitir la configurabilidad del        mismo. 

Un analizador de datos      . La parte del sistema que se encarga de conectarse a la        fuente de datos, obtener las partidas analizables, e instanciar los elementos precisos        para que el análisis se lleve a cabo. Es la clase principal en la cual se especifica un        modelo y una fuente de datos para llevar a cabo el análisis propiamente dicho a        través de la instanciación y uso de otras clases. 

 

Habiendo identificado algunos elementos claves, resulta intuitivo pensar, partiendo de un        concepto básico de la programación orientada a objetos, en la especificación de estos        elementos para cada juego como una extensión de elementos abstractos con ciertos        elementos básicos que siempre estarán presentes. En esta línea de pensamiento, se puede        arribar a un primer diagrama de clases que represente a estos elementos:        Fig. 26. Primer Diagrama de Clases del Analizador de Datos.   

A través de la extensión de las clases abstractas e interfaces presentes en el diagrama        superior, pueden llevarse a cabo las especificaciones de elementos del Analizador para los        distintos juegos. En el caso particular del juego tratado en el presente trabajo, por ejemplo,        bastaría con extender estos elementos, codificando implementaciones para sus métodos        abstractos. Cabe entonces hacer una división en paquetes. Uno, llamado “data.analyzer”,       

que contendrá todos los elementos comunes en todas las extensiones del sistema (tanto las        clases abstractas e interfaces que requerirán una extensión, como las clases        “SymlogProfile” e IPAConflictSchema, que siempre serán necesarias, y la clase        “DataAnalyzer”, que actúa como main class). Otro paquete, llamado “lotr”, debería contener        la especificación de todos los elementos abstractos para este juego en particular. Esta        división tendría un aspecto como el siguiente:      Fig. 27. Segundo Diagrama de Clases del Analizador de Datos. Puede verse la divisón teórica en  paquetes y las clases del paquete “lotr”, que contienen la implementación para los elementos  abstractos del paquete “data.analyzer”.     

Esta es la forma general de la solución implementada. Queda, entonces, por delante la        especificación de las clases del paquete “lotr”. En estas clases deberá encontrarse la        funcionalidad que permite que el análisis sea aplicado al juego tratado, teniendo en cuenta        sus características propias y atributos de calidad deseables. Para arribar al diseño final se        desarrollarán, entonces, los atributos de calidad que condicionaron el diseño de la solución y        llevaron a la adición de nuevas funcionalidades. 

 

Documento similar