92 resultados para pacs: software development management
Resumo:
The development of a web platform is a complex and interdisciplinary task, where people with different roles such as project manager, designer or developer participate. Different usability and User Experience evaluation methods can be used in each stage of the development life cycle, but not all of them have the same influence in the software development and in the final product or system. This article presents the study of the impact of these methods applied in the context of an e-Learning platform development. The results show that the impact has been strong from a developer's perspective. Developer team members considered that usability and User Experience evaluation allowed them mainly to identify design mistakes, improve the platform's usability and understand the end users and their needs in a better way. Interviews with potential users, clickmaps and scrollmaps were rated as the most useful methods. Finally, these methods were considered unanimously very useful in the context of the entire software development, only comparable to SCRUM meetings and overcoming the rest of involved factors.
Resumo:
Automated Teller Machines (ATMs) are sensitive self-service systems that require important investments in security and testing. ATM certifications are testing processes for machines that integrate software components from different vendors and are performed before their deployment for public use. This project was originated from the need of optimization of the certification process in an ATM manufacturing company. The process identifies compatibility problems between software components through testing. It is composed by a huge number of manual user tasks that makes the process very expensive and error-prone. Moreover, it is not possible to fully automate the process as it requires human intervention for manipulating ATM peripherals. This project presented important challenges for the development team. First, this is a critical process, as all the ATM operations rely on the software under test. Second, the context of use of ATMs applications is vastly different from ordinary software. Third, ATMs’ useful lifetime is beyond 15 years and both new and old models need to be supported. Fourth, the know-how for efficient testing depends on each specialist and it is not explicitly documented. Fifth, the huge number of tests and their importance implies the need for user efficiency and accuracy. All these factors led us conclude that besides the technical challenges, the usability of the intended software solution was critical for the project success. This business context is the motivation of this Master Thesis project. Our proposal focused in the development process applied. By combining user-centered design (UCD) with agile development we ensured both the high priority of usability and the early mitigation of software development risks caused by all the technology constraints. We performed 23 development iterations and finally we were able to provide a working solution on time according to users’ expectations. The evaluation of the project was carried out through usability tests, where 4 real users participated in different tests in the real context of use. The results were positive, according to different metrics: error rate, efficiency, effectiveness, and user satisfaction. We discuss the problems found, the benefits and the lessons learned in the process. Finally, we measured the expected project benefits by comparing the effort required by the current and the new process (once the new software tool is adopted). The savings corresponded to 40% less effort (man-hours) per certification. Future work includes additional evaluation of product usability in a real scenario (with customers) and the measuring of benefits in terms of quality improvement.
Resumo:
Research into software engineering teams focuses on human and social team factors. Social psychology deals with the study of team formation and has found that personality factors and group processes such as team climate are related to team effectiveness. However, there are only a handful of empirical studies dealing with personality and team climate and their relationship to software development team effectiveness. Objective We present aggregate results of a twice replicated quasi-experiment that evaluates the relationships between personality, team climate, product quality and satisfaction in software development teams. Method Our experimental study measures the personalities of team members based on the Big Five personality traits (openness, conscientiousness, extraversion, agreeableness, neuroticism) and team climate factors (participative safety, support for innovation, team vision and task orientation) preferences and perceptions. We aggregate the results of the three studies through a meta-analysis of correlations. The study was conducted with students. Results The aggregation of results from the baseline experiment and two replications corroborates the following findings. There is a positive relationship between all four climate factors and satisfaction in software development teams. Teams whose members score highest for the agreeableness personality factor have the highest satisfaction levels. The results unveil a significant positive correlation between the extraversion personality factor and software product quality. High participative safety and task orientation climate perceptions are significantly related to quality. Conclusions First, more efficient software development teams can be formed heeding personality factors like agreeableness and extraversion. Second, the team climate generated in software development teams should be monitored for team member satisfaction. Finally, aspects like people feeling safe giving their opinions or encouraging team members to work hard at their job can have an impact on software quality. Software project managers can take advantage of these factors to promote developer satisfaction and improve the resulting product.
Resumo:
El uso de la computación en la nube ofrece un nuevo paradigma que procura proporcionar servicios informáticos para los cuales no es necesario contar con grandes infraestructuras y sobre todo, con las complejidades de costos, seguridad y mantenimiento implícitas. Si bien se ha posicionado en los últimos años como una plataforma innovadora en el ámbito de la tecnología de consumo masivo y organizacional, también puede ser tópico de investigación importante en ciertas áreas de interés como el desarrollo de Software, presentando en ese campo, una serie de ventajas y retos estimulantes que pueden ser explorados. Este trabajo de investigación, sigue con dicho sentido, el objetivo de exponer la situación actual sobre el empleo de la computación en la nube como entorno de desarrollo de Software, sectorizando a través de su capa PaaS, el modelo conceptual de trabajo, las perspectivas recientes, problemas e implicaciones generales del uso de ésta como herramienta plausible en proyectos de desarrollo de Software. El análisis de los diferentes temas abordados, tiene la intención en general, de proporcionar información objetiva, crítica y cuantitativa sobre la concentración de la investigación relacionada a PaaS, así como un marco de interpretación reciente que aporte una perspectiva referencial para futuras investigaciones asociadas.---ABSTRACT---The use of cloud computing offers a new paradigm to provide computer services for which it is not necessary to have large infrastructure and especially with the complexities of cost, safety and maintenance implied. While it has positioned itself in recent years as an innovative platform in the field of technology and massive organizational consumption, can also be an important research topic in certain areas of interest including, the development of Software, presenting in this field, a series of advantages, disadvantages and stimulating challenges that can be explored. This research, following with that sense, try to present the current situation related to the use of cloud computing as a software development environment, through its sectorized PaaS layer, showing the conceptual working model, actual perspectives, problems and general implications of using this as a possible tool in Software development projects. The analysis of the different topics covered, intends in a general form, provide objective, critical and quantitative information about the concentration of research related to PaaS, and a recent interpretation framework to provide a referential perspective for future related researches.
Resumo:
La presente tesis doctoral contribuye al problema del diagnóstico autonómico de fallos en redes de telecomunicación. En las redes de telecomunicación actuales, las operadoras realizan tareas de diagnóstico de forma manual. Dichas operaciones deben ser llevadas a cabo por ingenieros altamente cualificados que cada vez tienen más dificultades a la hora de gestionar debidamente el crecimiento exponencial de la red tanto en tamaño, complejidad y heterogeneidad. Además, el advenimiento del Internet del Futuro hace que la demanda de sistemas que simplifiquen y automaticen la gestión de las redes de telecomunicación se haya incrementado en los últimos años. Para extraer el conocimiento necesario para desarrollar las soluciones propuestas y facilitar su adopción por los operadores de red, se propone una metodología de pruebas de aceptación para sistemas multi-agente enfocada en simplificar la comunicación entre los diferentes grupos de trabajo involucrados en todo proyecto de desarrollo software: clientes y desarrolladores. Para contribuir a la solución del problema del diagnóstico autonómico de fallos, se propone una arquitectura de agente capaz de diagnosticar fallos en redes de telecomunicación de manera autónoma. Dicha arquitectura extiende el modelo de agente Belief-Desire- Intention (BDI) con diferentes modelos de diagnóstico que gestionan las diferentes sub-tareas del proceso. La arquitectura propuesta combina diferentes técnicas de razonamiento para alcanzar su propósito gracias a un modelo estructural de la red, que usa razonamiento basado en ontologías, y un modelo causal de fallos, que usa razonamiento Bayesiano para gestionar debidamente la incertidumbre del proceso de diagnóstico. Para asegurar la adecuación de la arquitectura propuesta en situaciones de gran complejidad y heterogeneidad, se propone un marco de argumentación que permite diagnosticar a agentes que estén ejecutando en dominios federados. Para la aplicación de este marco en un sistema multi-agente, se propone un protocolo de coordinación en el que los agentes dialogan hasta alcanzar una conclusión para un caso de diagnóstico concreto. Como trabajos futuros, se consideran la extensión de la arquitectura para abordar otros problemas de gestión como el auto-descubrimiento o la auto-optimización, el uso de técnicas de reputación dentro del marco de argumentación para mejorar la extensibilidad del sistema de diagnóstico en entornos federados y la aplicación de las arquitecturas propuestas en las arquitecturas de red emergentes, como SDN, que ofrecen mayor capacidad de interacción con la red. ABSTRACT This PhD thesis contributes to the problem of autonomic fault diagnosis of telecommunication networks. Nowadays, in telecommunication networks, operators perform manual diagnosis tasks. Those operations must be carried out by high skilled network engineers which have increasing difficulties to properly manage the growing of those networks, both in size, complexity and heterogeneity. Moreover, the advent of the Future Internet makes the demand of solutions which simplifies and automates the telecommunication network management has been increased in recent years. To collect the domain knowledge required to developed the proposed solutions and to simplify its adoption by the operators, an agile testing methodology is defined for multiagent systems. This methodology is focused on the communication gap between the different work groups involved in any software development project, stakeholders and developers. To contribute to overcoming the problem of autonomic fault diagnosis, an agent architecture for fault diagnosis of telecommunication networks is defined. That architecture extends the Belief-Desire-Intention (BDI) agent model with different diagnostic models which handle the different subtasks of the process. The proposed architecture combines different reasoning techniques to achieve its objective using a structural model of the network, which uses ontology-based reasoning, and a causal model, which uses Bayesian reasoning to properly handle the uncertainty of the diagnosis process. To ensure the suitability of the proposed architecture in complex and heterogeneous environments, an argumentation framework is defined. This framework allows agents to perform fault diagnosis in federated domains. To apply this framework in a multi-agent system, a coordination protocol is defined. This protocol is used by agents to dialogue until a reliable conclusion for a specific diagnosis case is reached. Future work comprises the further extension of the agent architecture to approach other managements problems, such as self-discovery or self-optimisation; the application of reputation techniques in the argumentation framework to improve the extensibility of the diagnostic system in federated domains; and the application of the proposed agent architecture in emergent networking architectures, such as SDN, which offers new capabilities of control for the network.
Resumo:
Las compañías de desarrollo de software buscan reducir costes a través del desarrollo de diseños que permitan: a) facilidad en la distribución del trabajo de desarrollo, con la menor comunicación de las partes; b) modificabilidad, permitiendo realizar cambios sobre un módulo sin alterar las otras partes y; c) comprensibilidad, permitiendo estudiar un módulo del sistema a la vez. Estas características elementales en el diseño de software se logran a través del diseño de sistemas cuasi-descomponibles, cuyo modelo teórico fue introducido por Simon en su búsqueda de una teoría general de los sistemas. En el campo del diseño de software, Parnas propone un camino práctico para lograr sistemas cuasi-descomponibles llamado el Principio de Ocultación de Información. El Principio de Ocultación de Información es un criterio diferente de descomposición en módulos, cuya implementación logra las características deseables de un diseño eficiente a nivel del proceso de desarrollo y mantenimiento. El Principio y el enfoque orientado a objetos se relacionan debido a que el enfoque orientado a objetos facilita la implementación del Principio, es por esto que cuando los objetos empiezan a tomar fuerza, también aparecen paralelamente las dificultades en el aprendizaje de diseño de software orientado a objetos, las cuales se mantienen hasta la actualidad, tal como se reporta en la literatura. Las dificultades en el aprendizaje de diseño de software orientado a objetos tiene un gran impacto tanto en las aulas como en la profesión. La detección de estas dificultades permitirá a los docentes corregirlas o encaminarlas antes que éstas se trasladen a la industria. Por otro lado, la industria puede estar advertida de los potenciales problemas en el proceso de desarrollo de software. Esta tesis tiene como objetivo investigar sobre las dificultades en el diseño de software orientado a objetos, a través de un estudio empírico. El estudio fue realizado a través de un estudio de caso cualitativo, que estuvo conformado por tres partes. La primera, un estudio inicial que tuvo como objetivo conocer el entendimiento de los estudiantes alrededor del Principio de Ocultación de Información antes de que iniciasen la instrucción. La segunda parte, un estudio llevado a cabo a lo largo del período de instrucción con la finalidad de obtener las dificultades de diseño de software y su nivel de persistencia. Finalmente, una tercera parte, cuya finalidad fue el estudio de las dificultades esenciales de aprendizaje y sus posibles orígenes. Los participantes de este estudio pertenecieron a la materia de Software Design del European Master in Software Engineering de la Escuela Técnica Superior de Ingenieros Informáticos de la Universidad Politécnica de Madrid. Los datos cualitativos usados para el análisis procedieron de las observaciones en las horas de clase y exposiciones, entrevistas realizadas a los estudiantes y ejercicios enviados a lo largo del período de instrucción. Las dificultades presentadas en esta tesis en sus diferentes perspectivas, aportaron conocimiento concreto de un estudio de caso en particular, realizando contribuciones relevantes en el área de diseño de software, docencia, industria y a nivel metodológico. ABSTRACT The software development companies look to reduce costs through the development of designs that will: a) ease the distribution of development work with the least communication between the parties; b) changeability, allowing to change a module without disturbing the other parties and; c) understandability, allowing to study a system module at a time. These basic software design features are achieved through the design of quasidecomposable systems, whose theoretical model was introduced by Simon in his search for a general theory of systems. In the field of software design, Parnas offers a practical way to achieve quasi-decomposable systems, called The Information Hiding Principle. The Information Hiding Principle is different criterion for decomposition into modules, whose implementation achieves the desirable characteristics of an efficient design at the development and maintenance level. The Principle and the object-oriented approach are related because the object-oriented approach facilitates the implementation of The Principle, which is why when objects begin to take hold, also appear alongside the difficulties in learning an object-oriented software design, which remain to this day, as reported in the literature. Difficulties in learning object-oriented software design has a great impact both in the classroom and in the profession. The detection of these difficulties will allow teachers to correct or route them before they move to the industry. On the other hand, the industry can be warned of potential problems related to the software development process. This thesis aims to investigate the difficulties in learning the object-oriented design, through an empirical study. The study was conducted through a qualitative case study, which consisted of three parts. The first, an initial study was aimed to understand the knowledge of the students around The Information Hiding Principle before they start the instruction. The second part, a study was conducted during the entire period of instruction in order to obtain the difficulties of software design and their level of persistence. Finally, a third party, whose purpose was to study the essential difficulties of learning and their possible sources. Participants in this study belonged to the field of Software Design of the European Master in Software Engineering at the Escuela Técnica Superior de Ingenieros Informáticos of Universidad Politécnica de Madrid. The qualitative data used for the analysis came from the observations in class time and exhibitions, performed interviews with students and exercises sent over the period of instruction. The difficulties presented in this thesis, in their different perspectives, provided concrete knowledge of a particular case study, making significant contributions in the area of software design, teaching, industry and methodological level.
Resumo:
Contexto: La adopción y adaptación de las metodologías ágiles ha sido objeto de estudio en la comunidad y diversas aproximaciones han sido propuestas como solución al problema. La mayoría de las organizaciones comienzan introduciendo prácticas ágiles de manera progresiva, las cuales, junto a las buenas prácticas ya existentes, conforman una nueva metodología ágil adaptada. El problema más importante con el que se enfrentan las organizaciones al adaptar una metodología ágil, son las necesidades específicas del contexto de cada proyecto, porque a pesar de haber definido la adaptación de la metodología en base a las buenas prácticas y procesos existentes en la organización, las condiciones particulares del proyecto y del equipo que lo va a desarrollar, exigen adaptaciones específicas. Otro aspecto importante a resolver es el poder implantar esta adopción y adaptación en toda la organización. Las metodologías ágiles no incluyen actividades que asistan a las organizaciones a solucionar este problema, porque su esfuerzo lo centran en el equipo y el proyecto. Objetivo: El objetivo principal de este trabajo de investigación consiste en “definir un marco de trabajo de adaptación de metodologías ágiles orientado a contextos que permita su implantación en toda la organización a través de ciclos de mejora basados en la reutilización de experiencias adquiridas”. Este marco de trabajo permitirá organizar, gestionar y validar la adaptación de las metodologías ágiles, desplegando en toda la organización las experiencias adquiridas, incorporando pequeñas mejoras en el proceso, y facilitando su reutilización. Todo esto, con el apoyo de la alta dirección. Método: Este trabajo se inició con una investigación exploratoria acompañada de una revisión sistemática para conocer el estado del arte del objeto de estudio, detectando las principales carencias y necesidades de resolución, a partir de las cuales, se delimitó el alcance del problema. Posteriormente, se definieron las hipótesis de investigación y se planteó una solución al problema a través de la definición del marco de trabajo, cuyos resultados fueron evaluados y validados a través de la realización de un caso de estudio. Finalmente, se obtuvieron las conclusiones y se establecieron las líneas futuras de investigación. Resolución: El marco de trabajo presenta una alternativa de adaptación de las metodologías ágiles orientada a contextos, y facilita su implantación en toda la organización. El marco de trabajo idéntica los contextos en los que se desarrollan los proyectos y analiza la causa de los problemas que afectan a la consecución de los objetivos de negocio en cada contexto. Posteriormente, identifica las acciones de adaptación requeridas para reducir o eliminar estas causas y las incorpora en la definición de la metodología ágil, creando de esta manera, una metodología adaptada para cada contexto manteniendo un nivel de agilidad aceptable. Cuando se inicia un nuevo proyecto, se identifica su contexto y se aplica la metodología ágil adaptada definida para dicho contexto. Al final de cada iteración, se analizan las medidas obtenidas y se las compara con la media aplicando una técnica para la evaluación de la consecución de los objetivos. En base a esta comparativa, y a la experiencia adquirida por el equipo, se realizan ajustes en las acciones de adaptación para intentar conseguir una mejora en la siguiente iteración. Una vez finalizado el proyecto, se conoce el impacto de los resultados conseguidos y se puede determinar si se ha alcanzado una mejora en el contexto del proyecto. De ser así, la metodología adaptada es almacenada en un repositorio de experiencias para poder ser reutilizada por otros equipos de desarrollo de la organización. Resultados: El trabajo de investigación fue evaluado y validado satisfactoriamente a través de su experimentación en un caso de estudio, aprobando las hipótesis establecidas. Los aportes y principales resultados de esta investigación son: Definición de un marco de trabajo integral de adaptación de metodologías ágiles, con capacidad de facilitar su implantación en toda la organización. Procedimiento para identificar contextos o escenarios de adaptación. Procedimiento para definir unidades de adaptación a partir de los inhibidores de los objetivos de negocio de la organización. Técnica para analizar la consecución de objetivos en propuestas de mejora de procesos. Conclusiones: Son tres las ventajas principales que han quedado evidenciadas durante la realización del trabajo de investigación: El marco de trabajo proporciona un mecanismo capaz de optimizar el rendimiento de la metodología ágil adaptada al orientar el proceso a las necesidades específicas del contexto del proyecto. El marco de trabajo permite conservar el conocimiento empírico adquirido por el equipo de desarrollo al registrarlo como experiencia adquirida para la organización. El marco de trabajo optimiza y reduce los tiempos del proceso de implantación de la metodología ágil adaptada en otros equipos de la organización. ABSTRACT Context: The adoption and tailoring of agile methods has been studied in the community and various approaches have been proposed as a solution. Most organizations start introducing agile practices gradually, which ones, together with existing good practices, make a new agile method tailored. When an organization starts to adapt an agile method, the context-specific needs of each project are the main trouble, because even though the agile method tailored has been defined based on best practices and processes in the organization, the specific conditions of the project and its team, require specific adaptations. Another important aspect to be solved is to implement this adoption and adaptation throughout all the organization. Agile methods do not include specific activities for helping organizations to solve this problem, because their effort is focused on the team and the project. Objective: The main objective of this research is to “define a tailoring framework for agile methods oriented to contexts that allows its deployment throughout all the organization using improvement cycles based on the reuse of lessons learned”. This framework will allow organize, manage and validate the tailoring of agile methods, adding small improvements in the process, and facilitating reuse. All this, with the support of senior management. Method: This work began with an exploratory investigation accompanied by a systematic review to determine the state of the art about the object of study, after major gaps and needs resolution were identified, and the scope of the problem was delimited. Subsequently, the research hypotheses were defined and the framework was developed for solving the research problem. The results were evaluated and validated through a case study. Finally, conclusions were drawn and future research were established. Resolution The framework presents an alternative for tailoring agile methodologies and facilitates its implementation throughout all the organization. The framework identifies the contexts or scenarios in which software development projects are developed and analyses the causes of the problems affecting the achievement of business goals in each context. Then the adaptation actions required to reduce or eliminate these causes are defined and incorporated into the definition of agile method. Thus, a method tailored for each context is created. When a new project is started, the context in which it will be developed is identified and the tailored agile method to that context is applied. At the end of each iteration of the project, the measurements obtained are analysed and compared with the historical average of context to analyse the improvement in business goals. Based on this comparison, and the experience gained by the project team, adjustments are made in adaptation actions to try to achieve an improvement in the next iteration. Once the project is completed, the impact of the achieved results are known and it can determine if it has reached an improvement in the context of the project. If so, the tailored agile method is stored in a repository of experiences to be reused by other development teams in the organization. Results The goal of this research was successfully evaluated and validated through experimentation in a case study, so the research hypotheses were approved. The contributions and main results of this research are: A framework for tailoring agile methods, that allows its deployment throughout all the organization. A procedure for identifying adaptation scenarios or contexts. A procedure for defining adaptation units from inhibitors of the business goals of the organization. A technique for analysing the achievement of goals in process improvement proposals. Conclusions: There are three main advantages that have been highlighted during the research: The framework provides a mechanism to optimize the performance of agile methods because it guides the process based on the specific needs of the project context. The framework preserves the empirical knowledge acquired by the development team because it registers this empirical knowledge as experience for the organization. The framework streamlines and shortens the process of deploying the tailored agile method to other teams in your organization.
Resumo:
Hoy en día existe una preocupación creciente por la calidad del software entregado en los proyectos que se realizan a lo largo del mundo. El trabajo de fin de grado que va a ser desarrollado en estas páginas pretende demostrar la importancia de la realización de tests funcionales durante el proceso de desarrollo de software para que el proyecto alcance la calidad requerida tan demandada en estos días. Para ello, después de una pequeña introducción a la historia del software, se presentarán y compararán diversos tipos de metodologías de desarrollo de software, tanto pesadas (cascada, espiral, etc.) como ágiles (Extreme Programming y Scrum), se enfatizará en dichas metodologías ágiles y cómo el proceso de testing y control de calidad encaja perfectamente con la filosofía de las citadas metodologías ágiles. Se desarrollará una explicación del papel de QA en el desarrollo de software, asi como una explicación de los tipos de test existentes, y las herramientas, tecnologías y patrones que existen a disposición de aquellos que quieran desempeñar el papel de QA. Para complementar el punto de vista teórico de este trabajo se presentará un caso práctico real realizado en la empresa bq bajo una metodología Scrum. Dicho caso práctico muestra el uso de ciertas herramientas y su aporte para el control de calidad del proyecto bajo desarrollo, demostrando su importancia. Se realizará énfasis en el proceso de automatización de ciertas baterías de test (llamadas test suites), mostrando desde el planteamiento inicial de las diferentes historias de usuario y la batería de test, pasando por la elección de las tecnologías más adecuadas para la elaboración de los test hasta llegar al lanzamiento de dicha batería de pruebas y la comprobación de éstas. El punto de vista práctico quedará complementado por una explicación del framework nightwatch.js, framework utilizado en el desarrollo del proyecto en bq para la automatización de test funcionales. Esta explicación comprenderá tanto la configuración y uso del framework como el uso de patrones y la estructura de las pruebas. ABSTRACT Nowadays there is a growing concern about the Quality of the software delivered in the projects that are made all around the world. This final project will try to prove the importance of performing functional tests during the Software Development Process in order to be able to reach the demanded Quality. To fulfill this objective, different types of Software Development methodologies will be presented and compared. Heavy methodologies (waterfall, spiral methodologies, etc.) as well as agile methodologies (Extreme Programming and Scrum). There will be an emphasis in the second kind (agile methodologies) and how the testing and quality assurance process fits perfectly in their philosophy. A deep explanation of the role that Quality Assurance holds on software development will be presented, as well as an explanation on the current types of testing and an explanation of the different tools; technologies and patrons that exist to help anyone who wants to perform the role of QA. To complement the theoretical perspective of this work a real case study, performed at the company bq under a Scrum methodology, will be presented. The mentioned study covers the use of certain tools and their input for the quality assurance of the project under development, proving its relevance. Emphasis will be made in the process of conducting a set of tests (called test suite), showing from the initial approach of the different users stories and the set of tests, going through the choosing of the most suitable technologies for the tests development, and ending with the performance of this battery of tests and their checkout. The practical point of view will be complemented by a deep explanation of the creation process using the nightwatch.js automated test framework, used in the project in bq. This explanation will cover both the configuration and use of the framework as the use of patterns and structure of the tests.
Resumo:
El objetivo de ésta tesis es estudiar cómo desarrollar una aplicación informática que implemente algoritmos numéricos de evaluación de características hidrodinámicas de modelos geométricos representativos de carenas de buques. Se trata de especificar los requisitos necesarios que debe cumplir un programa para informático orientado a dar solución a un determinado problema hidródinámico, como es simular el comportamiento en balance de un buque sometido a oleaje, de popa o proa. una vez especificada la aplicación se realizará un diseño del programa; se estudiarán alternativas para implementar la aplicación; se explicará el proceso que ha de seguirse para obtener la aplicación en funcionamiento y se contrastarán los resultados obtenidos en la medida que sea posible. Se pretende sistematizar y sintetizar todo el proceso de desarrollo de software, orientado a la simulación del comportamiento hidrodinámico de un buque, en una metodología que se pondrá a disposición de la comunidad académica y científica en la forma que se considere más adecuada. Se trata, por tanto, de proponer una metodología de desarrollo de software para obetener una aplicación que facilite la evaluación de diferentes alternativas de estudio variando parámetros relativos al problema en estudio y que sea capaz de proporcionar resultados para su análisis. Así mismo se incide en cómo ha de conducirse en el proceso para que dicha aplicación pueda crecer, incorporando soluciones existentes no implementadas o nuevas soluciones que aparezcan en este ámbito de conocimiento. Como aplicación concreta de la aplicación se ha elegido implementar los algoritmos necesarios para evaluar la aparición del balance paramétrico en un buque. En el análisis de éste problema se considera de interés la representación geométrica que se hace de la carena del buque. Además de la carena aparecen otros elementos que tienen influencia determinante en éste estudio, como son las situación de mar y las situaciones de carga. Idealmente, el problema sería resuelto si se consiguiera determinar el ángulo de balance que se produce al enfrentar un buque a las diferentes condiciones de mar. Se pretende preparar un programa utilizando el paradigma de la orientación a objetos. Considero que es la más adecuada forma de modularizar el programa para poder utilizar diferentes modelos de una misma carena y así comparar los resultados de la evaluación del balance paramétrico entre sí. En una etapa posterior se podrían comparar los resultados con otros obtenidos empíricamente. Hablo de una nueva metodología porque pretendo indicar cómo se ha de construir una aplicación de software que sea usable y sobre la que se pueda seguir desarrollando. Esto justifica la selección del lenguaje de programación C++. Se seleccionará un núcleo geométrico de software que permita acoplar de forma versátil los distintos componentes de software que van a construir el programa. Este trabajo pretende aplicar el desarrollo de software a un aspecto concreto del área de conocimiento de la hidrodinámica. No se pretende aportar nuevos algoritmos para resolver problemas de hidrodinámica, sino diseñar un conjunto de objetos de software que implementen soluciones existentes a conocidas soluciones numéricas a dichos problemas. Se trata fundamentalmente de un trabajo de software, más que de hidrodinámica. Lo que aporta de novedad es una nueva forma de realizar un programa aplicado a los cálculos hidrodinámicos relativos a la determinación del balance paramétrico, que pueda crecer e incorporar cualquier novedad que pueda surgir más adelante. Esto será posible por la programación modular utilizada y los objetos que representan cada uno de los elementos que intervienen en la determinación del balance paramétrico. La elección de aplicar la metodología a la predicción del balance paramétrico se debe a que este concepto es uno de los elementos que intervienen en la evaluación de criterios de estabilidad de segunda generación que estan en estudio para su futura aplicación en el ámbito de la construcción naval. Es por tanto un estudio que despierta interés por su próxima utilidad. ABSTRACT The aim of this thesis is to study how to develop a computer application implementing numerical algorithms to assess hydrodynamic features of geometrical models of vessels. It is therefore to propose a methodology for software development applied to an hydrodynamic problem, in order to evaluate different study alternatives by varying different parameters related to the problem and to be capable of providing results for analysis. As a concrete application of the program it has been chosen to implement the algorithms necessary for evaluating the appearance of parametric rolling in a vessel. In the analysis of this problem it is considered of interest the geometrical representation of the hull of the ship and other elements which have decisive influence in this phenomena, such as the sea situation and the loading condition. Ideally, the application would determine the roll angle that occurs when a ship is on waves of different characteristics. It aims to prepare a program by using the paradigm of object oriented programming. I think it is the best methodology to modularize the program. My intention is to show how face the global process of developing an application from the initial specification until the final release of the program. The process will keep in mind the spefici objetives of usability and the possibility of growing in the scope of the software. This work intends to apply software development to a particular aspect the area of knowledge of hydrodynamics. It is not intended to provide new algorithms for solving problems of hydrodynamics, but designing a set of software objects that implement existing solutions to these problems. This is essentially a job software rather than hydrodynamic. The novelty of this thesis stands in this work focuses in describing how to apply the whole proccess of software engineering to hydrodinamics problems. The choice of the prediction of parametric balance as the main objetive to be applied to is because this concept is one of the elements involved in the evaluation of the intact stability criteria of second generation. Therefore, I consider this study as relevant usefull for the future application in the field of shipbuilding.
Resumo:
La expansión experimentada por la informática, las nuevas tecnologías e internet en los últimos años, no solo viene dada por la evolución del hardware subyacente, sino por la evolución del desarrollo de software y del crecimiento del número de desarrolladores. Este incremento ha hecho evolucionar el software de unos sistemas de gestión basados en ficheros, prácticamente sin interfaz gráfico y de unos pocos miles de líneas a grandes sistemas distribuidos multiplataforma. El desarrollo de estos grandes sistemas, requiere gran cantidad de personas involucradas en el desarrollo, y que las herramientas de desarrollo hayan crecido también para facilitar su análisis, diseño, codificación, pruebas, implantación y mantenimiento. La base de estas herramientas software las proveen las propias plataformas de desarrollo, pero la experiencia de los desarrolladores puede aportar un sinfín de utilidades y de técnicas que agilicen los desarrollos y cumplan los requisitos del software en base a la reutilización de soluciones lo suficientemente probadas y optimizadas. Dichas herramientas se agrupan ordenadamente, creando así frameworks personalizados, con herramientas de todo tipo, clases, controles, interfaces, patrones de diseño, de tal manera que se dan soluciones personalizadas a un amplio número de problemas para emplearlas cuantas veces se quiera, bien marcando directrices de desarrollo mediante el uso de patrones, bien con la encapsulación de complejidades de tal modo que los desarrolladores ya dispongan de componentes que asuman cierta lógica o cierta complejidad aliviando así la fase de construcción. En este trabajo se abordan temas sobre las tecnologías base y plataformas de desarrollo para poder acometer la creación de un framework personalizado, necesidades a evaluar antes de acometerlo, y técnicas a emplear para la consecución del mismo, orientadas a la documentación, mantenimiento y extensión del framework. La exposición teórica consiste en mostrar y evaluar los requisitos para crear un framework, requisitos de la plataforma de desarrollo, y explicar cómo funcionan las grandes plataformas de desarrollo actuales, que elementos los componen y su funcionamiento, así como marcar ciertas pautas de estructuración y nomenclatura que el desarrollo de un framework debe contemplar para su mantenimiento y extensión. En la parte metodológica se ha usado un subconjunto de Métrica V3, ya que para el desarrollo de controles no aplica dicha metodología en su totalidad, pero contempla el catálogo de requisitos, los casos de uso, diagramas de clase, diagramas de secuencia, etc… Aparte de los conceptos teóricos, se presenta un caso práctico con fines didácticos de cómo parametrizar y configurar el desarrollo bajo la plataforma .NET. Dicho caso práctico consiste en la extensión de un control de usuario genérico de la plataforma .NET, de tal modo que se aplican conceptos más allá del hecho de crear funciones como las funcionalidades que puede brindar un API. Conceptos sobre como extender y modificar controles ya existentes, que interactúan por medio de eventos con otros controles, con vistas a que ese nuevo control forme parte de una biblioteca de controles de usuario personalizados ampliamente divulgada. Los controles de usuario son algo que no solo tienen una parte funcional, sino que también tienen una parte visual, y definiciones funcionales distintas de las típicas del software de gestión, puesto que han de controlar eventos, visualizaciones mientras se dan estos eventos y requisitos no funcionales de optimización de rendimiento, etc… Para el caso práctico se toma como herramienta la plataforma de desarrollo .Net Framework, en todas sus versiones, ya que el control a extender es el control ListView y hacerlo editable. Este control está presente en todas las versiones de .NET framework y con un alto grado de reutilización. Esta extensión muestra además como se puede migrar fácilmente este tipo de extensiones sobre todos los frameworks. Los entornos de desarrollo usados son varias versiones de Visual Studio para el mostrar dicha compatibilidad, aunque el desarrollo que acompaña este documento esté realizado sobre Visual Studio 2013. ABSTRACT The expansion in computer science, new technologies and the Internet in recent years, not only is given by the evolution of the underlying hardware, but for the evolution of software development and the growing number of developers. This increase has evolved software from management systems based on files almost without graphical interface and a few thousand of code lines, to large multiplatform distributed systems. The development of these large systems, require lots of people involved in development, and development tools have also grown to facilitate analysis, design, coding, testing, deployment and maintenance. The basis of these software tools are providing by their own development platforms, but the experience of the developers can bring a lot of utilities and techniques to speed up developments and meet the requirements of software reuse based on sufficiently proven solutions and optimized. These tools are grouped neatly, creating in this way custom frameworks, with tools of all types, classes, controls, interfaces, design patterns,… in such a way that they provide customized solutions to a wide range of problems to use them many times as you want to occur, either by dialing development guidelines by using patterns or along with the encapsulation of complexities, so that developers already have components that take some logic or some complexity relieving the construction phase. This paper cover matters based on technologies and development platforms to undertake the creation of a custom framework, needs to evaluate before rush it and techniques to use in order to achieve it, a part from techniques oriented to documentation, maintenance and framework extension. The theoretical explanation consists in to demonstrate and to evaluate the requirements for creating a framework, development platform requirements, and explain how large current development platforms work, which elements compose them and their operation work, as well as mark certain patterns of structure and nomenclature that the development of a framework should include for its maintenance and extension. In the methodological part, a subset of Métrica V3 has been used, because of, for the development of custom controls this methodology does not apply in its entirety, but provides a catalogue of requirements, use cases, class diagrams, sequence diagrams, etc ... Apart from the theoretical concepts, a study case for teaching purposes about how to parameterize and configure the development under the .NET platform is presented. This study case involves the extension of a generic user control of the .NET platform, so that concepts apply beyond the fact of creating functions as the functionalities that can provide an API. Concepts on how to extend and modify existing controls that interact through events with other controls, overlooking that new control as a part of a custom user controls library widely publicized. User controls are something that not only have a functional part, but also have a visual part, and various functional definitions of typical management software, since that they have to control events, visualizations while these events are given and not functional of performance optimization requirements, etc ... For the study case the development platform .Net Framework is taken as tool, in all its versions, considering that control to extend is the ListView control and make it editable. This control is present in all versions of .NET framework and with a high degree of reuse. This extension also shows how you can easily migrate these extensions on all frameworks. The used development environments are several versions of Visual Studio to show that compatibility, although the development that accompanies this document is done on Visual Studio 2013.
Resumo:
Interviews are the most widely used elicitation technique in Requirements Engineering (RE). Despite its importance, research in interviews is quite limited, in particular from an experimental perspective. We have performed a series of experiments exploring the relative effectiveness of structured and unstructured interviews. This line of research has been active in Information Systems in the past years, so that our experiments can be aggregated together with existing ones to obtain guidelines for practice. Experimental aggregation is a demanding task. It requires not only a large number of experiments, but also considering the influence of the existing moderators. However, in the current state of the practice in RE, those moderators are unknown. We believe that analyzing the threats to validity in interviewing experiments may give insight about how to improve further replications and the corresponding aggregations. It is likely that this strategy may be applied in other Software Engineering areas as well.
Resumo:
En un ejercicio no extenuante la frecuencia cardíaca (FC) guarda una relación lineal con el consumo máximo de oxígeno (V O2max) y se suele usar como uno de los parámetros de referencia para cuantificar la capacidad del sistema cardiovascular. Normalmente la frecuencia cardíaca puede remplazar el porcentaje de V O2max en las prescripciones básicas de ejercicio para la mejora de la resistencia aeróbica. Para obtener los mejores resultados en la mejora de la resistencia aeróbica, el entrenamiento de los individuos se debe hacer a una frecuencia cardíaca suficientemente alta, para que el trabajo sea de predominio dinámico con la fosforilación oxidativa como fuente energética primaria, pero no tan elevada que pueda suponer un riesgo de infarto de miocardio para el sujeto que se está entrenando. Los programas de entrenamiento de base mínima y de base óptima, con ejercicios de estiramientos para prevenir lesiones, son algunos de los programas más adecuados para el entrenamiento de la resistencia aeróbica porque maximizan los beneficios y minimizan los riesgos para el sistema cardiovascular durante las sesiones de entrenamiento. En esta tesis, se ha definido un modelo funcional para sistemas de inteligencia ambiental capaz de monitorizar, evaluar y entrenar las cualidades físicas que ha sido validado cuando la cualidad física es la resistencia aeróbica. El modelo se ha implementado en una aplicación Android utilizando la camiseta inteligente “GOW running” de la empresa Weartech. El sistema se ha comparado en el Laboratorio de Fisiología del Esfuerzo (LFE) de la Universidad Politécnica de Madrid (UPM) durante la realización de pruebas de esfuerzo. Además se ha evaluado un sistema de guiado con voz para los entrenamientos de base mínima y de base óptima. También el desarrollo del software ha sido validado. Con el uso de cuestionarios sobre las experiencias de los usuarios utilizando la aplicación se ha evaluado el atractivo de la misma. Por otro lado se ha definido una nueva metodología y nuevos tipos de cuestionarios diseñados para evaluar la utilidad que los usuarios asignan al uso de un sistema de guiado por voz. Los resultados obtenidos confirman la validez del modelo. Se ha obtenido una alta concordancia entre las medidas de FC hecha por la aplicación Android y el LFE. También ha resultado que los métodos de estimación del VO2max de los dos sistemas pueden ser intercambiables. Todos los usuarios que utilizaron el sistema de guiado por voz para entrenamientos de 10 base mínima y de base óptimas de la resistencia aeróbica consiguieron llevar a cabo las sesiones de entrenamientos con un 95% de éxito considerando unos márgenes de error de un 10% de la frecuencia cardíaca máxima teórica. La aplicación fue atractiva para los usuarios y hubo también una aceptación del sistema de guiado por voz. Se ha obtenido una evaluación psicológica positiva de la satisfacción de los usuarios que interactuaron con el sistema. En conclusión, se ha demostrado que es posible desarrollar sistemas de Inteligencia Ambiental en dispositivos móviles para la mejora de la salud. El modelo definido en la tesis es el primero modelo funcional teórico de referencia para el desarrollo de este tipo de aplicaciones. Posteriores estudios se realizarán con el objetivo de extender dicho modelo para las demás cualidades físicas que suponen modelos fisiológicos más complejos como por ejemplo la flexibilidad. Abstract In a non-strenuous exercise, the heart rate (HR) shows a linear relationship with the maximum volume of oxygen consumption (V O2max) and serves as an indicator of performance of the cardiovascular system. The heart rate replaces the %V O2max in exercise program prescription to improve aerobic endurance. In order to achieve an optimal effect during endurance training, the athlete needs to work out at a heart rate high enough to trigger the aerobic metabolism, while avoiding the high heart rates that bring along significant risks of myocardial infarction. The minimal and optimal base training programs, followed by stretching exercises to prevent injuries, are adequate programs to maximize benefits and minimize health risks for the cardiovascular system during single session training. In this thesis, we have defined an ambient intelligence system functional model that monitors, evaluates and trains physical qualities, and it has been validated for aerobic endurance. It is based on the Android System and the “GOW Running” smart shirt. The system has been evaluated during functional assessment stress testing of aerobic endurance in the Stress Physiology Laboratory (SPL) of the Technical University of Madrid (UPM). Furthermore, a voice system, designed to guide the user through minimal and optimal base training programs, has been evaluated. Also the software development has been evaluated. By means of user experience questionnaires, we have rated the attractiveness of the android application. Moreover, we have defined a methodology and a new kind of questionnaires in order to assess the user experience with the audio exercise guide system. The results obtained confirm the model. We have a high similarity between HR measurements made of our system and the one used by SPL. We have also a high correlation between the VO2max estimations of our system and the SPL system. All users, that tried the voice guidance system for minimal and optimal base training programs, were able to perform the 95% of the training session with an error lower than the 10% of theoretical maximum heart rate. The application appeared attractive to the users, and it has also been proven that the voice guidance system was useful. As result we obtained a positive evaluation of the users' satisfaction while they interacted with the system. In conclusion, it has been demonstrated that is possible to develop mobile Ambient Intelligence applications for the improvement of healthy lifestyle. AmIRTEM model is the first theoretical reference functional model for the design of this kind of applications. Further studies will be realized in order to extend the AmIRTEM model to other physical qualities whose physiological models are more complex than the aerobic endurance.
Resumo:
Open source is a software development paradigm that has seen a huge rise in recent years. It reduces IT costs and time to market, while increasing security and reliability. However, the difficulty in integrating developments from different communities and stakeholders prevents this model from reaching its full potential. This is mainly due to the challenge of determining and locating the correct dependencies for a given software artifact. To solve this problem we propose the development of an extensible software component repository based upon models. This repository should be capable of solving the dependencies between several components and work with already existing repositories to access the needed artifacts transparently. This repository will also be easily expandable, enabling the creation of modules that support new kinds of dependencies or other existing repository technologies. The proposed solution will work with OSGi components and use OSGi itself.
Resumo:
En este proyecto se estudian y analizan las diferentes técnicas de procesado digital de señal aplicadas a acelerómetros. Se hace uso de una tarjeta de prototipado, basada en DSP, para realizar las diferentes pruebas. El proyecto se basa, principalmente, en realizar filtrado digital en señales provenientes de un acelerómetro en concreto, el 1201F, cuyo campo de aplicación es básicamente la automoción. Una vez estudiadas la teoría de procesado y las características de los filtros, diseñamos una aplicación basándonos sobre todo en el entorno en el que se desarrollaría una aplicación de este tipo. A lo largo del diseño, se explican las diferentes fases: diseño por ordenador (Matlab), diseño de los filtros en el DSP (C), pruebas sobre el DSP sin el acelerómetro, calibración del acelerómetro, pruebas finales sobre el acelerómetro... Las herramientas utilizadas son: la plataforma Kit de evaluación 21-161N de Analog Devices (equipado con el entorno de desarrollo Visual DSP 4.5++), el acelerómetro 1201F, el sistema de calibración de acelerómetros CS-18-LF de Spektra y los programas software MATLAB 7.5 y CoolEditPRO 2.0. Se realizan únicamente filtros IIR de 2º orden, de todos los tipos (Butterworth, Chebyshev I y II y Elípticos). Realizamos filtros de banda estrecha, paso-banda y banda eliminada, de varios tipos, dentro del fondo de escala que permite el acelerómetro. Una vez realizadas todas las pruebas, tanto simulaciones como físicas, se seleccionan los filtros que presentan un mejor funcionamiento y se analizan para obtener conclusiones. Como se dispone de un entorno adecuado para ello, se combinan los filtros entre sí de varias maneras, para obtener filtros de mayor orden (estructura paralelo). De esta forma, a partir de filtros paso-banda, podemos obtener otras configuraciones que nos darán mayor flexibilidad. El objetivo de este proyecto no se basa sólo en obtener buenos resultados en el filtrado, sino también de aprovechar las facilidades del entorno y las herramientas de las que disponemos para realizar el diseño más eficiente posible. In this project, we study and analize digital signal processing in order to design an accelerometer-based application. We use a hardware card of evaluation, based on DSP, to make different tests. This project is based in design digital filters for an automotion application. The accelerometer type is 1201F. First, we study digital processing theory and main parameters of real filters, to make a design based on the application environment. Along the application, we comment all the different steps: computer design (Matlab), filter design on the DSP (C language), simulation test on the DSP without the accelerometer, accelerometer calibration, final tests on the accelerometer... Hardware and software tools used are: Kit of Evaluation 21-161-N, based on DSP, of Analog Devices (equiped with software development tool Visual DSP 4.5++), 1201-F accelerometer, CS-18-LF calibration system of SPEKTRA and software tools MATLAB 7.5 and CoolEditPRO 2.0. We only perform 2nd orden IIR filters, all-type : Butterworth, Chebyshev I and II and Ellyptics. We perform bandpass and stopband filters, with very narrow band, taking advantage of the accelerometer's full scale. Once all the evidence, both simulations and physical, are finished, filters having better performance and analyzed and selected to draw conclusions. As there is a suitable environment for it, the filters are combined together in different ways to obtain higher order filters (parallel structure). Thus, from band-pass filters, we can obtain many configurations that will give us greater flexibility. The purpose of this project is not only based on good results in filtering, but also to exploit the facilities of the environment and the available tools to make the most efficient design possible.
Resumo:
El Análisis de Consumo de Recursos o Análisis de Coste trata de aproximar el coste de ejecutar un programa como una función dependiente de sus datos de entrada. A pesar de que existen trabajos previos a esta tesis doctoral que desarrollan potentes marcos para el análisis de coste de programas orientados a objetos, algunos aspectos avanzados, como la eficiencia, la precisión y la fiabilidad de los resultados, todavía deben ser estudiados en profundidad. Esta tesis aborda estos aspectos desde cuatro perspectivas diferentes: (1) Las estructuras de datos compartidas en la memoria del programa son una pesadilla para el análisis estático de programas. Trabajos recientes proponen una serie de condiciones de localidad para poder mantener de forma consistente información sobre los atributos de los objetos almacenados en memoria compartida, reemplazando éstos por variables locales no almacenadas en la memoria compartida. En esta tesis presentamos dos extensiones a estos trabajos: la primera es considerar, no sólo los accesos a los atributos, sino también los accesos a los elementos almacenados en arrays; la segunda se centra en los casos en los que las condiciones de localidad no se cumplen de forma incondicional, para lo cual, proponemos una técnica para encontrar las precondiciones necesarias para garantizar la consistencia de la información acerca de los datos almacenados en memoria. (2) El objetivo del análisis incremental es, dado un programa, los resultados de su análisis y una serie de cambios sobre el programa, obtener los nuevos resultados del análisis de la forma más eficiente posible, evitando reanalizar aquellos fragmentos de código que no se hayan visto afectados por los cambios. Los analizadores actuales todavía leen y analizan el programa completo de forma no incremental. Esta tesis presenta un análisis de coste incremental, que, dado un cambio en el programa, reconstruye la información sobre el coste del programa de todos los métodos afectados por el cambio de forma incremental. Para esto, proponemos (i) un algoritmo multi-dominio y de punto fijo que puede ser utilizado en todos los análisis globales necesarios para inferir el coste, y (ii) una novedosa forma de almacenar las expresiones de coste que nos permite reconstruir de forma incremental únicamente las funciones de coste de aquellos componentes afectados por el cambio. (3) Las garantías de coste obtenidas de forma automática por herramientas de análisis estático no son consideradas totalmente fiables salvo que la implementación de la herramienta o los resultados obtenidos sean verificados formalmente. Llevar a cabo el análisis de estas herramientas es una tarea titánica, ya que se trata de herramientas de gran tamaño y complejidad. En esta tesis nos centramos en el desarrollo de un marco formal para la verificación de las garantías de coste obtenidas por los analizadores en lugar de analizar las herramientas. Hemos implementado esta idea mediante la herramienta COSTA, un analizador de coste para programas Java y KeY, una herramienta de verificación de programas Java. De esta forma, COSTA genera las garantías de coste, mientras que KeY prueba la validez formal de los resultados obtenidos, generando de esta forma garantías de coste verificadas. (4) Hoy en día la concurrencia y los programas distribuidos son clave en el desarrollo de software. Los objetos concurrentes son un modelo de concurrencia asentado para el desarrollo de sistemas concurrentes. En este modelo, los objetos son las unidades de concurrencia y se comunican entre ellos mediante llamadas asíncronas a sus métodos. La distribución de las tareas sugiere que el análisis de coste debe inferir el coste de los diferentes componentes distribuidos por separado. En esta tesis proponemos un análisis de coste sensible a objetos que, utilizando los resultados obtenidos mediante un análisis de apunta-a, mantiene el coste de los diferentes componentes de forma independiente. Abstract Resource Analysis (a.k.a. Cost Analysis) tries to approximate the cost of executing programs as functions on their input data sizes and without actually having to execute the programs. While a powerful resource analysis framework on object-oriented programs existed before this thesis, advanced aspects to improve the efficiency, the accuracy and the reliability of the results of the analysis still need to be further investigated. This thesis tackles this need from the following four different perspectives. (1) Shared mutable data structures are the bane of formal reasoning and static analysis. Analyses which keep track of heap-allocated data are referred to as heap-sensitive. Recent work proposes locality conditions for soundly tracking field accesses by means of ghost non-heap allocated variables. In this thesis we present two extensions to this approach: the first extension is to consider arrays accesses (in addition to object fields), while the second extension focuses on handling cases for which the locality conditions cannot be proven unconditionally by finding aliasing preconditions under which tracking such heap locations is feasible. (2) The aim of incremental analysis is, given a program, its analysis results and a series of changes to the program, to obtain the new analysis results as efficiently as possible and, ideally, without having to (re-)analyze fragments of code that are not affected by the changes. During software development, programs are permanently modified but most analyzers still read and analyze the entire program at once in a non-incremental way. This thesis presents an incremental resource usage analysis which, after a change in the program is made, is able to reconstruct the upper-bounds of all affected methods in an incremental way. To this purpose, we propose (i) a multi-domain incremental fixed-point algorithm which can be used by all global analyses required to infer the cost, and (ii) a novel form of cost summaries that allows us to incrementally reconstruct only those components of cost functions affected by the change. (3) Resource guarantees that are automatically inferred by static analysis tools are generally not considered completely trustworthy, unless the tool implementation or the results are formally verified. Performing full-blown verification of such tools is a daunting task, since they are large and complex. In this thesis we focus on the development of a formal framework for the verification of the resource guarantees obtained by the analyzers, instead of verifying the tools. We have implemented this idea using COSTA, a state-of-the-art cost analyzer for Java programs and KeY, a state-of-the-art verification tool for Java source code. COSTA is able to derive upper-bounds of Java programs while KeY proves the validity of these bounds and provides a certificate. The main contribution of our work is to show that the proposed tools cooperation can be used for automatically producing verified resource guarantees. (4) Distribution and concurrency are today mainstream. Concurrent objects form a well established model for distributed concurrent systems. In this model, objects are the concurrency units that communicate via asynchronous method calls. Distribution suggests that analysis must infer the cost of the diverse distributed components separately. In this thesis we propose a novel object-sensitive cost analysis which, by using the results gathered by a points-to analysis, can keep the cost of the diverse distributed components separate.