61 resultados para INGENIERÍA DE SOFTWARE


Relevância:

60.00% 60.00%

Publicador:

Resumo:

Una de las dificultades principales en el desarrollo de software es la ausencia de un marco conceptual adecuado para su estudio. Una propuesta la constituye el modelo transformativo, que entiende el desarrollo de software como un proceso iterativo de transformación de especificaciones: se parte de una especificación inicial que va transformándose sucesivamente hasta obtener una especificación final que se toma como programa. Este modelo básico puede llevarse a la práctica de varias maneras. En concreto, la aproximación deductiva toma una sentencia lógica como especificación inicial y su proceso transformador consiste en la demostración de la sentencia; como producto secundario de la demostración se deriva un programa que satisface la especificación inicial. La tesis desarrolla un método deductivo para la derivación de programas funcionales con patrones, escritos en un lenguaje similar a Hope. El método utiliza una lógica multigénero, cuya relación con el lenguaje de programación es estudiada. También se identifican los esquemas de demostración necesarios para la derivación de funciones con patrones, basados en la demostración independiente de varias subsentencias. Cada subsentencia proporciona una subespecificación de una ecuación del futuro programa a derivar. Nuestro método deductivo está inspirado en uno previo de Zohar Manna y Richard Waldinger, conocido como el cuadro deductivo, que deriva programas en un lenguaje similar a Lisp. El nuevo método es una modificación del cuadro de estos autores, que incorpora géneros y permite demostrar una especificación mediante varios cuadros. Cada cuadro demuestra una subespecificación y por tanto deriva una ecuación del programa. Se prevén mecanismos para que los programas derivados puedan contener definiciones locales con patrones y variables anónimas y sinónimas y para que las funciones auxiliares derivadas no usen variables de las funciones principales. La tesis se completa con varios ejemplos de aplicación, un mecanismo que independentiza el método del lenguaje de programación y un prototipo de entorno interactivo de derivación deductiva. Categorías y descriptores de materia CR D.l.l [Técnicas de programación]: Programación funcional; D.2.10 [Ingeniería de software]: Diseño - métodos; F.3.1 [Lógica y significado de los programas]: Especificación, verificación y razonamiento sobre programas - lógica de programas; F.3.3 [Lógica y significado de los programas]: Estudios de construcciones de programas - construcciones funcionales; esquemas de programa y de recursion; 1.2.2 [Inteligencia artificial]: Programación automática - síntesis de programas; 1.2.3 [Inteligencia artificial]: Deducción y demostración de teoremas]: extracción de respuesta/razón; inducción matemática. Términos generales Programación funcional, síntesis de programas, demostración de teoremas. Otras palabras claves y expresiones Funciones con patrones, cuadro deductivo, especificación parcial, inducción estructural, teorema de descomposición.---ABSTRACT---One of the main difficulties in software development is the lack of an adequate conceptual framework of study. The transformational model is one such proposal that conceives software development as an iterative process of specifications transformation: an initial specification is developed and successively transformed until a final specification is obtained and taken as a program. This basic model can be implemented in several ways. The deductive approach takes a logical sentence as the initial specification and its proof constitutes the transformational process; as a byproduct of the proof, a program which satisfies the initial specification is derived. In the thesis, a deductive method for the derivation of Hope-like functional programs with patterns is developed. The method uses a many-sorted logic, whose relation to the programming language is studied. Also the proof schemes necessary for the derivation of functional programs with patterns, based on the independent proof of several subsentences, are identified. Each subsentence provides a subspecification of one equation of the future program to be derived. Our deductive method is inspired on a previous one by Zohar Manna and Richard Waldinger, known as the deductive tableau, which derives Lisp-like programs. The new method incorporates sorts in the tableau and allows to prove a sentence with several tableaux. Each tableau proves a subspecification and therefore derives an equation of the program. Mechanisms are included to allow the derived programs to contain local definitions with patterns and anonymous and synonymous variables; also, the derived auxiliary functions cannot reference parameters of their main functions. The thesis is completed with several application examples, i mechanism to make the method independent from the programming language and an interactive environment prototype for deductive derivation. CR categories and subject descriptors D.l.l [Programming techniques]: Functional programming; D.2.10 [Software engineering]: Design - methodologies; F.3.1 [Logics and meanings of programa]: Specifying and verifying and reasoning about programs - logics of programs; F.3.3 [Logics and meanings of programs]: Studies of program constructs - functional constructs; program and recursion schemes; 1.2.2 [Artificial intelligence]: Automatic programming - program synthesis; 1.2.3 [Artificial intelligence]: Deduction and theorem proving - answer/reason extraction; mathematical induction. General tenas Functional programming, program synthesis, theorem proving. Additional key words and phrases Functions with patterns, deductive tableau, structural induction, partial specification, descomposition theorem.

Relevância:

60.00% 60.00%

Publicador:

Resumo:

El auge del "Internet de las Cosas" (IoT, "Internet of Things") y sus tecnologías asociadas han permitido su aplicación en diversos dominios de la aplicación, entre los que se encuentran la monitorización de ecosistemas forestales, la gestión de catástrofes y emergencias, la domótica, la automatización industrial, los servicios para ciudades inteligentes, la eficiencia energética de edificios, la detección de intrusos, la gestión de desastres y emergencias o la monitorización de señales corporales, entre muchas otras. La desventaja de una red IoT es que una vez desplegada, ésta queda desatendida, es decir queda sujeta, entre otras cosas, a condiciones climáticas cambiantes y expuestas a catástrofes naturales, fallos de software o hardware, o ataques maliciosos de terceros, por lo que se puede considerar que dichas redes son propensas a fallos. El principal requisito de los nodos constituyentes de una red IoT es que estos deben ser capaces de seguir funcionando a pesar de sufrir errores en el propio sistema. La capacidad de la red para recuperarse ante fallos internos y externos inesperados es lo que se conoce actualmente como "Resiliencia" de la red. Por tanto, a la hora de diseñar y desplegar aplicaciones o servicios para IoT, se espera que la red sea tolerante a fallos, que sea auto-configurable, auto-adaptable, auto-optimizable con respecto a nuevas condiciones que puedan aparecer durante su ejecución. Esto lleva al análisis de un problema fundamental en el estudio de las redes IoT, el problema de la "Conectividad". Se dice que una red está conectada si todo par de nodos en la red son capaces de encontrar al menos un camino de comunicación entre ambos. Sin embargo, la red puede desconectarse debido a varias razones, como que se agote la batería, que un nodo sea destruido, etc. Por tanto, se hace necesario gestionar la resiliencia de la red con el objeto de mantener la conectividad entre sus nodos, de tal manera que cada nodo IoT sea capaz de proveer servicios continuos, a otros nodos, a otras redes o, a otros servicios y aplicaciones. En este contexto, el objetivo principal de esta tesis doctoral se centra en el estudio del problema de conectividad IoT, más concretamente en el desarrollo de modelos para el análisis y gestión de la Resiliencia, llevado a la práctica a través de las redes WSN, con el fin de mejorar la capacidad la tolerancia a fallos de los nodos que componen la red. Este reto se aborda teniendo en cuenta dos enfoques distintos, por una parte, a diferencia de otro tipo de redes de dispositivos convencionales, los nodos en una red IoT son propensos a perder la conexión, debido a que se despliegan en entornos aislados, o en entornos con condiciones extremas; por otra parte, los nodos suelen ser recursos con bajas capacidades en términos de procesamiento, almacenamiento y batería, entre otros, por lo que requiere que el diseño de la gestión de su resiliencia sea ligero, distribuido y energéticamente eficiente. En este sentido, esta tesis desarrolla técnicas auto-adaptativas que permiten a una red IoT, desde la perspectiva del control de su topología, ser resiliente ante fallos en sus nodos. Para ello, se utilizan técnicas basadas en lógica difusa y técnicas de control proporcional, integral y derivativa (PID - "proportional-integral-derivative"), con el objeto de mejorar la conectividad de la red, teniendo en cuenta que el consumo de energía debe preservarse tanto como sea posible. De igual manera, se ha tenido en cuenta que el algoritmo de control debe ser distribuido debido a que, en general, los enfoques centralizados no suelen ser factibles a despliegues a gran escala. El presente trabajo de tesis implica varios retos que conciernen a la conectividad de red, entre los que se incluyen: la creación y el análisis de modelos matemáticos que describan la red, una propuesta de sistema de control auto-adaptativo en respuesta a fallos en los nodos, la optimización de los parámetros del sistema de control, la validación mediante una implementación siguiendo un enfoque de ingeniería del software y finalmente la evaluación en una aplicación real. Atendiendo a los retos anteriormente mencionados, el presente trabajo justifica, mediante una análisis matemático, la relación existente entre el "grado de un nodo" (definido como el número de nodos en la vecindad del nodo en cuestión) y la conectividad de la red, y prueba la eficacia de varios tipos de controladores que permiten ajustar la potencia de trasmisión de los nodos de red en respuesta a eventuales fallos, teniendo en cuenta el consumo de energía como parte de los objetivos de control. Así mismo, este trabajo realiza una evaluación y comparación con otros algoritmos representativos; en donde se demuestra que el enfoque desarrollado es más tolerante a fallos aleatorios en los nodos de la red, así como en su eficiencia energética. Adicionalmente, el uso de algoritmos bioinspirados ha permitido la optimización de los parámetros de control de redes dinámicas de gran tamaño. Con respecto a la implementación en un sistema real, se han integrado las propuestas de esta tesis en un modelo de programación OSGi ("Open Services Gateway Initiative") con el objeto de crear un middleware auto-adaptativo que mejore la gestión de la resiliencia, especialmente la reconfiguración en tiempo de ejecución de componentes software cuando se ha producido un fallo. Como conclusión, los resultados de esta tesis doctoral contribuyen a la investigación teórica y, a la aplicación práctica del control resiliente de la topología en redes distribuidas de gran tamaño. Los diseños y algoritmos presentados pueden ser vistos como una prueba novedosa de algunas técnicas para la próxima era de IoT. A continuación, se enuncian de forma resumida las principales contribuciones de esta tesis: (1) Se han analizado matemáticamente propiedades relacionadas con la conectividad de la red. Se estudia, por ejemplo, cómo varía la probabilidad de conexión de la red al modificar el alcance de comunicación de los nodos, así como cuál es el mínimo número de nodos que hay que añadir al sistema desconectado para su re-conexión. (2) Se han propuesto sistemas de control basados en lógica difusa para alcanzar el grado de los nodos deseado, manteniendo la conectividad completa de la red. Se han evaluado diferentes tipos de controladores basados en lógica difusa mediante simulaciones, y los resultados se han comparado con otros algoritmos representativos. (3) Se ha investigado más a fondo, dando un enfoque más simple y aplicable, el sistema de control de doble bucle, y sus parámetros de control se han optimizado empleando algoritmos heurísticos como el método de la entropía cruzada (CE, "Cross Entropy"), la optimización por enjambre de partículas (PSO, "Particle Swarm Optimization"), y la evolución diferencial (DE, "Differential Evolution"). (4) Se han evaluado mediante simulación, la mayoría de los diseños aquí presentados; además, parte de los trabajos se han implementado y validado en una aplicación real combinando técnicas de software auto-adaptativo, como por ejemplo las de una arquitectura orientada a servicios (SOA, "Service-Oriented Architecture"). ABSTRACT The advent of the Internet of Things (IoT) enables a tremendous number of applications, such as forest monitoring, disaster management, home automation, factory automation, smart city, etc. However, various kinds of unexpected disturbances may cause node failure in the IoT, for example battery depletion, software/hardware malfunction issues and malicious attacks. So, it can be considered that the IoT is prone to failure. The ability of the network to recover from unexpected internal and external failures is known as "resilience" of the network. Resilience usually serves as an important non-functional requirement when designing IoT, which can further be broken down into "self-*" properties, such as self-adaptive, self-healing, self-configuring, self-optimization, etc. One of the consequences that node failure brings to the IoT is that some nodes may be disconnected from others, such that they are not capable of providing continuous services for other nodes, networks, and applications. In this sense, the main objective of this dissertation focuses on the IoT connectivity problem. A network is regarded as connected if any pair of different nodes can communicate with each other either directly or via a limited number of intermediate nodes. More specifically, this thesis focuses on the development of models for analysis and management of resilience, implemented through the Wireless Sensor Networks (WSNs), which is a challenging task. On the one hand, unlike other conventional network devices, nodes in the IoT are more likely to be disconnected from each other due to their deployment in a hostile or isolated environment. On the other hand, nodes are resource-constrained in terms of limited processing capability, storage and battery capacity, which requires that the design of the resilience management for IoT has to be lightweight, distributed and energy-efficient. In this context, the thesis presents self-adaptive techniques for IoT, with the aim of making the IoT resilient against node failures from the network topology control point of view. The fuzzy-logic and proportional-integral-derivative (PID) control techniques are leveraged to improve the network connectivity of the IoT in response to node failures, meanwhile taking into consideration that energy consumption must be preserved as much as possible. The control algorithm itself is designed to be distributed, because the centralized approaches are usually not feasible in large scale IoT deployments. The thesis involves various aspects concerning network connectivity, including: creation and analysis of mathematical models describing the network, proposing self-adaptive control systems in response to node failures, control system parameter optimization, implementation using the software engineering approach, and evaluation in a real application. This thesis also justifies the relations between the "node degree" (the number of neighbor(s) of a node) and network connectivity through mathematic analysis, and proves the effectiveness of various types of controllers that can adjust power transmission of the IoT nodes in response to node failures. The controllers also take into consideration the energy consumption as part of the control goals. The evaluation is performed and comparison is made with other representative algorithms. The simulation results show that the proposals in this thesis can tolerate more random node failures and save more energy when compared with those representative algorithms. Additionally, the simulations demonstrate that the use of the bio-inspired algorithms allows optimizing the parameters of the controller. With respect to the implementation in a real system, the programming model called OSGi (Open Service Gateway Initiative) is integrated with the proposals in order to create a self-adaptive middleware, especially reconfiguring the software components at runtime when failures occur. The outcomes of this thesis contribute to theoretic research and practical applications of resilient topology control for large and distributed networks. The presented controller designs and optimization algorithms can be viewed as novel trials of the control and optimization techniques for the coming era of the IoT. The contributions of this thesis can be summarized as follows: (1) Mathematically, the fault-tolerant probability of a large-scale stochastic network is analyzed. It is studied how the probability of network connectivity depends on the communication range of the nodes, and what is the minimum number of neighbors to be added for network re-connection. (2) A fuzzy-logic control system is proposed, which obtains the desired node degree and in turn maintains the network connectivity when it is subject to node failures. There are different types of fuzzy-logic controllers evaluated by simulations, and the results demonstrate the improvement of fault-tolerant capability as compared to some other representative algorithms. (3) A simpler but more applicable approach, the two-loop control system is further investigated, and its control parameters are optimized by using some heuristic algorithms such as Cross Entropy (CE), Particle Swarm Optimization (PSO), and Differential Evolution (DE). (4) Most of the designs are evaluated by means of simulations, but part of the proposals are implemented and tested in a real-world application by combining the self-adaptive software technique and the control algorithms which are presented in this thesis.

