77 resultados para Programming languages (Electronic computers) - Semantics


Relevância:

100.00% 100.00%

Publicador:

Resumo:

En los últimos años el número de dispositivos móviles y smartphones ha aumentado drásticamente, así como el número de aplicaciones destinadas a estos. Los desarrolladores siempre se han visto frenados en la creación de estas aplicaciones debido a la complejidad que supone la diversidad de sistemas operativos (Android, iOS, Windows Phone, etc), que utilizan lenguajes de programación diferentes, haciendo que, para poder desarrollar una aplicación que funcione en estas plataformas, en verdad haya que implementar una aplicación independiente para cada una de las plataformas. Para solucionar este problema han surgido frameworks, como Appcelerator Titanium, que permiten escribir una sola vez la aplicación y compilarla para las diferentes plataformas móviles objetivo. Sin embargo, estos frameworks están aún en estado muy temprano de desarrollo, por lo que no resuelven toda la problemática ni dan una respuesta completa a los desarrolladores. El objetivo de este Trabajo de Fin de Grado ha sido contribuir a la evolución de estos frameworks mediante la creación de un módulo para Appcelerator Titanium que permita construir de manera ágil aplicaciones multiplataforma que hagan uso de visualizadores de información geográfica. Para ello se propone el desarrollo de un módulo de mapa con soporte para capas WMS, rutas y polígonos en WKT, KML y GeoJSON. Se facilitará además que estas aplicaciones puedan acceder a capacidades del hardware como la brújula y el GPS para realizar un seguimiento de la localización, a la vez que se hace uso de la aceleración por el hardware subyacente para mejorar la velocidad y fluidez de la información visualizada en el mapa. A partir de este módulo se ha creado una aplicación que hace uso de todas sus características y posteriormente se ha migrado a la plataforma Wirecloud4Tablet como componente nativo que puede integrarse con otros componentes web (widgets) mediante técnicas de mashup. Gracias a esto se ha podido fusionar por un lado todas las ventajas que ofrece Wirecloud para el rápido desarrollo de aplicaciones sin necesidad de tener conocimientos de programación, junto con las ventajas que ofrecen las aplicaciones nativas en cuanto a rendimiento y características extras. Usando los resultados de este proyecto, se pueden crear de manera ágil aplicaciones composicionales nativas multiplataforma que hagan uso de visualización de información geográfica; es decir, se pueden crear aplicaciones en pocos minutos y sin conocimientos de programación que pueden ejecutar diferentes componentes (como el mapa) de manera nativa en múltiples plataformas. Se facilita también la integración de componentes nativos (como es el mapa desarrollado) con otros componentes web (widgets) en un mashup que puede visualizarse en dispositivos móviles mediante la plataforma Wirecloud. ---ABSTRACT---In recent years the number of mobile devices and smartphones has increased dramatically as well as the number of applications targeted at them. Developers always have been slowed in the creation of these applications due to the complexity caused by the diversity of operating systems (Android, iOS, Windows Phone, etc), each of them using different programming languages, so that, in order to develop an application that works on these platforms, the developer really has to implement a different application for each platform. To solve this problem frameworks such as Appcelerator Titanium have emerged, allowing developers to write the application once and to compile it for different target mobile platforms. However, these frameworks are still in very early stage of development, so they do not solve all the difficulties nor give a complete solution to the developers. The objective of this final year dissertation is to contribute to the evolution of these frameworks by creating a module for Appcelerator Titanium that permits to nimbly build multi-platform applications that make use of geographical information visualization. To this end, the development of a map module with support for WMS layers, paths, and polygons in WKT, KML, and GeoJSON is proposed. This module will also facilitate these applications to access hardware capabilities such as GPS and compass to track the location, while it makes use of the underlying hardware acceleration to improve the speed and fluidity of the information displayed on the map. Based on this module, it has been created an application that makes use of all its features and subsequently it has been migrated to the platform Wirecloud4Tablet as a native component that can be integrated with other web components (widgets) using mashup techniques. As a result, it has been fused on one side all the advantages Wirecloud provides for fast application development without the need of programming skills, along with the advantages of native apps, such as performance and extra features. Using the results of this project, compositional platform native applications that make use of geographical information visualization can be created in an agile way; ie, in a few minutes and without having programming skills, a developer could create applications that can run different components (like the map) natively on multiple platforms. It also facilitates the integration of native components (like the map) with other web components (widgets) in a mashup that can be displayed on mobile devices through the Wirecloud platform.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

