DocumentCode :
2416317
Title :
Understanding how the requirements are implemented in source code
Author :
Zhao, Wei ; Zhang, Lu ; Liu, Yin ; Luo, Jing ; Sun, Jiasu
Author_Institution :
Software Eng. Inst., Peking Univ., Beijing, China
fYear :
2003
fDate :
10-12 Dec. 2003
Firstpage :
68
Lastpage :
77
Abstract :
For software maintenance and evolution, a common problem is to understand how each requirement is implemented in the source code. The basic solution of this problem is to find the fragment of source code that is corresponding to the implementation of each requirement. This can be viewed as a requirement-slicing problem - slicing the source code according to each individual requirement. We present an approach to find the set of functions that is corresponding to each requirement. The main idea of our method is to combine the information retrieval technology with the static analysis of source code structures. First, we retrieve the initial function sets through some information retrieval model using functional requirements as the queries and identifier information (such as function names, parameter names, variable names etc.) of functions in the source code as target documents. Then we complement each retrieved initial function set by analyzing the call graph extracted from the source code. A premise of our approach is that programmers should use meaningful names as identifiers. Furthermore, we perform an experimental study based on a GNU system. We use two basic metrics: precision and recall (which are the common practice in the information retrieval field), to evaluate our approach. We also compare the results directly acquired from information retrieval with those that are complemented through static source code structure analysis.
Keywords :
information retrieval; program slicing; reverse engineering; software maintenance; software metrics; system documentation; GNU system; call graph; information retrieval technology; precision metrics; program comprehension; recall metrics; requirement-slicing problem; requirements implementation understanding; software maintenance; source code; static source code structure analysis; Data mining; Documentation; Information analysis; Information retrieval; Programming profession; Software engineering; Software maintenance; Software systems; Space technology; Sun;
fLanguage :
English
Publisher :
ieee
Conference_Titel :
Software Engineering Conference, 2003. Tenth Asia-Pacific
Print_ISBN :
0-7695-2011-1
Type :
conf
DOI :
10.1109/APSEC.2003.1254359
Filename :
1254359
Link To Document :
بازگشت