Towards a Methodology for the Understanding of Object-Oriented Systems (Vers une méthodologie pour la compréhension d'applications objets)

ABSTRACT. The reverse engineering of object-oriented legacy systems presents a number of pro-blems typically encountered in large-scale legacy systems: the lack of overview and the needto focus on interesting parts. To help in reverse engineering large object-oriented legacy sys-tems, we proposed a hybrid approach combining the immediate appeal of visualisations with thescalability of metrics. However, our approach lacked of a methodology that guides the reverseengineer. In this paper we present a first methodology that we developed from our industrialexperiments. RESUME. La phase de comprehension et d’analyse (reverse engineering) lors de la retro-con-ception d’applications a objets rencontre les problemes typiques des grands systemes (largescale systems), a savoir le manque de vue d’ensemble et la necessite de se focaliser sur lesparties interessantes. Afin d’aider cette tâche, nous avons propose une approche hybridecombinant l’attrait de la visualisation avec celui des metriques. Cependant, notre approchemanquait d’une methodologie qui guide le retro-concepteur. Dans cet article, nous presentonsune premiere methodologie que nous avons elaboree et validee au cours de nos experiencesindustrielles.

[1]  Paolo Nesi,et al.  Assessment of system evolution through characterization , 1998, Proceedings of the 20th International Conference on Software Engineering.

[2]  Michael F. Kleyn,et al.  GraphTrace - Understanding Object-Oriented Systems Using Concurrently Animated Views , 1988, OOPSLA.

[3]  Doug Kimelman,et al.  Visualizing the behavior of object-oriented systems , 1993, OOPSLA '93.

[4]  Serge Demeyer,et al.  An Exchange Model for Reengineering Tools , 1998, ECOOP Workshops.

[5]  Claus Lewerentz,et al.  A Product Metrics Tool Integrated into a Software Development Environment , 1998, ECOOP Workshops.

[6]  Mark Lorenz,et al.  Object-oriented software metrics - a practical guide , 1994 .

[7]  Dirk Riehle,et al.  Pattern Languages of Program Design 3 , 1997 .

[8]  Mitsuhiko Toda,et al.  Methods for Visual Understanding of Hierarchical System Structures , 1981, IEEE Transactions on Systems, Man, and Cybernetics.

[9]  Alberto O. Mendelzon,et al.  Visualizing and querying software structures , 1992, International Conference on Software Engineering.

[10]  Michele Lanza,et al.  Combining Metrics and Graphs for Object Oriented Reverse Engineering , 1999 .

[11]  Georg Sander,et al.  Graph Layout for Applications in Compiler Construction , 1999, Theor. Comput. Sci..

[12]  Paolo Nesi,et al.  A tool for process and product assessment of C++ applications , 1998, Proceedings of the Second Euromicro Conference on Software Maintenance and Reengineering.

[13]  Spencer Rugaber,et al.  Using visualization for architectural localization and extraction , 2000, Sci. Comput. Program..

[14]  F KleynMichael,et al.  GraphTraceunderstanding object-oriented systems using concurrently animated views , 1988 .

[15]  Thomas Ball,et al.  Software Visualization in the Large , 1996, Computer.

[16]  Ralph Johnson Documenting frameworks using patterns , 1992, OOPSLA 1992.

[17]  Timothy G. Howard Smalltalk Developer's Guide to VisualWorks , 1995 .

[18]  Kostas Kontogiannis,et al.  Evaluation experiments on the detection of programming patterns using software metrics , 1997, Proceedings of the Fourth Working Conference on Reverse Engineering.

[19]  Eduardo Casais,et al.  Re-Engineering Object-Oriented Legacy Systems , 1998, J. Object Oriented Program..

[20]  Ettore Merlo,et al.  Experiment on the automatic detection of function clones in a software system using metrics , 1996, 1996 Proceedings of International Conference on Software Maintenance.

[21]  Brian Henderson-Sellers,et al.  Object-Oriented Metrics , 1995, TOOLS.

[22]  Alberto O. Mendelzon,et al.  Hy+: a Hygraph-based query and visualization system , 1993, SIGMOD '93.

[23]  Shari Lawrence Pfleeger,et al.  Software Metrics : A Rigorous and Practical Approach , 1998 .

[24]  Michele Lanza,et al.  A hybrid reverse engineering platform combining metrics and program visualization , 1999 .

[25]  Arthur J. Riel,et al.  Object-Oriented Design Heuristics , 1996 .

[26]  Hans Albert Muller,et al.  Rigi: a model for software system construction, integration, and evolution based on module interface specifications , 1986 .

[27]  Martin Fowler,et al.  Refactoring - Improving the Design of Existing Code , 1999, Addison Wesley object technology series.

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

[29]  Ralph E. Johnson,et al.  Documenting frameworks using patterns , 1992, OOPSLA '92.

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

[31]  Ramana Rao,et al.  A focus+context technique based on hyperbolic geometry for visualizing large hierarchies , 1995, CHI '95.