12 research outputs found
Diseño de un sistema para generar tablas semánticas
In the field of TIC significant changes have occurred especially in aspect regarding the use and development of software, today’s programmers and end users from free software can innovate, investigate and improve all thanks, existing knowledge from source code.The design of multimedia software for the relief of instruction begins decades. In order to teach students how to use software or help them discover strategies to solve problems and engage in educational games designed to make learning an enjoyable experience, as well as engage in computer-based teaching in the use scheduled tutoring.As a result we propose the development of educational software for computer logic study (referred to herein as Lógika), aimed at students of the Academic Unit of Engineering at the Autonomous University of Guerrero. The program provides structured information of the topic of study, in which the user is confronted with new situations in order to be used as a learning resource.Consistent with previous ideas offered this proposal for a transformation of learning new TIC incorporating the wide range of resources available to the student expecting it to be important and useful enough so that it can be compared with the great technological revolutions.En el ámbito de las TIC han ocurrido cambios muy significativos sobre todo en aspecto relación al uso y desarrollo del software, hoy en día los programadores y usuarios finales a partir del software libre pueden innovar, investigar y mejorar todo esto gracias, al conocimiento existente proveniente del código fuente.El diseño de software multimedia para el auxilio de la instrucción se inicia hace varias décadas. Con el objetivo de enseñar a los estudiantes a utilizar un software o ayudarlos a descubrir estrategias en la solución de problemas e involucrarlos en juegos educativos diseñados para que el aprendizaje sea una experiencia agradable, así como también involucrarlos en una enseñanza computarizada con base en el uso de tutores programados.Como resultado se propone la elaboración de un software educativo para el estudio de la lógica informática (denominado en este documento como Lógika), dirigida a estudiantes de la Unidad Académica de Ingeniería de la Universidad Autónoma de Guerrero. El programa presenta información estructurada del tema de estudio, en donde el usuario se encuentra ante nuevas situaciones con la finalidad de ser utilizado como recurso de aprendizaje.En concordancia con las ideas precedentes se ofrece esta propuesta para una transformación del aprendizaje incorporando las nuevas TIC a la amplia gama de recursos que dispone el estudiante esperando que sea lo suficientemente importante y útil como para que pueda ser comparada con las grandes revoluciones técnicas
DESARROLLO DE UNA HERRAMIENTA MATEMÁTICA COMO APOYO A LA EDUCACIÓN BÁSICA EN EL ESTADO DE GUERRERO (MÉXICO) UTILIZANDO MONODEVELOP CON C#
Se dan a conocer los resultados de un proyecto de algunos integrantes del Cuerpo Académico de Tecnologías de Información y Comunicaciones de la Unidad Académica de Ingeniería de la Universidad Autónoma de Guerrero, que se está llevando a cabo para apoyar a los estudiantes de educación básica en el estado de Guerrero, en el área de matemáticas; así mismo, fomentar en las instituciones educativas y en los estudiantes el uso de software libre, ya que no genera ningún costo. Actualmente las primarias trabajan en el área de las matemáticas de manera tradicional, sin la ayuda de ninguna herramienta de software que permita desarrollar más habilidades en el área de las matemáticas, por lo que el índice de aprovechamiento es bajo en un gran sector de estudiantes. Con esta aplicación, a la cual se denominó Mathe de los estudiantes.En este tipo de instituciones educativas solo se utiliza el sistema operativo Windows y Microsoft Office; no se promueve el uso de herramientas diferentes, lo que impide una visión diferente en las nuevas generaciones en cuanto al uso de herramientas de software libre.Mediante esta aplicación se pretende coadyuvar al incremento del índice de aprovechamiento en el área de las matemáticas la aplicación servirá de apoyo en el aprendizaje en las operaciones aritméticas de multiplicación, división y fracciones, principalmente.Se pretende, también, motivar a los estudiantes en el uso del software de fuente abierta, ya que esta aplicación se está desarrollando con este tipo de tecnología.Para ello se quiere crear una aplicación que se ejecutará en el ambiente Linux (específicamente Ubuntu), lo cual servirá de ayuda en el aprendizaje de los estudiantes. Al mismo tiempo, esto les permitirá conocer el entorno Linux.Además se describe cómo es que se está desarrollando esta aplicación, mediante el entorno de desarrollo MonoDevelop con el lenguaje C#, es decir, todo en software libre
DESARROLLO DE APLICACIONES, UTILIZANDO SOFTWARE LIBRE Y PROPIETARIO
Este artículo tiene como finalidad describir la forma de cómo se implementa la programación de lenguaje mixto, la cual permite desarrollar aplicaciones específicamente en lenguajes desarrollados o modificados para la tecnología .NET. No obstante, se hace énfasis en cómo utilizar el código generado en java por otros lenguajes de programación. Esta forma de desarrollo de software, conocida también como interoperabilidad entre lenguajes de programación diferentes, es la capacidad de dos o más componentes desarrollados en diferentes lenguajes, para intercambiar información y utilizar la información intercambiada; es la posibilidad de que cierto código interactúe con código escrito en un lenguaje de programación diferente.Se trata de que el código generado por un lenguaje pueda funcionar fácilmente con el código generado por otro lenguaje. Este enfoque de desarrollo de programas, hace que se faciliten las cosas para crear grandes sistemas distribuidos de software y para la programación orientada a componentes, ya que si un componente puede ser utilizado por la mayor variedad posible de lenguajes de computación y por el mayor número de entornos operativos, se considera, además de eficiente, muy valioso.La interoperabilidad entre lenguajes puede ayudar a maximizar la reutilización de código y por tanto, puede mejorar la eficacia del proceso de programación.Para que se pueda desarrollar una aplicación con estas características, se hace necesario entender la compilación híbrida, que combina el proceso de compilación con interpretación, que naturalmente se aborda también en el artículo.Así mismo, se explica cómo se ha estado tratando este tipo de desarrollo en proyectos de software libre como en software propietario
INTEROPERABILIDAD ENTRE LENGUAJES DE PROGRAMACIÓN
Este artículo tiene como finalidad explicar de qué manera se da la interoperabilidad entre los lenguajes de programación desarrollados o modificados para la tecnología .NET. Esta nueva forma de desarrollo de software, conocida también como programación de lenguaje mixto, se trata de que el código generado por un lenguaje pueda funcionar fácilmente con el código generado por otro lenguaje. Este enfoque de desarrollo de programas hace que se faciliten las cosas para crear grandes sistemas distribuidos de software, para la programación orientada a componentes, ya que si un componente puede ser utilizado por la mayor variedad posible de lenguajes de computación y por el mayor número de entornos operativos, se considera, además de eficiente muy valioso (Schildt, 2003). La interoperabilidad entre lenguajes es la posibilidad de que el código interactúe con código escrito en un lenguaje de programación diferente. La interoperabilidad entre lenguajes puede ayudar a maximizar la reutilización de código y, por tanto, puede mejorar la eficacia del proceso de programación
COMPRESIÓN DE DATOS UTILIZANDO LA TEORÍA DE TESELAS
Esta investigación tiene como objetivo presentar un software que permita realizar la compresión de datos de un archivo, los cuales contengan cualquier tipo de información y que conjugando la teoría de las teselas con la teoría de compresión de datos, se pueda reducir el espacio de almacenamiento de un archivo de datos no importando el equipo de cómputo utilizado, su plataforma ni el sistema operativo instalado en dicha computadora. Según la teoría de teselas, una tesela es una regularidad o patrón de figuras que cubre o pavimenta completamente una superficie plana y tiene la característica de la auto similitud; si este concepto se aplica a un archivo de datos, encontramos ciertas cantidades de datos, que son autosimilares o teselas y se repiten varias veces durante todo el archivo; de forma que con una representación que se almacene y las demás sean referenciadas, en cierto momento se puede generar el archivo original sin perder ni un solo dato, con el consecuente ahorro de espacio en el disco duro
Inferring NoSQL data schemas with model-driven engineering techniques= Inferencia de esquemas en bases de datos NoSQL por medio de ingeniería dirigida por modelos
Objetivos. La ausencia de un esquema explícito (schemaless) es una característica necesaria en los sistemas NoSQL debido a que proporciona la flexibilidad requerida por los cambios frecuentes en la estructura de los datos. Sin embargo, los desarrolladores necesitan comprender el esquema implícito cuando escriben código y las herramientas de bases de datos requieren conocer dicho esquema para soportar funcionalidades básicas. El objetivo principal de esta tesis es la definición de una estrategia de ingeniería inversa destinada a descubrir los esquemas implícitos en bases de datos NoSQL “basadas en agregación” y la construcción de herramientas que aprovechen los esquemas inferidos para ofrecer funcionalidades que ayuden a los desarrolladores. Estas herramientas permitirán que la flexibilidad obtenida no suponga perder los beneficios importantes que proporcionan los esquemas. Tanto el proceso de inferencia como las herramientas se han implementado con técnicas de la Ingeniería del Software Dirigida por Modelos (MDE). La existencia de versiones de las entidades almacenadas en bases de datos NoSQL ha sido el principal reto en el diseño del proceso de inferencia y de las herramientas.
Metodología. Se ha seguido la metodología ``Design Science Research'' (DSRM) que define un proceso que consiste de seis actividades: (1) Identificación del problema y motivación, (2) Definir los objetivos, (3) Diseño y desarrollo de la solución, (4) Demostración, (5) Evaluación y (6) Conclusiones y difusión. Se trata de un proceso iterativo en el que el conocimiento producido a lo largo del proceso, por medio de la construcción y evaluación de nuevos artefactos, sirve como realimentación que permite mejora los artefactos creados con anterioridad hasta completar la solución final. Los detalles que implican estas actividades se introducen cuidadosamente a lo largo de esta Tesis.
Resultados. Se ha definido un proceso de inferencia que representa los esquemas descubiertos como modelos que conforman al metamodelo NoSQL_Schema que es independiente de la plataforma. Las principales diferencias con respecto a otros enfoques propuestos son: (i) se extraen las versiones de cada entidad; (ii) se descubren todas las relaciones entre las versiones de entidad extraídas: agregación y referencias; y (iii) se considera la escalabilidad y el rendimiento del algoritmo de inferencia aplicando una operación MapReduce. El enfoque ha sido validado por medio de una base de datos MongoDB generada a partir de los datos de StackOverflow. Esta validación ha mostrado que el algoritmo escala bien con respecto al número de objetos. Se ha mostrado la utilidad de los esquemas versionados por medio del desarrollo de tres herramientas: visualización de esquemas, generación de código para Object-Document mappers (ODM), y generación de código para validar datos tanto al ser almacenados como al ser leídos.
Contribuciones. El enfoque de inferencia presentado es el primero que maneja esquemas versionados para bases de datos NoSQL. Se han definido varios tipos de esquemas versionados: esquema de una versión, esquema de una entidad, esquema global de la base de datos y esquema de entidades de la base de datos. Se han propuesto representaciones visuales para cada tipo de esquema definido que se basan en los diagramas de clases UML. Se han construido tres utilidades para mostrar cómo los esquemas inferidos son útiles para la generación de código de aplicaciones NoSQL. El desarrollo de estas utilidades y del proceso de inferencia han mostrado los beneficios de las técnicas MDE en el área de la Ingeniería de Datos, en particular, el meta-modelado y las transformaciones de modelos.
Abstract
Objectives. The absence of an explicit schema (schemaless) is a convenient feature in NoSQL systems because it provides the required flexibility when the data structure varies often. However, developers need to keep in mind the implicit schema when they write code. Also, some database tools require knowing the schema to tailor their functionality to the existing data. The main objective of this thesis is the definition of a reverse engineering strategy aimed to discover the inherent schemas in aggregate-oriented NoSQL databases, and building tools that take advantage of the inferred schema to offer capabilities that assist developers. These tools will bring the benefits of schemas without losing the flexibility gained by being schemaless. The existence of entity versions in NoSQL databases is the main challenge to be addressed in the schema inference process. With regard to the implementation of the inference process and the database tools, Model-Driven Software Engineering (MDE) techniques have been applied.
Methodology. In order to achieve the objectives of this thesis, we have followed the “Design Science Research Methodology” (DSRM), which consists of six activities: (1) Problem identification and motivation, (2) Define the objectives of a solution, (3) Design and development, (4) Demonstration, (5) Evaluation, and (6) Conclusions and communication. This is an iterative process in which the knowledge produced throughout the process by constructing and evaluating new artifacts serves as feedback for a better design and implementation of the final solution. The details entailing these activities are introduced thoughtfully through this Thesis.
Results. We have defined a schema discovering approach that has been implemented as a model-driven reverse engineering process. The schema inferred is represented as a model that conforms to the NoSQL_Schema metamodel, which is NoSQL system-independent. The main differences of our inference strategy with respect to other proposed approaches are the following: (i) to extract the versions of each entity; (ii) to discover all the relationships among the entity versions extracted: aggregation and references; and (iii) to consider the scalability and performance of the inference algorithm by applying a MapReduce operation. The approach has been validated with a real case study, in particular we have created a MongoDB database from the open data Stackoverflow dataset. This validation showed that the inference algorithm scaled well with respect to the number of objects. The utility of the inferred schemas has been shown by developing three database utilities: schema visualization, code generation for Object-Document mappers (ODM), and code generation to validate data when they are read or written from/to the database.
Contributions. We have defined the first approach that infers database schemas from NoSQL databases discovering all the versions of the inferred entities and their relationships. Several kinds of versioned schemas have been proposed: version schema, entity version, complete database schema, and entity database schema. We have proposed the first visual representations for these schemas, which are based on UML class diagrams. Three database utilities have shown how the inferred schemas are useful to generate code for NoSQL database applications. The development of these utilities has evidenced the benefits of the MDE techniques in the Data Engineering area, more specifically meta-models and model transformations
DESARROLLO DE UNA HERRAMIENTA MATEMÁTICA COMO APOYO A LA EDUCACIÓN BÁSICA EN EL ESTADO DE GUERRERO (MÉXICO) UTILIZANDO MONODEVELOP CON C#
Se dan a conocer los resultados de un proyecto de algunos integrantes del Cuerpo Académico de Tecnologías de Información y Comunicaciones de la Unidad Académica de Ingeniería de la Universidad Autónoma de Guerrero, que se está llevando a cabo para apoyar a los estudiantes de educación básica en el estado de Guerrero, en el área de matemáticas; así mismo, fomentar en las instituciones educativas y en los estudiantes el uso de software libre, ya que no genera ningún costo. Actualmente las primarias trabajan en el área de las matemáticas de manera tradicional, sin la ayuda de ninguna herramienta de software que permita desarrollar más habilidades en el área de las matemáticas, por lo que el índice de aprovechamiento es bajo en un gran sector de estudiantes. Con esta aplicación, a la cual se denominó Mathe de los estudiantes.En este tipo de instituciones educativas solo se utiliza el sistema operativo Windows y Microsoft Office; no se promueve el uso de herramientas diferentes, lo que impide una visión diferente en las nuevas generaciones en cuanto al uso de herramientas de software libre.Mediante esta aplicación se pretende coadyuvar al incremento del índice de aprovechamiento en el área de las matemáticas la aplicación servirá de apoyo en el aprendizaje en las operaciones aritméticas de multiplicación, división y fracciones, principalmente.Se pretende, también, motivar a los estudiantes en el uso del software de fuente abierta, ya que esta aplicación se está desarrollando con este tipo de tecnología.Para ello se quiere crear una aplicación que se ejecutará en el ambiente Linux (específicamente Ubuntu), lo cual servirá de ayuda en el aprendizaje de los estudiantes. Al mismo tiempo, esto les permitirá conocer el entorno Linux.Además se describe cómo es que se está desarrollando esta aplicación, mediante el entorno de desarrollo MonoDevelop con el lenguaje C#, es decir, todo en software libre
Designing a system to generate semantic tables
En el ámbito de las TIC han ocurrido cambios muy significativos sobre todo en aspecto relación al uso y desarrollo del software, hoy en día los programadores y usuarios finales a partir del software libre pueden innovar, investigar y mejorar todo esto gracias, al conocimiento existente proveniente del código fuente.El diseño de software multimedia para el auxilio de la instrucción se inicia hace varias décadas. Con el objetivo de enseñar a los estudiantes a utilizar un software o ayudarlos a descubrir estrategias en la solución de problemas e involucrarlos en juegos educativos diseñados para que el aprendizaje sea una experiencia agradable, así como también involucrarlos en una enseñanza computarizada con base en el uso de tutores programados.Como resultado se propone la elaboración de un software educativo para el estudio de la lógica informática (denominado en este documento como Lógika), dirigida a estudiantes de la Unidad Académica de Ingeniería de la Universidad Autónoma de Guerrero. El programa presenta información estructurada del tema de estudio, en donde el usuario se encuentra ante nuevas situaciones con la finalidad de ser utilizado como recurso de aprendizaje.En concordancia con las ideas precedentes se ofrece esta propuesta para una transformación del aprendizaje incorporando las nuevas TIC a la amplia gama de recursos que dispone el estudiante esperando que sea lo suficientemente importante y útil como para que pueda ser comparada con las grandes revoluciones técnicas.In the field of TIC significant changes have occurred especially in aspect regarding the use and development of software, today’s programmers and end users from free software can innovate, investigate and improve all thanks, existing knowledge from source code.The design of multimedia software for the relief of instruction begins decades. In order to teach students how to use software or help them discover strategies to solve problems and engage in educational games designed to make learning an enjoyable experience, as well as engage in computer-based teaching in the use scheduled tutoring.As a result we propose the development of educational software for computer logic study (referred to herein as Lógika), aimed at students of the Academic Unit of Engineering at the Autonomous University of Guerrero. The program provides structured information of the topic of study, in which the user is confronted with new situations in order to be used as a learning resource.Consistent with previous ideas offered this proposal for a transformation of learning new TIC incorporating the wide range of resources available to the student expecting it to be important and useful enough so that it can be compared with the great technological revolutions
DESARROLLO DE APLICACIONES, UTILIZANDO SOFTWARE LIBRE Y PROPIETARIO
Este artículo tiene como finalidad describir la forma de cómo se implementa la programación de lenguaje mixto, la cual permite desarrollar aplicaciones específicamente en lenguajes desarrollados o modificados para la tecnología .NET. No obstante, se hace énfasis en cómo utilizar el código generado en java por otros lenguajes de programación. Esta forma de desarrollo de software, conocida también como interoperabilidad entre lenguajes de programación diferentes, es la capacidad de dos o más componentes desarrollados en diferentes lenguajes, para intercambiar información y utilizar la información intercambiada; es la posibilidad de que cierto código interactúe con código escrito en un lenguaje de programación diferente.Se trata de que el código generado por un lenguaje pueda funcionar fácilmente con el código generado por otro lenguaje. Este enfoque de desarrollo de programas, hace que se faciliten las cosas para crear grandes sistemas distribuidos de software y para la programación orientada a componentes, ya que si un componente puede ser utilizado por la mayor variedad posible de lenguajes de computación y por el mayor número de entornos operativos, se considera, además de eficiente, muy valioso.La interoperabilidad entre lenguajes puede ayudar a maximizar la reutilización de código y por tanto, puede mejorar la eficacia del proceso de programación.Para que se pueda desarrollar una aplicación con estas características, se hace necesario entender la compilación híbrida, que combina el proceso de compilación con interpretación, que naturalmente se aborda también en el artículo.Así mismo, se explica cómo se ha estado tratando este tipo de desarrollo en proyectos de software libre como en software propietario
COMPRESIÓN DE DATOS UTILIZANDO LA TEORÍA DE TESELAS
Esta investigación tiene como objetivo presentar un software que permita realizar la compresión de datos de un archivo, los cuales contengan cualquier tipo de información y que conjugando la teoría de las teselas con la teoría de compresión de datos, se pueda reducir el espacio de almacenamiento de un archivo de datos no importando el equipo de cómputo utilizado, su plataforma ni el sistema operativo instalado en dicha computadora. Según la teoría de teselas, una tesela es una regularidad o patrón de figuras que cubre o pavimenta completamente una superficie plana y tiene la característica de la auto similitud; si este concepto se aplica a un archivo de datos, encontramos ciertas cantidades de datos, que son autosimilares o teselas y se repiten varias veces durante todo el archivo; de forma que con una representación que se almacene y las demás sean referenciadas, en cierto momento se puede generar el archivo original sin perder ni un solo dato, con el consecuente ahorro de espacio en el disco duro