90 resultados para Software Design Pattern

em Universidad Politécnica de Madrid


Relevância:

100.00% 100.00%

Publicador:

Resumo:

For years, the Human Computer Interaction (HCI) community has crafted usability guidelines that clearly define what characteristics a software system should have in order to be easy to use. However, in the Software Engineering (SE) community keep falling short of successfully incorporating these recommendations into software projects. From a SE perspective, the process of incorporating usability features into software is not always straightforward, as a large number of these features have heavy implications in the underlying software architecture. For example, successfully including an “undo” feature in an application requires the design and implementation of many complex interrelated data structures and functionalities. Our work is focused upon providing developers with a set of software design patterns to assist them in the process of designing more usable software. This would contribute to the proper inclusion of specific usability features with high impact on the software design. Preliminary validation data show that usage of the guidelines also has positive effects on development time and overall software design quality.

Relevância:

90.00% 90.00%

Publicador:

Resumo:

Usability is the capability of the software product to be understood, learned, used and attractive to the user, when used under specified conditions. Many studies demonstrate the benefits of usability, yet to this day software products continue to exhibit consistently low levels of this quality attribute. Furthermore, poor usability in software systems contributes largely to software failing in actual use. One of the main disciplines involved in usability is that of Human-Computer Interaction (HCI). Over the past two decades the HCI community has proposed specific features that should be present in applications to improve their usability, yet incorporating them into software continues to be far from trivial for software developers. These difficulties are due to multiple factors, including the high level of abstraction at which these HCI recommendations are made and how far removed they are from actual software implementation. In order to bridge this gap, the Software Engineering community has long proposed software design solutions to help developers include usability features into software, however, the problem remains an open research question. This doctoral thesis addresses the problem of helping software developers include specific usability features into their applications by providing them with a structured and tangible guidance in the form of a process, which we have termed the Usability-Oriented Software Development Process. This process is supported by a set of Software Usability Guidelines that help developers to incorporate a set of eleven usability features with high impact on software design. After developing the Usability-oriented Software Development Process and the Software Usability Guidelines, they have been validated across multiple academic projects and proven to help software developers to include such usability features into their software applications. In doing so, their use significantly reduced development time and improved the quality of the resulting designs of these projects. Furthermore, in this work we propose a software tool to automate the application of the proposed process. In sum, this work contributes to the integration of the Software Engineering and HCI disciplines providing a framework that helps software developers to create usable applications in an efficient way.

Relevância:

90.00% 90.00%

Publicador:

Resumo:

In this work a complete set of libraries for developing wireless sensor applications in a simple and intuitive way is presented, in contraposition to the most spread application abstraction-level mechanisms based on operating systems. The main target of this software platform, named CookieLibs, is to provide the highest abstraction level on the management of WSNs but in the simplest way for those users who are not familiar with software design, in order to achieve a fast profiling mechanism for reliable prototyping based on the Cookies platform.

Relevância:

90.00% 90.00%

Publicador:

Resumo:

Este trabajo corresponde con la implementación de componentes software dentro de la Plataforma COMPUTAPLEX, la cual tiene como objetivo facilitar a los investigadores la realización de tareas del proceso experimental de ingeniería de software. Uno de los aportes a esta plataforma tecnológica corresponde con el desarrolló de los componentes necesarios para la recuperación de datos experimentales disponibles en diversas fuentes de datos, para ello se hizo uso de un mecanismo capaz de unificar la extracción de información de MySQL, ficheros excel y ficheros SPSS. Con ello diferentes grupos de investigación asociados pueden compartir y tener acceso a repositorios experimentales que se mantienen tanto de manera local como externa. Por otra parte, se ha realizado un estudio de la tecnología de agentes en la que se describe sus definiciones, lenguajes de comunicación, especificación FIPA, JADE como implementación FIPA y parser XML. Además para este trabajo se ha definido e implementado una ontología de comunicación entre agentes, la misma que fue diseñada en la herramienta Protégé. En lo que se refiere al desarrollo de componentes se hizo uso de una amplía variedad de tecnologías que incluye lenguaje de programación Java, framework JADE para el desarrollo de agentes, librería JENA para manejo de ontologías, librería SAXParser para lectura de archivos XML y patrón de diseño Factory. Finalmente se describe la metodología de trabajo utilizada en el proyecto, la cual por medio de la realización de varios ciclos iterativos permitió obtener prototipos que poco a poco fueron cubriendo las necesidades del producto software.----ABSTRACT---- This work relates to the implementation of software components within the platform Computaplex, which aims to enable researchers to conduct experimental software engineering process tasks. One of the contributions to this platform technology corresponds to the development of components which are necessary for the recovery of experimental data available in different data sources, to archive this goal a mechanism able to unify the extraction of information from MySQL, Excel and SPSS files was made. Therefore, associated research groups can share and access experimental repositories that remain both locally and externally. Moreover, it has been conducted a study of agent technology in its definition is described, languages communication, FIPA, JADE and FIPA implementation and XML parser. In addition to this work, it has been defined and implemented an ontology for communication between agents, the same as was designed in the Protégé tool. In what refers to the development of components, a wide range of technologies have been made which includes Java programming language, framework JADE for agent development, JENA library for handling ontologies, SAXParser for reading XML files and Factory design pattern. Finally, describing the work methodology used in this project, which through the implementation of several iterative cycles allowed to obtain prototypes were gradually meeting the needs of the software product.

