• 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