Relevância:

60.00% 60.00%

Publicador:

Resumo:

Trabajo Ya Publicado de Congreso CORE A

Relevância:

60.00% 60.00%

Publicador:

Resumo:

Historically, teachers have always searched for a connection with their students to make education interesting and a vital experience. In the 19th century, pedagogue Johann Heinrich Pestalozzi taught children how to sum using wood blocks. His successors have followed his legacy and today they use a wide variety of media, including board games, in order to reach out to their students. These methods are denominated educational technologies, which are defined as the study and ethical practice of facilitating learning and improving performance by creating, using, and managing appropriate technological processes and resources. With the advent of the information technologies, teachers have at their disposal new media with which they can increase the interest of their students. This technologic revolution is changing the present educational model. The objective of this dissertation is to develop an educational videogame in order to help students learn mathematics. To reach this goal, the videogame has been developed with the game engine Unity as the main tool. Additionally, agile software development methodologies as well as other software engineering techniques have also been used. The result is Riskmatica, an educational videogame based on geographical domination in which knowledge is the best weapon. The players must conquer enemy teritories answering correctly a mathecatical question. Moreover the videogame has the functionality required to configure a new game and input new questions. To conclude, this project has created an educational technology which greatly appeals to students and that can be used by the educators to improve their lessons in mathematics.---RESUMEN---A lo largo de la historia, los educadores siempre han buscado conectar con los alumnos para poder captar su interés y hacer que la educación se convierta en una experiencia vital. El pedagogo Johann Heinrich Pestalozzi conseguía esto en el siglo XIX, enseñando a niños a contar con bloques de madera. Sus sucesores han seguido su legado y hoy en día utilizan variedad de medios con los que motivar a sus alumnos, en algunos casos los juegos de mesa. Estos métodos son denominados tecnologías educativas, que se definen como los estudios y prácticas éticas que facilitan y mejoran la enseñanza, mediante la creación, el uso y el empleo de procesos y recursos tecnológicos. Con el advenimiento de las tecnologías de la información, los educadores tienen a su disposición un nuevo medio con el que llegar al alumnado. Esta revolución tecnológica está cambiando el modelo educativo actual. El objetivo de este proyecto es el de crear un videojuego educativo que ayude a los alumnos a estudiar matemáticas. Para lograrlo se ha utilizado el popular motor de videojuego Unity como herramienta principal. También se han empleado metodologías ágiles de desarrollo además de otras técnicas de ingeniería del software. El resultado es Riskmática, un videojuego educativo de dominación geográfica en el que el arma más eficaz es el conocimiento. Los jugadores deberán conquistar territorios a sus adversarios mediante la respuesta de preguntas de carácter matemático. Además el videojuego cuenta con la funcionalidad necesaria para configurar una partida e introducir nuevas preguntas. Como conlusión, este proyecto ha logrado crear una tecnología educativa muy atractiva para los alumnos con la que los profesores pueden mejorar la enseñanza de las matemáticas.