Esta tesis estudia la reducción plena (‘full reduction’ en inglés) en distintos cálculos lambda. 1 En esencia, la reducción plena consiste en evaluar los cuerpos de las funciones en los lenguajes de programación funcional con ligaduras. Se toma el cálculo lambda clásico (i.e., puro y sin tipos) como el sistema formal que modela el paradigma de programación funcional. La reducción plena es una técnica fundamental cuando se considera a los programas como datos, por ejemplo para la optimización de programas mediante evaluación parcial, o cuando algún atributo del programa se representa a su vez por un programa, como el tipo en los demostradores automáticos de teoremas actuales. Muchas semánticas operacionales que realizan reducción plena tienen naturaleza híbrida. Se introduce formalmente la noción de naturaleza híbrida, que constituye el hilo conductor de todo el trabajo. En el cálculo lambda la naturaleza híbrida se manifiesta como una ‘distinción de fase’ en el tratamiento de las abstracciones, ya sean consideradas desde fuera o desde dentro de si mismas. Esta distinción de fase conlleva una estructura en capas en la que una semántica híbrida depende de una o más semánticas subsidiarias. Desde el punto de vista de los lenguajes de programación, la tesis muestra como derivar, mediante técnicas de transformación de programas, implementaciones de semánticas operacionales que reducen plenamente a partir de sus especificaciones. Las técnicas de transformación de programas consisten en transformaciones sintácticas que preservan la equivalencia semántica de los programas. Se ajustan las técnicas de transformación de programas existentes para trabajar con implementaciones de semánticas híbridas. Además, se muestra el impacto que tiene la reducción plena en las implementaciones que utilizan entornos. Los entornos son un ingrediente fundamental en las implementaciones realistas de una máquina abstracta. Desde el punto de vista de los sistemas formales, la tesis desvela una teoría novedosa para el cálculo lambda con paso por valor (‘call-by-value lambda calculus’ en inglés) que es consistente con la reducción plena. Dicha teoría induce una noción de equivalencia observacional que distingue más puntos que las teorías existentes para dicho cálculo. Esta contribución ayuda a establecer una ‘teoría estándar’ en el cálculo lambda con paso por valor que es análoga a la ‘teoría estándar’ del cálculo lambda clásico propugnada por Barendregt. Se presentan resultados de teoría de la demostración, y se sugiere como abordar el estudio de teoría de modelos. ABSTRACT This thesis studies full reduction in lambda calculi. In a nutshell, full reduction consists in evaluating the body of the functions in a functional programming language with binders. The classical (i.e., pure untyped) lambda calculus is set as the formal system that models the functional paradigm. Full reduction is a prominent technique when programs are treated as data objects, for instance when performing optimisations by partial evaluation, or when some attribute of the program is represented by a program itself, like the type in modern proof assistants. A notable feature of many full-reducing operational semantics is its hybrid nature, which is introduced and which constitutes the guiding theme of the thesis. In the lambda calculus, the hybrid nature amounts to a ‘phase distinction’ in the treatment of abstractions when considered either from outside or from inside themselves. This distinction entails a layered structure in which a hybrid semantics depends on one or more subsidiary semantics. From a programming languages standpoint, the thesis shows how to derive implementations of full-reducing operational semantics from their specifications, by using program transformations techniques. The program transformation techniques are syntactical transformations which preserve the semantic equivalence of programs. The existing program transformation techniques are adjusted to work with implementations of hybrid semantics. The thesis also shows how full reduction impacts the implementations that use the environment technique. The environment technique is a key ingredient of real-world implementations of abstract machines which helps to circumvent the issue with binders. From a formal systems standpoint, the thesis discloses a novel consistent theory for the call-by-value variant of the lambda calculus which accounts for full reduction. This novel theory entails a notion of observational equivalence which distinguishes more points than other existing theories for the call-by-value lambda calculus. This contribution helps to establish a ‘standard theory’ in that calculus which constitutes the analogous of the ‘standard theory’ advocated by Barendregt in the classical lambda calculus. Some prooftheoretical results are presented, and insights on the model-theoretical study are given.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

