skip to main content
research-article

Polymetric Views-A Lightweight Visual Approach to Reverse Engineering

Published: 01 September 2003 Publication History

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.

References

[1]
E.J. Chikofsky and J.H. Cross, II, “Reverse Engineering and Design Recovery: A Taxonomy,” IEEE Software, pp. 13-17, Jan. 1990.]]
[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.M. Davis, 201 Principles of Software Development. McGraw-Hill, 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. Morgan Kaufmann, 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. Fenton and S.L. Pfleeger, Software Metrics: A Rigorous and Practical Approach, second ed. London: Int'l Thomson Computer Press, 1996.]]
[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. unibe.ch/famoos/handbook.]]
[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: A Practical Guide. 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, June 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. Vans, “Identification of Dynamic Comprehension Processes During Large Scale Maintenance,” IEEE Trans. Software Eng., vol. 22, no. 6, pp. 424-437, June 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. Conf. Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA '92), pp. 63-76, Oct. 1992.]]
[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. Hungry Minds, 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.P. Consens and A.O. Mendelzon, “Hy+: A Hygraph-Based Query and Visualisation System,” Proc. 1993 ACM SIGMOD Int'l Conf. Management Data, SIGMOD Record, vol. 22, no. 2, pp. 511-516, 1993.]]
[42]
S.G. Eick J.L. Steffen and S.E. Eric 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.T. 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. Perli, “Assessment of System Evolution Through Characterization,” Proc. Int'l Conf. Software Eng. (ICSE '98), 1998.]]
[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.]]

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image IEEE Transactions on Software Engineering
IEEE Transactions on Software Engineering  Volume 29, Issue 9
September 2003
95 pages

Publisher

IEEE Press

Publication History

Published: 01 September 2003

Author Tags

  1. Reverse engineering
  2. object-oriented programming
  3. software metrics.
  4. software visualization

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 28 Jan 2025

Other Metrics

Citations

Cited By

View all

View Options

View options

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media