Relevância:

60.00% 60.00%

Publicador:

Resumo:

Uno de los aspectos que ha cobrado mayor protagonismo desde la aplicación del Espacio Europeo de Educación Superior (EEES) es la atención tutorial al alumno como forma de incidir positivamente en su proceso de aprendizaje. Por ello, dentro del campo de la innovación educativa se están definiendo metodologías docentes y herramientas TIC de apoyo a la acción tutorial. Estas metodologías y herramientas pretenden mejorar el servicio de atención a los alumnos contribuyendo entre otros aspectos a la sistematización de tareas implicadas en la acción tutorial y a la automatización de algunas de ellas mediante la utilización de herramientas informáticas. Este trabajo propone la utilización en el marco del EEES de una metodología de acción tutorial apoyada en herramientas TIC para la reserva y atención de tutorías, en concreto, la herramienta TutorialAction, que facilita la reserva de tutorías por parte del alumno y el registro de las mismas por parte del profesor. La investigación ha tenido como objetivos, en primer lugar, poner a disposición de alumnos y profesores la metodología y herramienta software definidas explorando aspectos de interés sobre la acción tutorial que permitan afinar ambas, y en segundo lugar determinar la influencia de la acción tutorial en el rendimiento académico en consonancia con el EEES. La muestra analizada corresponde a estudiantes y profesores del Grado en Ingeniería del Software de la Universidad Politécnica de Madrid durante los cursos académicos 2011-12 y 2012-13. Los instrumentos utilizados en la investigación han incluido dos cuestionarios, uno orientado a conocer la opinión de los alumnos y otro la de los profesores; así como los datos registrados por la herramienta TutorialAction sobre reserva, asistencia y atención de tutorías y las calificaciones obtenidas por los alumnos que componen la muestra. Los resultados obtenidos reflejan una mayor asistencia a tutorías en las asignaturas objeto de estudio y una valoración positiva sobre la utilización de la herramienta TutorialAction. Los resultados también han permitido identificar aspectos como la duración media de tutorías, el tipo de tutorías predominante, así como su periodicidad. Por otra parte, en línea con los objetivos de esta investigación se ha encontrado una correlación moderada, positiva y significativa entre la asistencia a tutorías y la calificación obtenida por los alumnos. Estos resultados permiten concluir que la metodología y herramienta presentadas en este trabajo resultan de utilidad para implementar una acción tutorial de calidad entre profesor y alumno en el marco del EEES, así como que la asistencia a tutorías constituye un factor relevante que incide positivamente en los resultados académicos del alumno.

Relevância:

60.00% 60.00%

Publicador:

Resumo:

En el presente proyecto se propone la definición e implementación de un subsistema de monitorización para un sistema de tiempo real distribuido. Este monitor supervisará el estado de todos los componentes software y hardware del sistema original, y permitirá el arranque y parada de cada componente individualmente o del subsistema completo. Constará de dos componentes básicos: un supervisor local para cada subsistema, y un supervisor central con interfaz gráfica. El supervisor local es un componente software asociado a cada subsistema que realizará las funciones de monitorización, arranque/parada de los componentes y envío de informes al supervisor central. Atenderá además a los comandos de arranque y parada provenientes del supervisor central. El supervisor central recibirá los informes de estado de cada uno de los supervisores locales y permitirá el arranque y parada de los subsistemas. Contará con un interfaz gráfico a modo de posición de control. El sistema será desarrollado íntegramente (salvo la posición gráfica) en ADA95, y podrá ejecutarse en cualquiera de las distribuciones Linux más extendidas. En el contexto de Ingeniería de Software, se seguirá un desarrollo en cascada, aportándose los requisitos, el diseño, la codificación y un plan de pruebas. Abstract In this project, the definition and implementation of a monitoring system is proposed for a previously defined real-time distributed system. This supervisory system will monitor the status of each subsystem and its software and hardware components. This new system will also be able to start and stop each individual component and start or stop the entire system. It will consist of two basic components: a local supervisor for each subsystem, and a central supervisor with a graphical unit interface (GUI). The local supervisor will be a software component attached to each original subsystem, which will perform functions such as components monitoring, start and stop the associated subsystem, and sending reports to the central supervisor. It also will attend the start and stop commands from the central supervisor. The central supervisor will receive status reports from each of the local supervisors and will allow starting and stopping the subsystems. It will offer a graphical interface to be used as a main control panel. The system will be developed in ADA 95 (except the graphical position), and should work on any of the most common Linux distributions. In the context of Software Engineering, the project will be developed following a waterfall life cycle. Reports on the stages of requirements, design, coding and testing plan shall be provided.

Relevância:

60.00% 60.00%

Publicador:

Resumo:

La calidad es uno de los principales retos de la construcción de software. En la Ingeniería del Software (IS) se considera a la usabilidad como un atributo de calidad. Al principio se veía a la usabilidad como un requisito no funcional.Se asumía que la usabilidad era una propiedad exclusiva de la presentación de la información.Se creía que separando la capa de presentación del resto, se podía desarrollar un producto software usable.Debido a la naturaleza del sistema y a las necesidades del usuario, a menudo se debe ir más lejos y no basta con tener en cuenta la presentación para obtener un software usable. La comunidad de la Interacción Personar Ordenador (IPO) ha propuesto recomendaciones para mejorar la usabilidad. Algunas de esas recomendaciones tienen impacto directo en la funcionalidad del producto software. En estudios recientes también se ha evaluado la relación entre la usabilidad y los requisitos funcionales. Estas investigaciones sugieren que la usabilidad debe ser tenida en cuenta desde las etapas iniciales de la construcción para evitar costosos cambios posteriores. La incorporación de las características de usabilidad agrega cierta complejidad al proceso de desarrollo. El presente trabajo evalúa la posibilidad de usar patrones para la incorporación de usabilidad en el desarrollo de un producto software. Concretamente se evalúan los siguientes patrones de programación de usabilidad (PPUs): Abort Operation,Progress Feedback y Preferences. Se utilizan unas Pautas de Desarrollo de Mecanismos de Usabilidad(PDMUs) para estos tres mecanismos de usabilidad. Estas pautas poponen patrones para la educción y posterior incorporación de la usabilidad en las distintas fases de la programación. En esta investigación se aborda el desarrollo de un producto software desde la deducción de requisitos hasta la implementación. En cada fase se incorporan los mecanismos de usabilidad de acuerdo a las recomendaciones de las PDMUs. Mediante el desarrollo de un software real se ha evaluado la factibilidad del uso de las PDMUs obteniendo como resultado propuestas de mejoras en estas pautas. Se evalúa asimismo el esfuerzo de incorporación de los mecanismos de usabilidad. Cada evaluación aporta datos que proporcionan una estimación del esfuerzo adicional requerido para incorporar cada mecanismo de usabilidad en el proceso de desarrollo del software.---ABSTRACT---Quality is a major challenge in software construction. Software engineers consider usability to be a quality attribute. Originally, usability was viewed as a nonr functional requirement. Usability was assumed to be simply an information presentation property. There was a belief that a usable software product could be developed by separating the presentation layer from the rest of the system. Depending on the system type and user needs, however, usability often runs deeper, and it is not enough to consider just presentation to build usable software. The humanrcomputer interaction (HCI) community put forward a list of recommendations to improve usability. Some such recommendations have a direct impact on software product functionality. Recent studies have also evaluated the relationship between usability and functional requirements. This research suggests that usability should be taken into account as of the early stages of software construction to prevent costly rework later on. The inclusion of usability features is an added complication to the development process. The research reported here evaluates the possibility of using patterns to incorporate usability into a software product. Specifically, it evaluates the following usability programming patterns (UPPs): Abort Operation, Progress Feedback and Preferences. Usability Mechanism Development Guides (USDG) are applied to these three usability mechanisms. These guides propose patterns for eliciting and later incorporating usability into the different software development phases, including programming. The reported research addresses the development of a software product from requirements elicitation through to implementation. Usability mechanisms are incorporated into each development phase in accordance with USDG recommendations. A real piece of software was developed to test the feasibility of using USDGs, outputting proposals for improving the guides. Each evaluation yields data providing an estimate of the additional workload required to incorporate each usability mechanism into the software development process.

Relevância:

60.00% 60.00%

Publicador:

Resumo:

Resumen El documento que se desarrolla en los siguientes capítulos ha sido realizado como Proyecto de Fin de Grado para el Grado de Ingeniería del Software (Plan 2009) impartido por la Escuela Técnica Superior de Ingeniería de Sistemas Informáticos de la Universidad Politécnica de Madrid durante el curso académico 2014-2015 y bajo la tutela del Dr. Francisco Javier Gil Rubio, profesor del Departamento de Organización y Estructura de la Información (Actualmente DSI). La empresa Radmas Technologies pretende proporcionar con el producto Mejora Tu Ciudad —su solución para la gestión integral de Smart-Cities— un servicio REST interoperable y una capa de abstracción para el lenguaje Javascript. El presente proyecto se centra en la definición y creación de un API RESTFUL sobre la que los distintos clientes puedan interactuar con la plataforma independientemente de las herramientas de desarrollo utilizadas. Tras la definición del servicio se llevará a cabo la creación de un SDK1 válido en distintas plataformas basadas en Javascript, que facilite el acceso a aquellos clientes que utilicen dichas plataformas como punto de partida para iniciar otros desarrollos derivados. Con este pretexto nace un proyecto que pretende también cubrir todas las fases del ciclo de vida de un producto de software, ciertamente particular en este caso, ya que se trata de un ecosistema que comprende dos soluciones enfocadas hacia la interoperabilidad, una genérica y otra orientada a una única plataforma de destino, y que a su vez servirán como base para llevar a cabo futuros desarrollos. Por todo lo expuesto, el proyecto cubrirá las siguientes etapas:  Estudio de la problemática: se describe la situación en la que se encuentra la compañía y los motivos por los que se propone la creación de un API REST2 y más tarde la elaboración de un Kit de Desarrollo de Software (SDK) orientado exclusivamente a plataformas basadas en Javascript como solución a las necesidades de los potenciales clientes.  Estudio teórico de las distintas tecnologías y protocolos disponibles en los cuales se sustentarán los desarrollos que se lleven a cabo.  Estimación de tiempos, planificación y gestión de tareas mediante metodologías ágiles y desarrollo del producto.  Creación de una batería de pruebas y generación de un entorno para ejecutarlas que permita cubrir los distintos casos de uso requeridos por el usuario. También se hará uso, siempre que sea posible, de la metodología de trabajo conocida como TDD3 o Desarrollo Dirigido por las Pruebas.  Generación de documentación orientada a desarrolladores exponiendo las bondades y las técnicas de uso del ecosistema definido.  Creación de un conjunto de ejemplos que sirvan como punto de partida para llevar a cabo futuros desarrollos. Las fases anteriormente descritas se apoyan en los conocimientos recibidos en las distintas asignaturas que ofrece la titulación. Por tanto, haré frecuentes referencias a aquellas que tratan aspectos como los procesos de Ingeniería de Software (a través de un análisis y diseño coherentes de la estructura de la aplicación) y a la gestión de proyectos (haciendo especial hincapié en lo aprendido sobre metodologías ágiles), así como algunas de carácter más técnico que sin duda influirán en la generación de un código correcto y probado. Por todo ello este Trabajo de Fin de Grado pretende ser un desarrollo multidisciplinar en el que se obtenga como resultado un producto profesional, que haga uso de tecnologías y servicios de rabiosa actualidad y ejemplifique la realidad de los desarrollos de software modernos.