This paper suggests a new strategy to develop CAD applications taking into account some of the most interesting proposals which have recently appeared in the technology development arena. Programming languages, operating systems, user devices, software architecture, user interfaces and user experience are among the elements which are considered for a new development framework. This strategy considers the organizational and architectural aspects of the CAD application together with the development framework. The architectural and organizational aspects are based on the programmed design concept, which can be implemented by means of a three-level software architecture. These levels are the conceptual level based on a declarative language, the mathematical level based on the geometric formulation of the product model and the visual level based on the polyhedral representation of the model as required by the graphic card. The development framework which has been considered is Windows 8. This operating system offers three development environments, one for web pplications (HTML5 + CSS3 + JavaScript), and other for native applications C/C++) and of course yet another for .NET applications (C#, VB, F#, etc.). The use rinterface and user experience for non-web application is described ith XAML (a well known declarative XML language) and the 3D API for games and design applications is DirectX. Additionally, Windows 8 facilitates the use of hybrid solutions, in which native and managed code can interoperate easily. Some of the most remarkable advantages of this strategy are the possibility of targeting both desktop and touch screen devices with the same development framework, the usage of several programming paradigms to apply the most appropriate language to each domain and the multilevel segmentation of developers and designers to facilitate the implementation of an open network of collaborators.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

El Framework Lógico de Edimburgo ha demostrado ser una poderosa herramienta en el estudio formal de sistemas deductivos, como por ejemplo lenguajes de programación. Sin embargo su principal implementación, el sistema Twelf, carece de expresividad, obligando al programador a escribir código repetitivo. Este proyecto presenta una manera alternativa de utilizar Twelf: a través de un EDSL (Lenguaje Embebido de Dominio Específico) en Scala que permite representar firmas del Framework Lógico, y apoyándonos en Twelf como backend para la verificación, abrimos la puerta a diversas posibilidades en términos de metaprogramación. El código fuente, así como instrucciones para instalar y configurar, está accesible en https://github.com/akathorn/elfcala. ---ABSTRACT---The Edinburgh Logical Framework has proven to be to be a powerful tool in the formal study of deductive systems, such as programming languages. However, its main implementation, the Twelf system, lacks expressiveness, requiring the programmer to write repetitive code. This project presents an alternative way of using Twelf: by providing a Scala EDSL (Embedded Domain Specific Language) that can encode Logical Framework signatures and relying on Twelf as a backend for the verification, we open the door to different possibilities in terms of metaprogramming. The source code, along with instructions to install and configure, is accessible at https://github.com/akathorn/elfcala

Relevância:

100.00% 100.00%

Publicador:

Resumo:

This paper presents a novel tablet based end-user interface for industrial robot programming (called Hammer). This application makes easier to program tasks for industrial robots like polishing, milling or grinding. It is based on the Scratch programming language, but specifically design and created for Android OS. It is a visual programming concept that allows non-skilled programmer operators to create programs. The application also allows to monitor the tasks while it is being executed by overlapping real time information through augmented reality. The application includes a teach pendant screen that can be customized according to the operator needs at every moment.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

Logic programming (LP) is a family of high-level programming languages which provides high expressive power. With LP, the programmer writes the properties of the result and / or executable specifications instead of detailed computation steps. Logic programming systems which feature tabled execution and constraint logic programming have been shown to increase the declarativeness and efficiency of Prolog, while at the same time making it possible to write very expressive programs. Tabled execution avoids infinite failure in some cases, while improving efficiency in programs which repeat computations. CLP reduces the search tree and brings the power of solving (in)equations over arbitrary domains. Similarly to the LP case, CLP systems can also benefit from the power of tabling. Previous implementations which take ful advantage of the ideas behind tabling (e.g., forcing suspension, answer subsumption, etc. wherever it is necessary to avoid recomputation and terminate whenever possible) did not offer a simple, well-documented, easy-to-understand interface. This would be necessary to make the integratation of arbitrary CLP solvers into existing tabling systems possible. This clearly hinders a more widespread usage of the combination of both facilities. In this thesis we examine the requirements that a constraint solver must fulfill in order to be interfaced with a tabling system. We propose and implement a framework, which we have called Mod TCLP, with a minimal set of operations (e.g., entailment checking and projection) which the constraint solver has to provide to the tabling engine. We validate the design of Mod TCLP by a series of use cases: we re-engineer a previously existing tabled constrain domain (difference constraints) which was connected in an ad-hoc manner with the tabling engine in Ciao Prolog; we integrateHolzbauer’s CLP(Q) implementationwith Ciao Prolog’s tabling engine; and we implement a constraint solver over (finite) lattices. We evaluate its performance with several benchmarks that implement a simple abstract interpreter whose fixpoint is reached by means of tabled execution, and whose domain operations are handled by the constraint over (finite) lattices, where TCLP avoids recomputing subsumed abstractions.---ABSTRACT---La programación lógica con restricciones (CLP) y la tabulación son extensiones de la programación lógica que incrementan la declaratividad y eficiencia de Prolog, al mismo tiempo que hacen posible escribir programasmás expresivos. Las implementaciones anteriores que integran completamente ambas extensiones, incluyendo la suspensión de la ejecución de objetivos siempre que sea necesario, la implementación de inclusión (subsumption) de respuestas, etc., en todos los puntos en los que sea necesario para evitar recomputaciones y garantizar la terminación cuando sea posible, no han proporcionan una interfaz simple, bien documentada y fácil de entender. Esta interfaz es necesaria para permitir integrar resolutores de CLP arbitrarios en el sistema de tabulación. Esto claramente dificulta un uso más generalizado de la integración de ambas extensiones. En esta tesis examinamos los requisitos que un resolutor de restricciones debe cumplir para ser integrado con un sistema de tabulación. Proponemos un esquema (y su implementación), que hemos llamadoMod TCLP, que requiere un reducido conjunto de operaciones (en particular, y entre otras, entailment y proyección de almacenes de restricciones) que el resolutor de restricciones debe ofrecer al sistema de tabulación. Hemos validado el diseño de Mod TCLP con una serie de casos de uso: la refactorización de un sistema de restricciones (difference constraints) previamente conectado de un modo ad-hoc con la tabulación de Ciao Prolog; la integración del sistema de restricciones CLP(Q) de Holzbauer; y la implementación de un resolutor de restricciones sobre retículos finitos. Hemos evaluado su rendimiento con varios programas de prueba, incluyendo la implementación de un intérprete abstracto que alcanza su punto fijo mediante el sistema de tabulación y en el que las operaciones en el dominio son realizadas por el resolutor de restricciones sobre retículos (finitos) donde TCLP evita la recomputación de valores abstractos de las variables ya contenidos en llamadas anteriores.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

Hoy en día asistimos a un creciente interés por parte de la sociedad hacia el cuidado de la salud. Esta afirmación viene apoyada por dos realidades. Por una parte, el aumento de las prácticas saludables (actividad deportiva, cuidado de la alimentación, etc.). De igual manera, el auge de los dispositivos inteligentes (relojes, móviles o pulseras) capaces de medir distintos parámetros físicos como el pulso cardíaco, el ritmo respiratorio, la distancia recorrida, las calorías consumidas, etc. Combinando ambos factores (interés por el estado de salud y disponibilidad comercial de dispositivos inteligentes) están surgiendo multitud de aplicaciones capaces no solo de controlar el estado actual de salud, también de recomendar al usuario cambios de hábitos que lleven hacia una mejora en su condición física. En este contexto, los llamados dispositivos llevables (weareables) unidos al paradigma de Internet de las cosas (IoT, del inglés Internet of Things) permiten la aparición de nuevos nichos de mercado para aplicaciones que no solo se centran en la mejora de la condición física, ya que van más allá proponiendo soluciones para el cuidado de pacientes enfermos, la vigilancia de niños o ancianos, la defensa y la seguridad, la monitorización de agentes de riesgo (como bomberos o policías) y un largo etcétera de aplicaciones por llegar. El paradigma de IoT se puede desarrollar basándose en las existentes redes de sensores inalámbricos (WSN, del inglés Wireless Sensor Network). La conexión de los ya mencionados dispositivos llevables a estas redes puede facilitar la transición de nuevos usuarios hacia aplicaciones IoT. Pero uno de los problemas intrínsecos a estas redes es su heterogeneidad. En efecto, existen multitud de sistemas operativos, protocolos de comunicación, plataformas de desarrollo, soluciones propietarias, etc. El principal objetivo de esta tesis es realizar aportaciones significativas para solucionar no solo el problema de la heterogeneidad, sino también de dotar de mecanismos de seguridad suficientes para salvaguardad la integridad de los datos intercambiados en este tipo de aplicaciones. Algo de suma importancia ya que los datos médicos y biométricos de los usuarios están protegidos por leyes nacionales y comunitarias. Para lograr dichos objetivos, se comenzó con la realización de un completo estudio del estado del arte en tecnologías relacionadas con el marco de investigación (plataformas y estándares para WSNs e IoT, plataformas de implementación distribuidas, dispositivos llevables y sistemas operativos y lenguajes de programación). Este estudio sirvió para tomar decisiones de diseño fundamentadas en las tres contribuciones principales de esta tesis: un bus de servicios para dispositivos llevables (WDSB, Wearable Device Service Bus) basado en tecnologías ya existentes tales como ESB, WWBAN, WSN e IoT); un protocolo de comunicaciones inter-dominio para dispositivos llevables (WIDP, Wearable Inter-Domain communication Protocol) que integra en una misma solución protocolos capaces de ser implementados en dispositivos de bajas capacidades (como lo son los dispositivos llevables y los que forman parte de WSNs); y finalmente, la tercera contribución relevante es una propuesta de seguridad para WSN basada en la aplicación de dominios de confianza. Aunque las contribuciones aquí recogidas son de aplicación genérica, para su validación se utilizó un escenario concreto de aplicación: una solución para control de parámetros físicos en entornos deportivos, desarrollada dentro del proyecto europeo de investigación “LifeWear”. En este escenario se desplegaron todos los elementos necesarios para validar las contribuciones principales de esta tesis y, además, se realizó una aplicación para dispositivos móviles por parte de uno de los socios del proyecto (lo que contribuyó con una validación externa de la solución). En este escenario se usaron dispositivos llevables tales como un reloj inteligente, un teléfono móvil con sistema operativo Android y un medidor del ritmo cardíaco inalámbrico capaz de obtener distintos parámetros fisiológicos del deportista. Sobre este escenario se realizaron diversas pruebas de validación mediante las cuales se obtuvieron resultados satisfactorios. ABSTRACT Nowadays, society is shifting towards a growing interest and concern on health care. This phenomenon can be acknowledged by two facts: first, the increasing number of people practising some kind of healthy activity (sports, balanced diet, etc.). Secondly, the growing number of commercial wearable smart devices (smartwatches or bands) able to measure physiological parameters such as heart rate, breathing rate, distance or consumed calories. A large number of applications combining both facts are appearing. These applications are not only able to monitor the health status of the user, but also to provide recommendations about routines in order to improve the mentioned health status. In this context, wearable devices merged with the Internet of Things (IoT) paradigm enable the proliferation of new market segments for these health wearablebased applications. Furthermore, these applications can provide solutions for the elderly or baby care, in-hospital or in-home patient monitoring, security and defence fields or an unforeseen number of future applications. The introduced IoT paradigm can be developed with the usage of existing Wireless Sensor Networks (WSNs) by connecting the novel wearable devices to them. In this way, the migration of new users and actors to the IoT environment will be eased. However, a major issue appears in this environment: heterogeneity. In fact, there is a large number of operating systems, hardware platforms, communication and application protocols or programming languages, each of them with unique features. The main objective of this thesis is defining and implementing a solution for the intelligent service management in wearable and ubiquitous devices so as to solve the heterogeneity issues that are presented when dealing with interoperability and interconnectivity of devices and software of different nature. Additionally, a security schema based on trust domains is proposed as a solution to the privacy problems arising when private data (e.g., biomedical parameters or user identification) is broadcasted in a wireless network. The proposal has been made after a comprehensive state-of-the-art analysis, and includes the design of a Wearable Device Service Bus (WDSB) including the technologies collected in the requirement analysis (ESB, WWBAN, WSN and IoT). Applications are able to access the WSN services regardless of the platform and operating system where they are running. Besides, this proposal also includes the design of a Wearable Inter-Domain communication Protocols set (WIDP) which integrates lightweight protocols suitable to be used in low-capacities devices (REST, JSON, AMQP, CoAP, etc...). Furthermore, a security solution for service management based on a trustworthy domains model to deploy security services in WSNs has been designed. Although the proposal is a generic framework for applications based on services provided by wearable devices, an application scenario for testing purposes has been included. In this validation scenario it has been presented an autonomous physical condition performance system, based on a WSN, bringing the possibility to include several elements in an IoT scenario: a smartwatch, a physiological monitoring device and a smartphone. In summary, the general objective of this thesis is solving the heterogeneity and security challenges arising when developing applications for WSNs and wearable devices. As it has been presented in the thesis, the solution proposed has been successfully validated in a real scenario and the obtained results were satisfactory.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

