Intention-based diagnosis of errors in novice programs
Intention-based diagnosis of errors in novice programs
Mental models and software maintenance
Papers presented at the first workshop on empirical studies of programmers on Empirical studies of programmers
The C Information Abstraction System
IEEE Transactions on Software Engineering
The programmer's apprentice
Automated program recognition: a feasibility demonstration
Artificial Intelligence
LaSSIE: a knowledge-based software information system
Communications of the ACM - Special issue on software engineering
An empirically-derived control structure for the process of program understanding
International Journal of Man-Machine Studies - What programmers know
Object-oriented modeling and design
Object-oriented modeling and design
Program Concept Recognition and Transformation
IEEE Transactions on Software Engineering - Special issue on software maintenance
Automated program recognition by graph parsing
Automated program recognition by graph parsing
Program understanding and the concept assignment problem
Communications of the ACM
A memory-based approach to recognizing programming plans
Communications of the ACM
Understanding natural programs using proper decomposition
ICSE '91 Proceedings of the 13th international conference on Software engineering
Plan analysis of programs
Delocalized Plans and Program Comprehension
IEEE Software
The program understanding problem: analysis and a heuristic approach
Proceedings of the 18th international conference on Software engineering
Requirements for an effective architecture recovery framework
ISAW '96 Joint proceedings of the second international software architecture workshop (ISAW-2) and international workshop on multiple perspectives in software development (Viewpoints '96) on SIGSOFT '96 workshops
Reverse engineering of use case realizations in UML
SAC '00 Proceedings of the 2000 ACM symposium on Applied computing - Volume 2
The use of domain knowledge in program understanding
Annals of Software Engineering
Applying AI to Software Renovation
Automated Software Engineering
Program Understanding as Constraint Satisfaction: Representation and Reasoning Techniques
Automated Software Engineering
Reverse Engineering of Use Case Realizations in UML
ACM SIGSOFT Software Engineering Notes
Hi-index | 0.00 |
While automated program understanders have had some success in partially extracting design information from source code, they are unlikely to be able to completely understand existing real-world legacy systems. To address this problem, we have been developing DECODE, an environment in which programmer and system cooperate to extract object-oriented designs from legacy systems. DECODE consists of three components: an automated program understander that extracts some initial stereotypical object-oriented design elements; a structured notebook that provides the user with a graphical view of the system's understanding and the ability to extend this understanding by linking source code fragments to object-oriented design elements; and a query processor that uses this design information to support conceptual queries about the program's code and design. This paper describes DECODE and our initial successes and failures with using it to reverse engineer several non-trivial COBOL programs.