29 resultados para 005 Programación en computadoras
Resumo:
Con el devenir de los tiempos e incentivado por el desarrollo tecnológico, la cantidad y complejidad de los experimentos realizados en el conocido laboratorio de física de partículas, C.E.R.N, ha alcanzado límites insospechados. Además, su evolución se acentúa y motiva con cada nuevo descubrimiento. Prueba de estas ansias por desvelar las entrañas y secretos del universo se encuentra en el choque de 13 TeV que tuvo lugar el pasado mes de mayo. Con él, no sólo se marcaban inequívocamente las expectativas del complejo para este nuevo ciclo de funcionamiento, sino que además se daba el pistoletazo de salida a la carrera que culminaría con el descubrimiento de los pentaquarks. A nivel ingenieril, esta mejora de las capacidades del complejo implica un exponencial endurecimiento de las exigencias impuestas a los sistemas empleados. Por consiguiente y de forma inevitable, las condiciones del interior del acelerador migran hacia baremos cada vez más drásticos. Tanto es así que los niveles de radiación alcanzados actualmente limitan notablemente el acceso de personal al acelerador; lo que se traduce en un incremento de los tiempos de mantenimiento y reparación. Actualmente estos retardos tratan de ser mitigados mediante el uso de robots móviles operados remotamente. De entre ellos, llama la atención aquél conocido bajo el acrónimo T.I.M (Train for RP Survey and visual inspection in LHC). Este tren, constituido por 5 vagones, se desplaza a lo largo del acelerador de partículas midiendo los niveles de radiación y oxígeno al tiempo que proporciona realimentación visual. En el presente proyecto se propone la mejora de las tareas de inspección y mantenimiento mediante la integración de un manipulador robótico de 6 grados de libertad en uno de los vagones del citado tren. De este modo, se consigue un sistema capaz de trasladarse a cualquier punto del acelerador, en un tiempo record, y realizar una gran cantidad de tareas de mantenimiento que comprenden desde simples inspecciones visuales a complejas labores como puede ser desatornillado o extracción de componentes dañados. Por otro lado, se plantea un segundo desarrollo sobre el que sustentar el diseño propuesto: “Construcción de un simulador robótico de alta fiabilidad, basado en ROS y Gazebo”. Adicionalmente, esta herramienta Software atiende a otros fines complementarios: sirve de trampolín para futuros desarrollos encauzados a la mejora del sistema mecánico; entrega una herramienta de bajo coste con la que analizar la integración de nuevos hitos en robótica y, por último, permite evaluar la adopción de un nuevo paradigma de programación en el que ROS se encuentre inmerso.
Resumo:
La mineralogía de procesos se ha convertido en los últimos años en una herramienta indispensable dentro del ámbito minero-metalúrgico debido fundamentalmente a la emergencia de la Geometalurgia. Esta disciplina en auge, a través de la integración de datos geológicos, mineros y metalúrgicos, proporciona la información necesaria para que el circuito de concentración mineral pueda responder de manera rápida y eficaz a la variabilidad mineralógica inherente a la geología del yacimiento. Para la generación del modelo geometalúrgico, la mineralogía de procesos debe aportar datos cuantitativos sobre los rasgos mineralógicos influyentes en el comportamiento de los minerales y para ello se apoya en el uso de sistemas de análisis mineralógico automatizado. Estos sistemas son capaces de proporcionar gran cantidad de datos mineralógicos de manera rápida y precisa. Sin embargo, cuando se trata de la caracterización de la textura, el mineralogista debe recurrir a descripciones cualitativas basadas en la observación, ya que los sistemas actuales no ofrecen información textural automatizada. Esta tesis doctoral surge precisamente para proporcionar de manera sistemática información textural relevante para los procesos de concentración mineral. La tesis tiene como objetivo principal la identificación y caracterización del tipo de intercrecimiento que un determinado mineral presenta en las partículas minerales, e inicialmente se han tenido en cuenta los siete tipos de intercrecimiento considerados como los más relevantes bajo el punto de vista del comportamiento de las partículas minerales durante flotación, lixiviación y molienda. Para alcanzar este objetivo se ha desarrollado una metodología basada en el diseño y cálculo de una serie de índices numéricos, a los que se ha llamado índices mineralúrgicos, que cumplen una doble función: por un lado, cada índice aporta información relevante para caracterizar los principales rasgos mineralógicos que gobiernan el comportamiento de las partículas minerales a lo largo de los procesos de concentración y por otro lado, estos índices sirven como variables discriminantes para identificar el tipo de intercrecimiento mineral mediante la aplicación de Análisis Discriminante. Dentro del conjunto de índices propuestos en este trabajo, se han considerado algunos índices propuestos por otros autores para su aplicación tanto en el ámbito de la mineralogía como en otros ámbitos de la ciencia de materiales. Se trata del Índice de Contigüidad (Gurland, 1958), Índice de Intercrecimiento (Amstutz y Giger, 1972) e Índice de Coordinación (Jeulin, 1981), adaptados en este caso para el análisis de partículas minerales. El diseño de los índices se ha basado en los principios básicos de la Estereología y el análisis digital de imagen, y su cálculo se ha llevado a cabo aplicando el método de interceptos lineales mediante la programación en MATLAB de varias rutinas. Este método estereológico permite recoger una serie de medidas a partir de las que es posible calcular varios parámetros, tanto estereológicos como geométricos, que han servido de base para calcular los índices mineralúrgicos. Para evaluar la capacidad discriminatoria de los índices mineralúrgicos se han seleccionado 200 casos en los que se puede reconocer de manera clara alguno de los siete tipos de intercrecimiento considerados inicialmente en este trabajo. Para cada uno de estos casos se han calculado los índices mineralúrgicos y se ha aplicado Análisis Discriminante, obteniendo un porcentaje de acierto en la clasificación del 95%. Esta cifra indica que los índices propuestos son discriminadores fiables del tipo de intercrecimiento. Una vez probada la capacidad discriminatoria de los índices, la metodología desarrollada ha sido aplicada para caracterizar una muestra de un concentrado de cobre procedente de la mina Kansanshi (Zambia). Esta caracterización se ha llevado a cabo para obtener la distribución de calcopirita según su tipo de intercrecimiento. La utilidad de esta distribución ha sido analizada bajo diferentes puntos de vista y en todos ellos los índices mineralúrgicos aportan información valiosa para caracterizar el comportamiento mineralúrgico de las partículas minerales. Los resultados derivados tanto del Análisis Discriminante como de la caracterización del concentrado de Kansanshi muestran la fiabilidad, utilidad y versatilidad de la metodología desarrollada, por lo que su integración como herramienta rutinaria en los sistemas actuales de análisis mineralógico pondría a disposición del mineralurgista gran cantidad de información textural complementaria a la información ofrecida por las técnicas actuales de caracterización mineralógica. ABSTRACT Process mineralogy has become in the last decades an essential tool in the mining and metallurgical sphere, especially driven by the emergence of Geometallurgy. This emergent discipline provides required information to efficiently tailor the circuit performance to the mineralogical variability inherent to ore deposits. To contribute to the Geometallurgical model, process mineralogy must provide quantitative data about the main mineralogical features implied in the minerallurgical behaviour of minerals. To address this characterisation, process mineralogy relies on automated systems. These systems are capable of providing a large amount of data quickly and accurately. However, when it comes to the characterisation of texture, mineralogists need to turn to qualitative descriptions based on observation, due to the fact that current systems can not offer quantitative textural information in a routine way. Aiming at the automated characterisation of textural information, this doctoral thesis arises to provide textural information relevant for concentration processes in a systematic way. The main objective of the thesis is the automated identification and characterisation of intergrowth types in mineral particles. Initially, the seven intergrowth types most relevant for flotation, leaching and grinding are considered. To achieve this goal, a methodology has been developed based on the computation of a set of numerical indices, which have been called minerallurgical indices. These indices have been designed with two main purposes: on the one hand, each index provides information to characterise the main mineralogical features which determine particle behaviour during concentration processes and, on the other hand, these indices are used as discriminant variables for identifying the intergrowth type by Discriminant Analysis. Along with the indices developed in this work, three indices proposed by other authors belonging to different fields of materials science have been also considered after being adapted to the analysis of mineral particles. These indices are Contiguity Index (Gurland, 1958), Intergrowth Index (Amstutz and Giger, 1972) and Coordination Index (Jeulin, 1981). The design of minerallurgical indices is based on the fundamental principles of Stereology and Digital Image Analysis. Their computation has been carried out using the linear intercepts method, implemented by means of MATLAB programming. This stereological method provides a set of measurements to obtain several parameters, both stereological and geometric. Based on these parameters, minerallurgical indices have been computed. For the assessment of the discriminant capacity of the developed indices, 200 cases have been selected according to their internal structure, so that one of the seven intergrowth types initially considered in this work can be easily recognised in any of their constituents. Minerallurgical indices have been computed for each case and used as discriminant variables. After applying discriminant analysis, 95% of the cases were correctly classified. This result shows that the proposed indices are reliable identifiers of intergrowth type. Once the discriminant power of the indices has been assessed, the developed methodology has been applied to characterise a copper concentrate sample from the Kansanshi copper mine (Zambia). This characterisation has been carried out to quantify the distribution of chalcopyrite with respect to intergrowth types. Different examples of the application of this distribution have been given to test the usefulness of the method. In all of them, the proposed indices provide valuable information to characterise the minerallurgical behaviour of mineral particles. Results derived from both Discriminant Analysis and the characterisation of the Kansanshi concentrate show the reliability, usefulness and versatility of the developed methodology. Therefore, its integration as a routine tool in current systems of automated mineralogical analysis should make available for minerallurgists a great deal of complementary information to treat the ore more efficiently.
Resumo:
En este documento se detalla, la planificación y elaboración de un paquete que respeta el estándar S4 de programación en lenguaje R. El paquete consiste en una serie de métodos y clases para la generación de exámenes tipos test y soluciones a partir de un archivo xls, que hace las funciones de una base de datos. El diseño propuesto está orientado a objetos y desarrolla un conjunto de clases que representan los contenidos de una prueba de evaluación tipo test: enunciados, peguntas y respuestas. Se ha realizado una implementación sencilla de un prototipo con las funciones básicas necesarias para generar los tests. Además se ha generado la documentación necesaria para crear el paquete, esto significa que cada método tiene una página de ayuda, que se podrá consultar desde un terminal con R, dicha documentación incluye ejemplos de ejecución de cada método.---ABSTRACT---In this document is detailed the elaboration and development of a package that meets the standard S4 of programming language R. This package consists of a group of methods and classes used for the generation of test exams and their solutions starting from a xls format file wich plays the role of a data base at the same time. These classes have been grouped in a way that the user could have a complete and easy vision of them. This division has been done by using data storage and functions whose tasks are more or less the same. Furthermore, the necessary documentation to create this package has also been generated, that means that every method has a help page wich can be called from a R terminal if necessary. This documentation has examples of the execution of every method.
Resumo:
El presente proyecto, consiste en el diseño básico de una hoja Excel para un tanque de almacenamiento de gasóleo de automoción (gasóleo A). El presente tanque se ha situado en el parque de almacenamiento de Loeches (Comunidad de Madrid). Se han realizado los cálculos necesarios para el diseño de todas las partes de dicho tanque, la envolvente, el fondo de tanque y el techo. Al igual que el cálculo de peso de éste, y un listado de accesorios adicionales necesarios para su puesta en marcha. Se ha desarrollado la programación en Excel, de una ficha para calcular los parámetros principales del tanque diseñado. Se ha llevado a cabo el diseño y fabricación de un tanque de acero, vertical, cilíndrico, de fondo plano, no enterrado, soldados, para el almacenamiento de líquidos a temperatura ambiente. La capacidad del tanque es de un volumen nominal de 25.000 m3 y una altura de 20 metros, se almacenará gasóleo de automoción, con una densidad de 835 kg/m3. Este tipo de gasóleo es el producto derivado del petróleo más consumido en España.This project consists of the basic design of an Excel spreadsheet to a storage tank of diesel fuel (oil A). This tank is located in the storage yard Loeches (Madrid). It have been made the necessary calculations for the design of all parts of the tank, the envelope, the tank bottom and roof. As the weight calculation thereof, and a list of additional accessories required for its implementation and location. It has been developed programming Excel, a record key parameters to calculate tank designed. It has been carried out the design and manufacture of a steel tank, vertical, cylindrical, flat bottom, not buried, soldiers, for storing liquids at room temperature. The tank capacity is of a nominal capacity of 25,000 m3 and a height of 20 meters, diesel fuel is stored, with a density of 835 kg/m3. This type of oil is the oil product most consumed in Spain.
Resumo:
El presente proyecto pretende ser una herramienta para la enseñanza de la lectoescritura (enseñar a leer y a escribir) para niños con discapacidad, haciendo para ello uso de una aplicación que se ejecuta en una tablet con Sistema Operativo (S.O.) Android. Existe un vacío en el mundo de las aplicaciones para tabletas en este campo en el que se intentará poner un grano de arena para, al menos, tener una aplicación que sirva de toma de contacto a los interesados en este campo. Para establecer las funcionalidades más adecuadas al propósito de la herramienta, se ha consultado a profesionales de la logopedia de un colegio de educación especial, con cuya colaboración se ha dado forma a la estructura de la misma. La implementación de la aplicación se ha llevado a cabo con programación en entorno Java para Android. Se han incluido diferentes recursos como imágenes, pictogramas y locuciones tanto elementos con licencia libre, como elementos propios generados ‘ex profeso’ para dar la forma final a la herramienta. Podemos decir que en general esta aplicación puede ser usada para enseña a leer y escribir a cualquier niño, pero se ha dotado de unas ciertas características que la confieren una orientación especial hacia niños con necesidades educativas especiales. Para ello se ha cuidado mucho la estética, para que ésta sea lo más simple y suave posible, para hacer especial hincapié en la atención de los niños y evitar su distracción con elementos visuales innecesarios. Se ha dotado de estímulos visuales y sonoros para fomentar su interés (aplausos en caso de acierto, colores para diferenciar aciertos y errores, etc.). Se han utilizado los tamaños de letra más grandes posibles (para las discapacidades visuales), etc. El mercado cuenta con una ingente cantidad de dispositivos Android, con características muy dispares, de tamaño de pantalla, resolución y versiones del S.O. entre otras. La aplicación se ha desarrollado tratando de dar cobertura al mayor porcentaje de ellos posible. El requisito mínimo de tamaño de pantalla sería de siete pulgadas. Esta herramienta no tiene demasiado sentido en dispositivos con pantallas menores por las características intrínsecas de la misma. No obstante se ha trabajado también en la configuración para dispositivos pequeños, como “smartphones”, no por su valor como herramienta para la enseñanza de la lectoescritura (aunque en algunos casos podría ser viable) sino más bien con fines de prueba y entrenamiento para profesores, padres o tutores que realizarán la labor docente con dispositivos tablet. Otro de los requisitos, como se ha mencionado, para poder ejecutar la aplicación sería la versión mínima de S.O., por debajo de la cual (versiones muy obsoletas) la aplicación sería inviable. Sirva este proyecto pues para cubrir, mediante el uso de la tecnología, un aspecto de la enseñanza con grandes oportunidades de mejora. ----------------------- This Project is aimed to be a tool for teaching reading and writing skills to handicapped children with an Android application. There are no Android applications available on this field, so it is intended to provide at least one option to take contact with. Speech therapy professionals from a special needs school have been asked for the most suitable functions to be included in this tool. The structure of this tool has been made with the cooperation of these professionals. The implementation of the application has been performed through Java coding for Android. Different resources have been included such as pictures, pictograms and sounds, including free licenses resources and self-developed resources. In general, it can be said that this application can be used to teach learning and writing skills to any given kid, however it has been provided of certain features that makes it ideal for children with special educational needs. It has been strongly taken into account the whole aesthetic to be as simple and soft as possible, in order to get attention of children, excluding any visual disturbing elements. It has been provided with sound and visual stimulations, to attract their interest (applauses in cases of correct answers, different colours to differentiate right or wrong answers), etc. There are many different types of Android devices, with very heterogeneous features regarding their screen size, resolution and O.S. version, etc., available today. The application has been developed trying to cover most of them. Minimum screen resolution is seven inches. This tool doesn’t seem to be very useful for smaller screens, for its inner features. Nevertheless, it has been developed for smaller devices as well, like smartphones, not intended to be a tool for teaching reading and writing skills (even it could be possible in some cases), but in a test and training context for teachers, parents or guardians who do the teaching work with tablet devices. Another requirement, as stated before, in order to be able to run the application, it would be the minimum O.S. version, below that (very obsolete versions) the application would become impracticable. Hope this project to be used to fulfill, by means of technology, one area of teaching with great improvement opportunities.
Resumo:
El presente proyecto pretende ser una herramienta para la enseñanza de la lectoescritura (enseñar a leer y a escribir) para niños con discapacidad, haciendo para ello uso de una aplicación que se ejecuta en una tablet con Sistema Operativo (S.O.) Android. Existe un vacío en el mundo de las aplicaciones para tabletas en este campo en el que se intentará poner un grano de arena para, al menos, tener una aplicación que sirva de toma de contacto a los interesados en este campo. Para establecer las funcionalidades más adecuadas al propósito de la herramienta, se ha consultado a profesionales de la logopedia de un colegio de educación especial, con cuya colaboración se ha dado forma a la estructura de la misma. La implementación de la aplicación se ha llevado a cabo con programación en entorno Java para Android. Se han incluido diferentes recursos como imágenes, pictogramas y locuciones tanto elementos con licencia libre, como elementos propios generados ‘ex profeso’ para dar la forma final a la herramienta. Podemos decir que en general esta aplicación puede ser usada para enseña a leer y escribir a cualquier niño, pero se ha dotado de unas ciertas características que la confieren una orientación especial hacia niños con necesidades educativas especiales. Para ello se ha cuidado mucho la estética, para que ésta sea lo más simple y suave posible, para hacer especial hincapié en la atención de los niños y evitar su distracción con elementos visuales innecesarios. Se ha dotado de estímulos visuales y sonoros para fomentar su interés (aplausos en caso de acierto, colores para diferenciar aciertos y errores, etc.). Se han utilizado los tamaños de letra más grandes posibles (para las discapacidades visuales), etc. El mercado cuenta con una ingente cantidad de dispositivos Android, con características muy dispares, de tamaño de pantalla, resolución y versiones del S.O. entre otras. La aplicación se ha desarrollado tratando de dar cobertura al mayor porcentaje de ellos posible. El requisito mínimo de tamaño de pantalla sería de siete pulgadas. Esta herramienta no tiene demasiado sentido en dispositivos con pantallas menores por las características intrínsecas de la misma. No obstante se ha trabajado también en la configuración para dispositivos pequeños, como “smartphones”, no por su valor como herramienta para la enseñanza de la lectoescritura (aunque en algunos casos podría ser viable) sino más bien con fines de prueba y entrenamiento para profesores, padres o tutores que realizarán la labor docente con dispositivos tablet. Otro de los requisitos, como se ha mencionado, para poder ejecutar la aplicación sería la versión mínima de S.O., por debajo de la cual (versiones muy obsoletas) la aplicación sería inviable. Sirva este proyecto pues para cubrir, mediante el uso de la tecnología, un aspecto de la enseñanza con grandes oportunidades de mejora. ABSTRACT. This Project is aimed to be a tool for teaching reading and writing skills to handicapped children with an Android application. There are no Android applications available on this field, so it is intended to provide at least one option to take contact with. Speech therapy professionals from a special needs school have been asked for the most suitable functions to be included in this tool. The structure of this tool has been made with the cooperation of these professionals. The implementation of the application has been performed through Java coding for Android. Different resources have been included such as pictures, pictograms and sounds, including free licenses resources and self-developed resources. In general, it can be said that this application can be used to teach learning and writing skills to any given kid, however it has been provided of certain features that makes it ideal for children with special educational needs. It has been strongly taken into account the whole aesthetic to be as simple and soft as possible, in order to get attention of children, excluding any visual disturbing elements. It has been provided with sound and visual stimulations, to attract their interest (applauses in cases of correct answers, different colours to differentiate right or wrong answers), etc. There are many different types of Android devices, with very heterogeneous features regarding their screen size, resolution and O.S. version, etc., available today. The application has been developed trying to cover most of them. Minimum screen resolution is seven inches. This tool doesn’t seem to be very useful for smaller screens, for its inner features. Nevertheless, it has been developed for smaller devices as well, like smartphones, not intended to be a tool for teaching reading and writing skills (even it could be possible in some cases), but in a test and training context for teachers, parents or guardians who do the teaching work with tablet devices. Another requirement, as stated before, in order to be able to run the application, it would be the minimum O.S. version, below that (very obsolete versions) the application would become impracticable. Hope this project to be used to fulfill, by means of technology, one area of teaching with great improvement opportunities.
Los métodos de programación lineal aplicados al análisis en rotura: el caso de los arcos de fábrica.
Resumo:
En este trabajo se presenta una formulación que permite aplicar los métodos de programación lineal, y en particular el método simplex, al análisis de la estática de rotura de cualesquiera estructuras de barras o elementos lineales, que son considerados como bloques rígidos en las regiones no plastificadas. La formulación permite integrar criterios robustos de seguridad y permite abordar, entre otros, los problemas clásicos de rotura de arcos de fábrica, siendo capaz de determinar las alteraciones pésimas a las configuraciones de carga consideradas, basándose en dichos criterios. Como ejemplo se muestra cómo la formulación es capaz de detectar de forma automática que se producirán daños en arcos de fábrica si se procede a su descarga
Resumo:
Los problemas de programación de tareas son muy importantes en el mundo actual. Se puede decir que se presentan en todos los fundamentos de la industria moderna, de ahí la importancia de que estos sean óptimos, de forma que se puedan ahorrar recursos que estén asociados al problema. La programación adecuada de trabajos en procesos de manufactura, constituye un importante problema que se plantea dentro de la producción en muchas empresas. El orden en que estos son procesados, no resulta indiferente, sino que determinará algún parámetro de interés, cuyos valores convendrá optimizar en la medida de lo posible. Así podrá verse afectado el coste total de ejecución de los trabajos, el tiempo necesario para concluirlos o el stock de productos en curso que será generado. Esto conduce de forma directa al problema de determinar cuál será el orden más adecuado para llevar a cabo los trabajos con vista a optimizar algunos de los anteriores parámetros u otros similares. Debido a las limitaciones de las técnicas de optimización convencionales, en la presente tesis se presenta una metaheurística basada en un Algoritmo Genético Simple (Simple Genetic Algorithm, SGA), para resolver problemas de programación de tipo flujo general (Job Shop Scheduling, JSS) y flujo regular (Flow Shop Scheduling, FSS), que están presentes en un taller con tecnología de mecanizado con el objetivo de optimizar varias medidas de desempeño en un plan de trabajo. La aportación principal de esta tesis, es un modelo matemático para medir el consumo de energía, como criterio para la optimización, de las máquinas que intervienen en la ejecución de un plan de trabajo. Se propone además, un método para mejorar el rendimiento en la búsqueda de las soluciones encontradas, por parte del Algoritmo Genético Simple, basado en el aprovechamiento del tiempo ocioso. ABSTRACT The scheduling problems are very important in today's world. It can be said to be present in all the basics of modern industry, hence the importance that these are optimal, so that they can save resources that are associated with the problem. The appropriate programming jobs in manufacturing processes is an important problem that arises in production in many companies. The order in which they are processed, it is immaterial, but shall determine a parameter of interest, whose values agree optimize the possible. This may be affected the total cost of execution of work, the time needed to complete them or the stock of work in progress that will be generated. This leads directly to the problem of determining what the most appropriate order to carry out the work in order to maximize some of the above parameters or other similar. Due to the limitations of conventional optimization techniques, in this work present a metaheuristic based on a Simple Genetic Algorithm (Simple Genetic Algorithm, SGA) to solve programming problems overall flow rate (Job Shop Scheduling, JSS) and regular flow (Flow Shop Scheduling, FSS), which are present in a workshop with machining technology in order to optimize various performance measures in a plan. The main contribution of this thesis is a mathematical model to measure the energy consumption as a criterion for the optimization of the machines involved in the implementation of a work plan. It also proposes a method to improve performance in finding the solutions, by the simple genetic algorithm, based on the use of idle time.
Resumo:
Este trabajo campara la aplicación de dos metodologías docentes y dos instrumentos de evaluación en dos grupos de la misma asignatura. Uno de los grupos ha seguido una metodología docente a distancia apoyada en una plataforma de e-learning, con contenidos docentes en formato electrónico, tutorías virtuales, un foro de comunicaciones, ejercicios de auto-evaluación, trabajos individuales y trabajos en grupo. El otro grupo comparte los mismos contenidos docentes pero sigue una metodología que se basa en la impartición de clases presenciales de tipo magistral y clases prácticas de resolución de problemas y en la que se realiza un proyecto en equipo que se entrega en tres hitos. En ambos casos se ha utilizado una rúbrica por parte del profesor para evaluar los trabajos y otra por parte del alumno para valorar la actividad y competencia trabajo en equipo. Además se ha realizado un examen tradicional aunque sin efecto en la calificación final del alumno como referencia de comparación. En este sentido se muestra la experiencia en el empleo de la rúbrica en el contexto de la docencia en Ingeniería, y, en este caso, respecto de un instrumento tradicional como es una prueba de evaluación escrita.
Resumo:
En este proyecto se realiza un estudio sobre herramientas que facilitan la creación y distribución de aplicaciones en distintas plataformas móviles, con el fin de poder seleccionar la herramienta más apropiada en función del proyecto a desarrollar. Previo al estudio de las herramientas para el desarrollo en plataformas múltiples se realiza un estudio de las herramientas y metodologías que facilitan los propietarios de los entornos IOS y Android. Este estudio previo permitirá al lector conocer en más detalle las particularidades de cada uno de estos dos entornos, así como las pautas y buenas prácticas a seguir en el desarrollo de aplicaciones para dispositivos móviles. Una vez finalizado el estudio, el lector sabrá escoger una herramienta de desarrollo adaptada a cada proyecto en función de su objeto, los recursos disponibles y las habilidades de los miembros del equipo de desarrollo. Adicionalmente al estudio, y como ejemplo de aplicación, en el proyecto se realiza un caso práctico de selección de herramienta y aplicación de la herramienta seleccionada a un proyecto de desarrollo concreto. El caso práctico consiste en la creación de un entorno que permite generar aplicaciones para la visualización de apuntes. Las aplicaciones permitirán ver contenidos de tipo multimedia como ficheros de texto, sonidos, imágenes, vídeos y enlaces a contenidos externos. Además estas aplicaciones se generarán sin que el autor de las mismas tenga que modificar alguna de las líneas del código. Para ello, se han definido una serie de ficheros de configuración en los que el autor de la aplicación deberá indicar los contenidos a mostrar y su ubicación. Se han seleccionado recursos de tipo “código abierto” para el desarrollo del caso práctico, con el fin de evitar los costes asociados a las posibles licencias. El equipo de desarrollo del caso práctico estará formado únicamente por el autor de este proyecto de fin de grado, lo que hace del caso de estudio un desarrollo sencillo, de manera que su futuro mantenimiento y escalabilidad no deberían verse afectados por la necesidad de contar con equipos de desarrolladores con conocimientos específicos o complejos. ABSTRACT. This document contains a study of tools that ease the creation and the distribution of the applications through different mobile platforms. The objective o this document is to allow the selection of the most appropriate tool, depending on the development objectives. Previous to this study about the tools for developing on multiple platforms, a study of IOS and Android tools and their methodologies is included on this document. This previous analysis will allow the reader to know in more detail the peculiarities of each of these environments, together with theirs requirements and the best practices of the applications development for mobile devices. By the end of this document the reader would be able to choose the adequate development tool for a project depending of its objective, its available resources and the developers team’s capabilities. Beside this study and as example of case study this final project includes a practical case of tool selection and its application to a specific development. The case study consists in the creation of an environment that allows generating applications to visualise notes. These applications will allow seeing contents of multimedia type such as: text files, sounds, images, videos, and links to external content. Furthermore these applications will be generated without their author having to modify any line of code, because a group of configuration files will be defined for such purpose. The author of the application only has to update this configuration with the content to show by the application and its location. The selected resources for the case study were of the type “open source” in order to avoid the cost associated to the potential licenses. The developers’ team for this case study has only one member, the author of this final project document and practical case developer. As a result the case study is a very simple development in a way that the future potential maintenance and scalability should not depend on the necessity of a highly qualified developers’ teams with a very specific knowledge on mobile platforms development.
Resumo:
Las pruebas de software (Testing) son en la actualidad la técnica más utilizada para la validación y la evaluación de la calidad de un programa. El testing está integrado en todas las metodologías prácticas de desarrollo de software y juega un papel crucial en el éxito de cualquier proyecto de software. Desde las unidades de código más pequeñas a los componentes más complejos, su integración en un sistema de software y su despliegue a producción, todas las piezas de un producto de software deben ser probadas a fondo antes de que el producto de software pueda ser liberado a un entorno de producción. La mayor limitación del testing de software es que continúa siendo un conjunto de tareas manuales, representando una buena parte del coste total de desarrollo. En este escenario, la automatización resulta fundamental para aliviar estos altos costes. La generación automática de casos de pruebas (TCG, del inglés test case generation) es el proceso de generar automáticamente casos de prueba que logren un alto recubrimiento del programa. Entre la gran variedad de enfoques hacia la TCG, esta tesis se centra en un enfoque estructural de caja blanca, y más concretamente en una de las técnicas más utilizadas actualmente, la ejecución simbólica. En ejecución simbólica, el programa bajo pruebas es ejecutado con expresiones simbólicas como argumentos de entrada en lugar de valores concretos. Esta tesis se basa en un marco general para la generación automática de casos de prueba dirigido a programas imperativos orientados a objetos (Java, por ejemplo) y basado en programación lógica con restricciones (CLP, del inglés constraint logic programming). En este marco general, el programa imperativo bajo pruebas es primeramente traducido a un programa CLP equivalente, y luego dicho programa CLP es ejecutado simbólicamente utilizando los mecanismos de evaluación estándar de CLP, extendidos con operaciones especiales para el tratamiento de estructuras de datos dinámicas. Mejorar la escalabilidad y la eficiencia de la ejecución simbólica constituye un reto muy importante. Es bien sabido que la ejecución simbólica resulta impracticable debido al gran número de caminos de ejecución que deben ser explorados y a tamaño de las restricciones que se deben manipular. Además, la generación de casos de prueba mediante ejecución simbólica tiende a producir un número innecesariamente grande de casos de prueba cuando es aplicada a programas de tamaño medio o grande. Las contribuciones de esta tesis pueden ser resumidas como sigue. (1) Se desarrolla un enfoque composicional basado en CLP para la generación de casos de prueba, el cual busca aliviar el problema de la explosión de caminos interprocedimiento analizando de forma separada cada componente (p.ej. método) del programa bajo pruebas, almacenando los resultados y reutilizándolos incrementalmente hasta obtener resultados para el programa completo. También se ha desarrollado un enfoque composicional basado en especialización de programas (evaluación parcial) para la herramienta de ejecución simbólica Symbolic PathFinder (SPF). (2) Se propone una metodología para usar información del consumo de recursos del programa bajo pruebas para guiar la ejecución simbólica hacia aquellas partes del programa que satisfacen una determinada política de recursos, evitando la exploración de aquellas partes del programa que violan dicha política. (3) Se propone una metodología genérica para guiar la ejecución simbólica hacia las partes más interesantes del programa, la cual utiliza abstracciones como generadores de trazas para guiar la ejecución de acuerdo a criterios de selección estructurales. (4) Se propone un nuevo resolutor de restricciones, el cual maneja eficientemente restricciones sobre el uso de la memoria dinámica global (heap) durante ejecución simbólica, el cual mejora considerablemente el rendimiento de la técnica estándar utilizada para este propósito, la \lazy initialization". (5) Todas las técnicas propuestas han sido implementadas en el sistema PET (el enfoque composicional ha sido también implementado en la herramienta SPF). Mediante evaluación experimental se ha confirmado que todas ellas mejoran considerablemente la escalabilidad y eficiencia de la ejecución simbólica y la generación de casos de prueba. ABSTRACT Testing is nowadays the most used technique to validate software and assess its quality. It is integrated into all practical software development methodologies and plays a crucial role towards the success of any software project. From the smallest units of code to the most complex components and their integration into a software system and later deployment; all pieces of a software product must be tested thoroughly before a software product can be released. The main limitation of software testing is that it remains a mostly manual task, representing a large fraction of the total development cost. In this scenario, test automation is paramount to alleviate such high costs. Test case generation (TCG) is the process of automatically generating test inputs that achieve high coverage of the system under test. Among a wide variety of approaches to TCG, this thesis focuses on structural (white-box) TCG, where one of the most successful enabling techniques is symbolic execution. In symbolic execution, the program under test is executed with its input arguments being symbolic expressions rather than concrete values. This thesis relies on a previously developed constraint-based TCG framework for imperative object-oriented programs (e.g., Java), in which the imperative program under test is first translated into an equivalent constraint logic program, and then such translated program is symbolically executed by relying on standard evaluation mechanisms of Constraint Logic Programming (CLP), extended with special treatment for dynamically allocated data structures. Improving the scalability and efficiency of symbolic execution constitutes a major challenge. It is well known that symbolic execution quickly becomes impractical due to the large number of paths that must be explored and the size of the constraints that must be handled. Moreover, symbolic execution-based TCG tends to produce an unnecessarily large number of test cases when applied to medium or large programs. The contributions of this dissertation can be summarized as follows. (1) A compositional approach to CLP-based TCG is developed which overcomes the inter-procedural path explosion by separately analyzing each component (method) in a program under test, stowing the results as method summaries and incrementally reusing them to obtain whole-program results. A similar compositional strategy that relies on program specialization is also developed for the state-of-the-art symbolic execution tool Symbolic PathFinder (SPF). (2) Resource-driven TCG is proposed as a methodology to use resource consumption information to drive symbolic execution towards those parts of the program under test that comply with a user-provided resource policy, avoiding the exploration of those parts of the program that violate such policy. (3) A generic methodology to guide symbolic execution towards the most interesting parts of a program is proposed, which uses abstractions as oracles to steer symbolic execution through those parts of the program under test that interest the programmer/tester most. (4) A new heap-constraint solver is proposed, which efficiently handles heap-related constraints and aliasing of references during symbolic execution and greatly outperforms the state-of-the-art standard technique known as lazy initialization. (5) All techniques above have been implemented in the PET system (and some of them in the SPF tool). Experimental evaluation has confirmed that they considerably help towards a more scalable and efficient symbolic execution and TCG.
Resumo:
Los conjuntos bacterianos son sistemas dinámicos difíciles de modelar debido a que las bacterias colaboran e intercambian información entre sí. Estos microorganismos procariotas pueden tomar decisiones por mayoría e intercambiar información genética importante que, por ejemplo, las haga resistentes a un antibiótico. El proceso de conjugación consiste en el intercambio de un plásmido de una bacteria con otra, permitiendo así que se transfieran propiedades. Estudios recientes han demostrado que estos plásmidos pueden ser reprogramados artificialmente para que la bacteria que lo contenga realice una función específica [1]. Entre la multitud de aplicaciones que supone esta idea, el proyecto europeo PLASWIRES está intentando demostrar que es posible usar organismos vivos como computadores distribuidos en paralelo y plásmidos como conexión entre ellos mediante conjugación. Por tanto, mediante una correcta programación de un plásmido, se puede conseguir, por ejemplo, hacer que una colonia de bacterias haga la función de un antibiótico o detecte otros plásmidos peligrosos en bacterias virulentas. El proceso experimental para demostrar esta idea puede llegar a ser algo lento y tedioso, por lo que es necesario el uso de simuladores que predigan su comportamiento. Debido a que el proyecto PLASWIRES se basa en la conjugación bacteriana, surge la necesidad de un simulador que reproduzca esta operación. El presente trabajo surge debido a la deficiencia del simulador GRO para reproducir la conjugación. En este documento se detallan las modificaciones necesarias para que GRO pueda representar este proceso, así como analizar los datos obtenidos e intentar ajustar el modelo a los datos obtenidos por el Instituto de Biomedicina y Biotecnología de Cantabria (IBBTEC). ---ABSTRACT---Bacterial colonies are dynamical systems difficult to model because bacteria collaborate and exchange information with each other. These prokaryotic organisms can make decisions by majority and exchange important genetic information, for example, make them resistant to an antibiotic. The conjugation process is the exchange of a plasmid from one bacterium to another, allowing both to have the same properties. Recent studies have shown that these plasmids can be artificially reprogrammed to make the bacteria that contain it to perform a specific function [1]. Among the multitude of applications involved in this idea, the European project PLASWIRES is attempting to prove that it is possible to use living organisms as parallel and distributed computers with plasmids acting as connectors between them through conjugation. Thus, by properly programming a plasmid, you can get a colony of bacteria that work as an antibiotic or detect hazardous plasmids in virulent bacteria. The experimental process to prove this idea can be slow and tedious, so the use of simulators to predict their behavior is required. Since PLASWIRES project is based on bacterial conjugation, a simulator that can reproduce this operation is required. This work arises due to the absence of the conjugation process in the simulator GRO. This document details the changes made to GRO to represent this process, analyze the data and try to adjust the model to the data obtained by the Institute of Biomedicine and Biotechnology of Cantabria ( IBBTEC ). This project has two main objectives, the first is to add the functionality of intercellular communication by conjugation to the simulator GRO, and the second is to use the experimental data obtained by the IBBTEC. To do this, the following points should be followed: • Study of conjugation biology as a mechanism of intercellular communication. • Design and implementation of the algorithm that simulates conjugation. • Experimental validation and model adjust to the experimental data on rates of conjugation and bacterial growth.
Resumo:
Los lenguajes de programación son el idioma que los programadores usamos para comunicar a los computadores qué queremos que hagan. Desde el lenguaje ensamblador, que traduce una a una las instrucciones que interpreta un computador hasta lenguajes de alto nivel, se ha buscado desarrollar lenguajes más cercanos a la forma de pensar y expresarse de los humanos. Los lenguajes de programación lógicos como Prolog utilizan a su vez el lenguaje de la lógica de 1er orden de modo que el programador puede expresar las premisas del problema que se quiere resolver sin preocuparse del cómo se va a resolver dicho problema. La resolución del problema se equipara a encontrar una deducción del objetivo a alcanzar a partir de las premisas y equivale a lo que entendemos por la ejecución de un programa. Ciao es una implementación de Prolog (http://www.ciao-lang.org) y utiliza el método de resolución SLD, que realiza el recorrido de los árboles de decisión en profundidad(depth-first) lo que puede derivar en la ejecución de una rama de busqueda infinita (en un bucle infinito) sin llegar a dar respuestas. Ciao, al ser un sistema modular, permite la utilización de extensiones para implementar estrategias de resolución alternativas como la tabulación (OLDT). La tabulación es un método alternativo que se basa en memorizar las llamadas realizadas y sus respuestas para no repetir llamadas y poder usar las respuestas sin recomputar las llamadas. Algunos programas que con SLD entran en un bucle infinito, gracias a la tabulación dán todas las respuestas y termina. El modulo tabling es una implementación de tabulación mediante el algoritmo CHAT. Esta implementación es una versión beta que no tiene implementado un manejador de memoria. Entendemos que la gestión de memoria en el módulo de tabling tiene gran importancia, dado que la resolución con tabulación permite reducir el tiempo de computación (al no repetir llamadas), aumentando los requerimientos de memoria (para guardar las llamadas y las respuestas). Por lo tanto, el objetivo de este trabajo es implementar un mecanismo de gestión de la memoria en Ciao con el módulo tabling cargado. Para ello se ha realizado la implementación de: Un mecanismo de captura de errores que: detecta cuando el computador se queda sin memoria y activa la reinicialización del sitema. Un procedimiento que ajusta los punteros del modulo de tabling que apuntan a la WAM tras un proceso de realojo de algunas de las áreas de memoria de la WAM. Un gestor de memoria del modulo de tabling que detecta c realizar una ampliación de las áreas de memoria del modulo de tabling, realiza la solicitud de más memoria y realiza el ajuste de los punteros. Para ayudar al lector no familiarizado con este tema, describimos los datos que Ciao y el módulo de tabling alojan en las áreas de memoria dinámicas que queremos gestionar. Los casos de pruebas desarrollados para evaluar la implementación del gestor de memoria, ponen de manifiesto que: Disponer de un gestor de memoria dinámica permite la ejecución de programas en un mayor número de casos. La política de gestión de memoria incide en la velocidad de ejecución de los programas. ---ABSTRACT---Programming languages are the language that programmers use in order to communicate to computers what we want them to do. Starting from the assembly language, which translates one by one the instructions to the computer, and arriving to highly complex languages, programmers have tried to develop programming languages that resemble more closely the way of thinking and communicating of human beings. Logical programming languages, such as Prolog, use the language of logic of the first order so that programmers can express the premise of the problem that they want to solve without having to solve the problem itself. The solution to the problem is equal to finding a deduction of the objective to reach starting from the premises and corresponds to what is usually meant as the execution of a program. Ciao is an implementation of Prolog (http://www.ciao-lang.org) and uses the method of resolution SLD that carries out the path of the decision trees in depth (depth-frist). This can cause the execution of an infinite searching branch (an infinite loop) without getting to an answer. Since Ciao is a modular system, it allows the use of extensions to implement alternative resolution strategies, such as tabulation (OLDT). Tabulation is an alternative method that is based on the memorization of executions and their answers, in order to avoid the repetition of executions and to be able to use the answers without reexecutions. Some programs that get into an infinite loop with SLD are able to give all the answers and to finish thanks to tabulation. The tabling package is an implementation of tabulation through the algorithm CHAT. This implementation is a beta version which does not present a memory handler. The management of memory in the tabling package is highly important, since the solution with tabulation allows to reduce the system time (because it does not repeat executions) and increases the memory requirements (in order to save executions and answers). Therefore, the objective of this work is to implement a memory management mechanism in Ciao with the tabling package loaded. To achieve this goal, the following implementation were made: An error detection system that reveals when the computer is left without memory and activate the reinizialitation of the system. A procedure that adjusts the pointers of the tabling package which points to the WAM after a process of realloc of some of the WAM memory stacks. A memory manager of the tabling package that detects when it is necessary to expand the memory stacks of the tabling package, requests more memory, and adjusts the pointers. In order to help the readers who are not familiar with this topic, we described the data which Ciao and the tabling package host in the dynamic memory stacks that we want to manage. The test cases developed to evaluate the implementation of the memory manager show that: A manager for the dynamic memory allows the execution of programs in a larger number of cases. Memory management policy influences the program execution speed.
Resumo:
El presente documento aborda la problemática surgida en torno al desarrollo de una plataforma para gestionar las guías docentes de la Universidad Politécnica de Madrid, centrándose en el uso de las tecnologías Javascript, así como de lo algoritmos, plugins y bibliotecas auxiliares creadas y utilizadas. Por último, se muestran los resultados obtenidos del análisis y puesta en práctica de lo expuesto en el documento, así como conclusiones y sugerencias de futuras líneas de trabajo para este mismo proyecto. ---ABSTRACT---This document explains the problems found when developing a web service whose purpose is the management of learning guides at \Universidad Politecnica de Madrid". This final thesis focus on the use of Javascript technologies and the plugins, algorithms and auxiliar libraries used and developed. Finally, results of the analysis, development of the ideas exposed in this document, and conclusions and future working lines are presented.