Acoplamiento del sistema informático de control de piso de producción (SFS) con el conjunto de equipos de fabricación (SPE) es una tarea compleja. Tal acoplamiento involucra estándares abiertos y propietarios, tecnologías de información y comunicación, entre otras herramientas y técnicas. Debido a la turbulencia de mercados, ya sea soluciones personalizadas o soluciones basadas en estándares eventualmente requieren un esfuerzo considerable de adaptación. El concepto de acoplamiento débil ha sido identificado en la comunidad de diseño organizacional como soporte para la sobrevivencia de la organización. Su presencia reduce la resistencia de la organización a cambios en el ambiente. En este artículo los resultados obtenidos por la comunidad de diseño organizacional son identificados, traducidos y organizados para apoyar en la solución del problema de integración SFS-SPE. Un modelo clásico de acoplamiento débil, desarrollado por la comunidad de estudios de diseño organizacional, es resumido y trasladado al área de interés. Los aspectos claves son identificados para utilizarse como promotores del acoplamiento débil entre SFS-SPE, y presentados en forma de esquema de referencia. Así mismo, este esquema de referencia es presentado como base para el diseño e implementación de una solución genérica de acoplamiento o marco de trabajo (framework) de acoplamiento, a incluir como etapa de acoplamiento débil entre SFS y SPE. Un ejemplo de validación con varios conjuntos de equipos de fabricación, usando diferentes medios físicos de comunicación, comandos de controlador, lenguajes de programación de equipos y protocolos de comunicación es presentado, mostrando un nivel aceptable de autonomía del SFS. = Coupling shop floor software system (SFS) with the set of production equipment (SPE) becomes a complex task. It involves open and proprietary standards, information and communication technologies among other tools and techniques. Due to market turbulence, either custom solutions or standards based solutions eventually require a considerable effort of adaptation. Loose coupling concept has been identified in the organizational design community as a compensator for organization survival. Its presence reduces organization reaction to environment changes. In this paper the results obtained by the organizational de sign community are identified, translated and organized to support the SFS-SPE integration problem solution. A classical loose coupling model developed by organizational studies community is abstracted and translated to the area of interest. Key aspects are identified to be used as promoters of SFS-SPE loose coupling and presented in a form of a reference scheme. Furthermore, this reference scheme is proposed here as a basis for the design and implementation of a generic coupling solution or coupling framework, that is included as a loose coupling stage between SFS and SPE. A validation example with various sets of manufacturing equipment, using different physical communication media, controller commands, programming languages and wire protocols is presented, showing an acceptable level of autonomy gained by the SFS.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

