999 resultados para C (Lenguaje de programación)
Resumo:
El objetivo de este proyecto de investigacin es comparar dos tcnicas matemticas de aproximacin polinmica, las aproximaciones segn el criterio de mnimos cuadrados y las aproximaciones uniformes (minimax). Se describen tanto el mercado actual del cobre, con sus fluctuaciones a lo largo del tiempo, como los distintos modelos matemticos y programas informticos disponibles. Como herramienta informtica se ha seleccionado Matlab, cuya biblioteca matemtica es muy amplia y de uso muy extendido y cuyo lenguaje de programación es suficientemente potente para desarrollar los programas que se necesiten. Se han obtenido diferentes polinomios de aproximacin sobre una muestra (serie histrica) que recoge la variacin del precio del cobre en los ltimos aos. Se ha analizado la serie histrica completa y dos tramos significativos de ella. Los resultados obtenidos incluyen valores de inters para otros proyectos. Abstract The aim of this research project is to compare two mathematical models for estimating polynomial approximation, the approximations according to the criterion of least squares approximations uniform (Minimax). Describes both the copper current market, fluctuating over time as different computer programs and mathematical models available. As a modeling tool is selected main Matlab which math library is the largest and most widely used programming language and which is powerful enough to allow you to develop programs that are needed. We have obtained different approximating polynomials, applying mathematical methods chosen, a sample (historical series) which indicates the fluctuation in copper prices in last years. We analyzed the complete historical series and two significant sections of it. The results include values that we consider relevant to other projects
Estudio preliminar acerca del uso de protocolos y actos comunicativos FIPA en el sistema COMPUTAPLEX
Resumo:
Este trabajo corresponde con la implementacin de componentes software dentro de la Plataforma COMPUTAPLEX, la cual tiene como objetivo facilitar a los investigadores la realizacin de tareas del proceso experimental de ingeniera de software. Uno de los aportes a esta plataforma tecnolgica corresponde con el desarroll de los componentes necesarios para la recuperacin de datos experimentales disponibles en diversas fuentes de datos, para ello se hizo uso de un mecanismo capaz de unificar la extraccin de informacin de MySQL, ficheros excel y ficheros SPSS. Con ello diferentes grupos de investigacin 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 tecnologa de agentes en la que se describe sus definiciones, lenguajes de comunicacin, especificacin FIPA, JADE como implementacin FIPA y parser XML. Adems para este trabajo se ha definido e implementado una ontologa de comunicacin entre agentes, la misma que fue diseada en la herramienta Protg. En lo que se refiere al desarrollo de componentes se hizo uso de una ampla variedad de tecnologas que incluye lenguaje de programación Java, framework JADE para el desarrollo de agentes, librera JENA para manejo de ontologas, librera SAXParser para lectura de archivos XML y patrn de diseo Factory. Finalmente se describe la metodologa de trabajo utilizada en el proyecto, la cual por medio de la realizacin 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 Protg 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:
Este trabajo fin de grado es un estudio sobre la reconstruccin del espectro de irradiancia solar en la superficie de Marte y de la radiacin solar recibida en lo alto de la atmosfera. Se llevar a cabo a partir de los datos recogidos por arrays de fotodiodos, que se integran en unos sensores, y miden la intensidad de la radiacin recibida del cuerpo negro (el Sol), en un rango de longitudes de onda del espectro electromagntico. Para lograr esta reconstruccin, se ha necesitado desarrollar tcnicas de interpolacin y modelos matemticos. Estos metodos los he implementado con el lenguaje de programación Matlab y me he ayudado de Maple para conseguir distintos resultados. Estos procedimientos sern aplicados a tres configuraciones de sondas en las que cada una cuenta con un nmero determinado de fotodiodos. El objetivo es reconstruir este espectro de irradiancia aproximndolo lo mximo posible a unos conjuntos de datos estimados, segn modelos de transferencia radiativa, que me han sido proporcionados para el cuerpo negro y que miden la radiacin solar recibida en la superficie y en lo alto de la atmsfera del Planeta rojo. Este trabajo est basado en un proyecto de investigacin que se est llevando a cabo desde hace varios aos por un equipo de investigadores de varias universidades de Madrid, conjuntamente con el I.N.T.A. (Instituto Nacional de Tcnica Aeroespacial), entre los que se encuentra mi tutor.
Resumo:
EPICS (Experimental Physics and Industrial Control System) lies in a set of software tools and applications which provide a software infrastructure for building distributed data acquisition and control systems. Currently there is an increase in use of such systems in large Physics experiments like ITER, ESS, and FREIA. In these experiments, advanced data acquisition systems using FPGA-based technology like FlexRIO are more frequently been used. The particular case of ITER (International Thermonuclear Experimental Reactor), the instrumentation and control system is supported by CCS (CODAC Core System), based on RHEL (Red Hat Enterprise Linux) operating system, and by the plant design specifications in which every CCS element is defined either hardware, firmware or software. In this degree final project the methodology proposed in Implementation of Intelligent Data Acquisition Systems for Fusion Experiments using EPICS and FlexRIO Technology Sanz et al. [1] is used. The final objective is to provide a document describing the fulfilled process and the source code of the data acquisition system accomplished. The use of the proposed methodology leads to have two diferent stages. The first one consists of the hardware modelling with graphic design tools like LabVIEWFPGA which later will be implemented in the FlexRIO device. In the next stage the design cycle is completed creating an EPICS controller that manages the device using a generic device support layer named NDS (Nominal Device Support). This layer integrates the data acquisition system developed into CCS (Control, data access and communication Core System) as an EPICS interface to the system. The use of FlexRIO technology drives the use of LabVIEW and LabVIEW FPGA respectively. RESUMEN. EPICS (Experimental Physics and Industrial Control System) es un conjunto de herramientas software utilizadas para el desarrollo e implementacin de sistemas de adquisicin de datos y control distribuidos. Cada vez es ms utilizado para entornos de experimentacin fsica a gran escala como ITER, ESS y FREIA entre otros. En estos experimentos se estn empezando a utilizar sistemas de adquisicin de datos avanzados que usan tecnologa basada en FPGA como FlexRIO. En el caso particular de ITER, el sistema de instrumentacin y control adoptado se basa en el uso de la herramienta CCS (CODAC Core System) basado en el sistema operativo RHEL (Red Hat) y en las especificaciones del diseo del sistema de planta, en la cual define todos los elementos integrantes del CCS, tanto software como firmware y hardware. En este proyecto utiliza la metodologa propuesta para la implementacin de sistemas de adquisicin de datos inteligente basada en EPICS y FlexRIO. Se desea generar una serie de ejemplos que cubran dicho ciclo de diseo completo y que seran propuestos como casos de uso de dichas tecnologas. Se proporcionar un documento en el que se describa el trabajo realizado as como el cdigo fuente del sistema de adquisicin. La metodologa adoptada consta de dos etapas diferenciadas. En la primera de ellas se modela el hardware y se sintetiza en el dispositivo FlexRIO utilizando LabVIEW FPGA. Posteriormente se completa el ciclo de diseo creando un controlador EPICS que maneja cada dispositivo creado utilizando una capa software genrica de manejo de dispositivos que se denomina NDS (Nominal Device Support). Esta capa integra la solucin en CCS realizando la interfaz con la capa EPICS del sistema. El uso de la tecnologa FlexRIO conlleva el uso del lenguaje de programación y descripcin hardware LabVIEW y LabVIEW FPGA respectivamente.
Resumo:
El objetivo del presente proyecto es el despacho econmico-ambiental de unidades trmicas de carbn con respecto a la minimizacin de sus costes horarios o de sus emisiones de xidos de nitrgeno (NOX), segn convenga. Se han estudiado tanto las curvas de costes de generacin como las de emisin de xidos de nitrgeno para cinco unidades tipo de carbn para poder llevar a cabo el proyecto. Se modelizaron las curvas de emisin de xidos de nitrgeno para las cinco unidades estudiadas mediante la simulacin de la combustin del carbn en caldera con el software ASPEN PLUS, y las curvas de costes con datos proporcionados en la publicacin Las centrales termoelctricas: Consumos marginales, Consumos medios y costes de arranque de grupos de carbn y otra bibliografa, para su posterior aplicacin en el despacho, desarrollado en Excel y con el uso de su lenguaje de programación, VBA, para escribir un cdigo que automatice la eleccin a tomar entre todas las posibilidades. Analizando tres posibles casos de generacin trmica con carbn, se ha llevado a cabo el despacho econmico-ambiental de las cinco unidades implicadas, con todas sus posibles combinaciones (apagado-encendido), obteniendo en cada caso lo que parece ser la manera ms econmica o ambiental, segn convenga, de generar la potencia demandada en cada momento. ABSTRACT The aim of this project is the economic-environmental dispatch of thermal coal power plants to minimize the hourly costs of generation or the nitrogen oxides (NOX) emissions as appropriate. It have been studied both generation cost curves as nitrogen oxides emissions curves for five examples of coal power plants to carry out the project. Nitrogen oxides emissions curves were modeled for the five coal power plants simulating the coal combustion in the boiler with ASPEN PLUS software, and generation cost curves with data provided in the publication Las centrales termoelctricas: Consumos marginales, Consumos medios y costes de arranque de grupos de carbn and other publications, to be used later in the dispatch, developed in Excel, using the VBA code, to write a code that automatize the correct election between all the generation possibilities. Analizing three possible cases of thermal generation with coal, economic-environmental dispatch for the five implied power plants has been done, with all the possible combinations (generating or no generating), obtaining, in each case, the most economically or environmentally way, as appropriate, to generate the demanded power in each moment.
Resumo:
Los avances que se han producido en los ltimos aos en cuanto a potencia y capacidades de los telfonos mviles que usamos de manera cotidiana, traen de la mano un auge en la demanda de aplicaciones de todo mbito: desde aplicaciones generales de consumo, pasando por juegos, hasta aplicaciones que ofrecen soluciones internas a empresas. Existen diferentes sistemas operativos para telfonos mviles como se explicar ms adelante en el captulo introductorio. En dicho captulo se da la justificacin de por qu en el presente Proyecto Fin de Carrera se centra en el estudio del sistema operativo Android. Primeramente se dar una visin global del estado del arte en cuanto al mundo de aplicaciones mviles se refiere. Se explicarn los pros y contras de cada sistema operativo, detallando el lenguaje de programación utilizado en cada uno de ellos y sus principales caractersticas. Despus, en el captulo tres se estudiar con ms profundidad el sistema operativo Android, desde su historia y orgenes, hasta los componentes bsicos para la creacin de una aplicacin, pasando por la arquitectura interna del sistema o su mquina virtual. Con esto se pretende que el lector tenga un contexto que le permita comprender los siguientes captulos, que es donde est el ncleo de este Proyecto Fin de Carrera. El cuarto captulo trata de una serie de prcticas incrementales, que cubren una gran parte de las posibilidades que ofrece el sistema operativo Android para el desarrollo de aplicaciones. Se ha pretendido que la dificultad vaya de menos a ms y que las prcticas se vayan apoyando en las anteriores, para tener al final una nica solucin que englobe todas las lecciones. El ltimo captulo quiere englobar el uso de todas las lecciones aprendidas en las lecciones anteriores para crear una aplicacin que bien podra ser una aplicacin real para un cliente. Se trata de una aplicacin que muestra en tiempo real informacin sobre las cmaras de trfico de la ciudad de Madrid. ABSTRACT. The improvements that have occurred in recent years in terms of power and capabilities of mobile phones that we use on a daily basis, bring an increment in demand for all kind of applications, from general consumer applications, games or even internal applications that offer solutions to companies. There are different operating systems for mobile phones as will be explained later in the introductory chapter. In that chapter the answer for why this Thesis focuses on the study of the Android operating system is given as well. First an overview of the state of the art about the world of mobile applications will be referred. The pros and cons of each operating system will be explained, detailing the programming language used in each of them and their main characteristics. Then in chapter three will be discussed in more depth the Android operating system, from its history and beginnings to the main components for the creation of an application, to the internal architecture of the system or virtual machine. The goal of chapter three is to give the readers a context that allows them to understand the following chapters, where the core of this Thesis is. The fourth chapter contains a series of incremental practices covering a large part of the potential of the Android operating system for application development. Those practices grow in difficulty and are supported by the previous in order to have at the end a single solution that fits all lessons. The last chapter wants to embrace the use of all the lessons learned in previous lessons to create an application that could well be an actual application for a client. It is an application that displays real-time information off traffic cameras of the city of Madrid.
Resumo:
Una de las dificultades principales en el desarrollo de software es la ausencia de un marco conceptual adecuado para su estudio. Una propuesta la constituye el modelo transformativo, que entiende el desarrollo de software como un proceso iterativo de transformacin de especificaciones: se parte de una especificacin inicial que va transformndose sucesivamente hasta obtener una especificacin final que se toma como programa. Este modelo bsico puede llevarse a la prctica de varias maneras. En concreto, la aproximacin deductiva toma una sentencia lgica como especificacin inicial y su proceso transformador consiste en la demostracin de la sentencia; como producto secundario de la demostracin se deriva un programa que satisface la especificacin inicial. La tesis desarrolla un mtodo deductivo para la derivacin de programas funcionales con patrones, escritos en un lenguaje similar a Hope. El mtodo utiliza una lgica multignero, cuya relacin con el lenguaje de programación es estudiada. Tambin se identifican los esquemas de demostracin necesarios para la derivacin de funciones con patrones, basados en la demostracin independiente de varias subsentencias. Cada subsentencia proporciona una subespecificacin de una ecuacin del futuro programa a derivar. Nuestro mtodo deductivo est inspirado en uno previo de Zohar Manna y Richard Waldinger, conocido como el cuadro deductivo, que deriva programas en un lenguaje similar a Lisp. El nuevo mtodo es una modificacin del cuadro de estos autores, que incorpora gneros y permite demostrar una especificacin mediante varios cuadros. Cada cuadro demuestra una subespecificacin y por tanto deriva una ecuacin del programa. Se prevn mecanismos para que los programas derivados puedan contener definiciones locales con patrones y variables annimas y sinnimas y para que las funciones auxiliares derivadas no usen variables de las funciones principales. La tesis se completa con varios ejemplos de aplicacin, un mecanismo que independentiza el mtodo del lenguaje de programación y un prototipo de entorno interactivo de derivacin deductiva. Categoras y descriptores de materia CR D.l.l [Tcnicas de programación]: Programación funcional; D.2.10 [Ingeniera de software]: Diseo - mtodos; F.3.1 [Lgica y significado de los programas]: Especificacin, verificacin y razonamiento sobre programas - lgica de programas; F.3.3 [Lgica y significado de los programas]: Estudios de construcciones de programas - construcciones funcionales; esquemas de programa y de recursion; 1.2.2 [Inteligencia artificial]: Programación automtica - sntesis de programas; 1.2.3 [Inteligencia artificial]: Deduccin y demostracin de teoremas]: extraccin de respuesta/razn; induccin matemtica. Trminos generales Programación funcional, sntesis de programas, demostracin de teoremas. Otras palabras claves y expresiones Funciones con patrones, cuadro deductivo, especificacin parcial, induccin estructural, teorema de descomposicin.---ABSTRACT---One of the main difficulties in software development is the lack of an adequate conceptual framework of study. The transformational model is one such proposal that conceives software development as an iterative process of specifications transformation: an initial specification is developed and successively transformed until a final specification is obtained and taken as a program. This basic model can be implemented in several ways. The deductive approach takes a logical sentence as the initial specification and its proof constitutes the transformational process; as a byproduct of the proof, a program which satisfies the initial specification is derived. In the thesis, a deductive method for the derivation of Hope-like functional programs with patterns is developed. The method uses a many-sorted logic, whose relation to the programming language is studied. Also the proof schemes necessary for the derivation of functional programs with patterns, based on the independent proof of several subsentences, are identified. Each subsentence provides a subspecification of one equation of the future program to be derived. Our deductive method is inspired on a previous one by Zohar Manna and Richard Waldinger, known as the deductive tableau, which derives Lisp-like programs. The new method incorporates sorts in the tableau and allows to prove a sentence with several tableaux. Each tableau proves a subspecification and therefore derives an equation of the program. Mechanisms are included to allow the derived programs to contain local definitions with patterns and anonymous and synonymous variables; also, the derived auxiliary functions cannot reference parameters of their main functions. The thesis is completed with several application examples, i mechanism to make the method independent from the programming language and an interactive environment prototype for deductive derivation. CR categories and subject descriptors D.l.l [Programming techniques]: Functional programming; D.2.10 [Software engineering]: Design - methodologies; F.3.1 [Logics and meanings of programa]: Specifying and verifying and reasoning about programs - logics of programs; F.3.3 [Logics and meanings of programs]: Studies of program constructs - functional constructs; program and recursion schemes; 1.2.2 [Artificial intelligence]: Automatic programming - program synthesis; 1.2.3 [Artificial intelligence]: Deduction and theorem proving - answer/reason extraction; mathematical induction. General tenas Functional programming, program synthesis, theorem proving. Additional key words and phrases Functions with patterns, deductive tableau, structural induction, partial specification, descomposition theorem.
Resumo:
1 RESUMEN 1.1 Resumen (espaol) El intercambio y comercio tanto de bienes como servicios se remonta a tiempos inmemoriales dentro de la historia de la humanidad. Desde sus inicios tempranos con el intercambio o trueque de productos en el Neoltico hasta nuestra poca hper globalizada, en la que existen clientes potenciales en el otro extremo del mundo, podemos decir que se ha recorrido un largo camino. Con el paso del tiempo y la evolucin de la sociedad y la tecnologa, as como la evolucin empresarial, se ha visto necesario la implementacin de estrategias para lograr la fidelizacin y satisfaccin de los clientes. De esta forma entendimos que ya no vala simplemente con vender un producto a un cliente, si no que si queramos establecer una relacin contina con el mismo, debamos lograr su satisfaccin y por tanto su fidelizacin. Como forma de extender la relacin ms all de una simple venta, las empresas modernas empezaron a implementar diversas estrategias. De esta forma aparecieron los primeros centros de atencin al cliente, las primeras aplicaciones hechas a medida para dar soporte a los clientes y por fin los sistemas CRM tal y como los concebimos hoy da. El presente proyecto fin de carrera da una explicacin de dichos sistemas indicando cules son sus objetos fundamentales y cmo implementan la estrategia CRM y profundiza en uno de los sistemas CRM ms utilizados: PeopleSoft CRM, dando una explicacin detallada de dicho sistemas as como de los conceptos y lenguaje de programación de dicho sistema CRM. 1.2 SUMMARY (ENGLISH) The exchange and trade of goods as well and services goes back to ancient times in the history of mankind. Since its early beginning with the bartering of products in the Neolithic to our globalized hyper era, in which there are potential customers on the other side of the world, we can say that it has come a long way. After a certain length of time, the society and technology evolution, and also the enterprise development, has been necessary to implement strategies to achieve customer loyalty and satisfaction. We understood in this way that it no longer simply worth to sell a product to a customer, otherwise if we wanted to establish a relationship continues with the same, we should ensure their satisfaction and thus their loyalty. As a way to extend the relationship beyond a simple sale, modern enterprises began to implement several strategies. Therefore appeared the first customer service centers, the first applications tailored to support customers and finally the CRM systems as we know it today. This final project gives an explanation of such systems by indicating what the core objects are and how to implement the CRM strategy, deeping into one of the most widely used CRM systems: PeopleSoft CRM, and also giving a detailed explanation of this system and its programming language.
Resumo:
A medida que la sociedad avanza, la cantidad de datos almacenados en sistemas de informacin y procesados por las aplicaciones y servidores software se eleva exponencialmente. Adems, las nuevas tecnologas han confiado su desarrollo en la red internacionalmente conectada: Internet. En consecuencia, se han aprovechado las conexiones mquina a mquina (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 telfono 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 situacin. As, las arquitecturas orientadas a eventos solventan la comprensin 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 definicin exhaustiva de los mensajes, notificndole 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, contrastndolas con el resto de los principales patrones arquitectnicos. Esta comparacin 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 relacin 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 carcter de tipo inmediato, mediante el envo y recepcin de mensajes en tiempo real y de forma asncrona. Tambin 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 simulacin de una EDA completa, con todos sus elementos: productores, consumidores y procesador de eventos complejo, adems de la visualizacin de los datos. Para ensalzar los servicios prestados por la red de IoT y su relacin con una arquitectura EDA, se ha implementado una simulacin de un servicio personalizado de Tele-asistencia. Esta prueba de concepto ha ayudado a reforzar el aprendizaje y entender con ms precisin todo el conocimiento adquirido mediante el estudio terico de una EDA. Se ha implementado en el lenguaje de programación Java, mediante las soluciones de cdigo abierto RabbitMQ y Esper, ayudando a su unin el estndar AMQP, para completar correctamente la transferencia.
Resumo:
En el trabajo que aqu presentamos se incluye la base terica (sintaxis y semntica) y una implementacin de un framework para codificar el razonamiento de la representacin difusa o borrosa del mundo (tal y como nosotros, seres humanos, entendemos ste). El inters en la realizacin de ste trabajo parte de dos fuentes: eliminar la complejidad existente cuando se realiza una implementacin con un lenguaje de programación de los llamados de propsito general y proporcionar una herramienta lo suficientemente inteligente para dar respuestas de forma constructiva a consultas difusas o borrosas. El framework, RFuzzy, permite codificar reglas y consultas en una sintaxis muy cercana al lenguaje natural usado por los seres humanos para expresar sus pensamientos, pero es bastante ms que eso. Permite representar conceptos muy interesantes, como fuzzificaciones (funciones usadas para convertir conceptos no difusos en difusos), valores por defecto (que se usan para devolver resultados un poco menos vlidos que los que devolveramos si tuvisemos la informacin necesaria para calcular los ms vlidos), similaridad entre atributos (caracterstica que utilizamos para buscar aquellos individuos en la base de datos con una caracterstica similar a la buscada), sinnimos o antnimos y, adems, nos permite extender el numero de conectivas y modificadores (incluyendo modificadores de negacin) que podemos usar en las reglas y consultas. La personalizacin de la definicin de conceptos difusos (muy til para lidiar con el carcter subjetivo de los conceptos borrosos, donde nos encontramos con que cualificar a alguien de alto depende de la altura de la persona que cualifica) es otra de las facilidades incluida. Adems, RFuzzy implementa la semntica multi-adjunta. El inters en esta reside en que introduce la posibilidad de obtener la credibilidad de una regla a partir de un conjunto de datos y una regla dada y no solo el grado de satisfaccin de una regla a partir de el universo modelado en nuestro programa. De esa forma podemos obtener automticamente la credibilidad de una regla para una determinada situacin. An cuando la contribucin terica de la tesis es interesante en si misma, especialmente la inclusin del modificador de negacion, sus multiples usos practicos lo son tambin. Entre los diferentes usos que se han dado al framework destacamos el reconocimiento de emociones, el control de robots, el control granular en computacion paralela/distribuda y las busquedas difusas o borrosas en bases de datos. ABSTRACT In this work we provide a theoretical basis (syntax and semantics) and a practical implementation of a framework for encoding the reasoning and the fuzzy representation of the world (as human beings understand it). The interest for this work comes from two sources: removing the existing complexity when doing it with a general purpose programming language (one developed without focusing in providing special constructions for representing fuzzy information) and providing a tool intelligent enough to answer, in a constructive way, expressive queries over conventional data. The framework, RFuzzy, allows to encode rules and queries in a syntax very close to the natural language used by human beings to express their thoughts, but it is more than that. It allows to encode very interesting concepts, as fuzzifications (functions to easily fuzzify crisp concepts), default values (used for providing results less adequate but still valid when the information needed to provide results is missing), similarity between attributes (used to search for individuals with a characteristic similar to the one we are looking for), synonyms or antonyms and it allows to extend the number of connectives and modifiers (even negation) we can use in the rules. The personalization of the definition of fuzzy concepts (very useful for dealing with the subjective character of fuzziness, in which a concept like tall depends on the height of the person performing the query) is another of the facilities included. Besides, RFuzzy implements the multi-adjoint semantics. The interest in them is that in addition to obtaining the grade of satisfaction of a consequent from a rule, its credibility and the grade of satisfaction of the antecedents we can determine from a set of data how much credibility we must assign to a rule to model the behaviour of the set of data. So, we can determine automatically the credibility of a rule for a particular situation. Although the theoretical contribution is interesting by itself, specially the inclusion of the negation modifier, the practical usage of it is equally important. Between the different uses given to the framework we highlight emotion recognition, robocup control, granularity control in parallel/distributed computing and flexible searches in databases.
Resumo:
El trabajo realizado en este Trabajo de Fin de Grado (en adelante, TFG) consiste en la inclusin de nuevas funcionalidades avanzadas a la ltima versin del Sistema de Gestin de Rankings de carreras de orientacin. El proyecto, actualmente en fase de explotacin, es un sistema de clasificacin y manejo de diferentes tipos de rankings para las carreas de orientacin a pie de la FEDO1. Por medio de este ranking, se determina la clasificacin global de los distintos corredores federados dentro de cada categora, a travs de diferentes parmetros de entrada que establecen la funcionalidad del ranking. En cuanto al trabajo realizado en este TFG, se trata de la implementacin de la siguiente versin del sistema (versin 6). En esta nueva versin se ha querido incluir nuevas funcionalidades requeridas por los miembros de la federacin, as como mejora de otras que no funcionan correctamente. El primer punto del trabajo fue el de comprender y familiarizarme con la herramienta ya implementada hasta el momento, as como aprender un nuevo lenguaje de programación desconocido hasta la fecha para m; Python. Una de las primeras modificaciones realizadas, sobre las versiones anteriores, es la modificacin del Sistema de Gestin de Rankings para los organizadores de carreras. Los organizadores de las carreras obtienen una recompensa de puntos por la organizacin de carreras, lo que significa un punto de gran importancia para el sistema. Esta funcionalidad no funcionaba correctamente en las versiones anteriores, de manera se tuvo que rehacer desde cero con las especificaciones necesarias. Otro requisito necesario fue modificar los requisitos para el clculo de las nuevas medias de corredores, permitiendo el clculo de la misma de forma continua o solo cuando se cumplan todos los requisitos. Respecto a la versin anterior, exista un problema con los accesos a los directorios de cada ranking. En caso de introducir los valores iniciales del ranking desde una carpeta diferente al directorio raz de la aplicacin, el sistema no realizaba correctamente la bsqueda de archivos en el directorio de ranking. De esta manera, haba que modificar todo el cdigo implementado para que todas las bsquedas se realizaran sobre el directorio de cada ranking. A continuacin, se incluy una nueva funcionalidad para el ranking individual de los corredores. Esta nueva funcionalidad permite la inclusin de una nueva opcin de clculo de puntuaciones para el ranking individual, a travs de un fichero de entrada de puntuaciones que determinase las puntuaciones de los corredores exactas. Durante toda la fase del proyecto se ha tenido que aadir otra serie de especificaciones en la aplicacin, las cuales sern explicadas en esta memoria. En definitiva, el trabajo realizado se ha basado en la mejora de una aplicacin que gestiona rankings deportivos, de manera que esta versin se acercase lo mximo posible a la versin final de la aplicacin.---ABSTRACT---The work done during these months is based on the addition of new advanced functionalities to the last version of the "Sistema de Gestin de Rankings" of orientation races. The project, now in phase of operation, is based on a classification system and management of different types of rankings for walk orienteering of the FEDO. Through this ranking, the global classification of the federal runners in each category is determinated, through various input parameters which establish the functionality of the ranking. Talking about the work done, it consist in the implementation of a new system version (version 6). This new version include new required functionalities by the members of the federation, as well as improving others that were working wrong. The first point of the project was to understand and become familiar with the tool already implemented in that moment, as well as learn a new programming language unknown to date for me; Python. One of the first changes made on previous versions, was the modification of the system for races organizers. The races organizers obtained a reward of points for the organized race, which means a point of great important for the system. This functionality didn't work correctly in previous versions, so was essential to redo it from zero with the required specifications. Another requirement was the addition of a new option for calculating the average of organizers, allowing calculation of it at all times. In the previous version, there was a problem with the access to directories of each ranking. In case of introduce the initial values of the ranking from a different folder to the root directory of the application, the system didn't perform correctly the finding of files in the directory of the ranking. So check all the implemented code for all searches were carried out on each ranking directory.Then a new functionality was included for the individual ranking of runners. This new feature is the inclusion of a new option to calculate scores for the individual ranking, through an input file that determinates exact scores for the runners. Throughout the project phase the addition of another set of specifications in the application was important, which will be explained in this memory. In short, the work done has been based on improving of an application that manage sport rankings, so this version could approach as much as possible to the final version of the application.
Resumo:
La deteccin de los bordes de lneas en la carretera es una parte muy importante en los sistemas inteligentes de transportacin, as como la deteccin de objetos tal como vehculos, con la finalidad de informar o prevenir a travs de una alerta al conductor o al sistema informtico. De aqu nace el inters de analizar algunos mtodos de visin artificial (VA) que es un subcampo de la inteligencia artificial, cuyo propsito es programar un computador y que este entienda una escena o imagen, algunos de los mtodos ms comunes en la deteccin de lneas y vehculos (considerados objetos en nuestra investigacin) son la transformada de Hough, el mtodo de Canny, clasificador Haar Cascade, filtros de Fourier, etc. Se desarrollar una aplicacin de escritorio o PC (Personal Computer) para el reconocimiento de vehculos y las lneas de bordes, el lenguaje de programación utilizado ser Python y la biblioteca OpenCV que contiene ms de 500 funciones en el campo de visin por computador. La validacin del reconocimiento de objetos se la realizar con una prueba de campo. Este resultado apoyar a la automocin (mquina que se desplaza por accin de un motor como el vehculo) con datos que luego pueden ser procesados.
Resumo:
En el mundo actual las aplicaciones basadas en sistemas biomtricos, es decir, aquellas que miden las seales elctricas de nuestro organismo, estn creciendo a un gran ritmo. Todos estos sistemas incorporan sensores biomdicos, que ayudan a los usuarios a controlar mejor diferentes aspectos de la rutina diaria, como podra ser llevar un seguimiento detallado de una rutina deportiva, o de la calidad de los alimentos que ingerimos. Entre estos sistemas biomtricos, los que se basan en la interpretacin de las seales cerebrales, mediante ensayos de electroencefalografa o EEG estn cogiendo cada vez ms fuerza para el futuro, aunque estn todava en una situacin bastante incipiente, debido a la elevada complejidad del cerebro humano, muy desconocido para los cientficos hasta el siglo XXI. Por estas razones, los dispositivos que utilizan la interfaz cerebro-mquina, tambin conocida como BCI (Brain Computer Interface), estn cogiendo cada vez ms popularidad. El funcionamiento de un sistema BCI consiste en la captacin de las ondas cerebrales de un sujeto para despus procesarlas e intentar obtener una representacin de una accin o de un pensamiento del individuo. Estos pensamientos, correctamente interpretados, son posteriormente usados para llevar a cabo una accin. Ejemplos de aplicacin de sistemas BCI podran ser mover el motor de una silla de ruedas elctrica cuando el sujeto realice, por ejemplo, la accin de cerrar un puo, o abrir la cerradura de tu propia casa usando un patrn cerebral propio. Los sistemas de procesamiento de datos estn evolucionando muy rpido con el paso del tiempo. Los principales motivos son la alta velocidad de procesamiento y el bajo consumo energtico de las FPGAs (Field Programmable Gate Array). Adems, las FPGAs cuentan con una arquitectura reconfigurable, lo que las hace ms verstiles y potentes que otras unidades de procesamiento como las CPUs o las GPUs.En el CEI (Centro de Electrnica Industrial), donde se lleva a cabo este TFG, se dispone de experiencia en el diseo de sistemas reconfigurables en FPGAs. Este TFG es el segundo de una lnea de proyectos en la cual se busca obtener un sistema capaz de procesar correctamente seales cerebrales, para llegar a un patrn comn que nos permita actuar en consecuencia. Ms concretamente, se busca detectar cuando una persona est quedndose dormida a travs de la captacin de unas ondas cerebrales, conocidas como ondas alfa, cuya frecuencia est acotada entre los 8 y los 13 Hz. Estas ondas, que aparecen cuando cerramos los ojos y dejamos la mente en blanco, representan un estado de relajacin mental. Por tanto, este proyecto comienza como inicio de un sistema global de BCI, el cual servir como primera toma de contacto con el procesamiento de las ondas cerebrales, para el posterior uso de hardware reconfigurable sobre el cual se implementarn los algoritmos evolutivos. Por ello se vuelve necesario desarrollar un sistema de procesamiento de datos en una FPGA. Estos datos se procesan siguiendo la metodologa de procesamiento digital de seales, y en este caso se realiza un anlisis de la frecuencia utilizando la transformada rpida de Fourier, o FFT. Una vez desarrollado el sistema de procesamiento de los datos, se integra con otro sistema que se encarga de captar los datos recogidos por un ADC (Analog to Digital Converter), conocido como ADS1299. Este ADC est especialmente diseado para captar potenciales del cerebro humano. De esta forma, el sistema final capta los datos mediante el ADS1299, y los enva a la FPGA que se encarga de procesarlos. La interpretacin es realizada por los usuarios que analizan posteriormente los datos procesados. Para el desarrollo del sistema de procesamiento de los datos, se dispone primariamente de dos plataformas de estudio, a partir de las cuales se captarn los datos para despus realizar el procesamiento: 1. La primera consiste en una herramienta comercial desarrollada y distribuida por OpenBCI, proyecto que se dedica a la venta de hardware para la realizacin de EEG, as como otros ensayos. Esta herramienta est formada por un microprocesador, un mdulo de memoria SD para el almacenamiento de datos, y un mdulo de comunicacin inalmbrica que transmite los datos por Bluetooth. Adems cuenta con el mencionado ADC ADS1299. Esta plataforma ofrece una interfaz grfica que sirve para realizar la investigacin previa al diseo del sistema de procesamiento, al permitir tener una primera toma de contacto con el sistema. 2. La segunda plataforma consiste en un kit de evaluacin para el ADS1299, desde la cual se pueden acceder a los diferentes puertos de control a travs de los pines de comunicacin del ADC. Esta plataforma se conectar con la FPGA en el sistema integrado. Para entender cmo funcionan las ondas ms simples del cerebro, as como saber cules son los requisitos mnimos en el anlisis de ondas EEG se realizaron diferentes consultas con el Dr Ceferino Maestu, neurofisilogo del Centro de Tecnologa Biomdica (CTB) de la UPM. l se encarg de introducirnos en los distintos procedimientos en el anlisis de ondas en electroencefalogramas, as como la forma en que se deben de colocar los electrodos en el crneo. Para terminar con la investigacin previa, se realiza en MATLAB un primer modelo de procesamiento de los datos. Una caracterstica muy importante de las ondas cerebrales es la aleatoriedad de las mismas, de forma que el anlisis en el dominio del tiempo se vuelve muy complejo. Por ello, el paso ms importante en el procesamiento de los datos es el paso del dominio temporal al dominio de la frecuencia, mediante la aplicacin de la transformada rpida de Fourier o FFT (Fast Fourier Transform), donde se pueden analizar con mayor precisin los datos recogidos. El modelo desarrollado en MATLAB se utiliza para obtener los primeros resultados del sistema de procesamiento, el cual sigue los siguientes pasos. 1. Se captan los datos desde los electrodos y se escriben en una tabla de datos. 2. Se leen los datos de la tabla. 3. Se elige el tamao temporal de la muestra a procesar. 4. Se aplica una ventana para evitar las discontinuidades al principio y al final del bloque analizado. 5. Se completa la muestra a convertir con con zero-padding en el dominio del tiempo. 6. Se aplica la FFT al bloque analizado con ventana y zero-padding. 7. Los resultados se llevan a una grfica para ser analizados. Llegados a este punto, se observa que la captacin de ondas alfas resulta muy viable. Aunque es cierto que se presentan ciertos problemas a la hora de interpretar los datos debido a la baja resolucin temporal de la plataforma de OpenBCI, este es un problema que se soluciona en el modelo desarrollado, al permitir el kit de evaluacin (sistema de captacin de datos) actuar sobre la velocidad de captacin de los datos, es decir la frecuencia de muestreo, lo que afectar directamente a esta precisin. Una vez llevado a cabo el primer procesamiento y su posterior anlisis de los resultados obtenidos, se procede a realizar un modelo en Hardware que siga los mismos pasos que el desarrollado en MATLAB, en la medida que esto sea til y viable. Para ello se utiliza el programa XPS (Xilinx Platform Studio) contenido en la herramienta EDK (Embedded Development Kit), que nos permite disear un sistema embebido. Este sistema cuenta con: Un microprocesador de tipo soft-core llamado MicroBlaze, que se encarga de gestionar y controlar todo el sistema; Un bloque FFT que se encarga de realizar la transformada rpida Fourier; Cuatro bloques de memoria BRAM, donde se almacenan los datos de entrada y salida del bloque FFT y un multiplicador para aplicar la ventana a los datos de entrada al bloque FFT; Un bus PLB, que consiste en un bus de control que se encarga de comunicar el MicroBlaze con los diferentes elementos del sistema. Tras el diseo Hardware se procede al diseo Software utilizando la herramienta SDK(Software Development Kit).Tambin en esta etapa se integra el sistema de captacin de datos, el cual se controla mayoritariamente desde el MicroBlaze. Por tanto, desde este entorno se programa el MicroBlaze para gestionar el Hardware que se ha generado. A travs del Software se gestiona la comunicacin entre ambos sistemas, el de captacin y el de procesamiento de los datos. Tambin se realiza la carga de los datos de la ventana a aplicar en la memoria correspondiente. En las primeras etapas de desarrollo del sistema, se comienza con el testeo del bloque FFT, para poder comprobar el funcionamiento del mismo en Hardware. Para este primer ensayo, se carga en la BRAM los datos de entrada al bloque FFT y en otra BRAM los datos de la ventana aplicada. Los datos procesados saldrn a dos BRAM, una para almacenar los valores reales de la transformada y otra para los imaginarios. Tras comprobar el correcto funcionamiento del bloque FFT, se integra junto al sistema de adquisicin de datos. Posteriormente se procede a realizar un ensayo de EEG real, para captar ondas alfa. Por otro lado, y para validar el uso de las FPGAs como unidades ideales de procesamiento, se realiza una medicin del tiempo que tarda el bloque FFT en realizar la transformada. Este tiempo se compara con el tiempo que tarda MATLAB en realizar la misma transformada a los mismos datos. Esto significa que el sistema desarrollado en Hardware realiza la transformada rpida de Fourier 27 veces ms rpido que lo que tarda MATLAB, por lo que se puede ver aqu la gran ventaja competitiva del Hardware en lo que a tiempos de ejecucin se refiere. En lo que al aspecto didctico se refiere, este TFG engloba diferentes campos. En el campo de la electrnica: Se han mejorado los conocimientos en MATLAB, as como diferentes herramientas que ofrece como FDATool (Filter Design Analysis Tool). Se han adquirido conocimientos de tcnicas de procesado de seal, y en particular, de anlisis espectral. Se han mejorado los conocimientos en VHDL, as como su uso en el entorno ISE de Xilinx. Se han reforzado los conocimientos en C mediante la programación del MicroBlaze para el control del sistema. Se ha aprendido a crear sistemas embebidos usando el entorno de desarrollo de Xilinx usando la herramienta EDK (Embedded Development Kit). En el campo de la neurologa, se ha aprendido a realizar ensayos EEG, as como a analizar e interpretar los resultados mostrados en el mismo. En cuanto al impacto social, los sistemas BCI afectan a muchos sectores, donde destaca el volumen de personas con discapacidades fsicas, para los cuales, este sistema implica una oportunidad de aumentar su autonoma en el da a da. Tambin otro sector importante es el sector de la investigacin mdica, donde los sistemas BCIs son aplicables en muchas aplicaciones como, por ejemplo, la deteccin y estudio de enfermedades cognitivas.
Resumo:
El objetivo principal de este proyecto ha sido introducir aprendizaje automtico en la aplicacin FleSe. FleSe es una aplicacin web que permite realizar consultas borrosas sobre bases de datos ntidos. Para llevar a cabo esta funcin la aplicacin utiliza unos criterios para definir los conceptos borrosos usados para llevar a cabo las consultas. FleSe adems permite que el usuario cambie estas personalizaciones. Es aqu donde introduciremos el aprendizaje automtico, de tal manera que los criterios por defecto cambien y aprendan en funcin de las personalizaciones que van realizando los usuarios. Los objetivos secundarios han sido familiarizarse con el desarrollo y diseo web, al igual que recordar y ampliar el conocimiento sobre lgica borrosa y el lenguaje de programación lgica Ciao-Prolog. A lo largo de la realizacin del proyecto y sobre todo despus del estudio de los resultados se demuestra que la agrupacin de los usuarios marca la diferencia con la ltima versin de la aplicacin. Esto se basa en la siguiente idea, podemos usar un algoritmo de aprendizaje automtico sobre las personalizaciones de los criterios de todos los usuarios, pero la gran diversidad de opiniones de los usuarios puede llevar al algoritmo a concluir criterios errneos o no representativos. Para solucionar este problema agrupamos a los usuarios intentando que cada grupo tengan la misma opinin o mismo criterio sobre el concepto. Y despus de haber realizado las agrupaciones usar el algoritmo de aprendizaje automtico para precisar el criterio por defecto de cada grupo de usuarios. Como posibles mejoras para futuras versiones de la aplicacin FleSe sera un mejor control y manejo del ejecutable plserver. Este archivo se encarga de permitir a la aplicacin web usar el lenguaje de programación lgica Ciao-Prolog para llevar a cabo la lgica borrosa relacionada con las consultas. Uno de los problemas ms importantes que ofrece plserver es que bloquea el hilo de ejecucin al intentar cargar un archivo con errores y en caso de ocurrir repetidas veces bloquea todas las peticiones siguientes bloqueando la aplicacin. Pensando en los usuarios y posibles clientes, sera tambin importante permitir que FleSe trabajase con bases de datos de SQL en vez de almacenar la base de datos en los archivos de Prolog. Otra posible mejora basarse en distintas caractersticas a la hora de agrupar los usuarios dependiendo de los conceptos borrosos que se van ha utilizar en las consultas. Con esto se conseguira que para cada concepto borroso, se generasen distintos grupos de usuarios, los cuales tendran opiniones distintas sobre el concepto en cuestin. As se generaran criterios por defecto ms precisos para cada usuario y cada concepto borroso.---ABSTRACT---The main objective of this project has been to introduce machine learning in the application FleSe. FleSe is a web application that makes fuzzy queries over databases with precise information, using defined criteria to define the fuzzy concepts used by the queries. The application allows the users to change and custom these criteria. On this point is where the machine learning would be introduced, so FleSe learn from every new user customization of the criteria in order to generate a new default value of it. The secondary objectives of this project were get familiar with web development and web design in order to understand the how the application works, as well as refresh and improve the knowledge about fuzzy logic and logic programing. During the realization of the project and after the study of the results, I realized that clustering the users in different groups makes the difference between this new version of the application and the previous. This conclusion follows the next idea, we can use an algorithm to introduce machine learning over the criteria that people have, but the problem is the diversity of opinions and judgements that exists, making impossible to generate a unique correct criteria for all the users. In order to solve this problem, before using the machine learning methods, we cluster the users in order to make groups that have the same opinion, and afterwards, use the machine learning methods to precise the default criteria of each users group. The future improvements that could be important for the next versions of FleSe will be to control better the behaviour of the plserver file, that cost many troubles at the beginning of this project and it also generate important errors in the previous version. The file plserver allows the web application to use Ciao-Prolog, a logic programming language that control and manage all the fuzzy logic. One of the main problems with plserver is that when the user uploads a file with errors, it will block the thread and when this happens multiple times it will start blocking all the requests. Oriented to the customer, would be important as well to allow FleSe to manage and work with SQL databases instead of store the data in the Prolog files. Another possible improvement would that the cluster algorithm would be based on different criteria depending on the fuzzy concepts that the selected Prolog file have. This will generate more meaningful clusters, and therefore, the default criteria offered to the users will be more precise.
Resumo:
Hoy en da, existen numerosos sistemas (financieros, fabricacin industrial, infraestructura de servicios bsicos, etc.) que son dependientes del software. Segn la definicin de Ingeniera del Software realizada por I. Sommerville, la Ingeniera del Software es una disciplina de la ingeniera que comprende todos los aspectos de la produccin de software desde las etapas iniciales de la especificacin del sistema, hasta el mantenimiento de ste despus de que se utiliza. La ingeniera del software no slo comprende los procesos tcnicos del desarrollo de software, sino tambin actividades tales como la gestin de proyectos de software y el desarrollo de herramientas, mtodos y teoras de apoyo a la produccin 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 metodologas pesadas o tradicionales, pero con el avance del tiempo y la tecnologa, surgieron unas nuevas llamadas metodologas giles. En el marco de las metodologas giles cabe destacar una determinada prctica, la integracin continua. Esta prctica surgi de la mano de Martin Fowler, con el objetivo de facilitar el trabajo en grupo y automatizar las tareas de integracin. La integracin continua se basa en la construccin automtica de proyectos con una frecuencia alta, promoviendo la deteccin 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 anlisis de distintas herramientas para configurar un entorno de trabajo que permita desarrollar proyectos aplicando metodologas giles e integracin continua de una forma fcil y eficiente. Una vez analizadas dichas herramientas, se ha propuesto y configurado un entorno de trabajo para su puesta en marcha y uso. Una caracterstica a destacar de este PFG es que las herramientas analizadas comparten una cualidad comn y de alto valor, son herramientas open-source. El entorno de trabajo propuesto en este PFG presenta una arquitectura cliente-servidor, dado que la mayora 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 integracin continua mediante herramientas de control de versiones, de gestin de historias de usuario, de anlisis de mtricas de software, y de automatizacin de la construccin de software. La configuracin del cliente nicamente requiere de un entorno de desarrollo integrado (IDE) que soporte el lenguaje de programación Java y conexin 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.