Relevância:

60.00% 60.00%

Publicador:

Resumo:

La usabilidad es uno de los aspectos más importantes de la calidad del software para sistemas software interactivos. A pesar de ello, la Ingeniería del Software (IS) se ha centrado históricamente en problemas de funcionalidad y de persistencia, relegando a un segundo plano aspectos de la interacción con el usuario, y más concretamente, de la usabilidad. Ha sido principalmente la comunidad Interacción Persona-Ordenador (IPO) la que ha propuesto recomendaciones para mejorar la usabilidad. En estudios recientes se ha encontrado una relación entre algunas de las recomendaciones de usabilidad propuestas por la comunidad IPO y la funcionalidad de un sistema software. Estas recomendaciones se conocen como Características Funcionales de Usabilidad (CFU), divididas en subtipos más especializados llamados Mecanismos de Usabilidad (MU). Estos estudios han propuesto unas Guías para la Educción de Requisitos por cada mecanismo de usabilidad (GERMU). Posteriormente, se continúan los estudios y con base al repositorio de conocimiento suministrado por las GERMUs, se proponen diseños de más bajo nivel e implementación que facilite la incorporación de un MU en un sistema software. Los resultados se formalizaron en lo que se llamo Patrón de Programación de Usabilidad (PPU). El presente trabajo de investigación se centra en evaluar el impacto debido a la incorporación de mecanismos de usabilidad en el desarrollo de un sistema software. Concretamente el MU Abortar Operación (MU AO), el MU Retroalimentación del Progreso (MU RP) y MU Preferencias (MU P), tanto a nivel de requisitos como a nivel de implementación. Para satisfacer este objetivo, en esta investigación se aborda el desarrollo de un sistema software desde la actividad de educción de requisitos hasta la implementación. Para la actividad de requisitos se hace uso de la GERMU AO, GERMU RP y la GERMU P. La construcción del sistema sigue el modelo incremental. En cada incremento se construye un conjunto de casos de uso junto con uno o varios MUs. Para incorporar cada MU en implementación, se hace uso del PPU Abortar Operación (PPU AO), PPU Retroalimentación del Progreso (PPU RP) y PPU Preferencias (PPU P). En el primer incremento se incorpora el PPU AO, en el segundo el PPU RP, en el tercer incremento PPU P, y en el último incremento, se añaden los restantes casos de uso junto con los tres PPUs al sistema. Tanto en la actividad de requisitos, como en la construcción de cada incremento se evalúa el impacto de la incorporación de tales PPUs. Cada evaluación proporciona datos que pueden dar una estimación del esfuerzo requerido para incorporar cada PPU en las distintas actividades del desarrollo del sistema. Como resultado de la experiencia del uso de los diferentes artefactos relacionados en esta investigación se obtienen propuestas de mejoras para los PPUs, y adicionalmente para las GERMUs.

Relevância:

60.00% 60.00%

Publicador:

Resumo:

El autor de este proyecto es miembro reciente de la asociación SoloBoulder, dedicada a la modalidad de escalada boulder, noticias y actualidad, contenido multimedia, promoción de un equipo de escaladores y defensa de valores medioambientales en la montaña. El principal canal de distribución de contenidos es una página web existente previa a este proyecto. La asociación ha detectado una escasez y mala calidad de recursos en internet en cuanto a guías de zonas donde poder practicar el boulder. Tal circunstancia impulsa la iniciativa de este proyecto fin de carrera. El objetivo general es el desarrollo de una nueva aplicación que proporcione a los usuarios a nivel mundial una guía interactiva de boulder y otros puntos de interés, una red social que permita la creación cooperativa y orgánica de contenido, y servicios web para el consumo de la información desde otras plataformas u organizaciones. El nuevo software desarrollado es independiente de la página web de SoloBoulder previa. No obstante, ambas partes se integran bajo el mismo domino web y aspecto. La nueva aplicación ofrece a escaladores y turistas un servicio informativo e interactivo de calidad, con el que se espera aumentar el número de visitas en todo el sitio web y poder ampliar la difusión de valores medioambientales, diversificar las zonas de boulder y regular las masificadas, favorecer el deporte y brindar al escalador una oportunidad de autopromoción personal. Una gran motivación para el autor también es el proceso de investigación y formación en tecnologías, patrones arquitecturales de diseño y metodologías de trabajo adaptadas a las tendencias actuales en la ingeniería de software, con especial curiosidad hacia el mundo web. A este respecto podemos destacar: metodología de trabajo en proyectos, análisis de proyectos, arquitecturas de software, diseño de software, bases de datos, programación y buenas prácticas, seguridad, interfaz gráfica web, diseño gráfico, Web Performance Optimization, Search Engine Optimization, etc. En resumen, este proyecto constituye un aprendizaje y puesta en práctica de diversos conocimientos adquiridos durante la ejecución del mismo, así como afianzamiento de materias estudiadas en la carrera. Además, el producto desarrollado ofrece un servicio de calidad a los usuarios y favorece el deporte y la autopromoción del escalador. ABSTRACT. The author of this Project is recent member of the association SoloBoulder, dedicated to a rock climbing discipline called bouldering, news, multimedia content, promotion of a team of climbers and defense of environmental values in the mountain. The main content distribution channel is a web page existing previous to this project. The association has detected scarcity and bad quality of resources on the internet about guides of bouldering areas. This circumstance motivates the initiative of this project. The general objective is the development of a new application which provides a worldwide, interactive bouldering guide, including other points of interest, a social network which allows the cooperative and organic creation of content, and web services for consumption of information from other platforms or organizations. The new software developed is independent of the previous SoloBoulder web page. However, both parts are integrated under the same domain and appearance. The new application offers to climbers and tourists a quality informative and interactive service, with which we hope to increase the number of visits in the whole web site and be able to expand the dissemination of environmental values, diversify boulder areas and regulate the overcrowded ones, encourage sport and offer to the climber an opportunity of self-promotion. A strong motivation for the author is also the process of investigation and education in technologies, architectural design patterns and working methodologies adapted to the actual trends in software engineering, with special curiosity about the web world. In this regard we could highlight: project working methodologies, project analysis, software architectures, software design, data bases, programming and good practices, security, graphic web interface, graphic design, Web Performance Optimization, Search Engine Optimization, etc. To sum up, this project constitutes learning and practice of diverse knowledge acquired during its execution, as well as consolidation of subjects studied in the degree. In addition, the product developed offers a quality service to the users and favors the sport and the selfpromotion of the climber.