Computer programming is known to be one of the most difficult courses for students in the first year of engineering. They are faced with the challenge of abstract thinking and gaining programming skills for the first time. These skills are acquired by continuous practicing from the start of the course. In order to enhance the motivation and dynamism of the learning and assessment processes, we have proposed the use of three educational resources namely screencasts, self-assessment questionnaires and automated grading of assignments. These resources have been made available in Moodle which is a Learning Management System widely used in education environments and adopted by the Telecommunications Engineering School at the Universidad Politécnica de Madrid (UPM). Both teachers and students can enhance the learning and assessment processes through the use of new educational activities such as self-assessment questionnaires and automated grading of assignments. On the other hand, multimedia resources such as screencasts can guide students in complex topics. The resources proposed allow teachers to improve their tutorial actions since they provide immediate feedback and comments to students without the enormous effort of manual correction and evaluation by teachers specially taking into account the large number of students enrolled in the course. In this paper we present the case study where three proposed educational resources were applied. We describe the special features of the course and explain why the use of these resources can both enhance the students? motivation and improve the teaching and learning processes. Our research work was carried out on students attending the "Computer programming" course offered in the first year of a Telecommunications Engineering degree at UPM. This course is mandatory and has more than 450 enrolled students. Our purpose is to encourage the motivation and dynamism of the learning and assessment processes.

