Program comprehension in multi-language systems

This paper presents an approach to program comprehension in multi-language systems. Such systems are characterized by a high amount of source codes in various languages for programming, database definition and job control. Coping with those systems requires the references crossing the language boundaries to be analyzed. Using the EER/GRAL approach to graph-based conceptual modeling, models representing relevant aspects of single language are built and integrated into a common conceptual model. Since conceptual modeling focusses on specific problems, the integrated model presented here is especially tailored to multi-language aspects. Software systems are parsed and represented according to this conceptual model and queried by using a powerful graph query mechanism. This allows multi-language cross references to be easily retrieved. The multi-language conceptual model and the query facilities have been developed in cooperation with the maintenance programmers at an insurance company within the GUPRO project.

[1]  Manfred Kamp Managing a multi-file, multi-language software repository for program comprehension tools: a generic approach , 1998, Proceedings. 6th International Workshop on Program Comprehension. IWPC'98 (Cat. No.98TB100242).

[2]  Rainer Gimnich,et al.  Wartungsunterstützung in heterogenen Sprachumgebungen ein Überblick zum Projekt GUPRO , 1996, Softwarewartung und Reengineering.

[3]  Gottfried Vossen,et al.  I-Serializability: Generalized Correctness for Transaction-Based Environments , 1997, Inf. Process. Lett..

[4]  Stan Jarzabek PQL: A Language for Specifying Abstract Program Views , 1995, ESEC.

[5]  Jürgen Ebert,et al.  Meta-CASE in Practice: a Case for KOGGE , 1997, CAiSE.

[6]  Chandrabose Aravindan DisLoP: A Disjunctive Logic Programming System Based on PROTEIN Theorem Prover , 1996, KI.

[7]  Jürgen Ebert,et al.  A Declarative Approach to Graph Based Modeling , 1994, WG.

[8]  Jürgen Ebert,et al.  The extract-transform-rewrite cycle: a step towards metaCARE , 1998, Proceedings of the Second Euromicro Conference on Software Maintenance and Reengineering.

[9]  Hausi A. Müller,et al.  Structural Redocumentation: A Case Study , 1995, IEEE Softw..

[10]  Jürgen Dix,et al.  Non-monotonic Extensions of Logic Programming: Theory, Implementation and Applications , 1996 .

[11]  Matthias Jarke,et al.  Telos: representing knowledge about information systems , 1990, TOIS.

[12]  Carlo Simon,et al.  The Petri Net Tools Neptun and Poseidon , 1997 .

[13]  J. J. V. R. Wintraecken,et al.  The NIAM Information Analysis Method , 1990, Springer Netherlands.

[14]  Philip Newcomb Legacy System Cataloging Facility , 1995, Proceedings of 2nd Working Conference on Reverse Engineering.

[15]  Chandrabose Aravindan An Abductive Framework for Negation in Disjunctive Logic Programming , 1996, JELIA.

[16]  Jürgen Dix,et al.  DisLoP: A Research Project on Disjunctive Logic Programming , 1997, AI Commun..

[17]  Premkumar T. Devanbu GENOA - A Customizable, Language- And Front-end Independent Code Analyzer , 1992, International Conference on Software Engineering.

[18]  J. Ebert,et al.  Querying Graph Structures with GQL , 1996 .

[19]  Jürgen Ebert,et al.  TGraphen und EER-Schemata - Formale Grundlagen , 1998 .

[20]  Judith E. Grass Object-Oriented Design Archaeology with CIA++ , 1992, Comput. Syst..

[21]  Lutz Priese,et al.  A Uniform Approach to True-Concurrency and Interleaving Semantics for Petri Nets , 1998, Theor. Comput. Sci..

[22]  Ilkka Niemell A Tableau Calculus for Minimal Model Reasoning Ilkka Niemel a a Tableau Calculus for Minimal Model Reasoning , 1996 .

[23]  Lawrence Markosian,et al.  Customized tools for software quality assurance and reengineering , 1995, Proceedings of 2nd Working Conference on Reverse Engineering.

[24]  Ilkka Niemelä Implementing Circumscription Using a Tableau Method , 1996, ECAI.

