Header

UZH-Logo

Maintenance Infos

Supporting requirements update during software evolution


Ben Charrada, Eya; Koziolek, Anne; Glinz, Martin (2015). Supporting requirements update during software evolution. Journal of Software: Evolution and Process, 27(3):166-194.

Abstract

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.

Abstract

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.

Statistics

Citations

3 citations in Web of Science®
4 citations in Scopus®
Google Scholar™

Altmetrics

Downloads

77 downloads since deposited on 22 May 2015
48 downloads since 12 months
Detailed statistics

Additional indexing

Item Type:Journal Article, refereed, original work
Communities & Collections:03 Faculty of Economics > Department of Informatics
Dewey Decimal Classification:000 Computer science, knowledge & systems
Language:English
Date:24 March 2015
Deposited On:22 May 2015 13:14
Last Modified:21 Nov 2017 17:55
Publisher:Wiley-Blackwell Publishing, Inc.
ISSN:2047-7481
Publisher DOI:https://doi.org/10.1002/smr.1705
Other Identification Number:merlin-id:11950

Download

Download PDF  'Supporting requirements update during software evolution'.
Preview
Content: Accepted Version
Filetype: PDF (Preprint in final layout)
Size: 2MB
View at publisher