1000 resultados para Ingegneria del Software
Resumo:
El software ha obtenido en la actualidad una gran importancia en todos los ámbitos de la vida cotidiana. Es indudable que la calidad del software juega un papel fundamental en todo desarrollo informático, aunque en ocasiones no se le presta la suficiente atención, quizás debido a los relativamente escasos trabajos relacionados con este tema desarrollados hasta la fecha. En el presente trabajo, se plantea la necesidad de un modelo de calidad completo. Para cubrir esta necesidad se presenta un nuevo modelo de calidad, obtenido tras un estudio pormenorizado de los modelos de calidad existentes, centrado en el paradigma orientado a objetos. Este modelo de calidad muestra cómo la calidad del software se descompone en una serie de factores y éstos, a su vez, se descomponen en un conjunto de criterios medibles utilizando medidas. El modelo incluye un amplio conjunto de medidas, diseñadas especialmente para su aplicación dentro del paradigma orientado a objetos. Para completar el modelo, se ha diseñado un sencillo método de aplicación de este modelo de calidad para que pueda ser utilizado de una forma simple por los desarrolladores de sistemas informáticos orientados a objetos. El modelo de calidad definido se ha validado realizando un juego de experimentos. Estos experimentos han consistido en la aplicación del modelo sobre una serie de desarrollos orientados a objetos. Los resultados obtenidos han demostrado su utilidad práctica para determinar tanto la calidad global de los sistemas, como para identificar aquellas partes del sistema susceptibles de ser mejoradas. Con este trabajo, se llena un importante hueco existente en esta área, pues, en primer lugar, no existen modelos de calidad completos para la orientación a objetos. En segundo lugar, aunque hay medidas para la orientación a objetos, no se han asociado a los atributos que determinan la calidad del software, por lo que su utilidad, tal cual fueron definidas, resulta bastante cuestionable. Para finalizar, nunca se ha asociado un modelo de calidad con una método de aplicación, por lo que su utilidad quedaba considerablemente mermada, quedando a expensas de la habilidad y experiencia del Ingeniero del Software que lo utilizara.
Resumo:
En la actualidad existe una gran expectación ante la introducción de nuevas herramientas y métodos para el desarrollo de productos software, que permitirán en un futuro próximo un planteamiento de ingeniería del proceso de producción software. Las nuevas metodologías que empiezan a esbozarse suponen un enfoque integral del problema abarcando todas las fases del esquema productivo. Sin embargo el grado de automatización conseguido en el proceso de construcción de sistemas es muy bajo y éste está centrado en las últimas fases del ciclo de vida del software, consiguiéndose así una reducción poco significativa de sus costes y, lo que es aún más importante, sin garantizar la calidad de los productos software obtenidos. Esta tesis define una metodología de desarrollo software estructurada que se puede automatizar, es decir una metodología CASE. La metodología que se presenta se ajusta al modelo de ciclo de desarrollo CASE, que consta de las fases de análisis, diseño y pruebas; siendo su ámbito de aplicación los sistemas de información. Se establecen inicialmente los principios básicos sobre los que la metodología CASE se asienta. Posteriormente, y puesto que la metodología se inicia con la fijación de los objetivos de la empresa que demanda un sistema informático, se emplean técnicas que sirvan de recogida y validación de la información, que proporcionan a la vez un lenguaje de comunicación fácil entre usuarios finales e informáticos. Además, estas mismas técnicas detallarán de una manera completa, consistente y sin ambigüedad todos los requisitos del sistema. Asimismo, se presentan un conjunto de técnicas y algoritmos para conseguir que desde la especificación de requisitos del sistema se logre una automatización tanto del diseño lógico del Modelo de Procesos como del Modelo de Datos, validados ambos conforme a la especificación de requisitos previa. Por último se definen unos procedimientos formales que indican el conjunto de actividades a realizar en el proceso de construcción y cómo 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:
El presente documento es la memoria del proyecto BADELEWeb, un software desarrollado con el objetivo de mejorar la gestión y el aprovechamiento de la base de datos de contenidos lingüísticos denominada BADELE. Este software ofrece desde el manejo básico de la base de datos a la explotación más detallada mediante la ejecución de consultas sobre funciones lingüísticas. Además, como parte del proyecto se incluye una interfaz que permite el aprovechamiento, por parte de un usuario, de ese recubrimiento. En este documento se presentan los aspectos teóricos necesarios para el desarrollo del proyecto, y la descripción de la funcionalidad que el software debe tener, así como una descripción técnica del desarrollo realizado. Posteriormente se presentan los resultados obtenidos en el proyecto para terminar con una visión de posibles mejoras que se pueden realizar en un futuro. Como anexo se incluye un manual con instrucciones para la instalación del software por parte de un administrador de sistemas para su utilización posterior.
Resumo:
This summary presents a methodology for supporting the development of AOSAs following the MDD paradigm. This new methodology is called PRISMA and allows the code generation from models which specify functional and non-functional requirements.
Resumo:
Este artículo presenta el análisis de los resultados obtenidos al aplicar TSPi en el desarrollo de un proyecto software en una microempresa desde el punto de vista de la calidad y la productividad. La organización en estudio necesitaba mejorar la calidad de sus procesos pero no contaba con los recursos económicos que requieren modelos como CMMI-DEV. Por esta razón, se decidió utilizar un proceso adaptado a la organización basado en TSPi, observándose una reducción en la desviación de las estimaciones, un incremento en la productividad, y una mejora en la calidad.---ABSTRACT---This article shows the benefits of developing a software project using TSPi in a “Very Small Enterprise” based in quality and productivity measures. An adapted process from the current process based on the TSPi was defined and the team was trained in it. The workaround began by gathering historical data from previous projects in order to get a measurement repository, and then the project metrics were collected. Finally, the process, product and quality improvements were verified.
Resumo:
Varios grupos de la Universidad Politécnica de Madrid se encuentran actualmente desarrollando un micro-satélite de experimentación bajo el proyecto UPMSat-2, sucesor de otro exitoso proyecto similar, el UPM-Sat 1. Bajo este marco la autora del presente documento ha llevado a cabo la realización de tres tareas fundamentales para hacer posible la puesta en órbita de dicho satélite. Las tareas principales definidas como alcance de este proyecto pretenden facilitar el uso de la memoria no volátil del computador de a bordo y comprobar el funcionamiento de todos los sistemas del satélite. Por ello se ha realizado el arranque desde la memoria no volátil junto con un manejador para el uso de la misma y un conjunto de pruebas de validación del software e integración del hardware. La satisfacción con los resultados obtenidos ha hecho posible la inclusión del software y pruebas desarrolladas al conjunto de todo el software del proyecto UPMSat-2, contribuyendo así a la capacidad del satélite para ser puesto en órbita.---ABSTRACT---UPMSat-2, the successor of UPM-Sat 1, is a joint project for the development of a micro-satellite for experimentation, which is being carried out by various research groups at Universidad Politécnica de Madrid. The author of this document has developed three main tasks to make possible the correct operation of this satellite during the duration of its mission. The scope of the present work is to enable the use of the on-board computer’s non-volatile memory and the development of a software to test that the satellite’s subsystems are working properly. To this end, the non-volatile memory’s boot sequence has been implemented together with the driver to use such memory, and a series of validation and integration tests for the software and the hardware. The results of the this work have been satisfactory, therefore they have been included in UPMSat-2’s software, contributing this way to the capacity of the satellite to carry out its mission.
Resumo:
La Ingeniería de Pruebas está especializada en la verificación y validación del Software,y formalmente se define como: “Proceso de desarrollo que emplea métodos rigurosos para evaluar la corrección y calidad del producto a lo largo de todo su ciclo de vida” [3]. Este proceso comprende un conjunto de métodos, procedimientos y técnicas formalmente definidas las cuales, usadas de forma sistemática, facilitan la identificación de la mayor cantidad de errores y fallos posibles de un software. Un software que pase un proceso riguroso de pruebas es un producto de calidad que seguramente facilitará la labor del Ingeniero de Software en la corrección de futuras incidencias, algunas de ellas generadas tras la implantación en el entorno real. Este proceso constituye un área de la Ingeniería del Software y una especialidad por tanto, de la misma. De forma simple, la consecución de una correcta Verificación y Validación del Software requiere de algunas actividades imprescindibles como: - Realizar un plan de pruebas del proyecto. - Actualizar dicho plan y corregirlo en caso necesario. - Revisar los documentos de análisis de requisitos. - Ejecutar las pruebas en las diferentes fases del desarrollo del proyecto. - Documentar el diseño y la ejecución de las pruebas. - Generar documentos con los resultados y anomalías de las pruebas ya ejecutadas. Actualmente, la Ingeniería de Pruebas no es muy reconocida como área de trabajo independiente sino más bien, un área inmersa dentro de la Ingeniería de Software. En el entorno laboral existe el perfil de Ingeniero de Pruebas, sin embargo pocos ingenieros de software tienen claro querer ser Ingenieros de Pruebas (probadores o testers) debido a que nunca han tenido la oportunidad de enfrentarse a actividades prácticas reales dentro de los centros de estudios universitarios donde cursan la carrera. Al ser un área de inherente ejercicio profesional, la parte correspondiente de la Ingeniería de Pruebas suele enfocarse desde un punto de vista teórico más que práctico. Hay muchas herramientas para la creación de pruebas y de ayuda para los ingenieros de pruebas, pero la mayoría son de pago o hechas a medida para grandes empresas que necesitan dicho software. Normalmente la gente conoce lo que es la Ingeniería de Pruebas únicamente cuando se empieza a adquirir experiencia en dicha área en el ejercicio profesional dentro de una empresa. Con lo cual, el acercamiento durante la carrera no necesariamente le ha ofrecido al profesional en Ingeniería, la oportunidad de trabajar en esta rama de la Ingeniería del Software y en algunos casos, NOVATests: Metodología y herramienta software de apoyo para los Ingenieros de Prueba Junior 4 los recién egresados comienzan su vida profesional con algún desconocimiento en este sentido. Es por el conjunto de estas razones, que mi intención en este proyecto es proponer una metodología y una herramienta software de apoyo a dicha metodología, para que los estudiantes de carreras de Ingeniería Software y afines, e ingenieros recién egresados con poca experiencia o ninguna en esta área (Ingenieros de Pruebas Junior), puedan poner en práctica las actividades de la Ingeniería de Pruebas dentro de un entorno lo más cercano posible al ejercicio de la labor profesional. De esta forma, podrían desarrollar las tareas propias de dicha área de una manera fácil e intuitiva, favoreciendo un mayor conocimiento y experiencia de la misma. ABSTRACT The software engineering is specialized in the verification and validation of Software and it is formally defined as: “Development process which by strict methods evaluates and corrects the quality of the product along its lifecycle”. This process contains a number of methods, procedures and techniques formally defined which used systematically make easier the identification of the highest quantity of error and failures within a Software. A software going through this rigorous process of tests will become a quality product that will help the software engineer`s work while correcting incidences. Some of them probably generated after the deployment in a real environment. This process belongs to the Software engineering and therefore it is a specialization itself. Simplifying, the correct verification and validation of a software requires some essential activities such as: -Create a Test Plan of the project - Update this Test Plan and correct if necessary - Check Requirement’s specification documents -Execute the different tests among all the phases of the project - Create the pertinent documentation about design and execution of these tests. - Generate the result documents and all the possible incidences the tests could contain. Currently, the Test engineering is not recognized as a work area but an area immerse within the Software engineering. The professional environment includes the role of Test engineer, but only a few software engineers have clear to become Test engineers (testers) because they have never had the chance to face this activities within the university study centers where they take study of this degree. Since there are little professional environments, this area is focused from a theoretical way instead of a more practical vision. There are plenty of tools helping the Test engineer, but most of them are paid tools or bespoke tools for big companies in need of this software. Usually people know what test engineering is by starting working on it and not before, when people start acquiring experience in this field within a company. Therefore, the degree studied have not approach this field of the Software engineering before and in some cases the graduated students start working without any knowledge in this area. Because of this reasons explained, it is my intention to propose this Project: a methodology and a software tool supporting this methodology so the students of software engineering and similar ones but also graduated students with little experience in this area (Junior Test Engineers), can afford practice in this field and get used to the activities related with the test engineering. Because of this they will be able to carry out the proper tasks of this area easier, enforcing higher and better knowledge and experience of it.
Resumo:
Uno de los aspectos que ha cobrado mayor protagonismo desde la aplicación del Espacio Europeo de Educación Superior (EEES) es la atención tutorial al alumno como forma de incidir positivamente en su proceso de aprendizaje. Por ello, dentro del campo de la innovación educativa se están definiendo metodologías docentes y herramientas TIC de apoyo a la acción tutorial. Estas metodologías y herramientas pretenden mejorar el servicio de atención a los alumnos contribuyendo entre otros aspectos a la sistematización de tareas implicadas en la acción tutorial y a la automatización de algunas de ellas mediante la utilización de herramientas informáticas. Este trabajo propone la utilización en el marco del EEES de una metodología de acción tutorial apoyada en herramientas TIC para la reserva y atención de tutorías, en concreto, la herramienta TutorialAction, que facilita la reserva de tutorías por parte del alumno y el registro de las mismas por parte del profesor. La investigación ha tenido como objetivos, en primer lugar, poner a disposición de alumnos y profesores la metodología y herramienta software definidas explorando aspectos de interés sobre la acción tutorial que permitan afinar ambas, y en segundo lugar determinar la influencia de la acción tutorial en el rendimiento académico en consonancia con el EEES. La muestra analizada corresponde a estudiantes y profesores del Grado en Ingeniería del Software de la Universidad Politécnica de Madrid durante los cursos académicos 2011-12 y 2012-13. Los instrumentos utilizados en la investigación han incluido dos cuestionarios, uno orientado a conocer la opinión de los alumnos y otro la de los profesores; así como los datos registrados por la herramienta TutorialAction sobre reserva, asistencia y atención de tutorías y las calificaciones obtenidas por los alumnos que componen la muestra. Los resultados obtenidos reflejan una mayor asistencia a tutorías en las asignaturas objeto de estudio y una valoración positiva sobre la utilización de la herramienta TutorialAction. Los resultados también han permitido identificar aspectos como la duración media de tutorías, el tipo de tutorías predominante, así como su periodicidad. Por otra parte, en línea con los objetivos de esta investigación se ha encontrado una correlación moderada, positiva y significativa entre la asistencia a tutorías y la calificación obtenida por los alumnos. Estos resultados permiten concluir que la metodología y herramienta presentadas en este trabajo resultan de utilidad para implementar una acción tutorial de calidad entre profesor y alumno en el marco del EEES, así como que la asistencia a tutorías constituye un factor relevante que incide positivamente en los resultados académicos del alumno.
Resumo:
La usabilidad es uno de los aspectos más importantes de la calidad del software para sistemas software interactivos. A pesar de ello, la Ingeniería del Software (IS) se ha centrado históricamente en problemas de funcionalidad y de persistencia, relegando a un segundo plano aspectos de la interacción con el usuario, y más concretamente, de la usabilidad. Ha sido principalmente la comunidad Interacción Persona-Ordenador (IPO) la que ha propuesto recomendaciones para mejorar la usabilidad. En estudios recientes se ha encontrado una relación entre algunas de las recomendaciones de usabilidad propuestas por la comunidad IPO y la funcionalidad de un sistema software. Estas recomendaciones se conocen como Características Funcionales de Usabilidad (CFU), divididas en subtipos más especializados llamados Mecanismos de Usabilidad (MU). Estos estudios han propuesto unas Guías para la Educción de Requisitos por cada mecanismo de usabilidad (GERMU). Posteriormente, se continúan los estudios y con base al repositorio de conocimiento suministrado por las GERMUs, se proponen diseños de más bajo nivel e implementación que facilite la incorporación de un MU en un sistema software. Los resultados se formalizaron en lo que se llamo Patrón de Programación de Usabilidad (PPU). El presente trabajo de investigación se centra en evaluar el impacto debido a la incorporación de mecanismos de usabilidad en el desarrollo de un sistema software. Concretamente el MU Abortar Operación (MU AO), el MU Retroalimentación del Progreso (MU RP) y MU Preferencias (MU P), tanto a nivel de requisitos como a nivel de implementación. Para satisfacer este objetivo, en esta investigación se aborda el desarrollo de un sistema software desde la actividad de educción de requisitos hasta la implementación. Para la actividad de requisitos se hace uso de la GERMU AO, GERMU RP y la GERMU P. La construcción del sistema sigue el modelo incremental. En cada incremento se construye un conjunto de casos de uso junto con uno o varios MUs. Para incorporar cada MU en implementación, se hace uso del PPU Abortar Operación (PPU AO), PPU Retroalimentación del Progreso (PPU RP) y PPU Preferencias (PPU P). En el primer incremento se incorpora el PPU AO, en el segundo el PPU RP, en el tercer incremento PPU P, y en el último incremento, se añaden los restantes casos de uso junto con los tres PPUs al sistema. Tanto en la actividad de requisitos, como en la construcción de cada incremento se evalúa el impacto de la incorporación de tales PPUs. Cada evaluación proporciona datos que pueden dar una estimación del esfuerzo requerido para incorporar cada PPU en las distintas actividades del desarrollo del sistema. Como resultado de la experiencia del uso de los diferentes artefactos relacionados en esta investigación se obtienen propuestas de mejoras para los PPUs, y adicionalmente para las GERMUs.
Resumo:
El presente proyecto desarrolla un estudio acústico del recinto: Auditorio Rafael Frühbeck de Burgos, cumpliendo con las indicaciones exigidas por la norma UNE-EN ISO 3382-1: 2010, “Medición de parámetros acústicos en recintos, Parte 1: Salas de Espectáculos”. Se desarrollan dos estudios acústicos sobre el mismo recinto. En el primero de ellos, el recinto está configurado para la realización de eventos tales como conferencias o congresos, donde la inteligibilidad de la palabra es un factor determinante. En el segundo estudio, el recinto se configura para espectáculos musicales como conciertos de orquesta sinfónica o música de cámara. En esta configuración, la palabra ya no es tan determinante como la correcta interpretación y disfrute de la música por parte de la audiencia. Para ambas configuraciones del recinto se ha realizado un procesado estadístico de los datos con el fin de obtener un valor único de cada parámetro acústico estudiado. De esta forma, se comparan los resultados para ambas configuraciones, y se evalúan los valores obtenidos de cada uno de los parámetros acústicos con el fin de conocer si se adecuan a las necesidades acústicas exigidas por el tipo de evento desarrollado. Además, se ha construido un modelo geométrico del recinto por ordenador, para ambas configuraciones acústicas, haciendo uso del software profesional de predicción y simulación acústica EASE. Se realiza un estudio acústico sobre el modelo geométrico mediante simulación, siguiendo las pautas llevadas a cabo durante la medición “in situ”. Los resultados obtenidos por simulación se comparan con los obtenidos de las mediciones “in situ”, para estudiar la validación del modelo geométrico. El parámetro acústico elegido para validar el modelo, en un primer momento, será el tiempo de reverberación. Si se consigue una buena validación del modelo geométrico, este puede ser utilizado para realizar predicciones acústicas mediante simulación, cuando un sistema de refuerzo sonoro sea utilizado dentro del recinto. El sistema de refuerzo sonoro ubicado en el recinto sometido a estudio, no ha sido utilizado en el presente proyecto. ABSTRACT. The present projects carry out an acoustic study of enclosure: Rafael Frühbeck Concert Hall, in Burgos, fulfilling the indications demanded by the standard UNE-EN ISO 3382-1:2010 “Measurement of room acoustic parameters – Part 1: Performance spaces. Two acoustics studies are developed on the same enclosure. In first of them, the enclosure is formed for the accomplishment of events such as conferences or congresses, where speech intelligibility is a determining factor. In the second study, the enclosure forms for musical performances like concerts of symphony orchestra or chamber music. In this acoustic configuration, speech intelligibility is not as determining as the correct interpretation and enjoyment of music in audience areas. For both configurations of the enclosure, a statistical processing of the data has been realised with the purpose of obtaining a unique value of each studied acoustic parameter. In this way, the results for both configurations are compared, and the obtained values of each one of the acoustic parameters are evaluated with the purpose of knowing if they are adapted to the acoustic needs demanded by the type of developed event. In addition, a geometric model of the enclosure has been constructed by computer, for both acoustic configurations; making use of the professional software of prediction and acoustical simulation, EASE. An acoustic study is developed on the geometric model by means of simulation, following the rules carried out during the measurement “in situ”. The results obtained by simulation are compared with the obtained ones from the measurement “in situ”, to study the validation of the geometric model. Initially the acoustic parameter chosen to validate the model is Reverberation Time. If a good validation of the geometric model is reached, it can be used to realize acoustic predictions by simulation, when a sound reinforcement system is used within the enclosure. The sound reinforcement system located in the enclosure under study has not been used in the present project.
Resumo:
Hoy en día, existen numerosos sistemas (financieros, fabricación industrial, infraestructura de servicios básicos, etc.) que son dependientes del software. Según la definición de Ingeniería del Software realizada por I. Sommerville, “la Ingeniería del Software es una disciplina de la ingeniería que comprende todos los aspectos de la producción de software desde las etapas iniciales de la especificación del sistema, hasta el mantenimiento de éste después de que se utiliza.” “La ingeniería del software no sólo comprende los procesos técnicos del desarrollo de software, sino también actividades tales como la gestión de proyectos de software y el desarrollo de herramientas, métodos y teorías de apoyo a la producción 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 metodologías pesadas o tradicionales, pero con el avance del tiempo y la tecnología, surgieron unas nuevas llamadas metodologías ágiles. En el marco de las metodologías ágiles cabe destacar una determinada práctica, la integración continua. Esta práctica surgió de la mano de Martin Fowler, con el objetivo de facilitar el trabajo en grupo y automatizar las tareas de integración. La integración continua se basa en la construcción automática de proyectos con una frecuencia alta, promoviendo la detección 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 análisis de distintas herramientas para configurar un entorno de trabajo que permita desarrollar proyectos aplicando metodologías ágiles e integración continua de una forma fácil y eficiente. Una vez analizadas dichas herramientas, se ha propuesto y configurado un entorno de trabajo para su puesta en marcha y uso. Una característica a destacar de este PFG es que las herramientas analizadas comparten una cualidad común y de alto valor, son herramientas open-source. El entorno de trabajo propuesto en este PFG presenta una arquitectura cliente-servidor, dado que la mayoría 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 integración continua mediante herramientas de control de versiones, de gestión de historias de usuario, de análisis de métricas de software, y de automatización de la construcción de software. La configuración del cliente únicamente requiere de un entorno de desarrollo integrado (IDE) que soporte el lenguaje de programación Java y conexión 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 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 butanol es hoy en día en uno de los compuestos químicos más importantes en el mundo a causa de sus numerosas aplicaciones, entre las que destacan la producción de acrilato de butilo, acetato de butilo y éter de glicol (industrias de pinturas y recubrimientos). Junto a sus aplicaciones actuales, el butanol está adquiriendo una gran importancia dentro del sector de los biocombustibles, debido a su futuro prometedor como sustituto de los combustibles convencionales o para mezcla. Todo ello está moviendo a la industria química a establecer nuevas plantas de producción de butanol para satisfacer su creciente demanda. Los procesos actuales de producción de butanol se centran en dos vías: vía fermentativa y vía petroquímica. A pesar de su rentabilidad y competencia, estos procesos están limitados por múltiples factores, destacando las limitaciones en materias primas disponibles y asociadas al empleo de microorganismos en los procesos fermentativos, así como el precio del petróleo y sus derivados en los procesos petroquímicos. En la actualidad, numerosas investigaciones están desarrollando nuevos procesos de producción de butanol por rutas termoquímicas. El éxito de estas investigaciones permitiría su producción por métodos alternativos a los procesos “tradicionales”, salvando muchas de las limitaciones que presentan. El proceso de producción de butanol por vía termoquímica se basa en la transformación de biomasa lignocelulósica en gas de síntesis mediante un tratamiento termoquímico (gasificación), y su posterior conversión en butanol mediante una etapa de reacción catalítica. La principal limitación que ha impedido la viabilidad de esta ruta ha sido la falta de desarrollo en los catalizadores empleados para la síntesis de butanol a partir de gas de síntesis. Su desarrollo mejorando la selectividad hacia el butanol, será la clave para el éxito de la vía termoquímica de producción de butanol. En base a lo comentado anteriormente, en el presente Proyecto Fin de Carrera (PFC) se analiza la viabilidad tecno-económica del proceso de producción de butanol a partir de biomasa lignocelulósica por vía termoquímica. La consecución de este objetivo se ha logrado mediante la aplicación de una metodología en tres pasos: estudio del proceso, simulación del proceso y evaluación económica. En primer lugar, se ha realizado un estudio detallado del proceso de producción de butanol a partir de biomasa lignocelulósica por vía termoquímica desarrollado por Chinedu O. Okoli y Thomas A. Adams II (Universidad de McMaster, Canadá), a fin de comprender las etapas que constituyen el proceso. Mediante este estudio, se ha conseguido conocer las condiciones de operación de las diferentes unidades que integran el proceso. En segundo lugar, se ha evaluado la viabilidad técnica del proceso mediante el empleo del software Aspen Plus V8.6. La simulación se ha realizado en base a la información obtenida en el estudio preliminar. Por último, se ha analizado la viabilidad económica del proceso mediante el cálculo de los parámetros de viabilidad Valor Actual Neto (VAN) y Tasa Interna de Retorno (TIR). Para la determinación de estos parámetros se ha realizado el flujo de cajas del proceso en base a la estimación de sus ingresos, costes de producción y capital total de inversión requerido. Junto al análisis de viabilidad, se han llevado acabo distintos análisis de sensibilidad a las variables más influyentes en la rentabilidad del proceso (interés del préstamo, precio de venta del butanol, precio de venta de la mezcla de alcoholes y precio de compra de la biomasa). Las principales conclusiones que se pueden extraer del análisis realizado son las siguientes: - A través del análisis técnico se concluye que el proceso de producción de butanol por vía termoquímica es viable técnicamente, ya que existe la tecnología requerida para su implantación, así como presenta aceptables tasas de producción de butanol (82,52 kg/tonelada biomasa seca) y es posible integrar un ciclo de vapor y generación de electricidad en el proceso. Además, el margen de mejora de este proceso es amplio, siendo el catalizador requerido para la síntesis del butanol el principal foco de mejora. - En cuanto a la rentabilidad del proceso, el análisis económico muestra que el proceso de producción de butanol por vía termoquímica es viable económicamente. Sin embargo, el estudio realizado demuestra que, en el estado de desarrollo actual, los ingresos asociados a la venta del butanol son insuficientes para hacer rentable el proceso, siendo necesario tener acceso a mercados para la venta de los subproductos generados.
Resumo:
Contexto: La presente tesis doctoral se enmarca en la actividad de educción de los requisitos. La educción de requisitos es generalmente aceptada como una de las actividades más importantes dentro del proceso de Ingeniería de Requisitos, y tiene un impacto directo en la calidad del software. Es una actividad donde la comunicación entre los involucrados (analistas, clientes, usuarios) es primordial. La efectividad y eficacia del analista en la compresión de las necesidades de clientes y usuarios es un factor crítico para el éxito del desarrollo de software. La literatura se ha centrado principalmente en estudiar y comprender un conjunto específico de capacidades o habilidades personales que debe poseer el analista para realizar de forma efectiva la actividad de educción. Sin embargo, existen muy pocos trabajos que han estudiado dichas capacidades o habilidades empíricamente. Objetivo: La presente investigación tiene por objetivo estudiar el efecto de la experiencia, el conocimiento acerca del dominio y la titulación académica que poseen los analistas en la efectividad del proceso de educción de los requisitos, durante los primeros contactos del analista con el cliente. Método de Investigación: Hemos ejecutado 8 estudios empíricos entre cuasi-experimentos (4) y experimentos controlados (4). Un total de 110 sujetos experimentales han participado en los estudios, entre estudiantes de post-grado de la Escuela Técnica Superior de Ingenieros Informáticos de la Universidad Politécnica de Madrid y profesionales. La tarea experimental consistió en realizar sesiones de educción de requisitos sobre uno o más dominios de problemas (de carácter conocido y desconocido para los sujetos). Las sesiones de educción se realizaron empleando la entrevista abierta. Finalizada la entrevista, los sujetos reportaron por escrito toda la información adquirida. Resultados: Para dominios desconocidos, la experiencia (entrevistas, requisitos, desarrollo y profesional) del analista no influye en su efectividad. En dominios conocidos, la experiencia en entrevistas (r = 0.34, p-valor = 0.080) y la experiencia en requisitos (r = 0.22, p-valor = 0.279), ejercen un efecto positivo. Esto es, los analistas con más años de experiencia en entrevistas y/o requisitos tienden a alcanzar mejores efectividades. Por el contrario, la experiencia en desarrollo (r = -0.06, p-valor = 0.765) y la experiencia profesional (r = -0.35, p-valor = 0.077), tienden a ejercer un efecto nulo y negativo, respectivamente. En lo que respecta al conocimiento acerca del dominio del problema que poseen los analistas, ejerce un moderado efecto positivo (r=0.31), estadísticamente significativo (p-valor = 0.029) en la efectividad de la actividad de educción. Esto es, los analistas con conocimiento tienden a ser más efectivos en los dominios de problema conocidos. En lo que respecta a la titulación académica, por falta de diversidad en las titulaciones académicas de los sujetos experimentales no es posible alcanzar una conclusión. Hemos podido explorar el efecto de la titulación académica en sólo dos cuasi-experimentos, sin embargo, nuestros resultados arrojan efectos contradictorios (r = 0.694, p-valor = 0.51 y r = -0.266, p-valor = 0.383). Además de las variables estudiadas indicadas anteriormente, hemos confirmado la existencia de variables moderadoras que afectan a la actividad de educción, tales como el entrevistado o la formación. Nuestros datos experimentales confirman que el entrevistado es un factor clave en la actividad de educción. Estadísticamente ejerce una influencia significativa en la efectividad de los analistas (p-valor= 0.000). La diferencia entre entrevistar a uno u otro entrevistado, en unidades naturales, varía entre un 18% - 23% en efectividad. Por otro lado, la formación en requisitos aumenta considerablemente la efectividad de los analistas. Los sujetos que realizaron la educción de requisitos después de recibir una formación específica en requisitos tienden a ser entre un 12% y 20% más efectivos que aquellos que no la recibieron. El efecto es significativo (p-valor = 0.000). Finalmente, hemos observado tres hechos que podrían influir en los resultados de esta investigación. En primer lugar, la efectividad de los analistas es diferencial dependiendo del tipo de elemento del dominio. En dominios conocidos, los analistas con experiencia tienden a adquirir más conceptos que los analistas noveles. En los dominios desconocidos, son los procesos los que se adquieren de forma prominente. En segundo lugar, los analistas llegan a una especie de “techo de cristal” que no les permite adquirir más información. Es decir, el analista sólo reconoce (parte de) los elementos del dominio del problema mencionado. Este hecho se observa tanto en el dominio de problema desconocido como en el conocido, y parece estar relacionado con el modo en que los analistas exploran el dominio del problema. En tercer lugar, aunque los años de experiencia no parecen predecir cuán efectivo será un analista, sí parecen asegurar que un analista con cierta experiencia, en general, tendrá una efectividad mínima que será superior a la efectividad mínima de los analistas con menos experiencia. Conclusiones: Los resultados obtenidos muestran que en dominios desconocidos, la experiencia por sí misma no determina la efectividad de los analistas de requisitos. En dominios conocidos, la efectividad de los analistas se ve influenciada por su experiencia en entrevistas y requisitos, aunque sólo parcialmente. Otras variables influyen en la efectividad de los analistas, como podrían ser las habilidades débiles. El conocimiento del dominio del problema por parte del analista ejerce un efecto positivo en la efectividad de los analistas, e interacciona positivamente con la experiencia incrementando aún más la efectividad de los analistas. Si bien no fue posible obtener conclusiones sólidas respecto al efecto de la titulación académica, si parece claro que la formación específica en requisitos ejerce una importante influencia positiva en la efectividad de los analistas. Finalmente, el analista no es el único factor relevante en la actividad de educción. Los clientes/usuarios (entrevistados) también juegan un rol importante en el proceso de generación de información. ABSTRACT Context: This PhD dissertation addresses requirements elicitation activity. Requirements elicitation is generally acknowledged as one of the most important activities of the requirements process, having a direct impact in the software quality. It is an activity where the communication among stakeholders (analysts, customers, users) is paramount. The analyst’s ability to effectively understand customers/users’ needs represents a critical factor for the success of software development. The literature has focused on studying and comprehending a specific set of personal skills that the analyst must have to perform requirements elicitation effectively. However, few studies have explored those skills from an empirical viewpoint. Goal: This research aims to study the effects of experience, domain knowledge and academic qualifications on the analysts’ effectiveness when performing requirements elicitation, during the first stages of analyst-customer interaction. Research method: We have conducted eight empirical studies, quasi-experiments (four) and controlled experiments (four). 110 experimental subjects participated, including: graduate students with the Escuela Técnica Superior de Ingenieros Informáticos of the Universidad Politécnica de Madrid, as well as researchers and professionals. The experimental tasks consisted in elicitation sessions about one or several problem domains (ignorant and/or aware for the subjects). Elicitation sessions were conducted using unstructured interviews. After each interview, the subjects reported in written all collected information. Results: In ignorant domains, the analyst’s experience (interviews, requirements, development and professional) does not influence her effectiveness. In aware domains, interviewing experience (r = 0.34, p-value = 0.080) and requirements experience (r = 0.22, p-value = 0.279), make a positive effect, i.e.: the analysts with more years of interviewing/requirements experience tend to achieve higher effectiveness. On the other hand, development experience (r = -0.06, p-value = 0.765) and professional experience (r = -0.35, p-value = 0.077) tend to make a null and negative effect, respectively. On what regards the analyst’s problem domain knowledge, it makes a modest positive effect (r=0.31), statistically significant (p-value = 0.029) on the effectiveness of the elicitation activity, i.e.: the analysts with tend to be more effective in problem domains they are aware of. On what regards academic qualification, due to the lack of diversity in the subjects’ academic degrees, we cannot come to a conclusion. We have been able to explore the effect of academic qualifications in two experiments; however, our results show opposed effects (r = 0.694, p-value = 0.51 y r = -0.266, p-value = 0.383). Besides the variables mentioned above, we have confirmed the existence of moderator variables influencing the elicitation activity, such as the interviewee and the training. Our data confirm that the interviewee is a key factor in the elicitation activity; it makes statistically significant effect on analysts’ effectiveness (p-value = 0.000). Interviewing one or another interviewee represents a difference in effectiveness of 18% - 23%, in natural units. On the other hand, requirements training increases to a large extent the analysts’ effectiveness. Those subjects who performed requirements elicitation after specific training tend to be 12% - 20% more effective than those who did not receive training. The effect is statistically significant (p-value = 0.000). Finally, we have observed three phenomena that could have an influence on the results of this research. First, the analysts’ effectiveness differs depending on domain element types. In aware domains, experienced analysts tend to capture more concepts than novices. In ignorant domains, processes are identified more frequently. Second, analysts get to a “glass ceiling” that prevents them to acquire more information, i.e.: analysts only identify (part of) the elements of the problem domain. This fact can be observed in both the ignorant and aware domains. Third, experience years do not look like a good predictor of how effective an analyst will be; however, they seem to guarantee that an analyst with some experience years will have a higher minimum effectiveness than the minimum effectiveness of analysts with fewer experience years. Conclusions: Our results point out that experience alone does not explain analysts’ effectiveness in ignorant domains. In aware domains, analysts’ effectiveness is influenced the experience in interviews and requirements, albeit partially. Other variables influence analysts’ effectiveness, e.g.: soft skills. The analysts’ problem domain knowledge makes a positive effect in analysts’ effectiveness; it positively interacts with the experience, increasing even further analysts’ effectiveness. Although we could not obtain solid conclusions on the effect of the academic qualifications, it is plain clear that specific requirements training makes a rather positive effect on analysts’ effectiveness. Finally, the analyst is not the only relevant factor in the elicitation activity. The customers/users (interviewees) play also an important role in the information generation process.
Resumo:
El movimiento 15M se caracterizaba, entre otras cosas, por una fuerte crítica a los partidos políticos y el sistema actual de representación política. Sin embargo, el ciclo de movilización ha derivado en un proceso de institucionalización creciente y complejo en el que los activistas del movimiento han participado de manera relativamente visible y continuada en el surgimiento y el desarrollo de nuevos partidos (Partido X, Ganemos y Podemos). Este artículo analiza el papel desempeñado por las nuevas tecnologías en este proceso bajo la hipótesis de que la apropiación de herramientas digitales diseñadas para deliberar, interaccionar o generar formas diversas de participación política en los nuevos partidos reproduce valores y prácticas esenciales del movimiento, allanando con ello el camino para una identificación entre los activistas y los partidos. La mediación tecnológica ha modulado el paso del movimiento al partido al generar un entorno de deliberación horizontal, participación distribuida y estructura descentralizada que reduce las diferencias visibles entre ambos. El desarrollo de las herramientas digitales se ha visto acompañado a su vez de un cambio en los marcos de interpretación de los movimientos sociales con respecto a la tecnología como factor político. De esta forma, las nociones de representación o participación clásicas quedan redibujadas permitiendo una transición suave entre las plazas y los parlamentos. El artículo rastrea la construcción de marcos tecnófilos que, influidos por la presencia del software libre y el código abierto, ayudan a entender la organización de los nuevos partidos-movimiento y la transición entre las diversas formas de acción colectiva. Igualmente, se perfilan y describen algunas de estas herramientas y las funciones que han cumplido de cara a forjar unos modelos de organización originales en estos partidos-movimiento.