SRE: a knowledge-based environment for large-scale software re-engineering activities

In this paper, we address issues related to the reengineering of large-scale software systems. The key to the software re-engineering activity is the ability to recover (re-engineer) "lost" or otherwise unavailable information concerning specification and system design decisions from the information available in the existing system source code. Subsequently, a forward engineering step may reimplement and possibly upgrade the existing systems. This paper describes the underlying princi- ples of a knowlkige-based Software Re-engineering Environment (SRE) which is intended to provide high-level support to various software maintenance and re-engineering activities.

[1]  Stephen S. Yau,et al.  Knowledge Representation of Software Component Interconnection Information for Large-Scale Software Modifications , 1987, IEEE Transactions on Software Engineering.

[2]  Richard C. Waters,et al.  Abstraction, Inspection and Debugging in Programming , 1981 .

[3]  Thomas W. Reps,et al.  Integrating non-intering versions of programs , 1988, POPL '88.

[4]  Richard C. Waters Program Translation via Abstraction and Reimplementation , 1988, IEEE Trans. Software Eng..

[5]  Elliot Soloway,et al.  Delocalized Plans and Program Comprehension , 1986, IEEE Software.

[6]  Stephen S. Yau,et al.  A Model for Representing Programs Using Hierarchical Graphs , 1981, IEEE Transactions on Software Engineering.

[7]  Elliot Soloway,et al.  A cognitive analysis of a code inspection , 1987 .

[8]  Karl J. Ottenstein,et al.  The program dependence graph in a software development environment , 1984, SDE 1.

[9]  Nancy Pennington Expert Programmer Comprehension of Computer Programs. , 1986 .

[10]  Charles Rich Inspection Methods in Programming: Cliches and Plans , 1987 .

[11]  Mehdi T. Harandi,et al.  An experimental COBOL restructuring system , 1983, Softw. Pract. Exp..

[12]  Daniel G Shapiro SNIFFER: a System that Understands Bugs. , 1981 .

[13]  Rudolph E. Seviora Knowledge-Based Program Debugging Systems , 1987, IEEE Software.

[14]  Elliot Soloway,et al.  PROUST: Knowledge-Based Program Understanding , 1984, IEEE Transactions on Software Engineering.

[15]  Daniel C. Brotsky Program Understanding through Cliché Recognition , 1981 .

[16]  Kathi Hogshead Davis,et al.  A Methodology for Translating a Conventional File System into an Entity-Relationship Model , 1985, ER.

[17]  Vicki L. O'Day,et al.  MicroScope: a knowledge-based programming environment , 1988, IEEE Software.

[18]  Linda M. Wills,et al.  Automated Program Recognition: A Feasibility Demonstration , 1987, Artif. Intell..

[19]  Robin A. Nicholl,et al.  KNOWLEDGE REPRESENTATION OF SOFTWARE LIFE-CYCLE INFORMATION USING FIRST-ORDER LOGIC. , 1985 .

[20]  James Collofello,et al.  ANALYSIS OF THE TECHNICAL INFORMATION NECESSARY TO PERFORM EFFECTIVE SOFTWARE MAINTENANCE. , 1986 .

[21]  Shamkant B. Navathe,et al.  Abstracting Relational and Hierarchical Data with a Semantic Data Model , 1987, International Conference on Conceptual Modeling.

[22]  Thomas W. Reps,et al.  On the adequacy of program dependence graphs for representing programs , 1988, POPL '88.

[23]  E Bush,et al.  The automatic restructuring of COBOL , 1986 .

[24]  M. T. Harandi,et al.  PAT: a knowledge-based program analysis tool , 1988, Proceedings. Conference on Software Maintenance, 1988..

[25]  Charles Rich A Formal Representation For Plans In The Programmer's Apprentice , 1982, On Conceptual Modelling.

[26]  Jeffrey J. P. Tsai,et al.  GRAPH DESCRIPTION LANGUAGE FOR LARGE-SCALE SOFTWARE SPECIFICATION IN A MAINTENANCE ENVIRONMENT. , 1984 .

[27]  Joe D. Warren,et al.  The program dependence graph and its use in optimization , 1984, TOPL.