Relevância:

60.00% 60.00%

Publicador:

Resumo:

Con la llegada de la era de la información, viendo esta era como la necesidad de informatizar, registrar y tratar una gran cantidad de datos mediante la tecnología, se está dando el paso de diversos procesos burocráticos a medios tecnológicos cambiando el papel por los datos almacenados en las computadoras. El DNI electrónico permite a un individuo identificarse mediante un dispositivo donde se almacenan los datos de éste para poder identificarse unívocamente ante aquellos trámites que antaño costaban largos procesos burocráticos en papel. Sabemos que las aplicaciones software son aquellos módulos formado por un conjunto de programas y rutinas que permiten a los diferentes tipos de computadores realizar tareas de manera parcial o totalmente automáticas. Por ello este proyecto demuestra todo el proceso de creación de un módulo software, que cómo comentamos en el primer párrafo, permitiría sobrellevar otros tantos procesos burocráticos como sería la petición del DNI y posterior escritura a mano en distintas situaciones. Todo ello orientado desde un estricto análisis desde el punto de vista de la ingeniería del software. ABSTRACT Due to the fact that we’re in the era of information technology, and from the perspective that this era means to computerize register and treat a big quantity of data through technologic means, we are stepping into a process where all the bureaucracy is being transferred from paper to digital storage models. Hence, the electronic DNI allows the citizen to identify himself univocally against processes that back in time where made through tedious and heavy-paper-work processes. We know that software apps are modules conformed by a set of instructions and programs that make possible the execution of partially or totally automated tasks. That’s why this project shows the process of the creation of a software module (app) that, as we stated before, would allow overcoming many other bureaucratic processes like the request to write down the national identification number. All of it focused to a strict analysis from software engineering’s point of view.

Relevância:

60.00% 60.00%

Publicador:

Resumo:

Este proyecto se plantea, desde su misma base, como uno de desarrollo e Ingeniería del Software por una parte; con cierto componente de algorítmica. Debido a que intervienen varias partes (cliente, alumno y tutor) y a que no se tenía una visión completa del resultado final del programa al que se quería llegar, se ha optado por una metodología ágil adaptativa para responder a los cambios y a la suma de nuevos requisitos; como se irá explicando en esta memoria. Con el presente documento se trata de tener un referente general de las fases, factores e inconvenientes que han intervenido en la realización del proyecto. Aunque podría haberse reflejado como una memoria de desarrollo de software, se ha optado por un punto de vista con mayor distanciamiento, una aproximación más general. Con este texto, la intención inicial es formular de forma clara lo que se necesita y a que requisitos tiene que adecuarse el software desde un punto de vista del usuario, para acto seguido, pormenorizar el diseño y el desarrollo en diferentes puntos sucesivos que recojan la historia y cambios en el proyecto de forma organizada. Es, por tanto, una referencia de ingeniería de un desarrollo software, que abarca desde la concepción del proyecto, pasando por los fundamentos teóricos, diseño, implementación hasta las pruebas finales de validación. E incluso más allá, ya que, como se explica en capítulos posteriores, en cierto punto se tuvo la necesidad de reescribir gran parte del código.

Relevância:

30.00% 30.00%

Publicador:

Resumo:

