Ansätze des Programmverstehens

Programmverstehen ist der Prozes des Wissenserwerbs uber ein Computerprogramm. Es ist die Voraussetzung fur Fehlersuche, Erweiterung, Wiederverwendung und Dokumentation. Eine Reihe von Ansatzen versucht, das Programmverstehen maschinell zu unterstutzen. Die gegenwartigen Ansatze werden in diesem Artikel klassifiziert in grundlegende und wissensbasierte Analysen. Grundlegende Analysen verfugen uber kein Wissen uber die Anwendung und allgemeine Programmierung; sie basieren lediglich auf Programmiersprachensyntax und -Semantik. Grundlegende Analysen lassen sich weiter gliedern in grundlegende statische und grundlegende dynamische Analysen, abhangig davon, ob sie zur Ubersetzungsszeit oder zur Laufzeit vorgenommen werden. Wissensbasierte Analysen verfugen uber Anwendungswissen und allgemeines Programmierwissen. Wissensbasierte Analysen lassen sich unterscheiden in Parsing-Ansatze, falls sie sich ausschlieslich auf formale und strukturelle Programmeigenschaften stutzen, und informelles Schliesen, falls sie daruber hinaus auch informelle Information in Betracht ziehen. Der Artikel gibt Beispiele zu den verschiedenen Analyseformen.

[1]  John T. Stasko Tango: A Framework and System for Algorithm Animation , 1990, Computer.

[2]  Linda Mary Wills,et al.  Automated program recognition by graph parsing , 1992 .

[3]  James H. Cross,et al.  Reverse engineering and design recovery: a taxonomy , 1990, IEEE Software.

[4]  Stanley Ian Letovsky,et al.  Plan analysis of programs , 1988 .

[5]  Hausi A. Müller,et al.  Manipulating and documenting software structures using SHriMP views , 1995, Proceedings of International Conference on Software Maintenance.

[6]  Kate Ehrlich,et al.  Empirical Studies of Programming Knowledge , 1984, IEEE Transactions on Software Engineering.

[7]  Jean-Pierre H. Laurent,et al.  LAURA, A System to Debug Student Programs , 1980, Artif. Intell..

[8]  John Edwin Hartman,et al.  Automatic Control Understanding for Natural Programs , 1991 .

[9]  Mariam Kamkar,et al.  Dynamic slicing of distributed programs , 1995, Proceedings of International Conference on Software Maintenance.

[10]  Ruven E. Brooks,et al.  Towards a Theory of the Comprehension of Computer Programs , 1983, Int. J. Man Mach. Stud..

[11]  Barry W. Boehm,et al.  Software Engineering Economics , 1993, IEEE Transactions on Software Engineering.

[12]  E. Burton Swanson,et al.  Characteristics of application software maintenance , 1978, CACM.

[13]  Mark Weiser,et al.  Program Slicing , 1981, IEEE Transactions on Software Engineering.

[14]  Anneliese Amschler Andrews,et al.  Program Comprehension During Software Maintenance and Evolution , 1995, Computer.

[15]  Richard C. Waters,et al.  The programmer's apprentice , 1990, ACM Press frontier series.

[16]  Linda M. Wills,et al.  Recognizing a program's design: a graph-parsing approach , 1990, IEEE Software.