[25]  Lutz Priese,et al.  Algebraic Characterization of Petri Net Pomset Semantics , 1997, CONCUR.

[26]  Wolfgang Albrecht,et al.  Integrating Fixed Priority and Static Scheduling to Maintain External Consistency , 1997 .

[27]  William J. Clancey,et al.  Conceptual structures — Information processing in mind and machine J.F. Sowa, systems programming series (Addison-Wesley, Reading, MA, 1984); 481 pages, indices, appendices , 1985 .

[28]  Stan Jarzabek,et al.  Design of a generic reverse engineering assistant tool , 1995, Proceedings of 2nd Working Conference on Reverse Engineering.

[29]  Jürgen Ebert,et al.  A Generic System to Support Multi-Level Understanding of Heterogeneous Software , 1997 .

[30]  Hausi A. Müller,et al.  A reverse-engineering approach to subsystem structure identification , 1993, J. Softw. Maintenance Res. Pract..

[31]  Jürgen Ebert,et al.  Graph Based Modeling and Implementation with EER / GRAL , 1996, ER.

[32]  Hausi A. Müller,et al.  The Software Bookshelf , 1997, IBM Syst. J..

[33]  Jürgen Dix,et al.  A Comparison of STATIC Semantics with D-WFS , 1996 .

[34]  Gerardo Canfora,et al.  A workbench for program comprehension during software maintenance , 1996, WPC '96. 4th Workshop on Program Comprehension.

[35]  Angelika Franzke GRAL 2.0: A Reference Manual , 1997 .

[36]  Martin Volk,et al.  Constraint Logic Programming for Computational Linguistics , 1996, LACL.

[37]  Peter Baumgartner,et al.  Tableaux for Diagnosis Applications , 1997, TABLEAUX.

[38]  Wenjin Lu Minimal Model Generation Based on E-hyper Tableaux , 1997, KI.

[39]  Mark A. Linton,et al.  Implementing relational views of programs , 1984, SDE 1.

[40]  C. V. Ramamoorthy,et al.  The C Information Abstraction System , 1990, IEEE Trans. Software Eng..

[41]  Jürgen Dix,et al.  Characterizations and Implementation of Static Semantics of Disjunctive Programs , 1996 .

[42]  Murray Hill,et al.  Yacc: Yet Another Compiler-Compiler , 1978 .

[43]  U. Furbach Re nements for Restart Model Elimination , 1996 .

[44]  Atul Prakash,et al.  Querying source code using an algebraic query language , 1994, Proceedings 1994 International Conference on Software Maintenance.

[45]  Peter Baumgartner,et al.  Model Elimination, Logic Programming and Computing Answers , 1995, IJCAI.

[46]  Roger F. Crew ASTLOG: A Language for Examining Abstract Syntax Trees , 1997, DSL.

[47]  Stephan Philippi,et al.  Integration of Integrity Constraints into Object-Oriented Database Schema according to ODMG-93 , 1995 .

[48]  Thomas A. Standish An Essay on Software Reuse , 1984, IEEE Transactions on Software Engineering.

[49]  Jürgen Dix,et al.  Reducing Disjunctive to Non-Disjunctive Semantics by Shift-Operations , 1996, Fundam. Informaticae.

[50]  John F. Sowa,et al.  Conceptual Structures: Information Processing in Mind and Machine , 1983 .

[51]  Chandrabose Aravindan,et al.  A Rational and Efficient Algorithm for View Deletion in Databases , 1997, ILPS.

[52]  Marcello Balduccini,et al.  Logic Programming And Nonmonotonic Reasoning , 1997, Lecture Notes in Computer Science.

[53]  Frieder Stolzenburg,et al.  A Flexible System for Constraint Disjunctive Logic Programming , 1998, Künstliche Intell..

[54]  Laurian M. Chirica,et al.  The entity-relationship model: toward a unified view of data , 1975, SIGF.

[55]  Peter P. Chen The entity-relationship model: toward a unified view of data , 1975, VLDB '75.

[56]  Luís Moniz Pereira,et al.  Prolegomena to Logic Programming for Non-monotonic Reasoning , 1996, NMELP.