Relevância:

100.00% 100.00%

Publicador:

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.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

Los sistemas empotrados son cada día más comunes y complejos, de modo que encontrar procesos seguros, eficaces y baratos de desarrollo software dirigidos específicamente a esta clase de sistemas es más necesario que nunca. A diferencia de lo que ocurría hasta hace poco, en la actualidad los avances tecnológicos en el campo de los microprocesadores de los últimos tiempos permiten el desarrollo de equipos con prestaciones más que suficientes para ejecutar varios sistemas software en una única máquina. Además, hay sistemas empotrados con requisitos de seguridad (safety) de cuyo correcto funcionamiento depende la vida de muchas personas y/o grandes inversiones económicas. Estos sistemas software se diseñan e implementan de acuerdo con unos estándares de desarrollo software muy estrictos y exigentes. En algunos casos puede ser necesaria también la certificación del software. Para estos casos, los sistemas con criticidades mixtas pueden ser una alternativa muy valiosa. En esta clase de sistemas, aplicaciones con diferentes niveles de criticidad se ejecutan en el mismo computador. Sin embargo, a menudo es necesario certificar el sistema entero con el nivel de criticidad de la aplicación más crítica, lo que hace que los costes se disparen. La virtualización se ha postulado como una tecnología muy interesante para contener esos costes. Esta tecnología permite que un conjunto de máquinas virtuales o particiones ejecuten las aplicaciones con unos niveles de aislamiento tanto temporal como espacial muy altos. Esto, a su vez, permite que cada partición pueda ser certificada independientemente. Para el desarrollo de sistemas particionados con criticidades mixtas se necesita actualizar los modelos de desarrollo software tradicionales, pues estos no cubren ni las nuevas actividades ni los nuevos roles que se requieren en el desarrollo de estos sistemas. Por ejemplo, el integrador del sistema debe definir las particiones o el desarrollador de aplicaciones debe tener en cuenta las características de la partición donde su aplicación va a ejecutar. Tradicionalmente, en el desarrollo de sistemas empotrados, el modelo en V ha tenido una especial relevancia. Por ello, este modelo ha sido adaptado para tener en cuenta escenarios tales como el desarrollo en paralelo de aplicaciones o la incorporación de una nueva partición a un sistema ya existente. El objetivo de esta tesis doctoral es mejorar la tecnología actual de desarrollo de sistemas particionados con criticidades mixtas. Para ello, se ha diseñado e implementado un entorno dirigido específicamente a facilitar y mejorar los procesos de desarrollo de esta clase de sistemas. En concreto, se ha creado un algoritmo que genera el particionado del sistema automáticamente. En el entorno de desarrollo propuesto, se han integrado todas las actividades necesarias para desarrollo de un sistema particionado, incluidos los nuevos roles y actividades mencionados anteriormente. Además, el diseño del entorno de desarrollo se ha basado en la ingeniería guiada por modelos (Model-Driven Engineering), la cual promueve el uso de los modelos como elementos fundamentales en el proceso de desarrollo. Así pues, se proporcionan las herramientas necesarias para modelar y particionar el sistema, así como para validar los resultados y generar los artefactos necesarios para el compilado, construcción y despliegue del mismo. Además, en el diseño del entorno de desarrollo, la extensión e integración del mismo con herramientas de validación ha sido un factor clave. En concreto, se pueden incorporar al entorno de desarrollo nuevos requisitos no-funcionales, la generación de nuevos artefactos tales como documentación o diferentes lenguajes de programación, etc. Una parte clave del entorno de desarrollo es el algoritmo de particionado. Este algoritmo se ha diseñado para ser independiente de los requisitos de las aplicaciones así como para permitir al integrador del sistema implementar nuevos requisitos del sistema. Para lograr esta independencia, se han definido las restricciones al particionado. El algoritmo garantiza que dichas restricciones se cumplirán en el sistema particionado que resulte de su ejecución. Las restricciones al particionado se han diseñado con una capacidad expresiva suficiente para que, con un pequeño grupo de ellas, se puedan expresar la mayor parte de los requisitos no-funcionales más comunes. Las restricciones pueden ser definidas manualmente por el integrador del sistema o bien pueden ser generadas automáticamente por una herramienta a partir de los requisitos funcionales y no-funcionales de una aplicación. El algoritmo de particionado toma como entradas los modelos y las restricciones al particionado del sistema. Tras la ejecución y como resultado, se genera un modelo de despliegue en el que se definen las particiones que son necesarias para el particionado del sistema. A su vez, cada partición define qué aplicaciones deben ejecutar en ella así como los recursos que necesita la partición para ejecutar correctamente. El problema del particionado y las restricciones al particionado se modelan matemáticamente a través de grafos coloreados. En dichos grafos, un coloreado propio de los vértices representa un particionado del sistema correcto. El algoritmo se ha diseñado también para que, si es necesario, sea posible obtener particionados alternativos al inicialmente propuesto. El entorno de desarrollo, incluyendo el algoritmo de particionado, se ha probado con éxito en dos casos de uso industriales: el satélite UPMSat-2 y un demostrador del sistema de control de una turbina eólica. Además, el algoritmo se ha validado mediante la ejecución de numerosos escenarios sintéticos, incluyendo algunos muy complejos, de más de 500 aplicaciones. ABSTRACT The importance of embedded software is growing as it is required for a large number of systems. Devising cheap, efficient and reliable development processes for embedded systems is thus a notable challenge nowadays. Computer processing power is continuously increasing, and as a result, it is currently possible to integrate complex systems in a single processor, which was not feasible a few years ago.Embedded systems may have safety critical requirements. Its failure may result in personal or substantial economical loss. The development of these systems requires stringent development processes that are usually defined by suitable standards. In some cases their certification is also necessary. This scenario fosters the use of mixed-criticality systems in which applications of different criticality levels must coexist in a single system. In these cases, it is usually necessary to certify the whole system, including non-critical applications, which is costly. Virtualization emerges as an enabling technology used for dealing with this problem. The system is structured as a set of partitions, or virtual machines, that can be executed with temporal and spatial isolation. In this way, applications can be developed and certified independently. The development of MCPS (Mixed-Criticality Partitioned Systems) requires additional roles and activities that traditional systems do not require. The system integrator has to define system partitions. Application development has to consider the characteristics of the partition to which it is allocated. In addition, traditional software process models have to be adapted to this scenario. The V-model is commonly used in embedded systems development. It can be adapted to the development of MCPS by enabling the parallel development of applications or adding an additional partition to an existing system. The objective of this PhD is to improve the available technology for MCPS development by providing a framework tailored to the development of this type of system and by defining a flexible and efficient algorithm for automatically generating system partitionings. The goal of the framework is to integrate all the activities required for developing MCPS and to support the different roles involved in this process. The framework is based on MDE (Model-Driven Engineering), which emphasizes the use of models in the development process. The framework provides basic means for modeling the system, generating system partitions, validating the system and generating final artifacts. The framework has been designed to facilitate its extension and the integration of external validation tools. In particular, it can be extended by adding support for additional non-functional requirements and support for final artifacts, such as new programming languages or additional documentation. The framework includes a novel partitioning algorithm. It has been designed to be independent of the types of applications requirements and also to enable the system integrator to tailor the partitioning to the specific requirements of a system. This independence is achieved by defining partitioning constraints that must be met by the resulting partitioning. They have sufficient expressive capacity to state the most common constraints and can be defined manually by the system integrator or generated automatically based on functional and non-functional requirements of the applications. The partitioning algorithm uses system models and partitioning constraints as its inputs. It generates a deployment model that is composed by a set of partitions. Each partition is in turn composed of a set of allocated applications and assigned resources. The partitioning problem, including applications and constraints, is modeled as a colored graph. A valid partitioning is a proper vertex coloring. A specially designed algorithm generates this coloring and is able to provide alternative partitions if required. The framework, including the partitioning algorithm, has been successfully used in the development of two industrial use cases: the UPMSat-2 satellite and the control system of a wind-power turbine. The partitioning algorithm has been successfully validated by using a large number of synthetic loads, including complex scenarios with more that 500 applications.

