Header

UZH-Logo

Maintenance Infos

Supporting requirements update during software evolution


Ben Charrada, Eya. Supporting requirements update during software evolution. 2013, University of Zurich, Faculty of Economics.

Abstract

The existence of an up-to-date requirements specification is very crucial for software evolution. In fact, the requirements specification facilitates program comprehension, gives the rationale behind the implementation, prevents undoing important decisions and serves as a basis to discuss feature changes with stakeholders. Despite their importance, requirements specifications are rarely kept up-to-date. This is mainly due to the high-costs of the approaches used nowadays to maintain them. In fact, requirements maintenance is still a manual task that requires the engineer to go through the whole requirements document, which can be hundreds or thousands of pages, and look for the parts that need to be changed. In this thesis, we explore new ways to reduce the effort needed to maintain the requirements specification. We propose two approaches, one based on tests and one based on code, to automatically identify the parts of the requirements specification that become outdated when the implementation is changed. In the code-based approach, which is the main contribution of the thesis, we compare two versions of the source code, identify the relevant vi — changes and trace these changes back to the requirements to identify the parts that are impacted. When applying the approach to two case studies, it identified 70% to 100% of the outdated requirements within a list including less than 20% of the total number of requirements in the specification. Automatically identifying the requirements that are likely to be outdated should reduce the effort needed for requirements maintenance and thus encourage maintainers to regularly update the specification.


Zusammenfassung
Die Verfügbarkeit einer aktuellen Anforderungsspezifikation ist von grosser Bedeutung für die Software-Evolution. Eine Anforderungsspezifikation erleichtert das Programmverständnis, liefert die Beweggründe für die Implementierung, verhindert, dass wichtige Entscheidungen versehentlich rückgängig gemacht werden und dient als Grundlage zur Diskussion von Funktionsänderungen mit Interesseneignern (Stakeholdern). In realen Projekten allerdings werden Anforderungsspezifikationen selten gepflegt bzw. aktuell gehalten. Dies ist vor allem bedingt durch den hohen Aufwand, den die heutigen Ansätze erfordern. Faktisch ist die Pflege der Anforderungsspezifikation heute noch ein manueller Prozess, bei dem die verantwortliche Person das gesamte Anforderungsdokument, welches hunderte oder tausende von Seiten umfassen kann, durch- lesen muss, um die zu aktualisierenden Stellen zu identifizieren. In dieser Arbeit untersuchen wir neue Ansätze, um den Aufwand für die Pflege der Anforderungsspezifikation zu reduzieren. Wir schlagen zwei automatisierte Methoden vor, um diejenigen Teile der Anforderungsspezifikation zu identifizieren, die bei einer Änderung in der Implementierung angepasst werden müssen. Eine der beiden Methoden ist testbasiert, die andere quellcodebasiert. In der quellcodebasierten Methode, die den wichtigsten Beitrag dieser Arbeit darstellt, werden zwei Versionen des Quellcodes verglichen, relevante Anderungen identifiziert und diese zu den zugehörigen Anforderungen zurückverfolgt. Bei der Anwendung dieser Methode auf zwei Fallstudien wurden 70% bis 100% der nicht mehr aktuellen Anforderungen identifiziert, und dies in einer Liste mit weniger als 20% der gesamten Anforderungen. Die automatische Ermittlung der Anforderungen, welche bei einer Anderung im Code mit grosser Wahrscheinlichkeit nicht mehr aktuell sind, sollte den Aufwand für die Pflege der Anforderungen reduzieren und dadurch die Pflege- verantwortlichen motivieren, nicht nur den Code, sondern auch die Anforderungsspezifikation zu pflegen und aktuell zu halten.

Abstract

