• DocumentCode
    2982471
  • Title

    Static and dynamic C++ code analysis for the recovery of the object diagram

  • Author

    Tonella, Paolo ; Potrich, Alessandra

  • Author_Institution
    Centro per la Ricerca Scientifica e Tecnologica, ITC-irst, Trento, Italy
  • fYear
    2002
  • fDate
    2002
  • Firstpage
    54
  • Lastpage
    63
  • Abstract
    When a software system enters the maintenance phase, the availability of accurate and consistent information about its organization can help alleviate the difficulties of program understanding. Reverse engineering methods aim at extracting such information directly from the code. While several tools support the recovery of the class diagram from object oriented code, so far no work has attacked the problem of statically characterizing the behavior of an object oriented system by means of diagrams which represent the class instances (objects) and their mutual relationships. In this paper a novel static analysis algorithm is proposed for extraction of the object diagram from the code, based on a program representation called the object flow graph. Partial object diagrams can be associated dynamically to the system by executing and tracing the program on a set of test cases. The complementary nature of these two views is discussed, and a novel approach to object oriented testing is derived from such a comparison. The usefulness of the proposed technique is illustrated on a real world, public domain C++ system.
  • Keywords
    diagrams; object-oriented programming; program diagnostics; reverse engineering; software maintenance; class instances; dynamic C++ code analysis; object diagram recovery; object flow graph; object oriented code; object oriented testing; partial object diagrams; program representation; program tracing; program understanding; public domain C++ system; reverse engineering methods; software maintenance; static C++ code analysis; static analysis algorithm; Algorithm design and analysis; Collaboration; Data mining; Flow graphs; High performance computing; Information analysis; Maintenance; Reverse engineering; Software systems; System testing;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Software Maintenance, 2002. Proceedings. International Conference on
  • ISSN
    1063-6773
  • Print_ISBN
    0-7695-1819-2
  • Type

    conf

  • DOI
    10.1109/ICSM.2002.1167747
  • Filename
    1167747