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.
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.
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.
Author information
Authors and Affiliations
Rights 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
Issue Date:
DOI: https://doi.org/10.1007/BF00871692