Relevância:

90.00% 90.00%

Publicador:

Resumo:

El trabajo de fin de grado que se va a definir detalladamente en esta memoria, trata de poner de manifiesto muchos de los conocimientos que he adquirido a lo largo de la carrera, aplicándolos en un proyecto real. Se ha desarrollado una plataforma capaz de albergar ideas, escritas por personas de todo el mundo que buscan compartirlas con los demás, para que estas sean comentadas, valoradas y entre todos poder mejorarlas. Estas ideas pueden ser de cualquier ámbito, por tanto, se da la posibilidad de clasificarlas en las categorías que mejor encajen con la idea. La aplicación ofrece una API RESTful muy descriptiva, en la que se ha identificado y estructurado cada recurso, para que a través de los “verbos http” se puedan gestionar todos los elementos de una forma fácil y sencilla, independientemente del cliente que la utilice. La arquitectura está montada siguiendo el patrón de diseño modelo vista-controlador, utilizando las últimas tecnologías del mercado como Spring, Liferay, SmartGWT y MongoDB (entre muchas otras) con el objetivo de crear una aplicación segura, escalable y modulada, por lo que se ha tenido que integrar todos estos frameworks. Los datos de la aplicación se hacen persistentes en dos tipos de bases de datos, una relacional (MySQL) y otra no relacional (MongoDB), aprovechando al máximo las características que ofrecen cada una de ellas. El cliente propuesto es accesible mediante un navegador web, se basa en el portal de Liferay. Se han desarrollado varios “Portlets o Widgets”, que componen la estructura de contenido que ve el usuario final. A través de ellos se puede acceder al contenido de la aplicación, ideas, comentarios y demás contenidos sociales, de una forma agradable para el usuario, ya que estos “Portlets” se comunican entre sí y hacen peticiones asíncronas a la API RESTful sin necesidad de recargar toda la estructura de la página. Además, los usuarios pueden registrarse en el sistema para aportar más contenidos u obtener roles que les dan permisos para realizar acciones de administración. Se ha seguido una metodología “Scrum” para la realización del proyecto, con el objetivo de dividir el proyecto en tareas pequeñas y desarrollarlas de una forma ágil. Herramientas como “Jenkins” me han ayudado a una integración continua y asegurando mediante la ejecución de los test de prueba, que todos los componentes funcionan. La calidad ha sido un aspecto principal en el proyecto, se han seguido metodologías software y patrones de diseño para garantizar un diseño de calidad, reutilizable, óptimo y modulado. El uso de la herramienta “Sonar” ha ayudado a este cometido. Además, se ha implementado un sistema de pruebas muy completo de todos los componentes de la aplicación. En definitiva, se ha diseñado una aplicación innovadora de código abierto, que establece unas bases muy definidas para que si algún día se pone en producción, sirva a las personas para compartir pensamientos o ideas ayudando a mejorar el mundo en el que vivimos. ---ABSTRACT---The Final Degree Project, described in detail in this report, attempts to cover a lot of the knowledge I have acquired during my studies, applying it to a real project. The objective of the project has been to develop a platform capable of hosting ideas from people all over the world, where users can share their ideas, comment on and rate the ideas of others and together help improving them. Since these ideas can be of any kind, it is possible to classify them into suitable categories. The application offers a very descriptive API RESTful, where each resource has been identified and organized in a way that makes it possible to easily manage all the elements using the HTTP verbs, regardless of the client using it. The architecture has been built following the design pattern model-view-controller, using the latest market technologies such as Spring, Liferay, Smart GWT and MongoDB (among others) with the purpose of creating a safe, scalable and adjustable application. The data of the application are persistent in two different kinds of databases, one relational (MySQL) and the other non-relational (MongoDB), taking advantage of all the different features each one of them provides. The suggested client is accessible through a web browser and it is based in Liferay. Various “Portlets" or "Widgets” make up the final content of the page. Thanks to these Portlets, the user can access the application content (ideas, comments and categories) in a pleasant way as the Portlets communicate with each other making asynchronous requests to the API RESTful without the necessity to refresh the whole page. Furthermore, users can log on to the system to contribute with more contents or to obtain administrator privileges. The Project has been developed following a “Scrum” methodology, with the main objective being that of dividing the Project into smaller tasks making it possible to develop each task in a more agile and ultimately faster way. Tools like “Jenkins” have been used to guarantee a continuous integration and to ensure that all the components work correctly thanks to the execution of test runs. Quality has been one of the main aspects in this project, why design patterns and software methodologies have been used to guarantee a high quality, reusable, modular and optimized design. The “Sonar” technology has helped in the achievement of this goal. Furthermore, a comprehensive proofing system of all the application's components has been implemented. In conclusion, this Project has consisted in developing an innovative, free source application that establishes a clearly defined basis so that, if it someday will be put in production, it will allow people to share thoughts and ideas, and by doing so, help them to improve the World we live in.

