[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
research-article

On reverse engineering an object-oriented code into UML class diagrams incorporating extensible mechanisms

Published: 31 August 2008 Publication History

Abstract

Reverse engineering is the key idea for reconstruction of any existing system. In this paper, we propose an algorithm to reverse engineer an object-oriented code into Unified Modeling Language (UML) class diagram. Our algorithm is very general in nature and can be applied to any object-oriented code irrespective of the object-oriented programming language. In our paper we consider an object-oriented pseudocode similar to C++ to implement our algorithm. Some of the researchers have dealt in the past the problem of reverse engineering an object-oriented code to UML class diagrams. However, none of these researchers have treated all the constructs available in UML class diagrams. Unlike the previously done work on reverse engineering into UML, our algorithm generates rules for a complete set of constructs available in UML class diagrams. It includes classes, relationships, objects, attributes, operations, inheritance, associations, interfaces & other extensible mechanisms also. This algorithm can be viewed as a solution to reverse engineer any available object-oriented software. An application for the implementation of above said rules using C++ code is also included in the paper. We thoroughly compare our work with the similar type of earlier work in this area and uncover the deficiencies in these previous available works. Moreover our motive in this paper is to prepare rules to reverse engineer C++ code into UML class diagrams and not to generate any tools.

References

[1]
Pressman, R.S. (2001), Software Engineering, A Practitioner's approach, 5th Ed., Mc Graw-Hill Series.
[2]
Booch, G., Rambaugh, J. and Jacobson, I. (1999), The Unified Modeling Language User Guide, Object-Oriented Technology series, Addison-Wesley.
[3]
Lee, R.C. and Tepfenhart, W.M. (2001), UML and C++, A practical guide to Object-Oriented development, 2nd Ed., Prentice-Hall.
[4]
Schildt, H. (1998), C++, The Complete Reference, 3rd Ed., Mc Graw-Hill Series.
[5]
Sutton, A. and Maletic, J.I. (2005), "Mapping for accurately Reverse Engineering UML class models from C++" in proceedings of 12th working conference on Reverse Engineering (WCRE'05), Nov 7-11 2005, page(s): 10 pp.
[6]
Tonella, P. and Potrich, A. (2001), "Reverse Engineering UML class diagram from C++ code in the presence of weakly typed containers" in proceedings of International conference on Software Maintenance (ICSM'01), Florence, Italy, Nov 6-10 2001, pp: 376--385.
[7]
Guéhéneuc, Y. -G. and Albin-Amiot, H. (2004), "Recovering Binary Class Relationships: Putting Icing on the UML Cake", in Proceedings of 19th annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA'04), Vancouver, Canada, Oct 24-28 2004, pp. 301--314.
[8]
Jackson, D. and Waingold, A. (1999), "Lightweight Extraction of Object Models from Bytecode", in Proceedings of 21st International Conference on Software Engineering (ICSE'99), Los Angeles, California, May 16-22 1999, pp. 194--202.
[9]
Kollman, R. and Gogolla, M. (2001), "Application of UML Associations and Their Adornments in Design Recovery", in Proceedings of Eight Working Conference on Reverse Engineering (WCRE'01), Stutgart, Oct 2-5 2001, pp. 81--92.
[10]
Matzko, S., Clarke, P.J., Gibbs, T.H., Malloy, B.A., Power, J.F. and Monahan, R. (2002), "Reveal: A Tool to Reverse Engineer class diagrams" in proceedings of 40th International conference on Tools Pacific: Object for Internet, Mobile and Embedded Applications, Sydney, 2002, pp: 13--21.
[11]
Hansen, G.W. and Hansen, J.V. (1996), Database Management and Design, 2nd Ed., Prentice-Hall.

Cited By

View all
  • (2021)Reverse Engineering of Object Oriented Systems to ALFInternational Journal of Software Engineering and Knowledge Engineering10.1142/S021819402150022431:05(745-774)Online publication date: 21-May-2021
  • (2012)Analyzing Impacts on Software Enhancement Caused by Security Design Alternatives with PatternsInternational Journal of Secure Software Engineering10.4018/jsse.20120101033:1(37-61)Online publication date: Jan-2012

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM SIGSOFT Software Engineering Notes
ACM SIGSOFT Software Engineering Notes  Volume 33, Issue 5
September 2008
68 pages
ISSN:0163-5948
DOI:10.1145/1402521
Issue’s Table of Contents

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 31 August 2008
Published in SIGSOFT Volume 33, Issue 5

Check for updates

Author Tags

  1. UML
  2. class diagrams
  3. object-oriented programming
  4. reverse engineering

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)6
  • Downloads (Last 6 weeks)2
Reflects downloads up to 22 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2021)Reverse Engineering of Object Oriented Systems to ALFInternational Journal of Software Engineering and Knowledge Engineering10.1142/S021819402150022431:05(745-774)Online publication date: 21-May-2021
  • (2012)Analyzing Impacts on Software Enhancement Caused by Security Design Alternatives with PatternsInternational Journal of Secure Software Engineering10.4018/jsse.20120101033:1(37-61)Online publication date: Jan-2012

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media