995 resultados para Programación informática
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:
Estas notas que se publican a continuación corresponden a un curso de postgrado impartido durante el primer semestre del año 1983. El interés mostrado por los asistentes a dicho curso nos ha animado a escribir un resumen de las clases. Este libro supone un conocimiento te6rico de las ideas básicas del método de los elementos finitos. No obstante en una primera lección se resumen y ordenan aquellos aspectos mas importantes, que serán utilizados en lecciones sucesivas. En estas se desarrolla un programa de computador muy sencillo -sin complicaciones informáticas que obscurezcan la simplicidad del método- y se analiza de un modo detallado -en forma de organigramas y listados comentados- las distintas rutinas en lenguaje FORTRAN de este programa. Asimismo, y respetando el carácter elemental de la exposición se abren algunas posibilidades de ampliación y nuevos desarrollos del método. Algunos ejercicios y ejemplos al final de cada capítulo se espera permitan clarificar los puntos mas conflictivos del método. Finalmente se reúne en un apéndice, los distintos programas que se han mostrado en las sucesivas lecciones y que con objeto de que puedan ser procesados en microcomputadores se han traducido al lenguaje BASIC. Creemos y la experiencia del curso así nos la ha confirmado, que el método de elementos finitos se debe enseñar y aprender mediante la praxis y presentar los sucesivos desarrollos del método de un modo motivado como solución a problemas numéricos e informáticos que aparecen en su desarrollo. Si las lecciones que aquí se presentan permiten transmitir mejor estas ideas, los autores se sentirán más que recompensados por el trabajo que ha supuesto dar a luz a esta publicación.
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.
Resumo:
Este trabajo fin de grado, presenta una herramienta para experimentar con técnicas de la Programación Genética Guiada por Gramáticas. La mayor parte de los trabajos realizados hasta el momento en esta área, son demasiado restrictivos, ya que trabajan con gramáticas, y funciones fitness predefinidas dentro de las propias herramientas, por lo que solo son útiles sobre un único problema. Este trabajo se plantea el objetivo de presentar una herramienta mediante la cual todos los parámetros, gramáticas, individuos y funciones fitness, sean parametrizables. Es decir, una herramienta de carácter general, valida para cualquier tipo de problema que sea representable mediante una gramática libre de contexto. Para abordad el objetivo principal propuesto, se plantea un mecanismo para construir el árbol de derivación de los individuos de acuerdo a una gramática libre de contexto, y a partir de ahí, aplicar una serie de operadores genéticos guiados por gramáticas para ofrecer un resultado final, de acuerdo a una función fitness, que el usuario puede seleccionar antes de realizar la ejecución. La herramienta, también propone una medida de similitud entre los individuos pertenecientes a una determinada generación, que permite comparar los individuos desde el punto de vista de la información semántica que contienen. Con el objetivo de validar el trabajo realizado, se ha probado la herramienta con una gramática libre de contexto ya predefinida, y se exponen numerosos tipos de resultados de acuerdo a distintos parámetros de la aplicación, así como su comparación, para poder estudiar la velocidad e convergencia de los mismos. ---ABSTRACT---This final project presents a tool for working with algorithms related to Genetic Grammar Guided Programming. Most of the work done so far in this area is too restrictive, since they only work with predefined grammars, and fitness functions built within the tools themselves, so they are only useful on a single problem. The main objective of this tool is that all parameters, grammars, individuals and fitness functions, are can be easily modified thought the interface. In other words, a general tool valid for any type of problem that can be represented by a context-free grammar. To address the main objective proposed, the tool provides a mechanism to build the derivation tree of individuals according to a context-free grammar, and from there, applying a series of grammar guided genetic operators to deliver a final result, according to a fitness function, which the user can select before execution. The tool also offers a measure of similarity between individuals belonging to a certain generation, allowing comparison of individuals from the point of view of semantic information they contain. In order to validate the work done, the tool has been tested with a context-free grammar previously defined, and numerous types test have been run with different parameters of the application. The results are compared according to their speed convergence
Resumo:
La regulación sobre la inclusión de medios de apoyo (subtítulos, audiodescripción y lengua de signos) en medios de comunicación audiovisual normalmente responde a cuestiones sobre cuánta programación debe incluir estos medios de apoyo y cómo deben ser sus características técnicas y funcionales. Sin embargo, deja al arbitrio del prestador del servicio la elección de cuáles son los contenidos concretos a los que aplicar los medios de apoyo. El presente trabajo pretende definir una serie de criterios para escoger los programas a los que aplicar los medios de apoyo. Dada la indefinición legal existente en ese aspecto en España, se parte de la forma de resolver este problema en otros territorios, de donde se abstraen una serie de criterios comunes y se clasifican en categorías más generales.
Resumo:
El principal objetivo de este proyecto, tal como se especifica más adelante, es desarrollar una serie de buenas prácticas dentro del ámbito informático forense. Éstas serían la base de una metodología informática forense, para que cualquier persona con los conocimientos técnicos adecuados pueda afrontar una investigación pericial informática forense con garantías de poder afrontar un proceso judicial. Los objetivos secundarios son: Explorar las posibilidades de alinear las buenas prácticas desarrolladas con el uso del editor de textos Emacs, y un método de gestión de las actividades conocido como Getting Things Done (GTD), utilizando el modo orgmode de Emacs. • GTD se basa en el principio de que una persona necesita borrar de su mente todas las tareas que tiene pendientes guardándolas en un lugar específico. De este modo, se libera a la mente del trabajo de recordar todo lo que hay que hacer, y se puede concentrar en la efectiva realización de aquellas tareas. • ORGMODE es un modo de edición del editor de texto Emacs mediante el cual se editan documentos jerárquicos en texto plano. Su uso encaja con distintas necesidades, como la creación de notas de cosas por hacer, la planificación de proyectos y programación, entre otros aspectos. Por ejemplo, los elementos to-do (cosas por hacer) pueden disponer de prioridades y fechas de vencimiento, pueden estar subdivididos en subtareas o en listas de verificación, y pueden etiquetarse o darles propiedades. También puede generarse automáticamente una agenda de las entradas de cosas por hacer. Facilitar las plantillas de documentación y herramientas que permitan a un perito informático forense abordar una investigación informática forense, siguiendo las buenas prácticas definidas en el presente documento, con garantías de que las tareas realizadas, así como las evidencias presentadas serán aceptadas en un proceso judicial. Explicar las diferencias básicas entre el concepto sobreentendido socialmente como análisis forense y el peritaje informático forense. No es objetivo de este proyecto desarrollar herramientas concretas con objetivos forenses ni una metodología completa de peritaje informático forense.
Resumo:
La tesis propone el concepto y diseño de una arquitectura cognitiva para representación de conocimiento profesional especializado en clases de dominios relacionados con el mundo físico. Constituye una extensión de los trabajos de B.Chandrasekaran, potenciando el concepto de arquitectura basada en tareas genéricas propuesta por dicho autor. En base a la arquitectura propuesta, se ha desarrollado un entorno como herramienta de construcción de sistemas expertos de segunda generación, así como un lenguaje para programación cognitiva (DECON)- Dicho entorno, programado en lenguaje C sobre UNIX, ha sido utilizado para el desarrollo de un sistema para predicción de avenidas en la Cuenca Hidrográfica del Jucar, en el marco del proyecto SAIH. Primeramente, la tesis plantea el problema de la modelización del comportamiento de los sistemas físicos, reflejando las limitaciones de las formas clásicas de representación del conocimiento para abordar dicho problema, así como los principales enfoques más recientes basados en el concepto de arquitectura cognitiva y en las técnicas de simulación cualitativa. Se realiza después una síntesis de la arquitectura propuesta, a nivel del conocimiento, para detallar posteriormente su desarrollo a nivel simbólico y de implementación, así como el método general para la construcción de modelos sobre la arquitectura. Se muestra también un resumen de los principales aspectos del desarrollo de software. Finalmente, en forma de anejos, se presenta un caso de estudio, el sistema SIRAH (Sistema Inteligente de Razonamiento Hidrológico), junto con la gramática formal del lenguaje de soporte para la definición de modelos.---ABSTRACT---The thesis proposes the concept and design of a cognitive architecture for professional knowledge representation, specialized in domain classes related to the physical world. It is an extensión of the Chandrasekaran's work, improving the concept of Generic Task based architecture introduced by this author. Based on the proposed architecture, an environment has been developed, as a case of second generation building expert systems tool, as well as a language for cognitive programming (DECON). The environment, programmed in C lenguage on UNIX operating system, has been used to develop a system for flood prediction in the Jucar watershed, inside of the SAIH project. Firstly, the behavior modeling problem of physical systems is discussed, showing the limitations of the classical representations to tackle it, beside the most recent approaches based on cognitive architecture concepts and qualitative simulation technique. An overview of the architecture at the knowledge level is then made, being followed by its symbolic and implementation level description, as well as a general guideline for building models on top of the architecture. The main aspects of software development are also introduced. Finaly, as annexes, a case of study -the SIRAH system (Sistema Inteligente de RAzonamiento Hidrológico)- is introduced, along with the formal grammar of the support language for model definition.
Resumo:
En el contexto de las técnicas de validación de programas, de las estructuras de axiomatización de la programación planteadas por Hoare y del desarrollo de la Lógica de la Programación que Dijkstra realiza con el operador wp, hemos dotado a los elementos esenciales que intervienen en dicho desarrollo de una estructura que permite su estudio en el ámbito de las categorias. En este trabajo se demuestra que el conjunto de precondiciones de un fragmento de programa anotado tiene estructura de N-categoría y que sucede lo mismo con el conjunto de postcondiciones. Más aún, se ha puesto de manifiesto (y probado) que el operador wp actúa como un funtor entre estos pares de N-categorías. Además, los conjuntos de guardas surgen de un modo natural en la lógica de la programación, han sido tratados desde el punto de vista de la semántica denotacional (Wlrth para el PASCAL y Scott y otros, después, en un enfoque más general) y presentados por Manes y Arbib en su semántica parcialmente aditiva. Pues bien, en este trabajo se demuestra que los conjuntos de guardas tienen también estructura de N-categoría y gue cualguier N-categoría dotada de una suma definida adecuadamente tiene estructura de conjunto de guardas, de tal modo, además, gue el preorden inducido por la suma en el conjunto de guardas coincide con la flecha de la N-categoría. Esta suma es, en concreto, la disyunción exclusiva, lo que adicionalmente supone una sorprendentemente sencilla definición alternativa a la suma de las categorías parcialmente aditivas definida por Manes y Arbib. Con todo esto, se aportan herramientas conceptuales para entender mejor y resolver más eficientemente los problemas que tiene planteados la lógica de la programación, pues se dispone de un punto de vista distinto y nuevo y de toda una familia de instrumentos adicionales.---ABSTRACT---In the context of program validation techniques, Hoare's systems for programming and Dijkstra's development of the logic of programming, based on the operator wp, we have endowed the essential features of this development with a structure that permits to study them in the frame of category theory. In this thesis we show that the set of preconditions of an annotated program segment is an N-category, and the same happens for the set of postconditions. Even more, it is shown that the operator wp acts as a functor between those pairs of Ncategories. Furthermore, guard sets come out in a natural way in the logic of programming, they have been considered from a denotational semantics point of view (Wirth for Pascal and afterwards Scott and al. in a more general setting) and they have been embodied by Manes and Arbib in their partially additive semantics. Then, it is shown in this thesis that the above mentioned guard sets also have the structure of an N-category and that any N-category with an appropiately defined sum has the structure of a guard set in such a way that, besides, the preorder defined in the guard set by the sum operation coincides with the arrows of the N-category. This sum is just the exclusive or of Boolean Logic and this fact adds a surprisingly simple alternative definition for the sum operation in Manes and Arbib partially additive categories. The present work, in summary, makes a contribution of conceptual tools for a better understanding and a more efficient solution of the problems posed to the logic of programming and it does so by providing a new different point of view and a whole family of additional techniques.
Resumo:
En este proyecto se ha estudiado el abanico de posibilidades que las plataformas web y móviles ofrecen para aprender lenguajes de programación compilados. A continuación, se ha realizado el diseño y la implementación de una plataforma para el aprendizaje de lenguajes de programación desde dispositivos móviles, con posibilidad de compilación remota desde la aplicación desarrollada, analizando el proceso y las elecciones de desarrollo tomadas. Así, se ha desarrollado una app mediante la plataforma de desarrollo Cordova, que puede ser distribuida para todas las plataformas móviles que esta soporta, incluyendo las más populares: iOS y Android. Para la parte servidora se ha utilizado un servidor Apache (PHP) y el sistema NoSQL MongoDB para la base de datos. Para mayor facilidad en la gestión del contenido de la app, se ha desarrollado en paralelo un gestor web de la base de datos, el cual permite añadir, editar y eliminar contenido de la misma a través de una interfaz agradable y funcional. ABSTRACT. In this project I have studied the range of possibilities that web and mobile platforms offer to learn compiled programming languages. Next, I have designed and implemented a platform for learning programming languages from mobile devices, giving the possibility of remote compilation within the developed application. In this terms, I have developed an app with the Cordova development platform, which can be distributed for all the mobile platforms Cordova supports, including the most popular ones: iOS and Android. For the server part, I have used an Apache (PHP) server and the NoSQL database system MongoDB. In order to offer a more usable system and a better database management, I have also developed a web manager for the database, from which database content can be added, edited and removed, through a clear and functional interface.
Resumo:
La calidad es uno de los principales retos de la construcción de software. En la Ingeniería del Software (IS) se considera a la usabilidad como un atributo de calidad. Al principio se veía a la usabilidad como un requisito no funcional.Se asumía que la usabilidad era una propiedad exclusiva de la presentación de la información.Se creía que separando la capa de presentación del resto, se podía desarrollar un producto software usable.Debido a la naturaleza del sistema y a las necesidades del usuario, a menudo se debe ir más lejos y no basta con tener en cuenta la presentación para obtener un software usable. La comunidad de la Interacción Personar Ordenador (IPO) ha propuesto recomendaciones para mejorar la usabilidad. Algunas de esas recomendaciones tienen impacto directo en la funcionalidad del producto software. En estudios recientes también se ha evaluado la relación entre la usabilidad y los requisitos funcionales. Estas investigaciones sugieren que la usabilidad debe ser tenida en cuenta desde las etapas iniciales de la construcción para evitar costosos cambios posteriores. La incorporación de las características de usabilidad agrega cierta complejidad al proceso de desarrollo. El presente trabajo evalúa la posibilidad de usar patrones para la incorporación de usabilidad en el desarrollo de un producto software. Concretamente se evalúan los siguientes patrones de programación de usabilidad (PPUs): Abort Operation,Progress Feedback y Preferences. Se utilizan unas Pautas de Desarrollo de Mecanismos de Usabilidad(PDMUs) para estos tres mecanismos de usabilidad. Estas pautas poponen patrones para la educción y posterior incorporación de la usabilidad en las distintas fases de la programación. En esta investigación se aborda el desarrollo de un producto software desde la deducción de requisitos hasta la implementación. En cada fase se incorporan los mecanismos de usabilidad de acuerdo a las recomendaciones de las PDMUs. Mediante el desarrollo de un software real se ha evaluado la factibilidad del uso de las PDMUs obteniendo como resultado propuestas de mejoras en estas pautas. Se evalúa asimismo el esfuerzo de incorporación de los mecanismos de usabilidad. Cada evaluación aporta datos que proporcionan una estimación del esfuerzo adicional requerido para incorporar cada mecanismo de usabilidad en el proceso de desarrollo del software.---ABSTRACT---Quality is a major challenge in software construction. Software engineers consider usability to be a quality attribute. Originally, usability was viewed as a nonr functional requirement. Usability was assumed to be simply an information presentation property. There was a belief that a usable software product could be developed by separating the presentation layer from the rest of the system. Depending on the system type and user needs, however, usability often runs deeper, and it is not enough to consider just presentation to build usable software. The humanrcomputer interaction (HCI) community put forward a list of recommendations to improve usability. Some such recommendations have a direct impact on software product functionality. Recent studies have also evaluated the relationship between usability and functional requirements. This research suggests that usability should be taken into account as of the early stages of software construction to prevent costly rework later on. The inclusion of usability features is an added complication to the development process. The research reported here evaluates the possibility of using patterns to incorporate usability into a software product. Specifically, it evaluates the following usability programming patterns (UPPs): Abort Operation, Progress Feedback and Preferences. Usability Mechanism Development Guides (USDG) are applied to these three usability mechanisms. These guides propose patterns for eliciting and later incorporating usability into the different software development phases, including programming. The reported research addresses the development of a software product from requirements elicitation through to implementation. Usability mechanisms are incorporated into each development phase in accordance with USDG recommendations. A real piece of software was developed to test the feasibility of using USDGs, outputting proposals for improving the guides. Each evaluation yields data providing an estimate of the additional workload required to incorporate each usability mechanism into the software development process.
Resumo:
La usabilidad es uno de los aspectos más importantes de la calidad del software para sistemas software interactivos. A pesar de ello, la Ingeniería del Software (IS) se ha centrado históricamente en problemas de funcionalidad y de persistencia, relegando a un segundo plano aspectos de la interacción con el usuario, y más concretamente, de la usabilidad. Ha sido principalmente la comunidad Interacción Persona-Ordenador (IPO) la que ha propuesto recomendaciones para mejorar la usabilidad. En estudios recientes se ha encontrado una relación entre algunas de las recomendaciones de usabilidad propuestas por la comunidad IPO y la funcionalidad de un sistema software. Estas recomendaciones se conocen como Características Funcionales de Usabilidad (CFU), divididas en subtipos más especializados llamados Mecanismos de Usabilidad (MU). Estos estudios han propuesto unas Guías para la Educción de Requisitos por cada mecanismo de usabilidad (GERMU). Posteriormente, se continúan los estudios y con base al repositorio de conocimiento suministrado por las GERMUs, se proponen diseños de más bajo nivel e implementación que facilite la incorporación de un MU en un sistema software. Los resultados se formalizaron en lo que se llamo Patrón de Programación de Usabilidad (PPU). El presente trabajo de investigación se centra en evaluar el impacto debido a la incorporación de mecanismos de usabilidad en el desarrollo de un sistema software. Concretamente el MU Abortar Operación (MU AO), el MU Retroalimentación del Progreso (MU RP) y MU Preferencias (MU P), tanto a nivel de requisitos como a nivel de implementación. Para satisfacer este objetivo, en esta investigación se aborda el desarrollo de un sistema software desde la actividad de educción de requisitos hasta la implementación. Para la actividad de requisitos se hace uso de la GERMU AO, GERMU RP y la GERMU P. La construcción del sistema sigue el modelo incremental. En cada incremento se construye un conjunto de casos de uso junto con uno o varios MUs. Para incorporar cada MU en implementación, se hace uso del PPU Abortar Operación (PPU AO), PPU Retroalimentación del Progreso (PPU RP) y PPU Preferencias (PPU P). En el primer incremento se incorpora el PPU AO, en el segundo el PPU RP, en el tercer incremento PPU P, y en el último incremento, se añaden los restantes casos de uso junto con los tres PPUs al sistema. Tanto en la actividad de requisitos, como en la construcción de cada incremento se evalúa el impacto de la incorporación de tales PPUs. Cada evaluación proporciona datos que pueden dar una estimación del esfuerzo requerido para incorporar cada PPU en las distintas actividades del desarrollo del sistema. Como resultado de la experiencia del uso de los diferentes artefactos relacionados en esta investigación se obtienen propuestas de mejoras para los PPUs, y adicionalmente para las GERMUs.
Resumo:
En este Trabajo Fin de Grado se aborda la concepción, diseño, desarrollo y testeo de un robot esférico. En el se cubre el diseño mecánico y su fabricación, el modelado dinámico y su control, y el diseño hardware y software.
Resumo:
El siguiente proyecto versa sobre la programación en lenguaje java del algoritmo de humanización MIDI desarrollado por Jorge Grundman en su tesis La Humanización de la Interpretación Virtual: Tres ejemplos significativos de la obra de Chopin. Este algoritmo, denominado Zig-Zag tiene como finalidad lograr que una partitura interpretada por un ordenador tenga unas características similares a la lectura a primera vista de la misma por un pianista. Para ello, basa su funcionamiento en una aleatorización del tempo en base a una serie de parámetros, a una modificación de la dinámica acorde a la modificación de tempo y a una segunda aleatorización para cada figura de la partitura. Este algoritmo tiene un gran campo de aplicación como complemento a los diversos secuenciadores y editores de partituras que existen en la actualidad, proporcionando nuevas características a los mismos. La programación del algoritmo se ha llevado a cabo empleando el Java SDK (Standard Developement Kit) 7 y las herramientas que proporciona esta plataforma para el manejo y modificación de los mensajes MIDI. ABSTRACT. The next project is about the programming in Java language of the MIDI humanization algorithm developed by Jorge Grundman in his thesis La Humanización de la Interpretación Virtual: Tres ejemplos significativos de la obra de Chopin. This algorithm, called Zig-Zag aims to have similar characteristics in a score performed by a computer than in the sight reading by a pianist. To this end, it bases its process in a randomization of the tempo from several parameters, a modification of the dynamic according to the change of tempo and a second randomization for each figure in the score. This algorithm has a big scope of application as complement for the different sequencers and score editors that already exist, providing new features to them. The algorithm has been programmed using the Java SDK (Standard Development Kit) 7 and the tools that this platform provides to handle and modify MIDI messages.
Resumo:
El objetivo principal de crear un espacio web para el Museo Histórico de la Informática (MHI) perteneciente a la Escuela Técnica Superior de Ingenieros Informáticos (ETSIINF) de la Universidad Politécnica de Madrid (UPM) es la difusión de la historia de la informática entre el público en general. Si bien es cierto que existe ya una página web de consulta del MHI con algunas imágenes y contenido sobre los objetos que allí se exhiben, es también reseñable que se trata de un espacio obsoleto, lleno de carencias y extremadamente difícil de gestionar y actualizar, por lo que se hacía imprescindible actualizar el diseño del espacio web, los contenidos y el sistema de gestión de los mismos, cosa que es de gran interés para un lugar divulgativo. En la actualidad, existen maneras mucho más amigables para el usuario de navegar por una web; y de la misma manera para un administrador, gestionar el contenido de la misma y mantener a los usuarios bien informados de todo lo que se ofrece en cada momento. Esto es posible gracias a los sistemas de gestión de contenidos o content management system (CMS), de los que se hablará lo largo de todo el documento. Estos sistemas, dan una facilidad mucho mayor a los encargados de llevar al día una página web, sin tener que saber de programación, lenguajes o informática en general, ya que incorporan paneles de control muy intuitivos y fáciles de manejar, que son una ventaja tanto para ellos como para los usuarios. Es por esta razón que, hay páginas web como la de las empresas IKEA, Ubuntu o, en especial para el caso que compete al documento, el museo del Louvre usan gestores de contenidos para sus páginas web. Y es que las ventajas y facilidades que ofrece un CMS son realmente interesantes y se tratará de todas ellas en el documento, de la elección del CMS que mejor se ajusta a los requisitos del museo, las restricciones a la hora del despliegue en el ámbito de la ETSIINF y de cómo mejorará esto la calidad visual y divulgativa del MHI. Este trabajo se desarrolla a lo largo de 11 capítulos, en los que se muestra como construir un sitio web, las posibilidades y la elección final para este caso. En el primer capítulo se hace una pequeña introducción de lo que es el proyecto, se especifican los objetivos, la motivación del mismo y el alcance que tiene. En el segundo capítulo se muestra la información que se ha recopilado en el trabajo de investigación que se hace previo al desarrollo. En él se muestran los distintos tipos de páginas web, que tecnologías y lenguajes se pueden usar para su construcción, una comparativa sobre otras entidades similares al MHI, las limitaciones que presenta el entorno y la elección final que se consideró más adecuada para este caso. En el capítulo tres se empieza a desarrollar la solución a través del diseño. Aquí se puede encontrar el diseño de más bajo nivel que se le presenta al cliente para sentar las bases del trabajo, el diseño de alto nivel con un mayor grado de realidad que el anterior y una preparación de lo que serán los planes de prueba. El capítulo cuatro muestra todo lo que se ha usado en la implementación y la integración de la página web: herramientas, tecnologías, plantillas de diseño y módulos que proporcionan distintas funcionalidades. Llegados al capítulo cinco, se puede ver una detallada documentación de los resultados de las pruebas de usabilidad y accesibilidad realizadas, y las conclusiones que subyacen de estas. Una vez acabada la implementación del sitio web del MHI, en el capítulo seis se intenta hacer una labor de consultoría, mostrando precios y presupuestos de las distintas tareas que se han llevado a cabo para la realización de este proyecto. En el capítulo siete se extraen las conclusiones de todo lo acontecido en los capítulos anteriores y en el ocho unas líneas sobre posibles trabajos futuros que se podrían llevar a cabo en base a lo que ya se tiene en la institución, incluido este trabajo. Para facilitar la comprensión y satisfacer la curiosidad del lector, se ha incluido en el capítulo nueve la bibliografía con toda la documentación consultada y en el diez un glosario de términos para la aclaración de términos y acrónimos más técnicos. Para acabar, en el capítulo once se anexionan tanto el documento que se usó para las pruebas de usabilidad como un manual de administrador para el sitio web, que hace más amigable el entorno para las personas que lo tengan que mantener en un futuro.---ABSTRACT---The main goal of creating a website for the Informatics Historical Museum (“Museo Histórico de la Informática” or MHI) located in the Higher Technical School of Informatics Engineers (“Escuela Técnica Superior de Ingenieros Informáticos” or ETSIINF) of the Polytechnic University of Madrid (“Universidad Politécnica de Madrid” UPM), is to promote the aforementioned museum as to increase its reach to the public. While it is true that there already is a consulting website with some pictures and information about the items which are displayed in the building, it is outdated and the data is scarce. Moreover, it is extremely complicated to manage and to regularly update the web page, which is very important for informative/broadcasting media. Currently, there are easier ways for the users of a website to consult whatever information they want, as well as it is now easy for a website manager to display new content and to keep the users informed about what is been offered at every moment. This is possible because of content management systems (CMS), which will be discussed throughout the entire paper. These systems make it easier to use for the administrator of a website to keep it up to date without the necessity for them of having any knowledge or skills in programming, languages or computing, because the systems have an intuitive control panel that is easy to use, which is an advantage for both managers and users. Because of all these reasons, there are lots of companies that use this kind of systems, such as IKEA, Ubuntu or, especially, the Louvre Museum, to which we direct our attention all throughout this report. It is easy to notice that these systems have an important and very interesting number of perks and benefits. In the next chapters of the document we will explain the benefits of the program as well as the choice on the kind of CMS that best suits the requirements of the museum and, finally, the restrictions of the school for the deployment and of how all of this will improve the visual and informational qualities of the MHI. This work is developed over 11 chapters, shown how to build up a website, the possibilities and the final choice for this case. In the first chapter a brief introduction of the project, goals, motivation and scope thereof having specified are done. Before the development of the website, the second chapter shows de information of the researching work. It discusses the different types of websites, technologies and languages that can be used for build-up, a comparison of similar entities to MHI, the limitations of the environment and the final choice was considered more appropriate for this case. Chapter three begins to develop the design of the solution. Here there are the lowest level design that presents the customer to fix any problem, the high level design with a higher degree of reality than the last and the test plans. Chapter four shows everything that has been used in the implementation and integration of the website: tools, technologies, design templates and modules that provide different functionalities. Reaching the fifth chapter, you can see a detailed documentation of the results of the usability and accessibility tests made to some users and the conclusions of it. Once the implementation of MHI website is done, in chapter six there is a consultancy work, showing prices and budgets of the different tasks which were carried out for this project. In chapter seven there are the conclusions of what happened in the previous chapters and eight chapter shows possible future works that could be carried out based on what the institution already have, including this work. To make easier to the reader understand this paper and satisfy his curiosity, the chapter nine includes the bibliography consulted with all the documentation and chapter ten has a glossary of terms and an explanation of technical terms and acronyms. Finally, in chapter eleven there are attached both the document that was used for usability testing as a manual administrator for the website, making the environment friendlier for people who have to maintain it in the future.