Relevância:

90.00% 90.00%

Publicador:

Resumo:

Las compañías de desarrollo de software buscan reducir costes a través del desarrollo de diseños que permitan: a) facilidad en la distribución del trabajo de desarrollo, con la menor comunicación de las partes; b) modificabilidad, permitiendo realizar cambios sobre un módulo sin alterar las otras partes y; c) comprensibilidad, permitiendo estudiar un módulo del sistema a la vez. Estas características elementales en el diseño de software se logran a través del diseño de sistemas cuasi-descomponibles, cuyo modelo teórico fue introducido por Simon en su búsqueda de una teoría general de los sistemas. En el campo del diseño de software, Parnas propone un camino práctico para lograr sistemas cuasi-descomponibles llamado el Principio de Ocultación de Información. El Principio de Ocultación de Información es un criterio diferente de descomposición en módulos, cuya implementación logra las características deseables de un diseño eficiente a nivel del proceso de desarrollo y mantenimiento. El Principio y el enfoque orientado a objetos se relacionan debido a que el enfoque orientado a objetos facilita la implementación del Principio, es por esto que cuando los objetos empiezan a tomar fuerza, también aparecen paralelamente las dificultades en el aprendizaje de diseño de software orientado a objetos, las cuales se mantienen hasta la actualidad, tal como se reporta en la literatura. Las dificultades en el aprendizaje de diseño de software orientado a objetos tiene un gran impacto tanto en las aulas como en la profesión. La detección de estas dificultades permitirá a los docentes corregirlas o encaminarlas antes que éstas se trasladen a la industria. Por otro lado, la industria puede estar advertida de los potenciales problemas en el proceso de desarrollo de software. Esta tesis tiene como objetivo investigar sobre las dificultades en el diseño de software orientado a objetos, a través de un estudio empírico. El estudio fue realizado a través de un estudio de caso cualitativo, que estuvo conformado por tres partes. La primera, un estudio inicial que tuvo como objetivo conocer el entendimiento de los estudiantes alrededor del Principio de Ocultación de Información antes de que iniciasen la instrucción. La segunda parte, un estudio llevado a cabo a lo largo del período de instrucción con la finalidad de obtener las dificultades de diseño de software y su nivel de persistencia. Finalmente, una tercera parte, cuya finalidad fue el estudio de las dificultades esenciales de aprendizaje y sus posibles orígenes. Los participantes de este estudio pertenecieron a la materia de Software Design del European Master in Software Engineering de la Escuela Técnica Superior de Ingenieros Informáticos de la Universidad Politécnica de Madrid. Los datos cualitativos usados para el análisis procedieron de las observaciones en las horas de clase y exposiciones, entrevistas realizadas a los estudiantes y ejercicios enviados a lo largo del período de instrucción. Las dificultades presentadas en esta tesis en sus diferentes perspectivas, aportaron conocimiento concreto de un estudio de caso en particular, realizando contribuciones relevantes en el área de diseño de software, docencia, industria y a nivel metodológico. ABSTRACT The software development companies look to reduce costs through the development of designs that will: a) ease the distribution of development work with the least communication between the parties; b) changeability, allowing to change a module without disturbing the other parties and; c) understandability, allowing to study a system module at a time. These basic software design features are achieved through the design of quasidecomposable systems, whose theoretical model was introduced by Simon in his search for a general theory of systems. In the field of software design, Parnas offers a practical way to achieve quasi-decomposable systems, called The Information Hiding Principle. The Information Hiding Principle is different criterion for decomposition into modules, whose implementation achieves the desirable characteristics of an efficient design at the development and maintenance level. The Principle and the object-oriented approach are related because the object-oriented approach facilitates the implementation of The Principle, which is why when objects begin to take hold, also appear alongside the difficulties in learning an object-oriented software design, which remain to this day, as reported in the literature. Difficulties in learning object-oriented software design has a great impact both in the classroom and in the profession. The detection of these difficulties will allow teachers to correct or route them before they move to the industry. On the other hand, the industry can be warned of potential problems related to the software development process. This thesis aims to investigate the difficulties in learning the object-oriented design, through an empirical study. The study was conducted through a qualitative case study, which consisted of three parts. The first, an initial study was aimed to understand the knowledge of the students around The Information Hiding Principle before they start the instruction. The second part, a study was conducted during the entire period of instruction in order to obtain the difficulties of software design and their level of persistence. Finally, a third party, whose purpose was to study the essential difficulties of learning and their possible sources. Participants in this study belonged to the field of Software Design of the European Master in Software Engineering at the Escuela Técnica Superior de Ingenieros Informáticos of Universidad Politécnica de Madrid. The qualitative data used for the analysis came from the observations in class time and exhibitions, performed interviews with students and exercises sent over the period of instruction. The difficulties presented in this thesis, in their different perspectives, provided concrete knowledge of a particular case study, making significant contributions in the area of software design, teaching, industry and methodological level.

