5 research outputs found
Análisis de impacto en un marco de ingenierÃa de requisitos basada en pruebas de aceptación
[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
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
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
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