Una alta productividad en Ingeniería está asociada entre otras cosas a una gestión eficiente del flujo de las enormes cantidades de información y correspondientes tomas de decisiones consubstanciales a los entornos de diseño y producción. Ello exige que nuestros titulados estén formados para ser capaces de manejar esa información de modo integrado, a través de los diferentes estadios en que se genera y procesa. En el contexto de la enseñanza de la Ingeniería existen un buen número de cursos designados a desarrollar competencias específicas, como las requeridas en los currículos académicos, pero muy pocos en los cuales las competencias de integración sean el objetivo principal. En este artículo se documenta una asignatura que tiene esa orientación, con la intención de alimentar el debate sobre la formación, tan necesario en tiempos de fuerte contracción de la actividad económica como el que vivimos en la actualidad y que está promoviendo el COIN. La asignatura se denomina “Tecnologías de la Información Aplicadas a la Construcción Naval” y es impartida en la titulación de Ingeniero Naval y Oceánico, plan 2002, de la Universidad Politécnica de Madrid (UPM). La primera parte de la asignatura está dedicada a la planificación y gestión de proyectos; los estudiantes adquieren competencias en la definición, usando Ms-PROJECT, de la estructura de descomposición de tareas y la asignación de recursos así como en el seguimiento de proyectos, a través de una serie de ejemplos de complejidad creciente, finalizando con la construcción de un buque. La segunda parte está dedicada al uso de un gestor de bases de datos, Ms-ACCESS, y orientada a la gestión de la información relativa a Producción. Otra vez la estrategia pasa por trabajar sobre una serie de ejemplos de complejidad creciente y se finaliza con la administración de una base de datos de tuberías de un buque, para las cuales se establecen hitos de producción, recepción y montaje, lo que conecta está parte con la primera. Finalmente, la tercera parte de la asignatura está dedicada al trabajo con FORAN, con el cual se definen con detalle los elementos estructurales de todo el buque sobre el que se ha elaborado la planificación. En esta parte, el trabajo es cooperativo, dado que los estudiantes operan simultáneamente en el mismo modelo 3D. Las clases se realizan en un aula multimedia en la cual cada estudiante puede utilizar todas las aplicaciones de software tratadas. Se han realizado encuestas a los estudiantes para obtener una retroalimentación desde su experiencia así como para hacer una valoración de su satisfacción con el proceso de aprendizaje. Los resultados de esas encuestas son discutidos en el artículo.

Relevância:

30.00% 30.00%

Publicador:

Resumo:

El Proyecto Final de Carrera(PFC)Implementación de Ingeniería Virtual con Joomla! tiene como objetivo la creación de una plataforma web. Para desarrollar un proyecto de ingeniería multidisciplinar, basado en el trabajo en red, grupos de trabajo y el trabajo flexible. El trabajo en red es desempeñar el trabajo por medio de las Tecnología de la Información y la comunicación (TIC). Los grupos de trabajo están compuestos por personas multidisciplinares, multirraciales, de diferentes religiones, situados en husos horarios distintos y multiculturales donde la colaboración, flexibilidad y la compartición de recursos están a la orden del día. La flexible es la capacidad de adaptación de los propios trabajadores a la demanda de la productividad, los responsables depositan sobre ellos su confianza, recibiendo el trabajo terminado en forma y fecha. Estos trabajadores no necesitan una supervisión constante ni un sitio fijo donde realizar su trabajo. Todo lo que necesitan esta en la red, la información que necesitan como las herramientas. Convirtiéndose este tipo de trabajador en teletrabajadores. Estos trabajadores utilizan de forma intensiva sus conocimientos, no se puede permitir quedarse obsoletos en su conocimientos, sería su gran desgracia. Por está razón, necesitan estar formándose continuamente, aprendiendo y conociendo las nuevas tecnologías que aparecen. Con el objetivo de conseguir nuevas líneas de negocio, con el fin de lograr nuevos ingresos. Los trabajadores que hacen un uso intensivo en la tecnología de la información y comunicación, se caracterizan por la continua innovación y cambio tecnológico. Estos trabajadores necesitan una red profesional, social amplia con enlaces fuertes y poderosos. Las redes son importantes, para estar actualizado con las innovaciones que se realizan en las empresas, optar a nuevos puesto de trabajo, curso en nuevas tecnologías… Gracias a los servicios actuales en Internet facilitan mantener vivos una gran cantidad de enlaces (contactos), en comparación con otras épocas. La plataforma propuesta en este proyecto final de carrera esta compuesta de todas las herramientas necesarias para que estos trabajadores puedan desarrollar su actividad y mantenimiento de sus redes profesionales. Abstract: The aim of this Final Project of Career, Implementation of Virtual Engineering with Joomla!, is to create a web software application where a multidisciplinary engineering project bases on the networking, working groups and the flexible working can be implemented. The networking is the job through the Information Technology and Communication (ITC) where working groups compounded of multidisciplinary and multiracial professions, different religions and located in different time zones are created. The multicultural environment, collaboration, flexibility and to share resources are the order of the day on this kind of groups. The flexibility is the ability to adaptability of workers to the productivity demand, with the trust which is placed on them by supervisor people who wait to receive the work completed in a specific form and date. These workers do not need either constant supervision or a fixed site where to do the job. Everything the workers need is on the network, as the information as the tools, that is why they become teleworkers. These workers demand a high use of their knowledge, so it can not be allowed to become obsolete. This would be a great misfortune. That is why they need to continue learning and knowing the new technologies emerging with the aim of getting new revenues. Workers do an intensive use of the information technology and communication, characterized by continuous innovation and technological change. These workers need a broad social and professional network with great power. This network is important to keep updated with innovations taking place at the companies, to apply for a new job, a new technology course etc.. Thanks to Internet services a bigger number of contacts are provided compared to earlier times. The software application of this project is compounded with enough tools with the aim of the workers can carry out their activity and maintenance of the links on their professional nets.

Relevância:

30.00% 30.00%

Publicador:

Resumo:

En los últimos años la industria software demanda, cada vez más, ingenieros que posean conocimientos y experiencia en la aplicación de metodologías ágiles. Los principios y valores en los que se basan las metodologías ágiles fomentan la adquisición de competencias como la capacidad de organización, el trabajo en equipo, la comunicación, o el liderazgo, entre otras, denominadas en el marco del Espacio Europeo de Educación Superior (EEES) como competencias generales o transversales. Ambas razones justifican la adopción de las metodologías ágiles como métodos de aprendizaje activos, es decir, la implantación de metodologías ágiles durante el ciclo formativo del ingeniero software. Esta apuesta se ha materializado en el proyecto de innovación educativa Agile Learning - Aprendizaje Ágil, cuyos primeros pasos, resultados y lecciones aprendidas se presentan en este artículo.