729 research outputs found

    Estimación de esfuerzo en desarrollo de software ágil: Estudio del estado actual en Bogotá

    Get PDF
    Context: Over the years, numerous studies have been developed related to estimating effort in agile software development, which allow us to understand the advances that have been made and the need for their use in companies. Objective: To know the perspective of entrepreneurs from different organizations in Bogotá that work in the sector or are related to the development of agile software and those who have had projects related to the subject. Method: For the elaboration of the article, a bibliographic research is carried out. Results: The data obtained are from 314 respondents in the city of Bogotá, the main findings are: 1) For companies it is extremely important with (34%) the adoption of an effort estimation methodology. 2) The most used estimation technique is the use case point with (43.31%). 3) The most used effort predictor is the Code Line (38.85%) and followed by this STORY POINT with (33.76%). 4) The agile methodology adopted in companies is SCRUM with (43.95%). 5) As the most determining factor to estimate the effort, the team experience with (53.50%) is considered. 6) In the percentage of error between estimate of projected effort and real effort (26.75%) of the respondents determine that this 5% -25% is underestimated. 7) Finally, as a difficulty in your company to estimate the effort of projects through agile software development, the respondents recognize (26.11%) that the resources are the greatest. Conclusions: The estimation of effort is relatively variable, for many companies this depends on the needs of each one, on the other hand, the use of agile methodology and estimation techniques varies in its use depending on the cross between them and how they are used. complement each other.Contexto: A lo largo de los años se han desarrollado numerosos estudios relacionados con la estimación de esfuerzo en el desarrollo de software ágil los cuales permiten comprender los avances que han tenido y la necesidad de su uso en las empresas. Objetivo: Conocer la perspectiva de empresarios de distintas organizaciones de Bogotá que trabajan en el sector o estén relacionados con el desarrollo de software ágil y aquellos que han tenido proyectos relacionados con el tema. Método: Para la elaboración del artículo se realizar una investigación a nivel bibliográfico. Resultados: Los datos obtenidos son de 314 encuestados en la cuidad de Bogotá, los principales hallazgos son: 1) Para las compañías es sumamente importante con (34%) la adopción de una metodología de estimación de esfuerzo. 2) La técnica de estimación mas usada es el punto de caso de uso con (43,31%). 3) El predictor de esfuerzo mas utilizado es la Línea de código (38,85%) y seguida de este STORY POINT con (33,76%). 4) Como metodología ágil adoptada en las empresas se encuentra SCRUM con (43,95%). 5) Como factor mas determinante para estimar el esfuerzo es considerado la experiencia de equipo con (53,50%). 6) En el porcentaje de error entre estimación de esfuerzo proyectada y esfuerzo real el (26,75%) de los encuestados hacen determina que esta 5%-25% subestimada. 7) Finalmente, como dificultad en su empresa para estimar el esfuerzo de proyectos mediante desarrollo de software ágil los encuestados reconocer con (26,11%) que los recursos como el mayor. Conclusiones: La estimación de esfuerzo es relativamente variable, para muchas compañías esto depende también de las necesidades de cada una, por otro lado, el uso de metodología ágil y técnicas de estimación varia en su uso dependiendo del cruce que se de entre ellas y como se complementan entre sí

    Evaluating an automated procedure of machine learning parameter tuning for software effort estimation

    Get PDF
    Software effort estimation requires accurate prediction models. Machine learning algorithms have been used to create more accurate estimation models. However, these algorithms are sensitive to factors such as the choice of hyper-parameters. To reduce this sensitivity, automated approaches for hyper-parameter tuning have been recently investigated. There is a need for further research on the effectiveness of such approaches in the context of software effort estimation. These evaluations could help understand which hyper-parameter settings can be adjusted to improve model accuracy, and in which specific contexts tuning can benefit model performance. The goal of this work is to develop an automated procedure for machine learning hyper-parameter tuning in the context of software effort estimation. The automated procedure builds and evaluates software effort estimation models to determine the most accurate evaluation schemes. The methodology followed in this work consists of first performing a systematic mapping study to characterize existing hyper-parameter tuning approaches in software effort estimation, developing the procedure to automate the evaluation of hyper-parameter tuning, and conducting controlled quasi experiments to evaluate the automated procedure. From the systematic literature mapping we discovered that effort estimation literature has favored the use of grid search. The results we obtained in our quasi experiments demonstrated that fast, less exhaustive tuners were viable in place of grid search. These results indicate that randomly evaluating 60 hyper-parameters can be as good as grid search, and that multiple state-of-the-art tuners were only more effective than this random search in 6% of the evaluated dataset-model combinations. We endorse random search, genetic algorithms, flash, differential evolution, and tabu and harmony search as effective tuners.Los algoritmos de aprendizaje automático han sido utilizados para crear modelos con mayor precisión para la estimación del esfuerzo del desarrollo de software. Sin embargo, estos algoritmos son sensibles a factores, incluyendo la selección de hiper parámetros. Para reducir esto, se han investigado recientemente algoritmos de ajuste automático de hiper parámetros. Es necesario evaluar la efectividad de estos algoritmos en el contexto de estimación de esfuerzo. Estas evaluaciones podrían ayudar a entender qué hiper parámetros se pueden ajustar para mejorar los modelos, y en qué contextos esto ayuda el rendimiento de los modelos. El objetivo de este trabajo es desarrollar un procedimiento automatizado para el ajuste de hiper parámetros para algoritmos de aprendizaje automático aplicados a la estimación de esfuerzo del desarrollo de software. La metodología seguida en este trabajo consta de realizar un estudio de mapeo sistemático para caracterizar los algoritmos de ajuste existentes, desarrollar el procedimiento automatizado, y conducir cuasi experimentos controlados para evaluar este procedimiento. Mediante el mapeo sistemático descubrimos que la literatura en estimación de esfuerzo ha favorecido el uso de la búsqueda en cuadrícula. Los resultados obtenidos en nuestros cuasi experimentos demostraron que algoritmos de estimación no-exhaustivos son viables para la estimación de esfuerzo. Estos resultados indican que evaluar aleatoriamente 60 hiper parámetros puede ser tan efectivo como la búsqueda en cuadrícula, y que muchos de los métodos usados en el estado del arte son solo más efectivos que esta búsqueda aleatoria en 6% de los escenarios. Recomendamos el uso de la búsqueda aleatoria, algoritmos genéticos y similares, y la búsqueda tabú y harmónica.Escuela de Ciencias de la Computación e InformáticaCentro de Investigaciones en Tecnologías de la Información y ComunicaciónUCR::Vicerrectoría de Investigación::Sistema de Estudios de Posgrado::Ingeniería::Maestría Académica en Computación e Informátic

    Estimación de esfuerzo en proyectos de desarrollo de software con metodologías ágiles

    Full text link
    [ES] La estimación de esfuerzo es una actividad fundamental en la industria de desarrollo de software. Ya sea mediante el empleo de modelos simples basados en el juicio u opinión de uno o varios miembros del equipo de desarrollo (expertos en el área) o modelos más complejos que utilizan datos históricos, algoritmos y/o herramientas sistematizadas, la finalidad de este proceso de estimación es poder contar con un valor representativo del esfuerzo que requiere llevar a cabo el proyecto, sirviendo de apoyo a las tareas de planificación y gestión del mismo. A su vez, constituye el principal soporte para la toma de decisiones respecto a factores como coste, recursos, duración y entregables del proyecto. En el presente trabajo de investigación se estudia el concepto de estimación de esfuerzo dentro del contexto de proyectos de desarrollo de software con metodologías ágiles. Para ello, primero se presentan las características particulares del movimiento ágil desde una perspectiva general, y luego se destacan los aspectos principales de las metodologías ágiles más conocidas en la actualidad. Asimismo, se introduce el concepto de estimación de esfuerzo, abarcando desde los aspectos más generales hasta su aplicación específica en proyectos de desarrollo ágil. Para analizar el estado del arte del uso de modelos de estimación de esfuerzo en este contexto, se ha desarrollado una revisión sistemática de literatura, en la que se han utilizado cinco motores de búsqueda o librerías digitales (ACM Digital Library, IEEE Xplore, Science Direct, Scopus, Web of Science) para la identificación de artículos de revistas científicas o conferencias publicados entre Diciembre 2013 y Diciembre 2017, respecto a modelos de estimación de esfuerzo utilizados en proyectos de desarrollo ágil. Un total de 46 estudios primarios han sido obtenidos después de la depuración de los resultados de la búsqueda inicial, los cuales han sido sometidos a una serie de preguntas de investigación para la extracción de datos relevantes para este estudio y el posterior análisis comparativo de los mismos. Esta revisión de literatura está basada en un estudio realizado en 2014, por lo que se ha intentado mantener, en la medida de lo posible, una coherencia con el proceso de análisis utilizado en dicho estudio. Esto permite obtener resultados comparables y complementarios a los anteriores, revelando una nueva tendencia en el uso de métodos algorítmicos y técnicas de Machine Learning para la estimación de esfuerzo en proyectos desarrollados con metodologías ágiles. Además, se ha realizado un análisis exploratorio del repositorio ISBSG en sus versiones R12-2012 y R1-2017. Esta evaluación, que sirve como valor añadido al estudio, se enfoca en aquellos proyectos desarrollados con metodologías ágiles y en la identificación de las variables relacionadas con el esfuerzo. Ambos resultados (la revisión de literatura y el análisis exploratorio) son comparados y combinados para obtener una visión conjunta del progreso de la estimación de esfuerzo en entornos de desarrollo ágil.[EN] Effort estimation is one of the fundamental practices in the software development industry. Whether it is through simple, expert judgment based models or more complex models that use historical data, algorithms and computational tools, the purpose of this estimation process is to obtain a representative value of the required effort to carry out a software project, supporting the planning and management activities thereof. Also, this value is the main input for decision making regarding cost, resources, duration, and deliverables of the project. In the present work, the concept of effort estimation is studied in the context of agile software development projects. First, the characteristics of the agile movement are presented from a general perspective and then the main agile methodologies are highlighted. Likewise, effort estimation is first overviewed in a general context, to later develop the specifics of its application in agile software development. To analyze the state of the art of effort estimation models in this context, a systematic literature review is developed, using five search engines or digital libraries (ACM Digital Library, IEEE Xplore, Science Direct, Scopus, Web of Science) to identify journal articles and conference papers published between December 2013 and December 2017, regarding effort estimation models in agile software development. 46 primary studies resulted after the search results depuration, which have been analyzed through a series of research questions for the extraction of relevant data and the comparative analysis thereof. This literature review is based on a previous study in 2014, so a coherence with the process of analysis use in that study has been kept as far as possible. This allows obtaining comparable and complementary results in relation to the previous study, revealing also a new trend on using algorithm methods and Machine Learning techniques for effort estimation in Agile projects. Also, an exploratory analysis of ISBSG repository has been carried out for 2012 and 2017 releases. This evaluation, as added value to the study, is focused on projects developed with agile methodologies and the identification of relevant variables for effort estimation. Both, the SRL and the exploratory analysis, are compared and combined to get a general overview of the progress of effort estimation in Agile.Méndez Solimán, ER. (2018). Estimación de esfuerzo en proyectos de desarrollo de software con metodologías ágiles. http://hdl.handle.net/10251/109927TFG

    Análisis de Estimación de Esfuerzo aplicando Puntos de Caso de Uso

    Get PDF
    Las diversas metodologías de estimación de esfuerzo en el proceso de desarrollo de software han surgido a raíz de fracasos y aciertos en los proyectos. La evolución de los métodos de estimación no ha sido como consecuencia de su invalidez o resultados erróneos, sino de la misma evolución de la tecnología, del acotamiento de los márgenes de error y de las exigencias del mercado en busca de productos de mayor calidad. Este trabajo muestra que la metodología de Puntos de Casos de Uso propuesta por Frohnhoff y Engels, con claras y fehacientes muestras de éxito en momentos de su desarrollo, necesita de ajustes y/o mejoras. En este sentido, se presentan casos de estudio concretos.Presentado en el VII Workshop Ingeniería de Software (WIS)Red de Universidades con Carreras en Informática (RedUNCI

    Análisis de Estimación de Esfuerzo aplicando Puntos de Caso de Uso

    Get PDF
    Las diversas metodologías de estimación de esfuerzo en el proceso de desarrollo de software han surgido a raíz de fracasos y aciertos en los proyectos. La evolución de los métodos de estimación no ha sido como consecuencia de su invalidez o resultados erróneos, sino de la misma evolución de la tecnología, del acotamiento de los márgenes de error y de las exigencias del mercado en busca de productos de mayor calidad. Este trabajo muestra que la metodología de Puntos de Casos de Uso propuesta por Frohnhoff y Engels, con claras y fehacientes muestras de éxito en momentos de su desarrollo, necesita de ajustes y/o mejoras. En este sentido, se presentan casos de estudio concretos.Presentado en el VII Workshop Ingeniería de Software (WIS)Red de Universidades con Carreras en Informática (RedUNCI

    Análisis comparativo de estimación de esfuerzo en el desarrollo de software

    Get PDF
    Las diversas metodologías de estimación de esfuerzo en el proceso de desarrollo de software han surgido como una necesidad temprana de poder evaluar la factibilidad económica de un proyecto. La evolución de los métodos de estimación no han sido como consecuencia de su invalidez o resultados erróneos, sino de la misma evolución de la tecnología, del acotamiento de los márgenes de error y de las exigencias del mercado en busca de productos de mayor calidad. Este trabajo propone modificar la metodología de Puntos de Casos de Uso de Gustav Karner para estimar el esfuerzo en el desarrollo de un producto de software, utilizando la Especificación de Requerimientos en vez de Caso de Uso. En este sentido, se presentan casos de estudio con resultados concretos.Presentado en el VIII Workshop Ingeniería de Software (WIS)Red de Universidades con Carreras en Informática (RedUNCI

    Análisis de Estimación de Esfuerzo aplicando Puntos de Caso de Uso

    Get PDF
    Las diversas metodologías de estimación de esfuerzo en el proceso de desarrollo de software han surgido a raíz de fracasos y aciertos en los proyectos. La evolución de los métodos de estimación no ha sido como consecuencia de su invalidez o resultados erróneos, sino de la misma evolución de la tecnología, del acotamiento de los márgenes de error y de las exigencias del mercado en busca de productos de mayor calidad. Este trabajo muestra que la metodología de Puntos de Casos de Uso propuesta por Frohnhoff y Engels, con claras y fehacientes muestras de éxito en momentos de su desarrollo, necesita de ajustes y/o mejoras. En este sentido, se presentan casos de estudio concretos.Presentado en el VII Workshop Ingeniería de Software (WIS)Red de Universidades con Carreras en Informática (RedUNCI

    Mejora de la precisión de la estimación de esfuerzo en proyectos de software usando puntos de caso de uso

    Get PDF
    Publicación a texto completo no autorizada por el autorPresenta una investigación sobre los factores que afectan la precisión del método de Puntos de Casos de Uso con la finalidad de realizar una propuesta para mejorar la precisión de la estimación de esfuerzo. Se ha elegido los Puntos de Casos de Uso como método de estimación de esfuerzo debido a que puede ser utilizado en una fase temprana para estimar el esfuerzo, y es medido desde un modelo de casos de uso que define el alcance funcional del proyecto de software a ser desarrollado. La propuesta para mejorar la precisión de la estimación del método de Puntos de Casos de Uso ha sido enfocada a proyectos de software desarrollados bajo la metodología CMMI, que busca dar a la organización una estimación temprana con menor imprecisión durante la fase de planificación. Los resultados muestran que se puede lograr una mejora general de 18.57% y 14.03% con respecto a la estimación inicial y la estimación brindada por el método Puntos de Casos de Uso original propuesto por Karner (1993) respectivamente.Tesi

    Estimación de esfuerzo en el desarrollo de software a partir de una especificación de requerimientos

    Get PDF
    El desarrollo de software está sujeto a restricciones técnicas y económicas, las cuales se expresan en el plan de proyecto en forma explícita o implícita. Dicho plan se compone de actividades y tareas, definidas en función de los requerimientos definidos. Estas actividades y tareas tienen un esfuerzo requerido para su realización, estimado a priori con algún método. La estimación de esfuerzo se mide en términos del esfuerzo requerido por persona/mes, normalmente expresado en términos de Horas/Hombre (HH). Con el surgimiento del paradigma orientado a objetos y el modelado de Casos de Uso, se llevaron a cabo investigaciones sobre la factibilidad de implementar metodologías de estimación basadas en diagrama de clases de objetos y casos de uso. Una de estas investigaciones dio origen al método de Puntos de Casos de Uso (UCPs) creado por Gustav Karner [KARNER93]. El método toma ideas de los Puntos Función (PF) de [ALBRECHT79]. Los UCPs representan una estimación del esfuerzo para el desarrollo de un sistema de software. Esta tesis plantea la hipótesis de utilizar la Especificación de Requerimientos funcionales para realizar la estimación de esfuerzo en el desarrollo de software, a partir de una modificación del método de Puntos de Caso de Uso de Gustav Karner [KARNER93]. En este sentido, se pretende obtener valores de estimación similares a los obtenidos por el método original, pero en una etapa más temprana del ciclo de vida de desarrollo de software.Facultad de Informátic

    Algoritmos de Feature Selection utilizados en estimación de esfuerzo de proyectos de desarrollo software

    Full text link
    [ES] Hoy en día hay poco trabajo de investigación centrado en las técnicas de Feature Selection (FS), incluidas las características categóricas y continuas en la literatura de Estimación del esfuerzo de desarrollo de software. Este documento aborda el problema de seleccionar las características más relevantes del conjunto de datos de ISBSG (International Software Benchmarking Standards Group) para su uso en la estimación de esfuerzo de desarrollo software. El objetivo es mostrar la utilidad de dividir en dos la lista clasificada de características proporcionadas por un enfoque secuencial de FS basado en información mutua, con respecto a características categóricas y continuas. Estas listas se recombinan posteriormente de acuerdo con la precisión de un modelo de razonamiento basado en casos. Por lo tanto, se comparan cuatro algoritmos de FS utilizando un conjunto de datos completo con 621 proyectos y 12 características de ISBSG. Por un lado, dos algoritmos solo consideran la relevancia, mientras que los dos restantes siguen el criterio de maximizar la relevancia y también minimizar la redundancia entre cualquier característica independiente y las características ya seleccionadas. Por otro lado, los algoritmos que no discriminan entre características continuas y categóricas consideran solo una lista, mientras que los que las diferencian utilizan dos listas que luego se combinan. Como resultado, los algoritmos que utilizan dos listas presentan un mejor rendimiento que los algoritmos que utilizan una sola lista. Por lo tanto, es significativo considerar dos listas diferentes de características para que las características categóricas se puedan seleccionar con mayor frecuencia.[EN] There is still little research work focused on feature selection (FS) techniques including both categorical and continuous features in Software Development Effort Estimation (SDEE) literature. This paper addresses the problem of selecting the most relevant features from ISBSG (International Software Benchmarking Standards Group) dataset to be used in SDEE. The aim is to show the usefulness of splitting the ranked list of features provided by a mutual information-based sequential FS approach in two, regarding categorical and continuous features. These lists are later recombined according to the accuracy of a case-based reasoning model. Thus, four FS algorithms are compared using a complete dataset with 621 projects and 12 features from ISBSG. On the one hand, two algorithms just consider the relevance, while the remaining two follow the criterion of maximizing relevance and also minimizing redundancy between any independent feature and the already selected features. On the other hand, the algorithms that do not discriminate between continuous and categorical features consider just one list, whereas those that differentiate them use two lists that are later combined. As a result, the algorithms that use two lists present better performance than those algorithms that use one list. Thus, it is meaningful to consider two different lists of features so that the categorical features may be selected more frequently.Ajenjo Vicente, II. (2020). Algoritmos de Feature Selection utilizados en estimación de esfuerzo de proyectos de desarrollo software. http://hdl.handle.net/10251/151255TFG
    • …
    corecore