5 research outputs found

    Análisis de impacto en un marco de ingeniería de requisitos basada en pruebas de aceptación

    Full text link
    [ES] El presente trabajo aborda el desafío que supone realizar análisis de impacto en un producto software. Se centra en el análisis en el nivel de especificación de requisitos, expresados en forma de pruebas de aceptación. Estas pruebas están formuladas en lenguaje natural y un sistema puede tener miles de ellas. Se proponen e implementan diversos mecanismos para la realización del análisis de impacto: mediante búsqueda de términos y búsqueda a partir de términos de un artefacto. Para ello se usa la tecnología Full-Text Search, que permite realizar búsquedas lingüísticas en textos y documentos.[EN] This paper addresses the challenge of performing change impact analysis on a software product. It focuses at specification of requirements level, which are expressed using acceptance tests. These tests are draw up in natural language and a system can contain thousands of them. Some mechanisms are proposed and developed to carry out change impact analysis: by searching for terms and searching from terms of an artifact. To do this we use FullText Search, a technology that allows us to perform linguistic searches against text and documents.Pérez García, S. (2016). Análisis de impacto en un marco de ingeniería de requisitos basada en pruebas de aceptación. http://hdl.handle.net/10251/76393

    Modelos de análisis de impacto aplicados a la gestión de riesgos en proyectos de desarrollo de software: una revisión sistemática de la literatura

    Get PDF
    El análisis de impacto aplicado a un proyecto de desarrollo de software permite determinar entre otros los factores o atributos que se ven afectados de manera positiva o negativa. Los valores de estos atributos como: tiempo, presupuesto y cronograma, entre otros, varían en el tiempo y deben ser controlados por el responsable del proyecto, sin embargo éstos no siempre se apoyan en la gestión de 1s de manera adecuada. El objetivo de este trabajo es identificar modelos de análisis de impacto aplicables para la gestión de riesgos en proyectos de desarrollo de software. Para este estudio se realizó una revisión sistemática de la literatura en bases de datos reconocidas. Se encontraron 1654 estudios primarios de análisis de impacto aplicados a proyectos de desarrollo de software y 17 artículos definiendo 21 modelos de análisis de impacto y 1 artículo de un marco comparativo entre algunos modelos existentes. A partir del análisis realizado de los estudios primarios se puede concluir que existen modelos de análisis de impacto que se han aplicado a proyectos de desarrollo de software en distintas fases y distintos aspectos. Sin embargo, ninguno de ellos aplicado a la gestión de riesgos en proyectos de desarrollo de software.Trabajo de investigació

    Change Impact Analysis of Code Clones

    Get PDF
    Copying a code fragment and reusing it with or without modifications is known to be a frequent activity in software development. This results in exact or closely similar copies of code fragments, known as code clones, to exist in the software systems. Developers leverage the code reuse opportunity by code cloning for increased productivity. However, different studies on code clones report important concerns regarding the impacts of clones on software maintenance. One of the key concerns is to maintain consistent evolution of the clone fragments as inconsistent changes to clones may introduce bugs. Challenges to the consistent evolution of clones involve the identification of all related clone fragments for change propagation when a cloned fragment is changed. The task of identifying the ripple effects (i.e., all the related components to change) is known as Change Impact Analysis (CIA). In this thesis, we evaluate the impacts of clones on software systems from new perspectives and then we propose an evolutionary coupling based technique for change impact analysis of clones. First, we empirically evaluate the comparative stability of cloned and non-cloned code using fine-grained syntactic change types. Second, we assess the impacts of clones from the perspective of coupling at the domain level. Third, we carry out a comprehensive analysis of the comparative stability of cloned and non-cloned code within a uniform framework. We compare stability metrics with the results from the original experimental settings with respect to the clone detection tools and the subject systems. Fourth, we investigate the relationships between stability and bug-proneness of clones to assess whether and how stability contribute to the bug-proneness of different types of clones. Next, in the fifth study, we analyzed the impacts of co-change coupling on the bug-proneness of different types of clones. After a comprehensive evaluation of the impacts of clones on software systems, we propose an evolutionary coupling based CIA approach to support the consistent evolution of clones. In the sixth study, we propose a solution to minimize the effects of atypical commits (extra large commits) on the accuracy of the detection of evolutionary coupling. We propose a clustering-based technique to split atypical commits into pseudo-commits of related entities. This considerably reduces the number of incorrect couplings introduced by the atypical commits. Finally, in the seventh study, we propose an evolutionary coupling based change impact analysis approach for clones. In addition to handling the atypical commits, we use the history of fine-grained syntactic changes extracted from the software repositories to detect typed evolutionary coupling of clones. Conventional approaches consider only the frequency of co-change of the entities to detect evolutionary coupling. We consider both change frequencies and the fine-grained change types in the detection of evolutionary coupling. Findings from our studies give important insights regarding the impacts of clones and our proposed typed evolutionary coupling based CIA approach has the potential to support the consistent evolution of clones for better clone management

    Approche probabiliste pour l’analyse de l’impact des changements dans les programmes orientés objet

    Full text link
    Nous proposons une approche probabiliste afin de déterminer l’impact des changements dans les programmes à objets. Cette approche sert à prédire, pour un changement donné dans une classe du système, l’ensemble des autres classes potentiellement affectées par ce changement. Cette prédiction est donnée sous la forme d’une probabilité qui dépend d’une part, des interactions entre les classes exprimées en termes de nombre d’invocations et d’autre part, des relations extraites à partir du code source. Ces relations sont extraites automatiquement par rétro-ingénierie. Pour la mise en oeuvre de notre approche, nous proposons une approche basée sur les réseaux bayésiens. Après une phase d’apprentissage, ces réseaux prédisent l’ensemble des classes affectées par un changement. L’approche probabiliste proposée est évaluée avec deux scénarios distincts mettant en oeuvre plusieurs types de changements effectués sur différents systèmes. Pour les systèmes qui possèdent des données historiques, l’apprentissage a été réalisé à partir des anciennes versions. Pour les systèmes dont on ne possède pas assez de données relatives aux changements de ses versions antécédentes, l’apprentissage a été réalisé à l’aide des données extraites d’autres systèmes.We study the possibility of predicting the impact of changes in object-oriented code using bayesian networks. For each change type, we produce a bayesian network that determines the probability that a class is impacted given that another class is changed. Each network takes as input a set of possible relationships between classes. We train our networks using historical data. The proposed impact-prediction approach is evaluated with two different scenarios, various types of changes, and five systems. In the first scenario, we use as training data, the changes performed in the previous versions of the same system. In the second scenario training data is borrowed from systems that are different from the changed one. Our evaluation showed that, in both cases, we obtain very good predictions, even though they are better in the first scenario
    corecore