The existence of an up-to-date requirements specification is very crucial for software evolution. In fact, the requirements specification facilitates program comprehension, gives the rationale behind the implementation, prevents undoing important decisions and serves as a basis to discuss feature changes with stakeholders. Despite their importance, requirements specifications are rarely kept up-to-date. This is mainly due to the high-costs of the approaches used nowadays to maintain them. In fact, requirements maintenance is still a manual task that requires the engineer to go through the whole requirements document, which can be hundreds or thousands of pages, and look for the parts that need to be changed. In this thesis, we explore new ways to reduce the effort needed to maintain the requirements specification. We propose two approaches, one based on tests and one based on code, to automatically identify the parts of the requirements specification that become outdated when the implementation is changed. In the code-based approach, which is the main contribution of the thesis, we compare two versions of the source code, identify the relevant vi — changes and trace these changes back to the requirements to identify the parts that are impacted. When applying the approach to two case studies, it identified 70% to 100% of the outdated requirements within a list including less than 20% of the total number of requirements in the specification. Automatically identifying the requirements that are likely to be outdated should reduce the effort needed for requirements maintenance and thus encourage maintainers to regularly update the specification.


Zusammenfassung
Die Verfügbarkeit einer aktuellen Anforderungsspezifikation ist von grosser Bedeutung für die Software-Evolution. Eine Anforderungsspezifikation erleichtert das Programmverständnis, liefert die Beweggründe für die Implementierung, verhindert, dass wichtige Entscheidungen versehentlich rückgängig gemacht werden und dient als Grundlage zur Diskussion von Funktionsänderungen mit Interesseneignern (Stakeholdern). In realen Projekten allerdings werden Anforderungsspezifikationen selten gepflegt bzw. aktuell gehalten. Dies ist vor allem bedingt durch den hohen Aufwand, den die heutigen Ansätze erfordern. Faktisch ist die Pflege der Anforderungsspezifikation heute noch ein manueller Prozess, bei dem die verantwortliche Person das gesamte Anforderungsdokument, welches hunderte oder tausende von Seiten umfassen kann, durch- lesen muss, um die zu aktualisierenden Stellen zu identifizieren. In dieser Arbeit untersuchen wir neue Ansätze, um den Aufwand für die Pflege der Anforderungsspezifikation zu reduzieren. Wir schlagen zwei automatisierte Methoden vor, um diejenigen Teile der Anforderungsspezifikation zu identifizieren, die bei einer Änderung in der Implementierung angepasst werden müssen. Eine der beiden Methoden ist testbasiert, die andere quellcodebasiert. In der quellcodebasierten Methode, die den wichtigsten Beitrag dieser Arbeit darstellt, werden zwei Versionen des Quellcodes verglichen, relevante Anderungen identifiziert und diese zu den zugehörigen Anforderungen zurückverfolgt. Bei der Anwendung dieser Methode auf zwei Fallstudien wurden 70% bis 100% der nicht mehr aktuellen Anforderungen identifiziert, und dies in einer Liste mit weniger als 20% der gesamten Anforderungen. Die automatische Ermittlung der Anforderungen, welche bei einer Anderung im Code mit grosser Wahrscheinlichkeit nicht mehr aktuell sind, sollte den Aufwand für die Pflege der Anforderungen reduzieren und dadurch die Pflege- verantwortlichen motivieren, nicht nur den Code, sondern auch die Anforderungsspezifikation zu pflegen und aktuell zu halten.

Statistics

Downloads

306 downloads since deposited on 21 Jan 2014
15 downloads since 12 months
Detailed statistics

Additional indexing

Item Type:Dissertation (monographical)
Referees:Glinz Martin, Alonso Gustavo
Communities & Collections:03 Faculty of Economics > Department of Informatics
UZH Dissertations
Dewey Decimal Classification:000 Computer science, knowledge & systems
Uncontrolled Keywords:Requirements Engineering, Softwareentwicklung
Language:English
Place of Publication:Zürich
Date:2013
Deposited On:21 Jan 2014 13:28
Last Modified:07 Apr 2020 06:42
Number of Pages:198
OA Status:Green
Related URLs:https://www.recherche-portal.ch/permalink/f/5u2s2l/ebi01_prod009962419 (Library Catalogue)
Other Identification Number:merlin-id:8892

Download

Green Open Access

Download PDF  'Supporting requirements update during software evolution'.
Preview
Content: Published Version
Language: English
Filetype: PDF
Size: 2MB