Discovering Use Cases From Source Code Using The Branch-Reserving Call Graph

T Qin,L Zhang,Zy Zhou,D Hao,Js Sun
DOI: https://doi.org/10.1109/APSEC.2003.1254358
2003-01-01
Abstract:Understanding the behavior of a software system is an important problem in program comprehension. Use cases have been accepted as an effective means for describing behavioral requirements for a software system. In this paper, we propose a novel approach for obtaining use cases from source code. The central idea of our approach is to use the Branch-Reserving Call Graph (BRCG) as the intermediate representation of a software program. We also provide strategies for pruning the BRCG to avoid generating too many fine-grained use cases. Use cases, which may just undergo some minor modifications from human experts, can be generated through traversing the pruned BRCG. The contributions of our approach are three fold. i) This method represents a compromised approach, which differs from both the static and dynamic approaches for use case discovery. ii) This method takes into consideration the fact that it is the branch statements that separate one use case from another in source code. iii) This method can avoid intensive human involvement in determining the final set of use cases. We have also performed a case study for this method on a GNU system.
What problem does this paper attempt to address?