Relevância:

80.00% 80.00%

Publicador:

Resumo:

Models are an effective tool for systems and software design. They allow software architects to abstract from the non-relevant details. Those qualities are also useful for the technical management of networks, systems and software, such as those that compose service oriented architectures. Models can provide a set of well-defined abstractions over the distributed heterogeneous service infrastructure that enable its automated management. We propose to use the managed system as a source of dynamically generated runtime models, and decompose management processes into a composition of model transformations. We have created an autonomic service deployment and configuration architecture that obtains, analyzes, and transforms system models to apply the required actions, while being oblivious to the low-level details. An instrumentation layer automatically builds these models and interprets the planned management actions to the system. We illustrate these concepts with a distributed service update operation.

Relevância:

80.00% 80.00%

Publicador:

Resumo:

El siguiente trabajo presenta un desarrollo innovador de un Robot de Inspección de Tuberías, el cual fue diseñado para operación de Tuberías Verticales (RETOV Robot de operación en tuberías Verticales (siglas en Español)). Cuando RETOV es usado para inspeccionar pozos petroleros, puede ser controlado desde la superficie, esto permite al operador la inspección y monitoreo del pozo. Esto es efectuado a través de una interfaz de usuario que controla el Robot. RETOV fue diseñado con anillos articulados que abrazan la tubería, un nuevo sistema de amortiguación y ruedas móviles brinda la posibilidad de navegar y evitar obstáculos en la tubería realizando tres tipos de movimientos: rotación, traslación y helicoidal. Adicionalmente RETOV fue diseñado para realizar inspección entre dos tuberías(la tubería de producción y el pozo petrolero), con un sistema de seguridad y una estructura liviana, RETOV puede ser equipado con sensores para medir las variables de interés en el pozo. El diseño de la mecánica y el programa de control, la instrumentación, los modelos matemáticos y resultados de las pruebas han sido descritos en esta Tesis. The following Doctoral Thesis presents an innovative application of a Pipe Inspection Robot, which was designed especially as Operation Robot in Vertical Pipes (RETOV) (Robot for operation vertical pipes (Spanish acronyms)). When RETOV is used to inspect Oil Well, can be controlled from the surface, it´s allow the operator the well inspection and monitoring. This is done through our interface that controls the robot. The RETOV was designed with an articulated ring systems that embrace the pipe, a new damping systems and mobile wheels bring the possibility to navigate and avoid obstacles into the well, performing three types of movement: Rotational, translational and screw. Additional, RETOV was designed to perform the inspection between two pipes (pipe and oil well production), with a security braking systems and lightweight structure; RETOV can be equipment with sensors to measure the variables of interest in the well. The hardware and Software design, the instrumentation, the mathematical models, and the test results have been described in this thesis.

Relevância:

80.00% 80.00%

Publicador:

Resumo:

Environmental monitoring has become a key aspect in food production over the last few years. Due to their low cost, low power consumption and flexibility, Wireless Sensor Networks (WSNs) have turned up as a very convenient tool to be used in these environments where no intrusion is a must. In this work, a WSN application in a food factory is presented. The paper gives an overview of the system set up, covering from the initial study of the parameters and sensors, to the hardware-software design and development needed for the final tests in the factory facilities.

Relevância:

80.00% 80.00%

