Supporting requirements update during software evolution. Issue 3 (20th March 2015) - Ben Charrada, Eya; Koziolek, Anne; Glinz, Martin
Summary: Updating the requirements specification when software systems evolve is a manual task that is expensive and time consuming. Therefore, maintainers usually apply the changes to the code directly and leave the requirements unchanged. This results in the requirements rapidly becoming obsolete and useless. In this paper, we propose an approach that supports the maintainer in keeping the requirements specification consistent with the implementation, by identifying the requirements that are impacted whenever the code is changed. Our approach works as follows. First, we analyze the changes that have been applied to the source code and detect if they are likely to impact the requirements or not. Second, we trace the requirements‐impacting changes back to the requirements specification to identify the parts that might need to be modified. The output of the tracing is a list of requirements that are sorted according to their likelihood of being impacted. Automatically identifying the parts of the requirements specification that are likely to need maintenance reduces the effort needed for keeping the requirements up‐to‐date and thus makes the task of the maintainer easier. When applying our approach in three cases studies, 70% to 100% of the impacted requirements were identified within a list that includes less than 20% of the total number of requirements in the specification. Copyright © 2015 John Wiley & Sons, Ltd. Abstract : Updating the requirements specification when software systems evolve is a manual task that is time consuming. Therefore, maintainers usually apply the changes to the code directly and leave the requirements unchanged. We propose an approach that supports keeping the requirements specification consistent with the implementation, by identifying the requirements that are impacted whenever the code is changed. Our approach allowed identifying most of the impacted requirements in a list that includes less than 20% of the total number of requirements.