Skip to main content

Advertisement

Log in

Automated program understanding by concept recognition

  • Special Issue On Knowledge Based Software Engineering
  • Published:
Automated Software Engineering Aims and scope Submit manuscript

Abstract

Program understanding can be seen as the process of understanding abstract concepts in the program code. Thus, automated recognition of abstract concepts may greatly assist the human understanding process. This paper describes an approach to automated concept recognition and its implementation. In the approach, we use a concept model and a library of concept recognition rules to describe what the concepts are and how to recognize them from lower-level concepts. Programming language knowledge as well as domain knowledge are used to aid the recognition of abstract concepts.

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

Access this article

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

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

Instant access to the full article PDF.

Similar content being viewed by others

Explore related subjects

Discover the latest articles and news from researchers in related subjects, suggested using machine learning.

References

  • Aho, A. V., Sethi, R., and Ullman, J. D. 1987.Compilers Principles, Techniques, and Tools. Addison-Wesley.

  • Allemang, D. 1990. Understanding Programs as Devices. Ph.D. thesis, Ohio State University.

  • Biggerstaff, B. 1989. Design recovery for maintenance and reuse.IEEE Computer, July.

  • Biggerstaff, B., Hoskins, J., and Webster, D. 1989. DESIRE, A System for Design Recovery. MCC Technical Report STP-081-89, April.

  • Brotsky, D. C. 1984. An Algorithm for Parsing Flow Graphs. Master's thesis, March.

  • Cleveland, L. 1988. A User Interface for an Environment to Support Program Understanding. Conference on Software Maintenance, Phoenix, Arizona, October.

  • Devanbu, P., Brachman, R., Selfridge, P., and Ballard, B. 1991. LaSSIE: A knowledge-based software information system.Communications of the ACM, May.

  • Engberts, A., Kozaczynski, W., Liongosari, E., and Ning, J. Q. 1993. COBOL/SRE: A COBOL system renovation environment.CASE'93, Singapore, July.

  • Engberts, A., Kozaczynski, W., and Ning, J. Q. 1991. Concept Recognition-Based Program Transformation. Conference on Software Maintenance, Sorrento, Italy, October.

  • Ferrante, J., Ottenstein, K., and Warren, J. 1987. The program dependence graph and its use in optimization.ACM Trans. on Programming Languages, July.

  • Hartman, J. 1991. Automatic Control Understanding for Natural Programs. Ph.D. thesis, University of Texas at Austin, May.

  • Harandi, M. T., and Ning, J. Q. 1990. Knowledge-based program analysis.IEEE Software, January.

  • Huet, G., and Lang, B. 1987. Proving and applying program transformations expressed with second-order patterns.Acta Informatica 11:31–55.

    Google Scholar 

  • Johnson, W. L. 1986.Intention-Based Diagnosis of Novice Programming Errors, Morgan Kaufmann.

  • Johnson, W. L., and Soloway, E. 1985. PROUST: Knowledge-based program understanding.IEEE Trans. on Software Engineering, 11(3).

  • Kozaczynski, W., Liongosari, E., and Ning, J. 1991. BAL/SRW: An assembler re-engineering workbench.Information and Software Technology, September.

  • Kozaczynski, W., Letovsky, S., and Ning, J. 1991. A knowledge-based approach to software system understanding.Sixth KBSE Conference, September.

  • Kozaczynski, W., and Ning, J. 1989. SRE: A Knowledge-Based Environment for Large-Scale Software Reengineering Activities. 11th International Conference on Software Engineering, Pittsburgh, May.

  • Kozaczynski, W., Ning, J. Q., and Engberts, A. 1992. Program concept recognition and transformation.IEEE Transactions on Software Engineering, December.

  • Letovsky, S. 1988. Plan Analysis of Programs, Ph.D. thesis, Yale University, December.

  • Ning, J. Q. 1989. A Knowledge-Based Approach to Automatic Program Analysis, Ph.D. thesis, University of Illinois at Urbana-Campaign, October.

  • Polyglot User's Guide, written by Reasoning Systems and Andersen Consulting, unpublished.

  • ProKappa User's Guide, IntelliCorp, Inc., October 1991.

  • Rajlich, V. 1990. VIFOR: A tool for software maintenance. InSoftware—Practical and Experience, January.

  • REFINE User's Guide. 1989. Reasoning Systems, Palo Alto, CA.

  • Reiss, S. P. 1990. Connecting tools using message passing in the field environment.IEEE Software, July: 57–66.

  • Rich, C. 1981. A formal representation of plans in the programmer's apprentice. Seventh IJCAI Conference.

  • Rich, C., and Waters, R. 1988. The programmer's apprentice: A research overview.IEEE Computer, November.

  • Rich, C., and Wills, L. 1990. Recognizing a program's design: A graph-parsing approach.IEEE Software, January.

  • Wills, L. 1987. Automated Program Recognition, Master's thesis, MIT AI Lab, February.

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Kozaczynski, W., Ning, J.Q. Automated program understanding by concept recognition. Autom Software Eng 1, 61–78 (1994). https://doi.org/10.1007/BF00871692

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1007/BF00871692

Keywords