Publicador:

Resumo:

We present an undergraduate course on concurrent programming where formal models are used in different stages of the learning process. The main practical difference with other approaches lies in the fact that the ability to develop correct concurrent software relies on a systematic transformation of formal models of inter-process interaction (so called shared resources), rather than on the specific constructs of some programming language. Using a resource-centric rather than a language-centric approach has some benefits for both teachers and students. Besides the obvious advantage of being independent of the programming language, the models help in the early validation of concurrent software design, provide students and teachers with a lingua franca that greatly simplifies communication at the classroom and during supervision, and help in the automatic generation of tests for the practical assignments. This method has been in use, with slight variations, for some 15 years, surviving changes in the programming language and course length. In this article, we describe the components and structure of the current incarnation of the course?which uses Java as target language?and some tools used to support our method. We provide a detailed description of the different outcomes that the model-driven approach delivers (validation of the initial design, automatic generation of tests, and mechanical generation of code) from a teaching perspective. A critical discussion on the perceived advantages and risks of our approach follows, including some proposals on how these risks can be minimized. We include a statistical analysis to show that our method has a positive impact in the student ability to understand concurrency and to generate correct code.

Relevância:

80.00% 80.00%

Publicador:

Resumo:

El presente texto se ha desarrollado como Proyecto Fin de Grado en la Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación de la Universidad Politécnica de Madrid en colaboración con la Consultora Tecnológica everis. El mismo tiene como objetivo realizar un estudio de los requisitos necesarios para poder desplegar un servicio que permita ofrecer a las Operadoras Móviles Virtuales (OMV) soporte técnico a sus clientes a través de las redes sociales. Este módulo establecerá una nueva vía de comunicación entre el consumidor y el cliente de la OMV con la propia OMV, el cual se caracterizará por una alta accesibilidad y una gran rapidez en el servicio permitiendo de este modo, una mayor satisfacción del cliente con su operador móvil y por tanto de una nueva vía para conseguir la fidelización del mismo y la captación de nuevos clientes. Para ello, este proyecto se lleva a cabo sobre el sistema de información 4mobile el cual es comercializado por la mencionada Consultora Tecnológica. Este sistema consiste en una plataforma web la cual permite cubrir todos los procesos de negocio comunes que un OMV necesita gestionar. Es por ello, que el mencionado estudio se centra en la evaluación de los aspectos necesarios para la integración de un módulo de estas características dentro de la plataforma de 4mobile. Este módulo, estará basado en una herramienta software que permitirá gestionar el ciclo de vida completo del comentario realizado por el cliente a través de una red social, desde que es publicado por el cliente, hasta que se haya respondido al mismo y su solución sea considerada como satisfactoria por el cliente. Por ello, y de cara a definir correctamente esta herramienta, será necesario un detallado análisis el cual recoja diversos aspectos y que a lo largo del texto, será denominado como Plan de Marketing de Medios Sociales (PMMS). Estos aspectos versarán tanto de las necesidades tecnológicas para su mencionada integración, como de la serie de características funcionales que una solución basada en servicio técnico a través de las redes sociales deberá poseer con el objetivo de ofrecer un servicio técnico de calidad. Finalmente, estas funcionalidades y necesidades tecnológicas se expondrán en forma de propuesta a everis para su integración en la plataforma 4mobile junto con un análisis de diseño a alto nivel software de la solución a desarrollar. ABSTRACT. This text has been developed as Final Degree Project in the Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación de la Universidad Politécnica de Madrid in collaboration with the Technology Consultant everis, aims to conduct a study of how to provide technical support through social networks and the evaluation of the integration of a social support module within the system platform 4mobile, which cover all business processes that need to manage a Mobile Virtual Network Operator (MVNO), which is marketed by above-mentioned consultant . This module will establish a new communication channel between the consumer and the client with the OMV and itself, which is characterized by high accessibility and great fast service. Thus will allow a higher customer satisfaction with him service and thus a new way to get the same loyalty and attract new customers To this end, this project is performed on the information system 4mobile which is marketed by the consulting part thereof everis. This system is a platform to cover all business processes that need to manage an MVNO. Therefore, the mentioned study focuses on the evaluation of the elements necessary for integrating module these features within the platform 4mobile. This module will be based on a software tool for managing the entire lifecycle of the comment made by the customer via social networking, from the moment it is published, until it has been respond and their solution is considered satisfactory for the customer. So, in order to properly define this tool, a detailed analysis which will be necessary to collect various aspects and throughout the text, it will be referred to as Plan of Social Media Marketing (PMMS). These aspects will be address both: the technological needs for the mentioned integration, and the number of functional characteristics-based service through social networking solution, as this must in order to provide a quality service Finally, these goals and requirements will be discussed as everis offer for integration into the platform 4mobile analysis along with a high level of software design to develop the solution.

