This Article 
 Bibliographic References 
 Add to: 
Polymetric Views-A Lightweight Visual Approach to Reverse Engineering
September 2003 (vol. 29 no. 9)
pp. 782-795

Abstract—Reverse engineering software systems has become a major concern in software industry because of their sheer size and complexity. This problem needs to be tackled since the systems in question are of considerable worth to their owners and maintainers. In this article, we present the concept of a polymetric view, a lightweight software visualization technique enriched with software metrics information. Polymetric views help to understand the structure and detect problems of a software system in the initial phases of a reverse engineering process. We discuss the benefits and limits of several predefined polymetric views we have implemented in our tool CodeCrawler. Moreover, based on clusters of different polymetric views, we have developed a methodology which supports and guides a software engineer in the first phases of a reverse engineering of a large software system. We have refined this methodology by repeatedly applying it on industrial systems and illustrate it by applying a selection of polymetric views to a case study.

[1] E.J. Chikofsky and J.H. Cross II, "Reverse Engineering and Design Recovery: A Taxonomy," IEEE Software, Vol. 7, No. 1, Jan./Feb. 1990, pp. 13-17.
[2] E. Casais, Re-Engineering Object-Oriented Legacy Systems J. Object-Oriented Programming, vol. 10, no. 8, pp. 45-52, Jan. 1998.
[3] S. Rugaber and J. White, Restoring a Legacy: Lessons Learned IEEE Software, vol. 15, no. 4, pp. 28-33, July 1998.
[4] D.L. Parnas, Software Aging Proc. Int'l Conf. Software Eng., 1994.
[5] I. Sommerville, Software Engineering, sixth ed. Addison Wesley, 2000.
[6] A. Davis, 201 Principles of Software Development, McGraw-Hill, New York, 1995.
[7] S. Demeyer, S. Ducasse, and O. Nierstrasz, Object-Oriented Reengineering Patterns. Morgan Kaufmann, 2002.
[8] M.-A.D. Storey, F.D. Fracchia, and H.A. Müller, Cognitive Design Elements to Support the Construction of a Mental Model During Software Exploration J. Software Systems, vol. 44, pp. 171-185, 1999.
[9] Software Visualization Programming as a Multimedia Experience, J.T. Stasko, J. Domingue, M.H. Brown, and B.A. Price, eds., MIT Press, 1998.
[10] C. Ware, Information Visualization: Perception for Design. San Diego, Calif.: Academic Press, 2000.
[11] M. Petre, Why Looking Isn't Always Seeing: Readership Skills and Graphical Programming Comm. ACM, vol. 38, no. 6, pp. 33-44, June 1995.
[12] N.E. Fenton and S.L. Pfleeger, Software Metrics: A Rigorous and Practical Approach, second ed. Thomson Computer Press, 1998.
[13] D. Littman, J. Pinto, S. Letovsky, and E. Soloway, Mental Models and Software Maintenance Empirical Studies of Programmers, Proc. First Workshop, pp. 80-98, 1996.
[14] The FAMOOS Object-Oriented Reengineering Handbook. S. Ducasse and S. Demeyer, eds., Univ. of Bern, Oct. 1999, http://www.iam.
[15] S. Demeyer, S. Tichelaar, and S. Ducasse, FAMIX 2. 1 The FAMOOS Information Exchange Model technical report, Univ. of Bern, 2001.
[16] S. Ducasse, M. Lanza, and S. Tichelaar, Moose: An Extensible Language-Independent Environment for Reengineering Object-Oriented Systems Proc. Second Int'l Symp. Constructing Software Eng. Tools (CoSET 2000), June 2000.
[17] S. Demeyer, S. Ducasse, and M. Lanza, A Hybrid Reverse Engineering Platform Combining Metrics and Program Visualization Proc. Sixth Working Conf. Reverse Eng. (WCRE '99), Oct. 1999.
[18] M. Lorenz and J. Kidd, Object-Oriented Software Metrics. Prentice Hall, 1994.
[19] B. Henderson-Sellers, Object-Oriented Metrics: Measures of Complexity. Prentice-Hall, 1996.
[20] S.R. Chidamber and C.F. Kemerer, "A Metrics Suite for Object Oriented Design," IEEE Trans. Software Eng., vol. 20, no. 6, pp. 476-493, 1994.
[21] G.D. Battista, P. Eades, R. Tamassia, and I.G. Tolls, Graph Drawing Algorithms for the Visualization of Graphs. Prentice-Hall, 1999.
[22] A.J. Riel, Object-Oriented Design Heuristics. Addison-Wesley, 1996.
[23] D. Roberts, J. Brant, and R.E. Johnson, A Refactoring Tool for Smalltalk Theory and Practice of Object Systems (TAPOS), vol. 3, no. 4, pp. 253-263, 1997.
[24] M. Fowler, K. Beck, J. Brant, W. Opdyke, and D. Roberts, Refactoring: Improving the Design of Existing Code. Addison Wesley, 1999.
[25] K. Beck, Smalltalk Best Practice Patterns. Prentice-Hall, 1997.
[26] S. Ducasse and M. Lanza, Towards a Methodology for the Understanding of Object-Oriented Systems Technique et Science Informatiques, vol. 20, no. 4, pp. 539-566, 2001.
[27] M. Lanza and S. Ducasse, A Categorization of Classes Based on the Visualization of Their Internal Structure: The Class Blueprint Proc. Conf. Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA '01), pp. 300-311, 2001.
[28] S. Ducasse, M. Rieger, and S. Demeyer, A Language Independent Approach for Detecting Duplicated Code Proc. Int'l Conf. Software Maintenance (ICSM '99), pp. 109-118, Sept. 1999.
[29] M. Lanza, Combining Metrics and Graphs for Object Oriented Reverse Engineering diploma thesis, Univ. of Bern Oct. 1999.
[30] E. Gamma, R. Helm, R. Johnson, and J. Vlissides, Design Patterns. Addison Wesley, 1995.
[31] E.J. Klimas, S. Skublics, and D.A. Thomas, Smalltalk with Style. Prentice-Hall, 1996.
[32] A. von Mayrhauser and A.M. Mans, “Identification of Dynamic Comprehension Processes During Large Scale Maintenance,” IEEE Trans. Software Eng., vol. 22, no. 6, pp. 424–437, 1996.
[33] S. Tichelaar, Modeling Object-Oriented Software for Reverse Engineering and Refactoring PhD thesis, Univ. of Berne, Dec. 2001.
[34] S. Demeyer, S. Ducasse, and S. Tichelaar, Why Unified is not Universal? UML Shortcomings for Coping with Round-Trip Engineering Proc. Second Int'l Conf. the Unified Modeling Language (UML '99), Oct. 1999.
[35] R.E. Johnson, "Documenting Frameworks Using Patterns," Proc. OOPSLA 92, ACM Press, New York, 1994, pp. 63-76.
[36] S. Ducasse, M. Lanza, O. Nierstrasz, M. Rieger, and S. Tichelaar, Beoc Analysis Report technical report, Univ. of Bern, 2000.
[37] A. Cooper, About Face: The Essentials of User Interface Design, IDG Books Worldwide, Foster City, Calif., 1995.
[38] Readings in Information Visualization Using Vision to Think, S.K. Card, J.D. Mackinlay, and B. Shneiderman, eds., Morgan Kaufmann, 1999.
[39] B.A. Price, R.M. Baecker, and I.S. Small, A Principled Taxonomy of Software Visualization J. Visual Languages and Computing, vol. 4, no. 3, pp. 211-266, 1993.
[40] S.R. Tilley, H.A. Müller, M.J. Whitney, and K. Wong, Domain-Retargetable Reverse Engineering Proc. Conf. Software Maintenance (CSM '93), pp. 142-151, Sept. 1993.
[41] M. Consens and A. Mendelzon, "Hy+: A Hygraph-Based Query and Visualization System," Proc. ACM SIGMOD Conf., 1993.
[42] S.G. Eick, J. Steffen, and E. Sumner, Jr., “SeeSoft—A Tool for Visualizing Line-Oriented Software Statistics,” IEEE Trans. Software Eng., vol. 18, no. 11, pp. 957–968, Nov. 1992.
[43] M.-A.D. Storey and H.A. Müller, Manipulating and Documenting Software Structures Using Shrimp Views Proc. 1995 Int'l Conf. Software Maintenance, 1995.
[44] J. Stasko, “Tango: A Framework and System for Algorithm Animation,” Computer, vol. 23, no. 9, pp. 27–39, Sept. 1990.
[45] S.P. Reiss, Interacting with the Field Environment Software Practice and Experience, vol. 20, pp. 89-115, 1990.
[46] D.B. Lange and Y. Nakamura, Interactive Visualization of Design Patterns Can Help in Framework Understanding Proc. Conf. Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA '95), pp. 342-357, 1995.
[47] W.D. Pauw, R. Helm, D. Kimelman, and J. Vlissides, Visualizing the Behavior of Object-Oriented Systems Proc. Conf. Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA '93), pp. 326-337, Oct. 1993.
[48] M.F. Kleyn and P.C. Gingrich, Graphtrace Understanding Object-Oriented Systems Using Concurrently Animated Views Proc. Conf. Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA '88), pp. 191-205, Nov. 1988.
[49] D.J. Jerding, J.T. Stansko, and T. Ball, Visualizing Interactions in Program Executions Proc. Int'l Conf. Software Eng. (ICSE '97), pp. 360-370, 1997.
[50] T. Richner and S. Ducasse, Recovering High-Level Views of Object-Oriented Applications from Static and Dynamic Information Proc. Int'l Conf. Software Maintenance (ICSM '99), pp. 13-22, Sept. 1999.
[51] M.H. Brown, Zeus: A System for Algorithm Animation and Multi-View Editing Proc. 1991 IEEE Workshop Visual Languages, pp. 4-9, Oct. 1991.
[52] S. Demeyer and S. Ducasse, Metrics, Do They Really Help? Proc. Languages et ModélesáObjets, (LMO '99), pp. 69-82, 1999.
[53] F. Fioravanti, P. Nesi, and S. Perlini, "Assessment of System Evolution Through Characterization," Proc. IEEE Int'l. Conf. Software Eng., IEEE CS Press, Los Alamitos, Calif., Apr. 1998, pp. 456-459.
[54] C. Lewerentz and F. Simon, A Product Metrics Tool Integrated into a Software Development Environment Proc. Object-Oriented Technology Ecoop'98 Workshop Reader, 1998.
[55] J. Rilling and S.P. Mudur, On the Use of Metaballs to Visually Map Source Code Structures and Analysis Results onto 3D Space Proc. Ninth Working Conf. Reverse Eng. (WCRE '02), pp. 299-308, 2002.

Index Terms:
Reverse engineering, object-oriented programming, software visualization, software metrics.
Michele Lanza, St?phane Ducasse, "Polymetric Views-A Lightweight Visual Approach to Reverse Engineering," IEEE Transactions on Software Engineering, vol. 29, no. 9, pp. 782-795, Sept. 2003, doi:10.1109/TSE.2003.1232284
Usage of this product signifies your acceptance of the Terms of Use.