Relevância:

100.00% 100.00%

Publicador:

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.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

The history of Software Engineering has been marked by many famous project failures documented in papers, articles and books. This pattern of lack of success has prompted the creation of dozens of software analysis, requirements definition, and design methods, programming languages, software development environments and software development processes all promoted as solving ?the software problem.? What we hear less about are software projects that were successful. This article reports on the findings of an extensive analysis of successful software projects that have been reported in the literature. It discusses the different interpretations of success and extracts the characteristics that successful projects have in common. These characteristics provide Software Project Managers with an agenda of topics to be addressed that will help ensure, not guarantee, that their software project will be successful.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

El proyecto “Aplicación móvil y web para la gestión de lugares geolocalizados (www.midiez.com)” tiene como objetivo principal crear un repositorio de listas categorizadas de sitios para su uso en el ámbito personal o comercial. Tanto la aplicación web como la aplicación móvil desarrollada en Android tienen el propósito de gestionar listas de lugares de interés (Restaurantes, tiendas,..) o con propósitos específicos (Organización de viajes) o simplemente como una forma de anotar aquellos sitios que nos comentan y que nos gustaría visitar. El desarrollo de este proyecto además permitirá contrastar las distintas alternativas y la evolución de las distintas herramientas que se han ido desarrollando para la gestión del ocio en los últimos años desde el sistema Android y plataformas web. Todo el proyecto ha sido realizado usando software libre (PHP para el lenguaje web servidor y Java para la programación móvil). La principal finalidad desde el punto de vista del desarrollador es: aprovechar las sinergias de la programación móvil y la programación web de manera que las mismas capas de negocio de Datos sean usadas por ambas plataformas. Asimismo crear una aplicación distribuida y fácilmente escalable. Las herramientas que se han usado para desarrollar han sido: la SDK proporcionada por Google, una JDK de Java y un IDE de desarrollo Java como es Eclipse y otro similar para el desarrollo de la parte PHP. La BBDD elegida ha sido MySQL. El proyecto pretende mostrar el potencial de las aplicaciones móviles geolocalizadas desde el punto de vista del ocio y compararlas con el estado del arte actual. Por lo tanto la mayor parte del tiempo dedicado al proyecto ha sido empleado en el desarrollo de la aplicación web, la aplicación móvil y en la base de datos pero también he dedicado una pequeña parte del trabajo para realizar un estudio sobre las consecuencias que esta tecnología está teniendo en nuestros cerebros. ABSTRACT The project "Web and Mobile App for managing geolocation places” has as main objective managing of places lists in order to use them in the leisure time scope. Nowadays the use of GPS is being a constant in mobile applications so that is already part of our daily life. We used to know where we are always and at the same time we can find locations using the technology of our mobile phones. Now it is very difficult to get lost outside but also is difficult to explain somebody how to get to anywhere without using Google Maps. Google Maps, Geolocation, gps navigators, … all that kind of stuff are making our life easier and less complicated but also are making our brains lazier. Furthermore, the development of this project will use the potential of locate places into maps to avoid annotate every spot we would like to visit or a brand new restaurant. The project itself shows the location features of Google Maps combined with an places data base in order to create, and manage places lists and use them to get to them as well as to share those places with our contacts. Also, the main purpose from the point of view of the developer is to combine different programming languages and use the resulting synergies in a easily scalable and portable environment. The tools that have been used to develop are: the SDK provided by Google, one JDK Java and Java development IDE such as Eclipse and similar to the development of the PHP part. The DB has been chosen MySQL. Finally, this project aims to show, from an educational point of view, the use and potential of this technology. Thus, it has been devoted a large amount of time of the project (and, consequently, its documentation) on develop the Android app, the data base and the web app but also but also to highlight the consequences of using technology.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