Relevância:

80.00% 80.00%

Publicador:

Resumo:

Resource analysis aims at inferring the cost of executing programs for any possible input, in terms of a given resource, such as the traditional execution steps, time ormemory, and, more recently energy consumption or user defined resources (e.g., number of bits sent over a socket, number of database accesses, number of calls to particular procedures, etc.). This is performed statically, i.e., without actually running the programs. Resource usage information is useful for a variety of optimization and verification applications, as well as for guiding software design. For example, programmers can use such information to choose different algorithmic solutions to a problem; program transformation systems can use cost information to choose between alternative transformations; parallelizing compilers can use cost estimates for granularity control, which tries to balance the overheads of task creation and manipulation against the benefits of parallelization. In this thesis we have significatively improved an existing prototype implementation for resource usage analysis based on abstract interpretation, addressing a number of relevant challenges and overcoming many limitations it presented. The goal of that prototype was to show the viability of casting the resource analysis as an abstract domain, and howit could overcome important limitations of the state-of-the-art resource usage analysis tools. For this purpose, it was implemented as an abstract domain in the abstract interpretation framework of the CiaoPP system, PLAI.We have improved both the design and implementation of the prototype, for eventually allowing an evolution of the tool to the industrial application level. The abstract operations of such tool heavily depend on the setting up and finding closed-form solutions of recurrence relations representing the resource usage behavior of program components and the whole program as well. While there exist many tools, such as Computer Algebra Systems (CAS) and libraries able to find closed-form solutions for some types of recurrences, none of them alone is able to handle all the types of recurrences arising during program analysis. In addition, there are some types of recurrences that cannot be solved by any existing tool. This clearly constitutes a bottleneck for this kind of resource usage analysis. Thus, one of the major challenges we have addressed in this thesis is the design and development of a novel modular framework for solving recurrence relations, able to combine and take advantage of the results of existing solvers. Additionally, we have developed and integrated into our novel solver a technique for finding upper-bound closed-form solutions of a special class of recurrence relations that arise during the analysis of programs with accumulating parameters. Finally, we have integrated the improved resource analysis into the CiaoPP general framework for resource usage verification, and specialized the framework for verifying energy consumption specifications of embedded imperative programs in a real application, showing the usefulness and practicality of the resulting tool.---ABSTRACT---El Análisis de recursos tiene como objetivo inferir el coste de la ejecución de programas para cualquier entrada posible, en términos de algún recurso determinado, como pasos de ejecución, tiempo o memoria, y, más recientemente, el consumo de energía o recursos definidos por el usuario (por ejemplo, número de bits enviados a través de un socket, el número de accesos a una base de datos, cantidad de llamadas a determinados procedimientos, etc.). Ello se realiza estáticamente, es decir, sin necesidad de ejecutar los programas. La información sobre el uso de recursos resulta muy útil para una gran variedad de aplicaciones de optimización y verificación de programas, así como para asistir en el diseño de los mismos. Por ejemplo, los programadores pueden utilizar dicha información para elegir diferentes soluciones algorítmicas a un problema; los sistemas de transformación de programas pueden utilizar la información de coste para elegir entre transformaciones alternativas; los compiladores paralelizantes pueden utilizar las estimaciones de coste para realizar control de granularidad, el cual trata de equilibrar el coste debido a la creación y gestión de tareas, con los beneficios de la paralelización. En esta tesis hemos mejorado de manera significativa la implementación de un prototipo existente para el análisis del uso de recursos basado en interpretación abstracta, abordando diversos desafíos relevantes y superando numerosas limitaciones que éste presentaba. El objetivo de dicho prototipo era mostrar la viabilidad de definir el análisis de recursos como un dominio abstracto, y cómo se podían superar las limitaciones de otras herramientas similares que constituyen el estado del arte. Para ello, se implementó como un dominio abstracto en el marco de interpretación abstracta presente en el sistema CiaoPP, PLAI. Hemos mejorado tanto el diseño como la implementación del mencionado prototipo para posibilitar su evolución hacia una herramienta utilizable en el ámbito industrial. Las operaciones abstractas de dicha herramienta dependen en gran medida de la generación, y posterior búsqueda de soluciones en forma cerrada, de relaciones recurrentes, las cuales modelizan el comportamiento, respecto al consumo de recursos, de los componentes del programa y del programa completo. Si bien existen actualmente muchas herramientas capaces de encontrar soluciones en forma cerrada para ciertos tipos de recurrencias, tales como Sistemas de Computación Algebraicos (CAS) y librerías de programación, ninguna de dichas herramientas es capaz de tratar, por sí sola, todos los tipos de recurrencias que surgen durante el análisis de recursos. Existen incluso recurrencias que no las puede resolver ninguna herramienta actual. Esto constituye claramente un cuello de botella para este tipo de análisis del uso de recursos. Por lo tanto, uno de los principales desafíos que hemos abordado en esta tesis es el diseño y desarrollo de un novedoso marco modular para la resolución de relaciones recurrentes, combinando y aprovechando los resultados de resolutores existentes. Además de ello, hemos desarrollado e integrado en nuestro nuevo resolutor una técnica para la obtención de cotas superiores en forma cerrada de una clase característica de relaciones recurrentes que surgen durante el análisis de programas lógicos con parámetros de acumulación. Finalmente, hemos integrado el nuevo análisis de recursos con el marco general para verificación de recursos de CiaoPP, y hemos instanciado dicho marco para la verificación de especificaciones sobre el consumo de energía de programas imperativas embarcados, mostrando la viabilidad y utilidad de la herramienta resultante en una aplicación real.

