Skip to main content
Log in

An objective-oriented approach to program comprehension using multiple information sources

  • Published:
Science in China Series F: Information Sciences Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Lientz B, Swanson E, Tompkins G E. Characteristics of application software maintenance. Commun ACM, 1978, 21(6): 466–471

    Article  Google Scholar 

  2. Boehm B W. Software Engineering Economics. Harlow: Prentice Hall, 1981

    MATH  Google Scholar 

  3. Rugaber S. Program comprehension. Working Report, Georgia Institute of Technology, May 1995

  4. Fjeldstad R K, Hamlen W T. Application program maintenance study: report to our respondents. In: Proceedings GUIDE. 1983. 48

  5. Yang F, Mei H, Li K. Software reuse and software component technology. Acta Elect Sin (in Chinese), 1999, 27(2): 68–75

    Google Scholar 

  6. 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

  7. 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

  8. 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

  9. 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

    Google Scholar 

  10. Mei H, Wu Q, Yuan W, et al. Smalltalk program understanding system DBCom-ST. Chin J Comp (in Chinese), 2000, 23(8): 882–886

    Google Scholar 

  11. Mayrhauser A V, Vans A M. Program comprehension during software maintenance and evolution. IEEE Comp, 1995, 28(8): 44–55

    Google Scholar 

  12. Lakhotia A. Understanding someone else’s code: analysis of experience. J Syst Software, 1993, 23: 269–275

    Article  Google Scholar 

  13. 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

    Google Scholar 

  14. Brooks R. Towards a theory of the comprehension of computer programs. Int J Man-Mach Stud, 1983, 18: 543–554

    MathSciNet  Google Scholar 

  15. Soloway E, Ehrlich K. Empirical studies of programming knowledge. IEEE Trans Software Eng, 1984, 10(5): 595–609

    Article  Google Scholar 

  16. Letovsky S. Cognitive processes in program comprehension. In: Proceedings of First Workshop Empirical Studies of Programmers. 1986. 58–79

  17. Pennington N. Stimulus structures and mental representations in expert comprehension of computer programs. Cognit Psych, 1987, 19: 295–341

    Article  Google Scholar 

  18. Harandi M T, Ning J Q. Knowledge-based program analysis. IEEE Software, 1990, 7(1): 74–81

    Article  Google Scholar 

  19. Antoniol G, Canfora G, Casazza G, et al. Recovering traceability links between code and documentation. IEEE Trans Software Eng, 2002, 28(10): 970–983

    Article  Google Scholar 

  20. 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

  21. 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

    Article  Google Scholar 

  22. Zimmermann T, Zeller A, Weissgerber P, et al. Mining version histories to guide software changes. IEEE Trans Software Eng, 2005, 31(6): 429–445

    Article  Google Scholar 

  23. 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

    Article  Google Scholar 

  24. 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

  25. Eisenbarth T, Koschke R, Simon D. Locating features in source code. IEEE Trans Software Eng, 2003, 29(3): 210–224

    Article  Google Scholar 

  26. Chen K, Rajlich V. Case study of feature location using dependence graph. In: Proceedings of International Workshop on Program Comprehension. 2000. 241–249

  27. 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

  28. 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

  29. 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

  30. 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

  31. Wilde N, Scully M C. Software reconnaissance: mapping program features to code. J Software Mainten: Res Pract, 1995, 7(1): 49–62

    Article  Google Scholar 

  32. 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

  33. 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

  34. Salton G, Lesk M E. Computer evaluation of indexing and text processing. J ACM, 1968, 15(1): 8–36

    Article  MATH  Google Scholar 

  35. Salton G. The SMART retrieval system—experiments in automatic document processing. Englewood Cliffs, NJ: Prentice Hall Inc., 1971

    Google Scholar 

  36. Baeza-Yates R, Ribeiro-Neto B. Modern Information Retrieval. New York: ACM Press, Addison-Wesley, 1999. 44–46

    Google Scholar 

  37. 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

  38. Zhao W, Zhang L, Mei H, et al. Requirements guided dynamic software clustering. In: Proceedings of International Conference on Software Maintenance. 2005. 605–608

  39. GNU. MC: converts text documents into a vector space model. (http://www.cs.utexas.edu/users/jfan/dm)

  40. 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

    Google Scholar 

  41. GNU. DC: an arbitrary precision calculator. (http://www.gnu.org/directory/GNU/bc.html)

  42. 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

  43. 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

    Article  MathSciNet  Google Scholar 

  44. Eick S, Steffen J, Summer E. Seesoft-a tool for visualizing line-oriented software statistics. IEEE Trans Software Eng, 1992, 18(11): 957–968

    Article  Google Scholar 

  45. 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

  46. Deerwester S, Dumais S T, Furnas G W, et al. Indexing by latent semantic analysis. J Am Soc Inf Sci, 1990, 41: 391–407

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Hong Mei.

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

Reprints 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

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11432-008-0066-5

Keywords

Navigation