Understanding How the Requirements Are Implemented in Source Code

  • Authors:
  • Wei Zhao;Lu Zhang;Yin Liu;Jing Luo;Jiasu Sun

  • Affiliations:
  • -;-;-;-;-

  • Venue:
  • APSEC '03 Proceedings of the Tenth Asia-Pacific Software Engineering Conference Software Engineering Conference
  • Year:
  • 2003

Quantified Score

Hi-index 0.00

Visualization

Abstract

For software maintenance and evolution, a commonproblem is to understand how each requirement isimplemented in the source code. The basic solution of thisproblem is to find the fragment of source code that iscorresponding to the implementation of each requirement.This can be viewed as a requirement-slicing problem --slicing the source code according to each individualrequirement. In this paper, we present an approach tofind the set of functions that is corresponding to eachrequirement. The main idea of our method is to combinethe information retrieval technology with the staticanalysis of source code structures. First, we retrieve theinitial function sets through some information retrievalmodel using functional requirements as the queries andidentifier information (such as function names, parameternames, variable names etc.) of functions in the sourcecode as target documents. Then we complement eachretrieved initial function set by analyzing the call graphextracted from the source code. A premise of ourapproach is that programmers should use meaningfulnames as identifiers. Furthermore, we perform anexperimental study based on a GNU system. We use twobasic metrics: precision and recall (which are thecommon practice in the information retrieval field), toevaluate our approach. We also compare the resultsdirectly acquired from information retrieval with thosethat are complemented through static source codestructure analysis.