Relevância:

80.00% 80.00%

Publicador:

Resumo:

Las herramientas de configuración basadas en lenguajes de alto nivel como LabVIEW permiten el desarrollo de sistemas de adquisición de datos basados en hardware reconfigurable FPGA muy complejos en un breve periodo de tiempo. La estandarización del ciclo de diseño hardware/software y la utilización de herramientas como EPICS facilita su integración con la plataforma de adquisición y control ITER CODAC CORE SYSTEM (CCS) basada en Linux. En este proyecto se propondrá una metodología que simplificará el ciclo completo de integración de plataformas novedosas, como cRIO, en las que el funcionamiento del hardware de adquisición puede ser modificado por el usuario para que éste se amolde a sus requisitos específicos. El objetivo principal de este proyecto fin de master es realizar la integración de un sistema cRIO NI9159 y diferentes módulos de E/S analógica y digital en EPICS y en CODAC CORE SYSTEM (CCS). Este último consiste en un conjunto de herramientas software que simplifican la integración de los sistemas de instrumentación y control del experimento ITER. Para cumplir el objetivo se realizarán las siguientes tareas: • Desarrollo de un sistema de adquisición de datos basado en FPGA con la plataforma hardware CompactRIO. En esta tarea se realizará la configuración del sistema y la implementación en LabVIEW para FPGA del hardware necesario para comunicarse con los módulos: NI9205, NI9264, NI9401.NI9477, NI9426, NI9425 y NI9476 • Implementación de un driver software utilizando la metodología de AsynDriver para integración del cRIO con EPICS. Esta tarea requiere definir todos los records necesarios que exige EPICS y crear las interfaces adecuadas que permitirán comunicarse con el hardware. • Implementar la descripción del sistema cRIO y del driver EPICS en el sistema de descripción de plantas de ITER llamado SDD. Esto automatiza la creación de las aplicaciones de EPICS que se denominan IOCs. SUMMARY The configuration tools based in high-level programing languages like LabVIEW allows the development of high complex data acquisition systems based on reconfigurable hardware FPGA in a short time period. The standardization of the hardware/software design cycle and the use of tools like EPICS ease the integration with the data acquisition and control platform of ITER, the CODAC Core System based on Linux. In this project a methodology is proposed in order to simplify the full integration cycle of new platforms like CompactRIO (cRIO), in which the data acquisition functionality can be reconfigured by the user to fits its concrete requirements. The main objective of this MSc final project is to develop the integration of a cRIO NI-9159 and its different analog and digital Input/Output modules with EPICS in a CCS. The CCS consists of a set of software tools that simplifies the integration of instrumentation and control systems in the International Thermonuclear Reactor (ITER) experiment. To achieve such goal the following tasks are carried out: • Development of a DAQ system based on FPGA using the cRIO hardware platform. This task comprehends the configuration of the system and the implementation of the mandatory hardware to communicate to the I/O adapter modules NI9205, NI9264, NI9401, NI9477, NI9426, NI9425 y NI9476 using LabVIEW for FPGA. • Implementation of a software driver using the asynDriver methodology to integrate such cRIO system with EPICS. This task requires the definition of the necessary EPICS records and the creation of the appropriate interfaces that allow the communication with the hardware. • Develop the cRIO system’s description and the EPICS driver in the ITER plant description tool named SDD. This development will automate the creation of EPICS applications, called IOCs.

Relevância:

80.00% 80.00%

Publicador:

Resumo:

