970 resultados para JAVA (LENGUAJE DE PROGRAMACIÓN)
Resumo:
[ES] En este artículo se presenta el diseño de una herramienta de configuración para aplicaciones distribuidas cooperativas y tolerantes a fallos escritas en el lenguaje de programación Drago.
Resumo:
[ES] El Trabajo de Fin de Grado, Diseño e Implementación de un Convertidor Numérico como Aplicación Android es una aplicación desarrollada para terminales móviles con SO Android. Esta desarrollada en el entorno de desarrollo Eclipse, sobre el lenguaje de programación Java y hace uso de diferentes herramientas, las más importante de ellas el SDK TOOLS para Android. El objetivo o principal motivación por el cual he creado dicha aplicación es facilitarle al usuario final una forma más fácil y amena de acceder a toda la información proporcionada por el Servicio Web Números TIP. Esta aplicación podría tener gran uso en el campo de las enseñanzas primarias para enseñar a los niños a escribir números con letras y también podría ser de gran utilidad para las personas que no tengan un dominio extenso de nuestro idioma. La principal funcionalidad de la aplicación es realizar una consulta al Servicio Web Números TIP y luego mostrar por pantalla todos los datos devueltos. Todo el proceso de dibujo de la interfaz de usuario se realiza de manera dinámica y en tiempo de ejecución, logrando de esta manera adaptarnos a los datos que devuelva el servicio web. Para realizar la consulta al Servicio Web Números TIP el usuario introduce una ristra de caracteres sobre la cual se realizan determinadas comprobaciones en el servidor y se dibuja en la interfaz de usuario la respuesta devuelta. Esta ristra de caracteres puede contener cualquier signo, letra o número y el servicio web se encarga de devolver un error o reconocer un número, ya sea en su forma entera, fraccionaria, decimal o romana. La aplicación esta estandarizada para los cuatro tamaños generales reconocidos por Android y para sus densidades. Además se podría decir que la aplicación reconoce el idioma pre configurado en el teléfono y en base a ello solicita al servicio web las respuestas en español o en inglés.
Estudio preliminar acerca del uso de protocolos y actos comunicativos FIPA en el sistema COMPUTAPLEX
Resumo:
Este trabajo corresponde con la implementación de componentes software dentro de la Plataforma COMPUTAPLEX, la cual tiene como objetivo facilitar a los investigadores la realización de tareas del proceso experimental de ingeniería de software. Uno de los aportes a esta plataforma tecnológica corresponde con el desarrolló de los componentes necesarios para la recuperación de datos experimentales disponibles en diversas fuentes de datos, para ello se hizo uso de un mecanismo capaz de unificar la extracción de información de MySQL, ficheros excel y ficheros SPSS. Con ello diferentes grupos de investigación asociados pueden compartir y tener acceso a repositorios experimentales que se mantienen tanto de manera local como externa. Por otra parte, se ha realizado un estudio de la tecnología de agentes en la que se describe sus definiciones, lenguajes de comunicación, especificación FIPA, JADE como implementación FIPA y parser XML. Además para este trabajo se ha definido e implementado una ontología de comunicación entre agentes, la misma que fue diseñada en la herramienta Protégé. En lo que se refiere al desarrollo de componentes se hizo uso de una amplía variedad de tecnologías que incluye lenguaje de programación Java, framework JADE para el desarrollo de agentes, librería JENA para manejo de ontologías, librería SAXParser para lectura de archivos XML y patrón de diseño Factory. Finalmente se describe la metodología de trabajo utilizada en el proyecto, la cual por medio de la realización de varios ciclos iterativos permitió obtener prototipos que poco a poco fueron cubriendo las necesidades del producto software.----ABSTRACT---- This work relates to the implementation of software components within the platform Computaplex, which aims to enable researchers to conduct experimental software engineering process tasks. One of the contributions to this platform technology corresponds to the development of components which are necessary for the recovery of experimental data available in different data sources, to archive this goal a mechanism able to unify the extraction of information from MySQL, Excel and SPSS files was made. Therefore, associated research groups can share and access experimental repositories that remain both locally and externally. Moreover, it has been conducted a study of agent technology in its definition is described, languages communication, FIPA, JADE and FIPA implementation and XML parser. In addition to this work, it has been defined and implemented an ontology for communication between agents, the same as was designed in the Protégé tool. In what refers to the development of components, a wide range of technologies have been made which includes Java programming language, framework JADE for agent development, JENA library for handling ontologies, SAXParser for reading XML files and Factory design pattern. Finally, describing the work methodology used in this project, which through the implementation of several iterative cycles allowed to obtain prototypes were gradually meeting the needs of the software product.
Resumo:
Esta tesis tiene por objeto estudiar las posibilidades de realizar en castellano tareas relativas a la resolución de problemas con sistemas basados en el conocimiento. En los dos primeros capítulos se plantea un análisis de la trayectoria seguida por las técnicas de tratamiento del lenguaje natural, prestando especial interés a los formalismos lógicos para la comprensión del lenguaje. Seguidamente, se plantea una valoración de la situación actual de los sistemas de tratamiento del lenguaje natural. Finalmente, se presenta lo que constituye el núcleo de este trabajo, un sistema llamado Sirena, que permite realizar tareas de adquisición, comprensión, recuperación y explicación de conocimiento en castellano con sistemas basados en el conocimiento. Este sistema contiene un subconjunto del castellano amplio pero simple formalizado con una gramática lógica. El significado del conocimiento se basa en la lógica y ha sido implementado en el lenguaje de programación lógica Prolog II vS. Palabras clave: Programación Lógica, Comprensión del Lenguaje Natural, Resolución de Problemas, Gramáticas Lógicas, Lingüistica Computacional, Inteligencia Artificial.---ABSTRACT---The purpose of this thesis is to study the possibi1 ities of performing in Spanish problem solving tasks with knowledge based systems. Ule study the development of the techniques for natural language processing with a particular interest in the logical formalisms that have been used to understand natural languages. Then, we present an evaluation of the current state of art in the field of natural language processing systems. Finally, we introduce the main contribution of our work, Sirena a system that allows the adquisition, understanding, retrieval and explanation of knowledge in Spanish with knowledge based systems. Sirena can deal with a large, although simple» subset of Spanish. This subset has been formalised by means of a logic grammar and the meaning of knowledge is based on logic. Sirena has been implemented in the programming language Prolog II v2. Keywords: Logic Programming, Understanding Natural Language, Problem Solving, Logic Grammars, Cumputational Linguistic, Artificial Intelligence.
Resumo:
La tesis propone el concepto y diseño de una arquitectura cognitiva para representación de conocimiento profesional especializado en clases de dominios relacionados con el mundo físico. Constituye una extensión de los trabajos de B.Chandrasekaran, potenciando el concepto de arquitectura basada en tareas genéricas propuesta por dicho autor. En base a la arquitectura propuesta, se ha desarrollado un entorno como herramienta de construcción de sistemas expertos de segunda generación, así como un lenguaje para programación cognitiva (DECON)- Dicho entorno, programado en lenguaje C sobre UNIX, ha sido utilizado para el desarrollo de un sistema para predicción de avenidas en la Cuenca Hidrográfica del Jucar, en el marco del proyecto SAIH. Primeramente, la tesis plantea el problema de la modelización del comportamiento de los sistemas físicos, reflejando las limitaciones de las formas clásicas de representación del conocimiento para abordar dicho problema, así como los principales enfoques más recientes basados en el concepto de arquitectura cognitiva y en las técnicas de simulación cualitativa. Se realiza después una síntesis de la arquitectura propuesta, a nivel del conocimiento, para detallar posteriormente su desarrollo a nivel simbólico y de implementación, así como el método general para la construcción de modelos sobre la arquitectura. Se muestra también un resumen de los principales aspectos del desarrollo de software. Finalmente, en forma de anejos, se presenta un caso de estudio, el sistema SIRAH (Sistema Inteligente de Razonamiento Hidrológico), junto con la gramática formal del lenguaje de soporte para la definición de modelos.---ABSTRACT---The thesis proposes the concept and design of a cognitive architecture for professional knowledge representation, specialized in domain classes related to the physical world. It is an extensión of the Chandrasekaran's work, improving the concept of Generic Task based architecture introduced by this author. Based on the proposed architecture, an environment has been developed, as a case of second generation building expert systems tool, as well as a language for cognitive programming (DECON). The environment, programmed in C lenguage on UNIX operating system, has been used to develop a system for flood prediction in the Jucar watershed, inside of the SAIH project. Firstly, the behavior modeling problem of physical systems is discussed, showing the limitations of the classical representations to tackle it, beside the most recent approaches based on cognitive architecture concepts and qualitative simulation technique. An overview of the architecture at the knowledge level is then made, being followed by its symbolic and implementation level description, as well as a general guideline for building models on top of the architecture. The main aspects of software development are also introduced. Finaly, as annexes, a case of study -the SIRAH system (Sistema Inteligente de RAzonamiento Hidrológico)- is introduced, along with the formal grammar of the support language for model definition.
Resumo:
A medida que la sociedad avanza, la cantidad de datos almacenados en sistemas de información y procesados por las aplicaciones y servidores software se eleva exponencialmente. Además, las nuevas tecnologías han confiado su desarrollo en la red internacionalmente conectada: Internet. En consecuencia, se han aprovechado las conexiones máquina a máquina (M2M) mediante Internet y se ha desarrollado el concepto de "Internet de las Cosas", red de dispositivos y terminales donde cualquier objeto cotidiano puede establecer conexiones con otros objetos o con un teléfono inteligente mediante los servicios desplegados en dicha red. Sin embargo, estos nuevos datos y eventos se deben procesar en tiempo real y de forma eficaz, para reaccionar ante cualquier situación. Así, las arquitecturas orientadas a eventos solventan la comprensión del intercambio de mensajes en tiempo real. De esta forma, una EDA (Event-Driven Architecture) brinda la posibilidad de implementar una arquitectura software con una definición exhaustiva de los mensajes, notificándole al usuario los hechos que han ocurrido a su alrededor y las acciones tomadas al respecto. Este Trabajo Final de Grado se centra en el estudio de las arquitecturas orientadas a eventos, contrastándolas con el resto de los principales patrones arquitectónicos. Esta comparación se ha efectuado atendiendo a los requisitos no funcionales de cada uno, como, por ejemplo, la seguridad frente a amenazas externas. Asimismo, el objetivo principal es el estudio de las arquitecturas EDA (Event-Driven Architecture) y su relación con la red de Internet de las Cosas, que permite a cualquier dispositivo acceder a los servicios desplegados en esa red mediante Internet. El objeto del TFG es observar y verificar las ventajas de esta arquitectura, debido a su carácter de tipo inmediato, mediante el envío y recepción de mensajes en tiempo real y de forma asíncrona. También se ha realizado un estudio del estado del arte de estos patrones de arquitectura software, así como de la red de IoT (Internet of Things) y sus servicios. Por otro lado, junto con este TFG se ha desarrollado una simulación de una EDA completa, con todos sus elementos: productores, consumidores y procesador de eventos complejo, además de la visualización de los datos. Para ensalzar los servicios prestados por la red de IoT y su relación con una arquitectura EDA, se ha implementado una simulación de un servicio personalizado de Tele-asistencia. Esta prueba de concepto ha ayudado a reforzar el aprendizaje y entender con más precisión todo el conocimiento adquirido mediante el estudio teórico de una EDA. Se ha implementado en el lenguaje de programación Java, mediante las soluciones de código abierto RabbitMQ y Esper, ayudando a su unión el estándar AMQP, para completar correctamente la transferencia.
Resumo:
El objetivo de esta Tesis es presentar un método eficiente para la evaluación de sistemas multi-cuerpo con elementos flexibles con pequeñas deformaciones, basado en métodos topológicos para la simulación de sistemas tan complejos como los que se utilizan en la práctica y en tiempo real o próximo al real. Se ha puesto un especial énfasis en la resolución eficiente de aquellos aspectos que conllevan mayor coste computacional, tales como la evaluación de las ecuaciones dinámicas y el cálculo de los términos de inercia. Las ecuaciones dinámicas se establecen en función de las variables independientes del sistema, y la integración de las mismas se realiza mediante formulaciones implícitas de index-3. Esta Tesis se articula en seis Capítulos. En el Capítulo 1 se realiza una revisión bibliográfica de la simulación de sistemas flexibles y los métodos más relevantes de integración de las ecuaciones diferenciales del movimiento. Asimismo, se presentan los objetivos de esta Tesis. En el Capítulo 2 se presenta un método semi-recursivo para la evaluación de las ecuaciones de los sistemas multi-cuerpo con elementos flexibles basado en formulaciones topológicas y síntesis modal. Esta Tesis determina la posición de cada punto del cuerpo flexible en función de un sistema de referencia flotante que se mueve con dicho cuerpo y de las amplitudes de ciertos modos de deformación calculados a partir de un mallado obtenido mediante el Método de Elementos Finitos. Se presta especial atención en las condiciones de contorno que se han de tener en cuenta a la hora de establecer las variables que definen la deformación del cuerpo flexible. El Capítulo 3 se centra en la evaluación de los términos de inercia de los sistemas flexibles que generalmente conllevan un alto coste computacional. Se presenta un método que permite el cálculo de dichos términos basado en el uso de 24 matrices constantes que pueden ser calculadas previamente al proceso de integración. Estas matrices permiten evaluar la matriz de masas y el vector de fuerzas de inercia dependientes de la velocidad sin que sea necesario evaluar la posición deformada de todos los puntos del cuerpo flexible. Se realiza un análisis pormenorizado de dichas matrices con el objetivo de optimizar su cálculo estableciendo aproximaciones que permitan reducir el número de dichos términos y optimizar aún más su evaluación. Se analizan dos posibles simplificaciones: la primera utiliza una discretización no-consistente basada en elementos finitos en los que se definen únicamente los desplazamientos axiales de los nodos; en la segunda propuesta se hace uso de una matriz de masas concentradas (Lumped Mass). Basándose en la formulación presentada, el Capítulo 4 aborda la integración eficiente de las ecuaciones dinámicas. Se presenta un método iterativo para la integración con fórmulas de index-3 basado en la proyección de las ecuaciones dinámicas según las variables independientes del sistema multi-cuerpo. El cálculo del residuo del sistema de ecuaciones no lineales que se ha de resolver de modo iterativo se realiza mediante un proceso recursivo muy eficiente que aprovecha la estructura topológica del sistema. Se analizan tres formas de evaluar la matriz tangente del citado sistema no lineal: evaluación aproximada, numérica y recursiva. El método de integración presentado permite el uso de distintas fórmulas. En esta Tesis se analizan la Regla Trapezoidal, la fórmula BDF de segundo orden y un método híbrido TR-BDF2. Para este último caso se presenta un algoritmo de paso variable. En el Capítulo 5 plantea la implementación del método propuesto en un programa general de simulación de mecanismos que permita la resolución de cualquier sistema multi-cuerpo definiéndolo mediante un fichero de datos. La implementación de este programa se ha realizado tanto en C++ como en Java. Se muestran los resultados de las formulaciones presentadas en esta Tesis mediante la simulación de cuatro ejemplos de distinta complejidad. Mediante análisis concretos se comparan la formulación presentada con otras existentes. También se analiza el efecto del lenguaje de programación utilizado en la implementación y los efectos de las posibles simplificaciones planteadas. Por último, el Capítulo 6 resume las principales conclusiones alcanzadas en la Tesis y las futuras líneas de investigación que con ella se abren. ABSTRACT This Thesis presents an efficient method for solving the forward dynamics of a multi-body sys-tem formed by rigid and flexible bodies with small strains for real-time simulation of real-life models. It is based on topological formulations. The presented work focuses on the efficient solution of the most time-consuming tasks of the simulation process, such as the numerical integration of the motion differential equations and in particular the evaluation of the inertia terms corresponding to the flexible bodies. The dynamic equations are formulated in terms of independent variables of the muti-body system, and they are integrated by means of implicit index-3 formulae. The Thesis is arranged in six chapters. Chapter 1 presents a review of the most relevant and recent contributions related to the modelization of flexible multi-body systems and the integration of the corresponding dynamic equations. The main objectives of the Thesis are also presented in detail. Chapter 2 presents a semi-recursive method for solving the equations of a multi-body system with flexible bodies based on topological formulations and modal synthesis. This Thesis uses the floating frame approach and the modal amplitudes to define the position of any point at the flexible body. These modal deformed shapes are obtained by means of the Finite Element Method. Particular attention has been taken to the boundary conditions used to define the deformation of the flexible bodies. Chapter 3 focuses on the evaluation of the inertia terms, which is usually a very time-consuming task. A new method based on the use of 24 constant matrices is presented. These matrices are evaluated during the set-up step, before the integration process. They allow the calculation of the inertia terms in terms of the position and orientation of the local coordinate system and the deformation variables, and there is no need to evaluate the position and velocities of all the nodes of the FEM mesh. A deep analysis of the inertia terms is performed in order to optimize the evaluation process, reducing both the terms used and the number of arithmetic operations. Two possible simplifications are presented: the first one uses a non-consistent approach in order to define the inertia terms respect to the Cartesian coordinates of the FEM mesh, rejecting those corresponding to the angular rotations; the second approach makes use of lumped mass matrices. Based on the previously presented formulation, Chapter 4 is focused on the numerical integration of the motion differential equations. A new predictor-corrector method based on index-3 formulae and on the use of multi-body independent variables is presented. The evaluation of the dynamic equations in a new time step needs the solution of a set on nonlinear equations by a Newton-Raphson iterative process. The computation of the corresponding residual vector is performed efficiently by taking advantage of the system’s topological structure. Three methods to compute the tangent matrix are presented: an approximated evaluation that considers only the most relevant terms, a numerical approach based on finite differences and a recursive method that uses the topological structure. The method presented for integrating the dynamic equations can use a variety of integration formulae. This Thesis analyses the use of the trapezoidal rule, the 2nd order BDF formula and the hybrid TR-BDF2 method. A variable-time step strategy is presented for the last one. Chapter 5 describes the implementation of the proposed method in a general purpose pro-gram for solving any multibody defined by a data file. This program is implemented both in C++ and Java. Four examples are used to check the validity of the formulation and to compare this method with other methods commonly used to solve the dynamic equations of multi-body systems containing flexible bodies. The efficiency of the programming methodology used and the effect of the possible simplifications proposed are also analyzed. Chapter 6 summarizes the main Conclusions obtained in this Thesis and the new lines of research that have been opened.
Resumo:
Hoy en día, existen numerosos sistemas (financieros, fabricación industrial, infraestructura de servicios básicos, etc.) que son dependientes del software. Según la definición de Ingeniería del Software realizada por I. Sommerville, “la Ingeniería del Software es una disciplina de la ingeniería que comprende todos los aspectos de la producción de software desde las etapas iniciales de la especificación del sistema, hasta el mantenimiento de éste después de que se utiliza.” “La ingeniería del software no sólo comprende los procesos técnicos del desarrollo de software, sino también actividades tales como la gestión de proyectos de software y el desarrollo de herramientas, métodos y teorías de apoyo a la producción de software.” Los modelos de proceso de desarrollo software determinan una serie de pautas para poder desarrollar con éxito un proyecto de desarrollo software. Desde que surgieran estos modelos de proceso, se investigado en nuevas maneras de poder gestionar un proyecto y producir software de calidad. En primer lugar surgieron las metodologías pesadas o tradicionales, pero con el avance del tiempo y la tecnología, surgieron unas nuevas llamadas metodologías ágiles. En el marco de las metodologías ágiles cabe destacar una determinada práctica, la integración continua. Esta práctica surgió de la mano de Martin Fowler, con el objetivo de facilitar el trabajo en grupo y automatizar las tareas de integración. La integración continua se basa en la construcción automática de proyectos con una frecuencia alta, promoviendo la detección de errores en un momento temprano para poder dar prioridad a corregir dichos errores. Sin embargo, una de las claves del éxito en el desarrollo de cualquier proyecto software consiste en utilizar un entorno de trabajo que facilite, sistematice y ayude a aplicar un proceso de desarrollo de una forma eficiente. Este Proyecto Fin de Grado (PFG) tiene por objetivo el análisis de distintas herramientas para configurar un entorno de trabajo que permita desarrollar proyectos aplicando metodologías ágiles e integración continua de una forma fácil y eficiente. Una vez analizadas dichas herramientas, se ha propuesto y configurado un entorno de trabajo para su puesta en marcha y uso. Una característica a destacar de este PFG es que las herramientas analizadas comparten una cualidad común y de alto valor, son herramientas open-source. El entorno de trabajo propuesto en este PFG presenta una arquitectura cliente-servidor, dado que la mayoría de proyectos software se desarrollan en equipo, de tal forma que el servidor proporciona a los distintos clientes/desarrolladores acceso al conjunto de herramientas que constituyen el entorno de trabajo. La parte servidora del entorno propuesto proporciona soporte a la integración continua mediante herramientas de control de versiones, de gestión de historias de usuario, de análisis de métricas de software, y de automatización de la construcción de software. La configuración del cliente únicamente requiere de un entorno de desarrollo integrado (IDE) que soporte el lenguaje de programación Java y conexión con el servidor. ABSTRACT Nowadays, numerous systems (financial, industrial production, basic services infrastructure, etc.) depend on software. According to the Software Engineering definition made by I.Sommerville, “Software engineering is an engineering discipline that is concerned with all aspects of software production from the early stages of system specification through to maintaining the system after it has gone into use.” “Software engineering is not just concerned with the technical processes of software development. It also includes activities such as software project management and the development of tools, methods, and theories to support software production.” Software development process models determine a set of guidelines to successfully develop a software development project. Since these process models emerged, new ways of managing a project and producing software with quality have been investigated. First, the so-called heavy or traditional methodologies appeared, but with the time and the technological improvements, new methodologies emerged: the so-called agile methodologies. Agile methodologies promote, among other practices, continuous integration. This practice was coined by Martin Fowler and aims to make teamwork easier as well as automate integration tasks. Nevertheless, one of the keys to success in software projects is to use a framework that facilitates, systematize, and help to deploy a development process in an efficient way. This Final Degree Project (FDP) aims to analyze different tools to configure a framework that enables to develop projects by applying agile methodologies and continuous integration in an easy and efficient way. Once tools are analyzed, a framework has been proposed and configured. One of the main features of this FDP is that the tools under analysis share a common and high-valued characteristic: they are open-source. The proposed framework presents a client-server architecture, as most of the projects are developed by a team. In this way, the server provides access the clients/developers to the tools that comprise the framework. The server provides continuous integration through a set of tools for control management, user stories management, software quality management, and software construction automatization. The client configuration only requires a Java integrated development environment and network connection to the server.
Resumo:
Hoy en día las redes sociales se han convertido en una parte importante en la vida de muchas personas. No sólo porque les permite mantener el contacto con familiares y amigos, sino porque también pueden mostrar al mundo sus opiniones, inquietudes, estilo de vida, habilidades, ideas… Una de las redes sociales que ha adquirido mayor importancia en los últimos años es Twitter. Actualmente cuenta con más de 320 millones de usuarios activos al mes. En ella los usuarios pueden publicar información y acceder a información publicada por otros usuarios. Se ha convertido en el medio de comunicación y difusión de noticias más rápido del mundo. Éstas son algunas de las razones por las que existe un gran interés por el análisis de datos de esta red social. En particular, el análisis de tendencias a través de redes de interacciones entre sus usuarios. Un ejemplo este tipo de redes en Twitter es una red de retweets sobre una etiqueta o hasthtag concreto. Estas redes se pueden representar como grafos, donde los nodos representan a los usuarios y las aristas los retweets entre usuarios. Aunque existen varias aplicaciones que permiten transformar y visualizar grafos a partir de un fichero, es difícil encontrar librerías de programación o aplicaciones que recopilen los datos de twitter, generen los grafos, los analicen y los exporten a ficheros concretos para poder visualizarlos con alguna aplicación. Este trabajo tiene como finalidad crear una librería en el lenguaje de programación Java que permita recopilar datos de twitter, transformar dichos datos en grafos, aplicar algoritmos para analizarlos, y exportar los grafos a ficheros con formato GEXF para que puedan ser visualizados con la aplicación Gephi. Esta librería incluye un programa para probar todas sus funcionalidades.---ABSTRACT---Today, social networks have become an important part in the life of many persons. Not only because they allow them to keep in contact with relatives and friends but also because through them they can express their opinions, interests, life- styles, hobbies or ideas to the wide world. Twitter is one of the social networks which in the last few years has achieved a particular importance. Right now, it counts with more that 320 millions of active monthly users who exchange, or have access, through it to a wide variety of informations. Twitter has become the fastest way in the world to communicate or diffuse news. This explains, among other reasons, the growing interest in the analysis of the data in this specific social network, particularly the analysis of trends through the web of interactions between its users. An example of this type of networks in Twitter is the network of retweets on a specific label or hashtag. These networks can be represented as graphs where nodes represent users and edges the retweets between users. Although there exist aldeady several applications that allow for the transformation and visualization in graphs of the contents of a data file, it is difficult to find libraries or applications to compile data from twitter, to generate graphs from them, to analyze them and to export them to a specific file that will allow its visualization with the use of some application. The purpose of this work is the creation of a library in Java language that will make posible to compile data from twitter, to transform them in grafos, to apply algorythms to analyze them and to export the graphos to files with a GEXF format, which will allow their visualization with a Gephi application. This library will include a program to test all its features.
Resumo:
El proyecto “Aplicación móvil y web para la gestión de lugares geolocalizados (www.midiez.com)” tiene como objetivo principal crear un repositorio de listas categorizadas de sitios para su uso en el ámbito personal o comercial. Tanto la aplicación web como la aplicación móvil desarrollada en Android tienen el propósito de gestionar listas de lugares de interés (Restaurantes, tiendas,..) o con propósitos específicos (Organización de viajes) o simplemente como una forma de anotar aquellos sitios que nos comentan y que nos gustaría visitar. El desarrollo de este proyecto además permitirá contrastar las distintas alternativas y la evolución de las distintas herramientas que se han ido desarrollando para la gestión del ocio en los últimos años desde el sistema Android y plataformas web. Todo el proyecto ha sido realizado usando software libre (PHP para el lenguaje web servidor y Java para la programación móvil). La principal finalidad desde el punto de vista del desarrollador es: aprovechar las sinergias de la programación móvil y la programación web de manera que las mismas capas de negocio de Datos sean usadas por ambas plataformas. Asimismo crear una aplicación distribuida y fácilmente escalable. Las herramientas que se han usado para desarrollar han sido: la SDK proporcionada por Google, una JDK de Java y un IDE de desarrollo Java como es Eclipse y otro similar para el desarrollo de la parte PHP. La BBDD elegida ha sido MySQL. El proyecto pretende mostrar el potencial de las aplicaciones móviles geolocalizadas desde el punto de vista del ocio y compararlas con el estado del arte actual. Por lo tanto la mayor parte del tiempo dedicado al proyecto ha sido empleado en el desarrollo de la aplicación web, la aplicación móvil y en la base de datos pero también he dedicado una pequeña parte del trabajo para realizar un estudio sobre las consecuencias que esta tecnología está teniendo en nuestros cerebros. ABSTRACT The project "Web and Mobile App for managing geolocation places” has as main objective managing of places lists in order to use them in the leisure time scope. Nowadays the use of GPS is being a constant in mobile applications so that is already part of our daily life. We used to know where we are always and at the same time we can find locations using the technology of our mobile phones. Now it is very difficult to get lost outside but also is difficult to explain somebody how to get to anywhere without using Google Maps. Google Maps, Geolocation, gps navigators, … all that kind of stuff are making our life easier and less complicated but also are making our brains lazier. Furthermore, the development of this project will use the potential of locate places into maps to avoid annotate every spot we would like to visit or a brand new restaurant. The project itself shows the location features of Google Maps combined with an places data base in order to create, and manage places lists and use them to get to them as well as to share those places with our contacts. Also, the main purpose from the point of view of the developer is to combine different programming languages and use the resulting synergies in a easily scalable and portable environment. The tools that have been used to develop are: the SDK provided by Google, one JDK Java and Java development IDE such as Eclipse and similar to the development of the PHP part. The DB has been chosen MySQL. Finally, this project aims to show, from an educational point of view, the use and potential of this technology. Thus, it has been devoted a large amount of time of the project (and, consequently, its documentation) on develop the Android app, the data base and the web app but also but also to highlight the consequences of using technology.
Resumo:
El presente proyecto se enmarca en el área de métodos formales para computación; el objetivo de los métodos formales es asegurar, a través de herramientas lógicas y matemáticas, que sistemas computacionales satisfacen ciertas propiedades. El campo de semántica de lenguajes de programación trata justamente de construir modelos matemáticos que den cuenta de las diferentes características de cada lenguaje (estado mutable, mecanismos de paso de parámetros, órdenes de ejecución, etc.); permitiendo razonar de una manera abstracta, en vez de lidiar con las peculiaridades de implementaciones o las vaguezas de descripciones informales. Como las pruebas formales de corrección son demasiado intrincadas, es muy conveniente realizar estos desarrollos teóricos con la ayuda de asistentes de prueba. Este proceso de formalizar y corrobar aspectos semánticos a través de un asistente se denomina mecanización de semántica. Este proyecto – articulado en tres líneas: semántica de teoría de tipos, implementación de un lenguaje con tipos dependientes y semántica de lenguajes imperativos con alto orden - se propone realizar avances en el estudio semántico de lenguajes de programación, mecanizar dichos resultados, e implementar un lenguaje con tipos dependientes con la intención de que se convierta, en un mediano plazo, en un asistente de pruebas. En la línea de semántica de teoría de tipos los objetivos son: (a) extender el método de normalización por evaluación para construcciones no contempladas aun en la literatura, (b) probar la adecuación de la implementación en Haskell de dicho método de normalización, y (c) construir nuevos modelos categóricos de teoría de tipos. El objetivo de la segunda línea es el diseño e implementación de un lenguaje con tipos dependientes con la intención de que el mismo se convierta en un asistente de pruebas. Una novedad de esta implementación es que el algoritmo de chequeo de tipos es correcto y completo respecto al sistema formal, gracias a resultados ya obtenidos; además la implementación en Haskell del algoritmo de normalización (fundamental para el type-checking) también tendrá su prueba de corrección. El foco de la tercera línea está en el estudio de lenguajes de programación que combinan aspectos imperativos (estado mutable) con características de lenguajes funcionales (procedimientos y funciones). Por un lado se avanzará en la mecanización de pruebas de corrección de compiladores para lenguajes Algollike. El segundo aspecto de esta línea será la definición de semánticas operacional y denotacional del lenguaje de programación Lua y la posterior caracterización del mismo a partir de ellas. Para lograr dichos objetivos hemos dividido las tareas en actividades con metas graduales y que constituyen en sí mismas aportes al estado del arte de cada una de las líneas. La importancia académica de este proyecto radica en los avances teóricos que se propone en la línea de semántica de teoría de tipos, en las contribución para la construcción de pruebas mecanizadas de corrección de compiladores, en el aporte que constituye la definición de una semántica formal para el lenguaje Lua, y en el desarrollo de un lenguaje con tipos dependientes cuyos algoritmos más importantes están respaldados por pruebas de corrección. Además, a nivel local, este proyecto permitirá incorporar cuatro integrantes al grupo de “Semántica de la programación”.
Resumo:
En este texto se utilizará el lenguaje de programación MatLab. Es una necesidad sentida en la Universidad de Medellín contar con un lenguaje que permita, de manera rápida, poner en práctica los conceptos teóricos tratados en las clases de Fundamentos de Programación y Programación Orientada a Objetos (para estudiantes de Ingeniera de Sistemas), lo que ha motivado la redacción de este texto. Su propósito es acercar a los estudiantes a una herramienta potente y fácil de utilizar en un tiempo reducido, con el fin de probar los algoritmos diseñados en clase y validarlos de acuerdo con los requerimientos impuestos. Se pretende con este texto servir de guía a los estudiantes de Fundamentos de Programación de la Universidad de Medellín y de otras universidades para que puedan poner en práctica los conceptos tratados en la clase teórica. En cada capítulo se presentan conceptos de los diferentes temas con ejemplos y problemas resueltos que le ayudarán a visualizar diversas maneras de construir algoritmos. Los problemas propuestos están pensados de tal manera que sirvan como base y ejercitación para otras asignaturas relacionadas con la programación de computadoras, como: Lenguajes de Programación, Estructuras de Datos, entre otras. De ahí la gran importancia de desarrollarlos, de tal manera, el estudiante conocerá las teorías y técnicas mediante las cuales podrá adquirir destrezas lógico-abstractas que le permitan conceptualizar e implementar algoritmos computacionales que solucionen problemas matemáticos mediante la estrategia de aprendizaje por ejemplos.
Resumo:
En este texto se utilizará el lenguaje de programación Visual Basic. NET. Dicho lenguaje es uno de los más populares en el mundo por su facilidad para diseñar aplicaciones cada vez más robustas; permite crear aplicaciones para Windows de una forma sencilla. La palabra visual hace referencia a la forma en que se van diseñando las aplicaciones, y al aspecto gráfico que toman los diferentes objetos en el momento de ejecutar las aplicaciones; la palabra NET hace referencia al medio donde se ejecutarán las aplicaciones diseñadas. La necesidad sentida en las universidades y politécnicos de contar con un lenguaje que permita de manera rápida poner en práctica los conceptos teóricos tratados en las clases de Fundamentos de Programación y Programación Orientada a Objetos (para estudiantes de Ingeniería de Sistemas) ha motivado la redacción de este texto. Su propósito es acercar a estudiantes a una herramienta potente y fácil de utilizar en un tiempo reducido, con el fin de probar los algoritmos diseñados en clase y validarlos de acuerdo con los requerimientos impuestos. Se pretende con este texto servir de guía a los estudiantes de Fundamentos de Programación de la Universidad de Medellín y de otras universidades para que puedan poner en práctica los conceptos tratados en la clase teórica.
Resumo:
Gaur egun Twitter moduko mikroblogintza aplikazioak zalantzak argitzeko gero eta gehiago erabiltzen dira. Erabiltzaileak laguntza eskaera adierazi eta sare sozialaren bidez bere kontaktuei helarazi egiten zaie. Erabiltzaileak galdera eta erantzunen kudeaketa sare sozial nahaste baten barruan egin beharko du. Proiektuaren helburu nagusia mikroblogintza plataformetako kanala programazio lengoaien IDEen barruan bateratzea da, modu honetan laguntza eskatzeko prozesua IDEetan bertan kudeatzeko.