960 resultados para Computer software -- Development
Resumo:
En la actualidad existe una gran expectacin ante la introduccin de nuevas herramientas y mtodos para el desarrollo de productos software, que permitirn en un futuro prximo un planteamiento de ingeniera del proceso de produccin software. Las nuevas metodologas que empiezan a esbozarse suponen un enfoque integral del problema abarcando todas las fases del esquema productivo. Sin embargo el grado de automatizacin conseguido en el proceso de construccin de sistemas es muy bajo y ste est centrado en las ltimas fases del ciclo de vida del software, consiguindose as una reduccin poco significativa de sus costes y, lo que es an ms importante, sin garantizar la calidad de los productos software obtenidos. Esta tesis define una metodologa de desarrollo software estructurada que se puede automatizar, es decir una metodologa CASE. La metodologa que se presenta se ajusta al modelo de ciclo de desarrollo CASE, que consta de las fases de anlisis, diseo y pruebas; siendo su mbito de aplicacin los sistemas de informacin. Se establecen inicialmente los principios bsicos sobre los que la metodologa CASE se asienta. Posteriormente, y puesto que la metodologa se inicia con la fijacin de los objetivos de la empresa que demanda un sistema informtico, se emplean tcnicas que sirvan de recogida y validacin de la informacin, que proporcionan a la vez un lenguaje de comunicacin fcil entre usuarios finales e informticos. Adems, estas mismas tcnicas detallarn de una manera completa, consistente y sin ambigedad todos los requisitos del sistema. Asimismo, se presentan un conjunto de tcnicas y algoritmos para conseguir que desde la especificacin de requisitos del sistema se logre una automatizacin tanto del diseo lgico del Modelo de Procesos como del Modelo de Datos, validados ambos conforme a la especificacin de requisitos previa. Por ltimo se definen unos procedimientos formales que indican el conjunto de actividades a realizar en el proceso de construccin y cmo llevarlas a cabo, consiguiendo de esta manera una integridad en las distintas etapas del proceso de desarrollo.---ABSTRACT---Nowdays there is a great expectation with regard to the introduction of new tools and methods for the software products development that, in the very near future will allow, an engineering approach in the software development process. New methodologies, just emerging, imply an integral approach to the problem, including all the productive scheme stages. However, the automatization degree obtained in the systems construction process is very low and focused on the last phases of the software lifecycle, which means that the costs reduction obtained is irrelevant and, which is more important, the quality of the software products is not guaranteed. This thesis defines an structured software development methodology that can be automated, that is a CASE methodology. Such a methodology is adapted to the CASE development cycle-model, which consists in analysis, design and testing phases, being the information systems its field of application. Firstly, we present the basic principies on which CASE methodology is based. Secondly, since the methodology starts from fixing the objectives of the company demanding the automatization system, we use some techniques that are useful for gathering and validating the information, being at the same time an easy communication language between end-users and developers. Indeed, these same techniques will detail completely, consistently and non ambiguously all the system requirements. Likewise, a set of techniques and algorithms are shown in order to obtain, from the system requirements specification, an automatization of the Process Model logical design, and of the Data Model logical design. Those two models are validated according to the previous requirement specification. Finally, we define several formal procedures that suggest which set of activities to be accomplished in the construction process, and how to carry them out, getting in this way integrity and completness for the different stages of the development process.
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 software se ha convertido en el eje central del mundo actual, una compleja creacin humana que influye en la vida, negocios y comunicacin de todas las personas pertenecientes a la Sociedad de la Informacin. El rpido crecimiento experimentado en el mbito del desarrollo software ha permitido la creacin de avanzadas estructuras tecnolgicas, denominadas Sistemas Intensivos Software, capaces de comunicarse con otros sistemas, dispositivos, sensores y personas. A lo largo de los prximos aos los sistemas se enfrentarn a una mayor complejidad, surgida de la necesidad de operar en entornos de grandes dimensiones y de comportamientos no deterministas. Los mtodos y herramientas actuales no son lo suficientemente potentes para disear, construir,implementar y mantener sistemas intensivos software con estas caractersticas, y detener la construccin de sistemas intensivos software o construir sistemas poco flexibles o fiables no es una alternativa real. En el desarrollo de Sistemas Intensivos Software pueden llegar a intervenir distintas entidades o compaas software que suelen estar en ubicaciones geogrficas distintas y constituidas por grandes equipos de desarrollo, multidisciplinares e incluso multilinges. Debido a la criticidad del resultado de las actividades realizadas de forma independiente en el sistema resultante, stas se han de controlar y monitorizar para asegurar la correcta integracin de todos los elementos del sistema completo. El objetivo de este proyecto es la creacin de una herramienta software para dar soporte a la gestin y monitorizacin de la construccin e integracin de sistemas intensivos software, siendo extensible tambin a proyectos de otra ndole. La herramienta resultante se denomina Positioning System, una aplicacin web del tipo SPA (Single Page Application) creada con tecnologa de ltima generacin como el framework JavaScript AngularJS y tecnologa de back-end como SlimPHP. Positioning System provee la funcionalidad necesaria para la creacin de proyectos, familias y subfamilias de productos que constituyen los productos software de los proyectos creados, as como la gestin de socios comerciales y gestin de contactos de dichos proyectos. Todas estas funcionalidades son fcilmente monitorizadas y controladas por grficos estadsticos generados para cada proyecto. ABSTRACT Software has become the backbone of todays world, a complex human creation that has an important impact in the life, business and communication of all people involved with the Information Society. The quick growth that software development has undergone for last years has enabled the creation of advanced technological structures called Software Intensive Systems. They are able to communicate with other systems, devices, sensors and people. Next years, systems will face more complexity. It arises from the need of operating systems of large dimensions with non-deterministic behaviors. Current methods and tools are not powerful enough to design, build, implement and maintain software intensive systems; however stopping the development or developing unreliable and non-flexible systems is not a real alternative. Software Intensive Systems development may involve different entities or software companies which may be in different geographical locations and may be constituted by large, multidisciplinary and even multilingual development teams. Due to the criticality of the result of each conducted activity, independently in the resulting system, these activities must be controlled and monitored to ensure the proper integration of all the elements within the complete system. The goal of this project is the creation of a software tool to support the management and monitoring of the construction and integration of software intensive systems, being possible to be extended to other kind of projects. The resultant tool is called Positioning System, a web application that follows the SPA (Single Page Application) style. It was created with the latest technologies, such as, the AngularJS framework and SlimPHP. The Positioning System provides the necessary features for the creation of projects, families and subfamilies of products that constitute the software products of the created projects, as well as the management of business partners and contacts of these projects. All these features are easily monitored and controlled by statistical graphs generated for each project.
Resumo:
Las compaas de desarrollo de software buscan reducir costes a travs del desarrollo de diseos que permitan: a) facilidad en la distribucin del trabajo de desarrollo, con la menor comunicacin de las partes; b) modificabilidad, permitiendo realizar cambios sobre un mdulo sin alterar las otras partes y; c) comprensibilidad, permitiendo estudiar un mdulo del sistema a la vez. Estas caractersticas elementales en el diseo de software se logran a travs del diseo de sistemas cuasi-descomponibles, cuyo modelo terico fue introducido por Simon en su bsqueda de una teora general de los sistemas. En el campo del diseo de software, Parnas propone un camino prctico para lograr sistemas cuasi-descomponibles llamado el Principio de Ocultacin de Informacin. El Principio de Ocultacin de Informacin es un criterio diferente de descomposicin en mdulos, cuya implementacin logra las caractersticas deseables de un diseo 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 implementacin del Principio, es por esto que cuando los objetos empiezan a tomar fuerza, tambin aparecen paralelamente las dificultades en el aprendizaje de diseo 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 diseo de software orientado a objetos tiene un gran impacto tanto en las aulas como en la profesin. La deteccin 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 diseo de software orientado a objetos, a travs de un estudio emprico. El estudio fue realizado a travs 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 Ocultacin de Informacin antes de que iniciasen la instruccin. La segunda parte, un estudio llevado a cabo a lo largo del perodo de instruccin con la finalidad de obtener las dificultades de diseo 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 orgenes. Los participantes de este estudio pertenecieron a la materia de Software Design del European Master in Software Engineering de la Escuela Tcnica Superior de Ingenieros Informticos de la Universidad Politcnica de Madrid. Los datos cualitativos usados para el anlisis procedieron de las observaciones en las horas de clase y exposiciones, entrevistas realizadas a los estudiantes y ejercicios enviados a lo largo del perodo de instruccin. 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 diseo de software, docencia, industria y a nivel metodolgico. 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 Tcnica Superior de Ingenieros Informticos of Universidad Politcnica 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:
La tesis est focalizada en la resolucin de problemas de optimizacin combinatoria, haciendo uso de las opciones tecnolgicas actuales que ofrecen las tecnologas de la informacin y las comunicaciones, y la investigacin operativa. Los problemas de optimizacin combinatoria se resuelven en general mediante programacin lineal y metaheursticas. La aplicacin de las tcnicas de resolucin de los problemas de optimizacin combinatoria requiere de una elevada carga computacional, y los algoritmos deben disearse, por un lado pensando en la efectividad para encontrar buenas soluciones del problema, y por otro lado, pensando en un uso adecuado de los recursos informticos disponibles. La programacin lineal y las metaheursticas son tcnicas de resolucin genricas, que se pueden aplicar a diferentes problemas, partiendo de una base comn que se particulariza para cada problema concreto. En el campo del desarrollo de software, los frameworks cumplen esa funcin de comenzar un proyecto con el trabajo general ya disponible, con la opcin de cambiar o extender ese comportamiento base o genrico, para construir el sistema concreto, lo que permite reducir el tiempo de desarrollo, y ampla las posibilidades de xito del proyecto. En esta tesis se han desarrollado dos frameworks de desarrollo. El framework ILP permite modelar y resolver problemas de programacin lineal, de forma independiente al software de resolucin de programacin lineal que se utilice. El framework LME permite resolver problemas de optimizacin combinatoria mediante metaheursticas. Tradicionalmente, las aplicaciones de resolucin de problemas de optimizacin combinatoria son aplicaciones de escritorio que permiten gestionar toda la informacin de entrada del problema y resuelven el problema en local, con los recursos hardware disponibles. Recientemente ha aparecido un nuevo paradigma de despliegue y uso de aplicaciones que permite compartir recursos informticos especializados por Internet. Esta nueva forma de uso de recursos informticos es la computacin en la nube, que presenta el modelo de software como servicio (SaaS). En esta tesis se ha construido una plataforma SaaS, para la resolucin de problemas de optimizacin combinatoria, que se despliega sobre arquitecturas compuestas por procesadores multi-ncleo y tarjetas grficas, y dispone de algoritmos de resolucin basados en frameworks de programacin lineal y metaheursticas. Toda la infraestructura es independiente del problema de optimizacin combinatoria a resolver, y se han desarrollado tres problemas que estn totalmente integrados en la plataforma SaaS. Estos problemas se han seleccionado por su importancia prctica. Uno de los problemas tratados en la tesis, es el problema de rutas de vehculos (VRP), que consiste en calcular las rutas de menor coste de una flota de vehculos, que reparte mercancas a todos los clientes. Se ha partido de la versin ms clsica del problema y se han hecho estudios en dos direcciones. Por un lado se ha cuantificado el aumento en la velocidad de ejecucin de la resolucin del problema en tarjetas grficas. Por otro lado, se ha estudiado el impacto en la velocidad de ejecucin y en la calidad de soluciones, en la resolucin por la metaheurstica de colonias de hormigas (ACO), cuando se introduce la programacin lineal para optimizar las rutas individuales de cada vehculo. Este problema se ha desarrollado con los frameworks ILP y LME, y est disponible en la plataforma SaaS. Otro de los problemas tratados en la tesis, es el problema de asignacin de flotas (FAP), que consiste en crear las rutas de menor coste para la flota de vehculos de una empresa de transporte de viajeros. Se ha definido un nuevo modelo de problema, que engloba caractersticas de problemas presentados en la literatura, y aade nuevas caractersticas, lo que permite modelar los requerimientos de las empresas de transporte de viajeros actuales. Este nuevo modelo resuelve de forma integrada el problema de definir los horarios de los trayectos, el problema de asignacin del tipo de vehculo, y el problema de crear las rotaciones de los vehculos. Se ha creado un modelo de programacin lineal para el problema, y se ha resuelto por programacin lineal y por colonias de hormigas (ACO). Este problema se ha desarrollado con los frameworks ILP y LME, y est disponible en la plataforma SaaS. El ltimo problema tratado en la tesis es el problema de planificacin tctica de personal (TWFP), que consiste en definir la configuracin de una plantilla de trabajadores de menor coste, para cubrir una demanda de carga de trabajo variable. Se ha definido un modelo de problema muy flexible en la definicin de contratos, que permite el uso del modelo en diversos sectores productivos. Se ha definido un modelo matemtico de programacin lineal para representar el problema. Se han definido una serie de casos de uso, que muestran la versatilidad del modelo de problema, y permiten simular el proceso de toma de decisiones de la configuracin de una plantilla de trabajadores, cuantificando econmicamente cada decisin que se toma. Este problema se ha desarrollado con el framework ILP, y est disponible en la plataforma SaaS. ABSTRACT The thesis is focused on solving combinatorial optimization problems, using current technology options offered by information technology and communications, and operations research. Combinatorial optimization problems are solved in general by linear programming and metaheuristics. The application of these techniques for solving combinatorial optimization problems requires a high computational load, and algorithms are designed, on the one hand thinking to find good solutions to the problem, and on the other hand, thinking about proper use of the available computing resources. Linear programming and metaheuristic are generic resolution techniques, which can be applied to different problems, beginning with a common base that is particularized for each specific problem. In the field of software development, frameworks fulfill this function that allows you to start a project with the overall work already available, with the option to change or extend the behavior or generic basis, to build the concrete system, thus reducing the time development, and expanding the possibilities of success of the project. In this thesis, two development frameworks have been designed and developed. The ILP framework allows to modeling and solving linear programming problems, regardless of the linear programming solver used. The LME framework is designed for solving combinatorial optimization problems using metaheuristics. Traditionally, applications for solving combinatorial optimization problems are desktop applications that allow the user to manage all the information input of the problem and solve the problem locally, using the available hardware resources. Recently, a new deployment paradigm has appeared, that lets to share hardware and software resources by the Internet. This new use of computer resources is cloud computing, which presents the model of software as a service (SaaS). In this thesis, a SaaS platform has been built for solving combinatorial optimization problems, which is deployed on architectures, composed of multi-core processors and graphics cards, and has algorithms based on metaheuristics and linear programming frameworks. The SaaS infrastructure is independent of the combinatorial optimization problem to solve, and three problems are fully integrated into the SaaS platform. These problems have been selected for their practical importance. One of the problems discussed in the thesis, is the vehicle routing problem (VRP), which goal is to calculate the least cost of a fleet of vehicles, which distributes goods to all customers. The VRP has been studied in two directions. On one hand, it has been quantified the increase in execution speed when the problem is solved on graphics cards. On the other hand, it has been studied the impact on execution speed and quality of solutions, when the problem is solved by ant colony optimization (ACO) metaheuristic, and linear programming is introduced to optimize the individual routes of each vehicle. This problem has been developed with the ILP and LME frameworks, and is available in the SaaS platform. Another problem addressed in the thesis, is the fleet assignment problem (FAP), which goal is to create lower cost routes for a fleet of a passenger transport company. It has been defined a new model of problem, which includes features of problems presented in the literature, and adds new features, allowing modeling the business requirements of today's transport companies. This new integrated model solves the problem of defining the flights timetable, the problem of assigning the type of vehicle, and the problem of creating aircraft rotations. The problem has been solved by linear programming and ACO. This problem has been developed with the ILP and LME frameworks, and is available in the SaaS platform. The last problem discussed in the thesis is the tactical planning staff problem (TWFP), which is to define the staff of lower cost, to cover a given work load. It has been defined a very rich problem model in the definition of contracts, allowing the use of the model in various productive sectors. It has been defined a linear programming mathematical model to represent the problem. Some use cases has been defined, to show the versatility of the model problem, and to simulate the decision making process of setting up a staff, economically quantifying every decision that is made. This problem has been developed with the ILP framework, and is available in the SaaS platform.
Resumo:
Los puentes atirantados son una de las tipologas estructurales con mas desarrollo en los ltimos aos ya que cuentan con un mbito de aplicacin que se ha extendido en gran medida, llegando hasta el rango de luces de ms de 1000 m. Por otra parte, para el caso de luces medias, este tipo de puentes aporta unas caractersticas resistentes y formales que los hacen muy adecuados en gran nmero de situaciones. Simultaneamente al importante nmero de realizaciones llevadas a cabo con esta tipologa en los ltimos aos, se ha producido un gran desarrollo del conocimiento terico de diferentes aspectos tcnicos especficos de estos puentes, tanto a nivel de su comportamiento estructural como de la simulacin y mejora de sus procesos constructivos. Estos desarrollos se han producido en gran parte gracias al avance en las capacidad de computacin disponible hoy en da con los numerosos y cada vez ms sofisticados programas comerciales de clculo estructural, los cuales permiten la realizacin de anlisis que hasta hace poco tiempo eran muy complicados de desarrollar. Una de las principales caractersticas de este tipo de estructuras, adems de su elevado hiperestatismo, es la importancia del proceso constructivo, y en concreto del proceso de tesado de los cables, a la hora de conseguir alcanzar una situacin final con la estructura en servicio que cumpla los requisitos establecidos a priori. Por este motivo se han llevado a cabo bastantes investigaciones orientadas a la optimizacin de los axiles a aplicar a los cables en el momento de su colocacin y en su situacin final. Parte de estos anlisis se han centrado en particular en la posible influencia de ciertos parmetros geomtricos y mecnicos aleatorios sobre los esfuerzos provocados sobre la estructura. Por otra parte, el propio comportamiento resistente de un tirante introduce ciertas incertidumbres en los formatos de seguridad asociados a los esfuerzos generados sobre ellos, en concreto en relacin a la dependencia de estas fuerzas respecto de las cargas permanentes y a su consideracin a nivel de coeficientes de seguridad asociados a dichas acciones. En vista de estos aspectos particulares se ha procedido a desarrollar la investigacin que se expone a continuacin, en la que se ha pretendido obtener un conocimiento adicional de algunos de estos aspectos para as poder contrastar la validez de las hiptesis que hoy en da son establecidas por la normativa vigente. De esta forma el planteamiento adoptado en esta tesis ha sido en primer lugar proponer un mtodo novedoso de introduccin de errores aleatorios sobre los esfuerzos o deformaciones de tesado de los cables, de tal manera que se pueda aplicar dicha tcnica a distintas tipologas de puentes atirantados. Se pretende con ello conocer la influencia de dichos errores sobre el comportamiento de estas estructuras y valorar la magnitud de las desviaciones finalmente creadas respecto de la situacin terica. Una vez conocida la implicacin que supone la aleatoriedad aplicada en la colocacin de los tirantes, tanto cualitativa como cuantitativamente, se ha procedido a realizar un anlisis de las consecuencias respecto de los formatos de seguridad que de estos datos se deducen. Sealar que esta tesis se ha centrado en el caso concreto de puentes atirantados construidos por voladizos sucesivos y con tableros de hormign, dado el gran numero de puentes ejecutados con estas caractersticas, y con el objetivo de concentrar el estudio realizado en una tipologa particular, pero de gran aplicacin. Cable-stayed bridges represent one of the most developed structural typologies being used recently as it has a span range that can extend beyond 1000m. Furthermore, when it comes to bridges that span to a medium range we could say their shape and resistance are features that make this kind of bridge suitable for many different applications. Moreover, due to this type of bridge being used newly more extensively it has allowed for a better understanding of the theoretical knowledge of the various technical aspects both at a structural and simulation level in order to improve the constructions process of this type of bridge. Knowledge and development of these bridges can be attributed to the increasing apprehension of I.T. skills and the development of more advanced computer software with regards to structural calculations. The latter can aide more demanding analysis that was previously difficult to ascertain Defining features of this type of structure, besides its hyper static attributes, is the importance of the construction process, namely the cable tensioning process, which determines whether the requirements set out in the construction process will be met once the bridge is finished and traffic loads are applied. This is why much research has been conducted into the optimization of the axial forces to be applied to the cables. Focus, of part of this research, goes into the possible influences of random geometrical and mechanical parametres on the forces applied to the structure. We have therefore proceeded to develop research in which we have tried to gain more in depth knowledge which considers these aspects so that we can validate the hypothesis which are currently established in the regulations Firstly, the purpose of this thesis is to provide a new method to introduce random errors on the forces or deformations of cable tensioning so that this technique can be extended to various models of cable-staying bridges. It is important to highlight that this thesis has focused on cable-stayed bridges built through the balanced cantilever method and with concrete girders and considering there are many actual bridges with these characteristics the research has focused on a specific yet extensively applied method.
Resumo:
Este trabajo contiene el diseo y anlisis de dos modalidades de docencia de programacin de aplicaciones mviles, con el objetivo de aumentar el inters de los estudiantes de enseanza secundaria por la Ingeniera Informtica. Primeramente se analiz la estructura y el contenido de las diferentes materias relacionadas con la informtica que existen actualmente en la educacin secundaria en Espaa, con el fin de localizar las carencias del currculo. Estas carencias principales son: la falta de reconocimiento de la Ingeniera informtica al mismo nivel que el resto de ingenieras y una falta de contenidos relacionados con el desarrollo de software, tanto a nivel de programacin como de diseo. A continuacin, una vez analizados diferentes posibilidades de entornos con los que desarrollar dichos cursos, se disearon los dos modelos de docencia utilizando App Inventor como herramienta conductora, con los que poder cubrir esos conocimientos. El primer modelo consiste en un curso de cuatro semanas a impartir directamente en el centro, mientras que el segundo se trata de un taller de una maana a impartir en la Escuela Tcnica Superior de Ingenieros Informticos de la Universidad Politcnica de Madrid. De los resultados de esos modelos se han obtenidos resultados muy positivos en cuanto al incremento de los conocimientos de los alumnos sobre informtica, adems de aumentar su inters por la Ingeniera Informtica y obtener una visin ms ajustada a la realidad de la misma.---ABSTRACT---This work details the design and realization of a workshop and a course for teaching mobile application programming to Spanish high school students, with the aim of increasing their interest in Computing. In order to locate the shortcomings of the curriculum, the structure and contents of various subjects related to Computing in currently secondary education in Spain were analyzed. The results show a lack of recognition of computer engineering at the same level as the rest of engineering disciplines and a lack of content related to software development, both in terms of programming and design. Then, after analyzing existing programming environments available for covering the basic programming objectives, App Inventor was chosen as mobile programming environment for both teaching activities (the workshop and the course). The first activity consists of a four-week course to teach directly in the high school, while the second one is a 4-hour workshop to be held at the university. The workshop and the course were carried out with students of two secondary schools, obtaining very positive results in terms of increasing students knowledge about computers, increasing their interest in Computing, and making them get a more accurate vision of the discipline.
Resumo:
Hoy en da, existen numerosos sistemas (financieros, fabricacin industrial, infraestructura de servicios bsicos, etc.) que son dependientes del software. Segn la definicin de Ingeniera del Software realizada por I. Sommerville, la Ingeniera del Software es una disciplina de la ingeniera que comprende todos los aspectos de la produccin de software desde las etapas iniciales de la especificacin del sistema, hasta el mantenimiento de ste despus de que se utiliza. La ingeniera del software no slo comprende los procesos tcnicos del desarrollo de software, sino tambin actividades tales como la gestin de proyectos de software y el desarrollo de herramientas, mtodos y teoras de apoyo a la produccin de software. Los modelos de proceso de desarrollo software determinan una serie de pautas para poder desarrollar con xito un proyecto de desarrollo software. Desde que surgieran estos modelos de proceso, se investigado en nuevas maneras de poder gestionar un proyecto y producir software de calidad. En primer lugar surgieron las metodologas pesadas o tradicionales, pero con el avance del tiempo y la tecnologa, surgieron unas nuevas llamadas metodologas giles. En el marco de las metodologas giles cabe destacar una determinada prctica, la integracin continua. Esta prctica surgi de la mano de Martin Fowler, con el objetivo de facilitar el trabajo en grupo y automatizar las tareas de integracin. La integracin continua se basa en la construccin automtica de proyectos con una frecuencia alta, promoviendo la deteccin de errores en un momento temprano para poder dar prioridad a corregir dichos errores. Sin embargo, una de las claves del xito en el desarrollo de cualquier proyecto software consiste en utilizar un entorno de trabajo que facilite, sistematice y ayude a aplicar un proceso de desarrollo de una forma eficiente. Este Proyecto Fin de Grado (PFG) tiene por objetivo el anlisis de distintas herramientas para configurar un entorno de trabajo que permita desarrollar proyectos aplicando metodologas giles e integracin continua de una forma fcil y eficiente. Una vez analizadas dichas herramientas, se ha propuesto y configurado un entorno de trabajo para su puesta en marcha y uso. Una caracterstica a destacar de este PFG es que las herramientas analizadas comparten una cualidad comn y de alto valor, son herramientas open-source. El entorno de trabajo propuesto en este PFG presenta una arquitectura cliente-servidor, dado que la mayora de proyectos software se desarrollan en equipo, de tal forma que el servidor proporciona a los distintos clientes/desarrolladores acceso al conjunto de herramientas que constituyen el entorno de trabajo. La parte servidora del entorno propuesto proporciona soporte a la integracin continua mediante herramientas de control de versiones, de gestin de historias de usuario, de anlisis de mtricas de software, y de automatizacin de la construccin de software. La configuracin del cliente nicamente requiere de un entorno de desarrollo integrado (IDE) que soporte el lenguaje de programacin Java y conexin con el servidor. ABSTRACT Nowadays, numerous systems (financial, industrial production, basic services infrastructure, etc.) depend on software. According to the Software Engineering definition made by I.Sommerville, Software engineering is an engineering discipline that is concerned with all aspects of software production from the early stages of system specification through to maintaining the system after it has gone into use. Software engineering is not just concerned with the technical processes of software development. It also includes activities such as software project management and the development of tools, methods, and theories to support software production. Software development process models determine a set of guidelines to successfully develop a software development project. Since these process models emerged, new ways of managing a project and producing software with quality have been investigated. First, the so-called heavy or traditional methodologies appeared, but with the time and the technological improvements, new methodologies emerged: the so-called agile methodologies. Agile methodologies promote, among other practices, continuous integration. This practice was coined by Martin Fowler and aims to make teamwork easier as well as automate integration tasks. Nevertheless, one of the keys to success in software projects is to use a framework that facilitates, systematize, and help to deploy a development process in an efficient way. This Final Degree Project (FDP) aims to analyze different tools to configure a framework that enables to develop projects by applying agile methodologies and continuous integration in an easy and efficient way. Once tools are analyzed, a framework has been proposed and configured. One of the main features of this FDP is that the tools under analysis share a common and high-valued characteristic: they are open-source. The proposed framework presents a client-server architecture, as most of the projects are developed by a team. In this way, the server provides access the clients/developers to the tools that comprise the framework. The server provides continuous integration through a set of tools for control management, user stories management, software quality management, and software construction automatization. The client configuration only requires a Java integrated development environment and network connection to the server.
Resumo:
Hoy en da existe una preocupacin 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 pginas pretende demostrar la importancia de la realizacin de tests funcionales durante el proceso de desarrollo de software para que el proyecto alcance la calidad requerida tan demandada en estos das. Para ello, despus de una pequea introduccin a la historia del software, se presentarn y compararn diversos tipos de metodologas de desarrollo de software, tanto pesadas (cascada, espiral, etc.) como giles (Extreme Programming y Scrum), se enfatizar en dichas metodologas giles y cmo el proceso de testing y control de calidad encaja perfectamente con la filosofa de las citadas metodologas giles. Se desarrollar una explicacin del papel de QA en el desarrollo de software, asi como una explicacin de los tipos de test existentes, y las herramientas, tecnologas y patrones que existen a disposicin de aquellos que quieran desempear el papel de QA. Para complementar el punto de vista terico de este trabajo se presentar un caso prctico real realizado en la empresa bq bajo una metodologa Scrum. Dicho caso prctico 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 automatizacin de ciertas bateras de test (llamadas test suites), mostrando desde el planteamiento inicial de las diferentes historias de usuario y la batera de test, pasando por la eleccin de las tecnologas ms adecuadas para la elaboracin de los test hasta llegar al lanzamiento de dicha batera de pruebas y la comprobacin de stas. El punto de vista prctico quedar complementado por una explicacin del framework nightwatch.js, framework utilizado en el desarrollo del proyecto en bq para la automatizacin de test funcionales. Esta explicacin comprender tanto la configuracin 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:
La expansin experimentada por la informtica, las nuevas tecnologas e internet en los ltimos aos, no solo viene dada por la evolucin del hardware subyacente, sino por la evolucin del desarrollo de software y del crecimiento del nmero de desarrolladores. Este incremento ha hecho evolucionar el software de unos sistemas de gestin basados en ficheros, prcticamente sin interfaz grfico y de unos pocos miles de lneas 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 tambin para facilitar su anlisis, diseo, codificacin, pruebas, implantacin y mantenimiento. La base de estas herramientas software las proveen las propias plataformas de desarrollo, pero la experiencia de los desarrolladores puede aportar un sinfn de utilidades y de tcnicas que agilicen los desarrollos y cumplan los requisitos del software en base a la reutilizacin 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 diseo, de tal manera que se dan soluciones personalizadas a un amplio nmero de problemas para emplearlas cuantas veces se quiera, bien marcando directrices de desarrollo mediante el uso de patrones, bien con la encapsulacin de complejidades de tal modo que los desarrolladores ya dispongan de componentes que asuman cierta lgica o cierta complejidad aliviando as la fase de construccin. En este trabajo se abordan temas sobre las tecnologas base y plataformas de desarrollo para poder acometer la creacin de un framework personalizado, necesidades a evaluar antes de acometerlo, y tcnicas a emplear para la consecucin del mismo, orientadas a la documentacin, mantenimiento y extensin del framework. La exposicin terica consiste en mostrar y evaluar los requisitos para crear un framework, requisitos de la plataforma de desarrollo, y explicar cmo funcionan las grandes plataformas de desarrollo actuales, que elementos los componen y su funcionamiento, as como marcar ciertas pautas de estructuracin y nomenclatura que el desarrollo de un framework debe contemplar para su mantenimiento y extensin. En la parte metodolgica se ha usado un subconjunto de Mtrica V3, ya que para el desarrollo de controles no aplica dicha metodologa en su totalidad, pero contempla el catlogo de requisitos, los casos de uso, diagramas de clase, diagramas de secuencia, etc Aparte de los conceptos tericos, se presenta un caso prctico con fines didcticos de cmo parametrizar y configurar el desarrollo bajo la plataforma .NET. Dicho caso prctico consiste en la extensin de un control de usuario genrico de la plataforma .NET, de tal modo que se aplican conceptos ms all del hecho de crear funciones como las funcionalidades que puede brindar un API. Conceptos sobre como extender y modificar controles ya existentes, que interactan 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 tambin tienen una parte visual, y definiciones funcionales distintas de las tpicas del software de gestin, puesto que han de controlar eventos, visualizaciones mientras se dan estos eventos y requisitos no funcionales de optimizacin de rendimiento, etc Para el caso prctico 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 reutilizacin. Esta extensin muestra adems como se puede migrar fcilmente 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 acompaa 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 Mtrica 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:
Scoping behavioral variations to dynamic extents is useful to support non-functional concerns that otherwise result in cross-cutting code. Unfortunately, such forms of scoping are difficult to obtain with traditional reflection or aspects. We propose delegation proxies, a dynamic proxy model that supports behavioral intercession through the interception of various interpretation operations. Delegation proxies permit different behavioral variations to be easily composed together. We show how delegation proxies enable behavioral variations that can propagate to dynamic extents. We demonstrate our approach with examples of behavioral variations scoped to dynamic extents that help simplify code related to safety, reliability, and monitoring.
Resumo:
Federal Highway Administration, Arlington, Va.
Resumo:
Urban Mass Transportation Administration, Washington, D.C.