La Biología bajo Demanda es un concepto novedoso, que está siendo abordado en la actualidad desde distintos enfoques, que serán expuestos en este documento. Dado este carácter innovador, se trata de un ámbito donde la investigación está muy presente en estos momentos. Las Tecnologías de la Información y Comunicación (TICs) llevan un tiempo aportando soluciones muy efectivas para algunos de los problemas a los que se enfrente actualmente la biología sintética. Una de estas soluciones son las plataformas de Cloud Computing, que aportan un entorno de trabajo escalable, flexible y seguro. Por ello, se ha empleado este tipo de tecnología en este trabajo fin de grado en el área de la biología sintética mediante el concepto de biología bajo demanda. Para desarrollar la plataforma de biología bajo demanda ha sido necesario analizar el estado de esta temática actualmente y sus avances. Además, ha sido estimable el estudio de las opiniones de los miembros del grupo de investigación. Todo ello ha permitido llevar a cabo una captura de requisitos adecuada para el ámbito de este proyecto. Se ha decidido que los servidores de aplicaciones web son la respuesta más adecuada a la hora de implementar las soluciones obtenidas para el desarrollo de la plataforma de biología bajo demanda. En concreto, por sus características, se ha decidido emplear JavaEE de Oracle. El modelo implementado emplea soluciones conocidas y fiables basadas en patrones de diseño software. Así, conseguimos cumplir con uno de los principales objetivos de este proyecto, que es lograr un sistema flexible y escalable. Por otro lado, debido a la incertidumbre que conlleva un área tan innovadora, se ha decidido optar por una metodología ágil. Esto supone un plan de trabajo centrado en reuniones semanales conjuntas con el director y los compañeros del grupo de trabajo, empleando prototipado rápido y programación extrema. Finalmente, se ha conseguido desarrollar una plataforma de biología bajo demanda que puede ser la base para el trabajo de los biólogos del ámbito de la biología sintética en un futuro próximo.---ABSTRACT---Biology on demand is a new concept, which is currently being addressed from different approaches, which will be presented in this document. Given this innovative character, it is an area where research is a main factor right now. Technologies of Information and Communication Technologies (ICTs) have provided very effective solutions to some of the problems that synthetic biology is currently facing. One of these solutions is cloud computing platforms, which provide an environment for scalable, flexible and secure work. Therefore, we have used this technology in this final project in the area of synthetic biology through the concept of biology on demand. To develop a biology-on-demand platform it has been necessary to analyze the state of art. The opinions of members of the research group have also been very influential. All this has allowed us to conduct a proper capture requirements for the scope of this project here developed. It was decided that web application servers are the best answer when it comes to implementing the solutions obtained for the development of biology-on-demand platform. In particular, by its main features, it was decided to use Oracle’s JavaEE. The implemented model uses known and reliable solutions based on software design patterns. So, we get to meet one of the main objectives of this project, which is to achieve a flexible and scalable system. On the other hand, due to the uncertainty involved in such an innovative area, it was appropriate to opt for an agile methodology. The work plan was focused on weekly meetings with the director and coworkers, using additive technology and extreme programming. Finally, this project has been successful in developing a biology-on-demand platform that can be the basis for the work of biologists in the field of synthetic biology in the near future.

Relevância:

80.00% 80.00%

Publicador:

Resumo:

En la presente memoria se describe el trabajo de diseño de una herramienta de interacción persona-ordenador (HMI) para la operación y supervisión de vehículos aéreos no tripulados (UAV). En primer lugar se hace una introducción a los tipos de UAVs y aplicaciones más comunes, describiendo sus características técnicas y los componentes que integra en el sistema. Mediante la revisión y análisis de los diferentes niveles de autonomía y las diferentes soluciones de presentación existentes en el mercado, se identifican los modos de operación y componentes principales de la interfaz. A continuación se describe el diseño final del software de la interfaz y el proceso de desarrollo de la misma, para ello se hace un análisis previo del software robótico sobre el que opera el sistema abordo del UAV y se establecen los enlaces de comunicación entre cada uno de los componentes y los requisitos de integración con el sistema. Finalmente, se muestran las pruebas que se han realizado para validar la construcción de la herramienta. This report outlines the design and construction of a human-machine interface (HMI), designed to facilitate the supervision and operation with unmanned aerial vehicles (UAV). First, it is described an introduction to UAVs classification and application fields, reviewing the hardware features and software integration components. In order to define the basic components and operation modes in the general design, a brief review of the different presentation solutions and autonomous levels is described. As a result, it is presented the final software design, the components details and the system integration requirements. Finally, it is also concluded with some of the tests that have been conducted to validate the design and construction of the human-machine interface