Abstract
Program comprehension is a key activity throughout software maintenance and reuse. The knowledge acquired through comprehending programs can guide engineers to perform various kinds of software maintenance and reuse tasks. The effective comprehension strategy and the associated efficient approach, as well as the sophisticated tool support, are the indispensable elements for an entire solution to program comprehension to reduce the high costs of this nontrivial activity. This paper presents an objective-oriented comprehension strategy, contrasting to the traditional comprehensive understanding strategy in the literature. It is a kind of on-demand understanding for specific tasks and more effective in practice. In addition, using multiple information sources to understand programs is proposed with the corresponding framework. From these two points of views, we propose a feature-oriented program comprehension approach using requirement documentation. This approach aims at a specific category of feature-related software maintenance and reuse tasks. Case studies are conducted to evaluate the proposed solution. Results from the studied cases show that the experimental prototype provides more explicit advices for software engineers when performing these tasks.
Similar content being viewed by others
References
Lientz B, Swanson E, Tompkins G E. Characteristics of application software maintenance. Commun ACM, 1978, 21(6): 466–471
Boehm B W. Software Engineering Economics. Harlow: Prentice Hall, 1981
Rugaber S. Program comprehension. Working Report, Georgia Institute of Technology, May 1995
Fjeldstad R K, Hamlen W T. Application program maintenance study: report to our respondents. In: Proceedings GUIDE. 1983. 48
Yang F, Mei H, Li K. Software reuse and software component technology. Acta Elect Sin (in Chinese), 1999, 27(2): 68–75
Biggerstaff T J, Mitbander B G, Webster D. Concept assignment problem in program understanding. In: Proceedings of International Conference on Software Engineering Baltimore. 1993. 482–498
Muller H A, Xlley S R, Orgun M A, et al. A reverse engineering environment based on spatial and visual software interconnection models. In: Proceedings of the Fifth ACM SIGSOFT Symposium on Software Development Environments. 1992. 88–98
Storey M-A D, Muller H A. Manipulating and documenting software structures using shrimp views. In: Proceedings of the 1995 International Conference on Software Maintenance (ICSM’ 95). France, 1995. 275–284
Mei H, Yuan W, Wu Q, et al. BDCom-C++: a C++ program understanding system. Chin J Elect (in Chinese), 1997, 6(2): 64–69
Mei H, Wu Q, Yuan W, et al. Smalltalk program understanding system DBCom-ST. Chin J Comp (in Chinese), 2000, 23(8): 882–886
Mayrhauser A V, Vans A M. Program comprehension during software maintenance and evolution. IEEE Comp, 1995, 28(8): 44–55
Lakhotia A. Understanding someone else’s code: analysis of experience. J Syst Software, 1993, 23: 269–275
Shneiderman B, Mayer R. Syntactic/semantic interactions in programmer behavior: a model and experimental results. Int’l J. Comp Inf Sci, 1979, 8(3): 2190–2238
Brooks R. Towards a theory of the comprehension of computer programs. Int J Man-Mach Stud, 1983, 18: 543–554
Soloway E, Ehrlich K. Empirical studies of programming knowledge. IEEE Trans Software Eng, 1984, 10(5): 595–609
Letovsky S. Cognitive processes in program comprehension. In: Proceedings of First Workshop Empirical Studies of Programmers. 1986. 58–79
Pennington N. Stimulus structures and mental representations in expert comprehension of computer programs. Cognit Psych, 1987, 19: 295–341
Harandi M T, Ning J Q. Knowledge-based program analysis. IEEE Software, 1990, 7(1): 74–81
Antoniol G, Canfora G, Casazza G, et al. Recovering traceability links between code and documentation. IEEE Trans Software Eng, 2002, 28(10): 970–983
Marcus A, Maletic J I. Recovering documentation-to-source-code traceability links using latent semantic indexing. In: Proceedings of International Conference on Software Engineering. 2003. 125–135
Ying A T T, Murphy G C, Ng R, et al. Predicting source code changes by mining change history. IEEE Trans Software Eng, 2004, 30(9): 574–586
Zimmermann T, Zeller A, Weissgerber P, et al. Mining version histories to guide software changes. IEEE Trans Software Eng, 2005, 31(6): 429–445
Cubranic D, Murphy G C, Singer J, et al. Hipikat: a project memory for software development. IEEE Trans Software Eng, 2005, 31(6): 446–465
Tilley S R, Paul S, Smith D B. Towards a framework for program understanding. In: Proceedings of Fourth Workshop on Program Comprehension. 1996. 19–28
Eisenbarth T, Koschke R, Simon D. Locating features in source code. IEEE Trans Software Eng, 2003, 29(3): 210–224
Chen K, Rajlich V. Case study of feature location using dependence graph. In: Proceedings of International Workshop on Program Comprehension. 2000. 241–249
Mehta A, Heineman G T. Evolving legacy system features into fine-grained components. In: Proceedings of 24th International Conference on Software Engineering. 2002. 417–427
Le G A, Buckley J, Cleary B, et al. Achieving a reuse perspective within a component recovery process: an industrial scale case study. In: Proceedings of the 13th International Workshop on Program Comprehension. 2005. 279–288
Griswold W G, Yuan J J, Kato Y. Exploiting the map metaphor in a tool for software evolution. In: Proceedings of International Conference on Software Engineering. 2001. 265–274
Robillard M P, Murphy G C. Concern graphs: finding and describing concerns using structural program dependencies. In: Proceedings of International Conference on Software Engineering. 2002. 406–416
Wilde N, Scully M C. Software reconnaissance: mapping program features to code. J Software Mainten: Res Pract, 1995, 7(1): 49–62
Wilde N, Gomez J A, Gust T, et al. Locating user functionality in old code. In: Proceedings of International Conference on Software Maintenance. 1992. 200–205
Wong W E, Gokhale S S, Horgan J R, et al. Locating program features using execution slices. In: Proceedings of Symposium on Application-Specific Systems and Software Engineering Technology. 1999. 194–203
Salton G, Lesk M E. Computer evaluation of indexing and text processing. J ACM, 1968, 15(1): 8–36
Salton G. The SMART retrieval system—experiments in automatic document processing. Englewood Cliffs, NJ: Prentice Hall Inc., 1971
Baeza-Yates R, Ribeiro-Neto B. Modern Information Retrieval. New York: ACM Press, Addison-Wesley, 1999. 44–46
Qin T, Zhang L, Zhou Z, et al. Discovering use cases from source code using the branch-reserving call graph. In: Proceedings of Asia-Pacific Software Engineering Conference. 2003. 60–67
Zhao W, Zhang L, Mei H, et al. Requirements guided dynamic software clustering. In: Proceedings of International Conference on Software Maintenance. 2005. 605–608
GNU. MC: converts text documents into a vector space model. (http://www.cs.utexas.edu/users/jfan/dm)
Rakotomalala R. TANAGRA: a free software for research and academic purposes. In: Proceedings of EGC’2005, RNTI-E-3(in French), 2005, 2: 697–702
GNU. DC: an arbitrary precision calculator. (http://www.gnu.org/directory/GNU/bc.html)
Zhao W, Zhang L, Liu Y, et al. SNIAFL: towards a static non-interactive approach to feature location. In: Proceedings of the 26th International Conference on Software Engineering. 2004. 293–303
Zhao W, Zhang L, Liu Y, et al. SNIAFL: towards a static noninteractive approach to feature location. ACM Trans Software Eng Meth, 2006, 15(2): 195–226
Eick S, Steffen J, Summer E. Seesoft-a tool for visualizing line-oriented software statistics. IEEE Trans Software Eng, 1992, 18(11): 957–968
Marcus A, Sergeyev A, Rajlich V, et al. An information retrieval approach to concept location in source code. In: Proceedings of 11th Working Conference on Reverse Engineering. 2004. 214–223
Deerwester S, Dumais S T, Furnas G W, et al. Indexing by latent semantic analysis. J Am Soc Inf Sci, 1990, 41: 391–407
Author information
Authors and Affiliations
Corresponding author
Additional information
Supported by the National 973 Key Basic Research and Development Program (Grant No. 2002CB312003), and the National Natural Science Foundation of China (Grant Nos. 90412011 and 60403015)
Rights and permissions
About this article
Cite this article
Zhao, W., Zhang, L., Sun, J. et al. An objective-oriented approach to program comprehension using multiple information sources. Sci. China Ser. F-Inf. Sci. 51, 825–847 (2008). https://doi.org/10.1007/s11432-008-0066-5
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11432-008-0066-5