Este proyecto trata el desarrollo de un weblog sobre tecnología e internet siguiendo la Metodología de December, abordando todas sus etapas e incorporando otros aspectos a la metodología que han enriquecido el proyecto hasta su resultado final. Se pretende realizar una aplicación web con la funcionalidad de un weblog centrándose tanto en la parte del usuario final como del administrador de la web. Que este weblog sirva para compartir conocimientos de forma dinámica actualizándose con frecuencia y para usuarios con inquietudes tecnologías y con mayor o menor nivel de conocimientos. Se pone especial interés en la usabilidad de la herramienta y es tenida en cuenta a lo largo de todo el ciclo de vida de la metodología. Como punto de partida para estructurar la aplicación se toma como metodología de desarrollo la metodología December enfocada al desarrollo web y como a partir de ella se da forma a lo que hoy es el proyecto completo. Se tienen en cuenta cada una de sus etapas en las cuales se va avanzando para ir completando cada pieza del desarrollo final. Se intenta también en esta memoria abordar datos más técnicos de la herramienta, desde la elección de los lenguajes utilizados hasta el diseño de la estructura de base de datos, los procesos que intervienen en la aplicación y las decisiones más subjetivas de diseño de la interface web. En todo momento se ha intentado estructurar la memoria de tal forma que resultará clara y concisa, fácil de leer. Plasmando en ella todo el proceso de realización del proyecto. ABSTRACT This project involves the development of a technology and internet weblog following the December’s Methodology, covering all stages and adding other aspects to this methodology that have enriched the project to its final result. I plan to develop a web application with the functionality of a weblog focusing on both, the end user and the webmaster. A weblog to share knowledge in a dynamic and updated way, for users concerned with technologies and different levels of expertise. Special emphasis has been made on the usability of the web tool, taking this aspect into account through the entire methodology’s life cycle. To begin the development, the application structure is based on December’s methodology focused on web development. The whole project is built from this methodology. All the stages have been taken into account to complete each part of the final development. This project deals with technical data of the web tool, from the choice of the programming languages used to the design of the database structure, the processes involved in the application and the subjective decisions of interface design. At all times I have tried to structure the report in a clear, concise and easy to read way, reflecting it in the whole process of the project.