Abstract
The reengineering and reverse engineering of software systems is gaining importance in software industry, because the accelerated turnover in software industry, because the accelerated turnover in software companies creates legacy systems in a shorter period of time. Especially understanding classes is a key activity in object-oriented programming, since classes represent the primary abstractions from which applications are built. The main problem of this task is to quickly grasp the purpose of a class and its inner structure. To help the reverse engineers in their first contact with a foreign system, we propose a categorization of classes based on the visualization of their internal structure. The contributions of this paper are a novel categorization of classes and a visualization of the which we call the class blueprint. We have validated the categorization on several case studies, two of which we present here.
- 1 E. J. Chikofsky and J. H. Cross, II. Reverse engineering and design recovery: A taxonomy. IEEE Software, pages 13-17, Jan. 1990.]] Google ScholarDigital Library
- 2 M. Consens and A. Mendelzon. Hy+: A hygraph-based query and visualisation system. In Proceeding of the 1993 ACM SIGMOD International Conference on Management Data, SIGMOD Record Volume 22, No. 2, pages 511-516, 1993.]] Google ScholarDigital Library
- 3 K. DeHondt. A Novel Approach to Architectural Recovery in Evolving Object-Oriented Systems. PhD thesis, Vrije Universiteit Brussel, 1998.]]Google Scholar
- 4 S. Demeyer, S. Ducasse, and M. Lanza. A hybrid reverse engineering platform combining metrics and program visualization. In F. Balmas, M. Blaha, and S. Rugaber, editors, Proceedings WCRE'99 (6th Working Conference on Reverse Engineering). IEEE, Oct. 1999.]] Google ScholarDigital Library
- 5 S. Demeyer, S. Tichelaar, and S. Ducasse. FAMIX 2.1 - the FAMOOS information exchange model. Technical report, University of Berne, 2001. to appear.]]Google Scholar
- 6 S. Ducasse and M. Lanza. Towards a methodology for the understanding of object-oriented systems. Technique et Science Informatique, 2001. To appear in Techniques et Sciences Informatiques, Edition Speciale Reutilisation.]]Google Scholar
- 7 S. Ducasse, M. Lanza, and S. Tichelaar. Moose: an extensible language-independent environment for reengineering object-oriented systems. In Proceedings of the Second International Symposium on Constructing Software Engineering Tools (CoSET 2000), June 2000.]]Google Scholar
- 8 S.G.Eick,J.L.Steffen,andE.E.S.Jr.SeeSoft -A Toolfor Visualizing Line Oriented Software Statistics. IEEE Transactions on Software Engineering, 18(11):957-968, November 1992.]] Google ScholarDigital Library
- 9 N. Fenton and S. L. Pfleeger. Software Metrics: A Rigorous and Practical Approach. International Thomson Computer Press, London, UK, second edition, 1997.]] Google ScholarDigital Library
- 10 D. Flanagan. Java In a Nutshell: 3rd Edition. O'Reilly, 3rd edition, 1999.]] Google ScholarDigital Library
- 11 M. Fowler, K. Beck, J. Brant, W. Opdyke, and D. Roberts. Refactoring: Improving the Design of Existing Code. Addison-Wesley, 1999.]] Google ScholarDigital Library
- 12 E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns. Addison Wesley, Reading, MA, 1995.]]Google Scholar
- 13 B. Henderson-Sellers. Object-Oriented Metrics: Measures of Complexity. Prentice-Hall, 1996.]] Google ScholarDigital Library
- 14 D. J. Jerding, J. T. Stansko, and T. Ball. Visualizing interactions in program executions. In Proceedings of ICSE'97, pages 360-370, 1997.]] Google ScholarDigital Library
- 15 R. Kazman and M. Burth. Assessing architectural complexity. Technical report, University of Waterloo, 1995.]]Google Scholar
- 16 M. F. Kleyn and P. C. Gingrich. Graphtrace - understanding object-oriented systems using concurrently animated views. In Proceedings OOPSLA '88, ACM SIGPLAN Notices, pages 191-205, Nov. 1988. Published as Proceedings OOPSLA '88, ACM SIGPLAN Notices, volume 23, number 11.]] Google ScholarDigital Library
- 17 D. B. Lange and Y. Nakamura. Interactive visualization of design patterns can help in framework understanding. In Proceedings of OOPSLA'95, pages 342-357. ACM Press, 1995.]] Google ScholarDigital Library
- 18 M. Lanza. Combining metrics and graphs for object oriented reverse engineering. Diploma thesis, University of Bern, Oct. 1999.]]Google Scholar
- 19 M. Lorenz and J. Kidd. Object-Oriented Software Metrics: A Practical Guide. Prentice-Hall, 1994.]] Google ScholarDigital Library
- 20 H. Muller. Rigi - A Model for Software System Construction, Integration, and Evaluation based on Module Interface Specifications. PhD thesis, Rice University, 1986.]] Google ScholarDigital Library
- 21 W. D. Pauw, R. Helm, D. Kimelman, and J. Vlissides. Visualizing the behavior of object-oriented systems. In Proceedings OOPSLA '93, ACM SIGPLAN Notices, pages 326-337, Oct. 1993.]] Google ScholarDigital Library
- 22 W. D. Pauw and G. Sevitsky. Visualizing reference patterns for solving memory leaks in Java. In R. Guerraoui, editor, Proceedings ECOOP'99, LCNS 1628, pages 116-134, Lisbon, Portugal, June 1999. Springer-Verlag.]] Google ScholarDigital Library
- 23 S. P. Reiss. Interacting with the field environment. Software- Practice and Experience, 20:89-115, 1990.]] Google ScholarDigital Library
- 24 J. T. Stasko. Tango: A framework and system for algorithm animation. IEEE Computer, 23(9):27-39, September 1990.]] Google ScholarDigital Library
- 25 P. Steyaert, C. Lucas, K. Mens, and T. D'Hondt. Reuse contracts: Managing the evolution of reusable assets. In Proceedings of OOPSLA '96 Conference, pages 268-285. ACM Press, 1996.]] Google ScholarDigital Library
- 26 M.-A. D. Storey and H. A. M~ller. Manipulating and documenting software structures using shrimp views. In Proceedings of the 1995 International Conference on Software Maintenance, 1995.]] Google ScholarDigital Library
- 27 C. Ware. Information Visualization. Morgan Kaufmann, 2000.]] Google ScholarDigital Library
- 28 N. Wilde and R. Huitt. Maintenance support for object-oriented programs. IEEE Transactions on Software Engineering, SE-18(12):1038-1044, Dec. 1992.]] Google ScholarDigital Library
Index Terms
- A categorization of classes based on the visualization of their internal structure: the class blueprint
Recommendations
A categorization of classes based on the visualization of their internal structure: the class blueprint
OOPSLA '01: Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applicationsThe reengineering and reverse engineering of software systems is gaining importance in software industry, because the accelerated turnover in software industry, because the accelerated turnover in software companies creates legacy systems in a shorter ...
Mitotic classes
COLT'07: Proceedings of the 20th annual conference on Learning theoryFor the natural notion of splitting classes into two disjoint subclasses via a recursive classifier working on texts, the question is addressed how these splittings can look in the case of learnable classes. Here the strength of the classes is compared ...
Comments